FPGA之硬件设计笔记-持续更新中
目录
- 1、说在前面
- 2、FPGA硬件设计总计说明
- 3、 原理图详解 - ARITX - 7 系列
- 3.1 顶层框图介绍
- 3.2 FPGA 电源sheet介绍:
- 3.2.1 bank 14 和 bank 15的供电
- 3.2.2 bank 0的供电
- 3.2.3 Bank34 35 的供电
- 3.3 核电压和RAM电压以及辅助电压
- 4 原理图详解-- Ultrascale+ ARTIX
- 4.1 《ultrascale-plus-fpga-product-selection-guide.pdf》
- 4.2 DS931: Artix UltraScale+ FPGA Data Sheet: DC and AC Switching Characteristics
- 4.2.1 电源情况
- 4.2.2 资源情况
- 4.3 原理图设计实际参考
- 4.3.1 电源设计
- 4.3.2 配置模块设计
- 4.3.3 电源滤波电容设计《UG583 UltraScale Architecture PCB Design》
- 4 FPGA的配置模式(UG470)
- 4.1 artix7系列概述之如何启动
- 4.7 Jtag是使用和管脚连接方式
- 4 总结
1、说在前面
本文章将讲述FPGA硬件的设计中的个人看到的一些资料,文章将持续修改,持续完善。
2、FPGA硬件设计总计说明
- 概述: FPGA的硬件设计主要从硬件工程师的角度出发来看的。包括电源及时序、时钟、配置、IO外设 这四个主要部分。
- 难点: FPGA的手册繁多,入门不太好理解
- 方法: 基于别人的实战的设计,看懂,并找出依据和原理
- 参考资料:
- XC7A35T - 1FTG256C(FBGA256) xilinx , 黑金的开发板为例进行说明
- AU15P : U+ 14nm Artix , 黑金开发板
3、 原理图详解 - ARITX - 7 系列
- 涉及;DS181&UG471
3.1 顶层框图介绍

开发板的设计通常是尽可能的将所有的资源都接出来以便用户使用。
- 外设
- USB2.0: FPGA的USB2.0 接口
- interface : 外部扩展接口、 LED、 UART转USB、RTC
- memory: DDR3
- FPGA3: 电源
- FPGA2:
- DDR 接口
- QSPI接口
- 配置接口
- FPGA1:
- 时钟输入
- 扩展接口
- rst
3.2 FPGA 电源sheet介绍:

3.2.1 bank 14 和 bank 15的供电
-
U5F: IO bank 的供电电压
- HP Bank:适用于高速数据传输场景,如DDR内存接口,支持高速差分信号,电压最高1.8V。
- HR Bank:适用于需要支持多种电压标准的场景,电压范围广,最高支持3.3V。
- GTH: 高速收发器,通常用于高速串行协议
XC7A35 T的IObank 有哪些可通过这个手册来看:《ug475_7Series_Pkg_Pinout.pdf》P30

最全封装的FGG484 :

由于我们是FTG256封装的,因此没有bank 16 bank 34一部分 没有GTP

说回电源由于bank 14 bank15 都是HR bank ,我们可以用3.3V供电,根据我们的外设来确定。
黑金的bank 14 用3.3
bank 15 用1.5V

DD3的供电就是1.5V的所以是对应的

3.2.2 bank 0的供电
Bank 0(配置Bank)是FPGA中一个专用的I/O Bank,主要用于FPGA的配置过程
(1) Bank0的供电的电压是3.3V的,专用的配置供电的电源管脚是VCCO_0

相关配置的管脚有如下几个:
- INIT_B、PROGRAM_B、M[2:0]
(2) Bank0的第二个供电电压是:VCCADC_0
(3) Bank0 的第三个供电电压是:VCCBATT_0
VCCAUX电源为一些bank中的模拟组件进行供电。
3.2.3 Bank34 35 的供电
bank 34 35 都是HR bank,电压范围是-0.5~3.6V,根据外设使用,黑金的设计如下:

从下图可看出,其分别用为扩展IO接口,串口,RST以及USB转换模块的接口。
3.3 核电压和RAM电压以及辅助电压
如下图,VCCINT、VCCAUX、VCCBRAM是FPGA内部的核心电源。

根据手册:《Artix-7 FPGAs Data Sheet:DC and AC Switching Characteristics》 我们可以总结出如下:

VCCint:为 FPGA 内部逻辑电路提供稳定的内核电压,确保内部逻辑电路的正常工作。
VCCaux:为 FPGA 内部的模拟组件和 I/O 缓存电路提供辅助电压,确保这些组件的正常工作。
VCCBRAM:为 FPGA 内部的 Block RAM 资源提供稳定的电源,确保数据的正确存储和读取。
特别注意:VCCADC_0 的供电电压使用的是1.8V,线路串联电感和滤波电容用于保证模拟电源和数字电源的隔离,并且保证模拟GND和数字GND分开。
4 原理图详解-- Ultrascale+ ARTIX
4.1 《ultrascale-plus-fpga-product-selection-guide.pdf》
U+系列的分类:


4.2 DS931: Artix UltraScale+ FPGA Data Sheet: DC and AC Switching Characteristics
4.2.1 电源情况

如下是deepseek生成的结果:关键差异点我给大家标注出来
另一个差异点事Atix U+的用的是GTH和GTY的接口,外需要AUX 辅助电源和CAL 校准电源

4.2.2 资源情况
AU15P:
- GTH: 676 封装的有3个GTH
- HP BANK: 3个 64 65 66 1.8V最大
- HD Bank: 3个 84 85 86 3.3V最大
- SYSMON configuration :
- AD[0 to 15][P or N]
- VCCADC GNDADC ---- 专用管脚
- VREFP/N — 专用
- VP/VN — 专用
- I2C_SCLK I2C_SDA

4.3 原理图设计实际参考
4.3.1 电源设计
简单说明: 额外GTH
MGTAVTT : 1.2V 页给MGTACTTRCAL
MGTAVCC: 0.9V


4.3.2 配置模块设计

4.3.3 电源滤波电容设计《UG583 UltraScale Architecture PCB Design》
4 FPGA的配置模式(UG470)
4.1 artix7系列概述之如何启动
该datasheet主要讲述FPGA的下载和程序载入。
(1) 7 系列的FPGA的程序加载模式主要分成两种:
- Master mode: FPGA主动产生CCLK+外部存储设备。 默认是外部的spi flash,内部有晶体形成时钟,配置完成后时钟就可以关闭了。除非特别的需求。 这个也可以配置的时候说,我要使用外部时钟就是EMCCLK pin
- slave mode: FPGA作为slave 接收来自外部的DSP、processor 等等
(2) 如何配置 - 通过M1 M2 M3 三个固定pin管脚高低确认,通常是一个大于1kohm 的电阻实现上下拉。如下图。

(3) 配置管脚以及典型连接


(4) 看下黑金的板卡是如何配置的:配置001
-
PUDC_B:确认是否启用内部上拉电阻启用,在配置前和配置中,不能float
-
program_b: 低电平开始reset,配置逻辑。相当于一个reset,需要外部上拉4.7K ,可以手动复位
-
init_b:拉低开始配置FPGA配置,出现错误,initb 会变低,配置完成成功后,FPGA会驱动为高
-
Done: 配置完成信号,内部有大概10K的弱上拉,外部可以不接推荐的330电阻,黑金是连接了1k上拉并且连接GND表示Ok
-
EMCCLK: NC,读取falsh的spi clk 通过外部时钟给,支持最大100M,使用的时候必须约束和配置好,EMCCLK 信号必须实例化,并在提供 I/O 标准定义的设计中使用
-
M2 M1 M0: 001
-
E8 pin: CCLK的输出,连接Flash的SPI CLK
-
QSPI:使用的是x4,分别连接J13 J14 K15 K16 L12(UG475有详细的连接)
-
如何配置x4:这个应该是flash选择的时候确认好。“待安装完flash后确认”



UG475 P58

点击之后有详细的列表:

4.7 Jtag是使用和管脚连接方式
(1) Jt先看黑金的设计方式: 直连出来:

(2)推荐的设计方式
TCK、TMS、TDI:这些引脚通常需要通过上拉电阻连接到VCCO_0,以确保在正常工作时这些引脚保持高电平。建议使用4.7kΩ或10kΩ的上拉电阻。
TDO:TDO引脚是三态的,不需要上拉或下拉电阻。如果不需要使用JTAG,可以将TDO引脚悬空。
4 总结
如上,本文分别artix-7 系列的FPGA的设计的所有细节进行了说明
相关文章:
FPGA之硬件设计笔记-持续更新中
目录 1、说在前面2、FPGA硬件设计总计说明3、 原理图详解 - ARITX - 7 系列3.1 顶层框图介绍3.2 FPGA 电源sheet介绍:3.2.1 bank 14 和 bank 15的供电3.2.2 bank 0的供电3.2.3 Bank34 35 的供电 3.3 核电压和RAM电压以及辅助电压 4 原理图详解-- Ultrascale ARTIX4.…...
vue cli 与 vite的区别
1、现在我们一般会用vite来构建vue3的项目。 2、之前一开始的时候,我们会用vue cli的vue create来构建项目。 3、它们之间有什么区别呢? 1. 设计理念 Vue CLI: 是 Vue.js 官方提供的命令行工具,主要用于快速搭建 Vue 项目。 提…...
怎么在本地环境安装yarn包
一、安装Yarn的前置条件 安装Node.js和npm Yarn依赖于Node.js环境,需先安装Node.js官网的最新稳定版(建议≥16.13.0)。安装时勾选“Add to PATH”以自动配置环境变量。 二、安装Yarn的多种方式 1. 通过npm全局安装(通用…...
【大模型】AI 辅助编程操作实战使用详解
目录 一、前言 二、AI 编程介绍 2.1 AI 编程是什么 2.1.1 为什么需要AI辅助编程 2.2 AI 编程主要特点 2.3 AI编程底层核心技术 2.4 AI 编程核心应用场景 三、AI 代码辅助编程解决方案 3.1 AI 大模型平台 3.1.1 AI大模型平台代码生成优缺点 3.2 AI 编码插件 3.3 AI 编…...
react18自定义hook实现
概念:自定义 hook 是一种将组件逻辑提取到可复用函数中的方式,它允许你在多个组件中共享相同的状态和行为。自定义 hook 的本质上是一个普通的 JavaScript 函数,它可以使用 React 内部的 hook(如 useState、useEffect、useContext…...
一周学会Flask3 Python Web开发-Jinja2模板过滤器使用
锋哥原创的Flask3 Python Web开发 Flask3视频教程: 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili 在Jinja2中,过滤器(filter)是一些可以用来修改和过滤变量值的特殊函数,过滤器和变量用一个竖线 | &a…...
使用PDFMiner.six解析PDF数据
PDF(可移植文档格式)文件是由Adobe创建的一种灵活的文件格式,它允许文档在不同的软件、硬件和操作系统中一致地显示。每个PDF文件都包含对固定布局文档的全面描述,包括文本、字体、图形和其他必要的显示元素。pdf通常用于文档共享…...
本地svn
参考补充:https://blog.csdn.net/hhl_work/article/details/107832414 先在D:\coding_cangku下新建空文件夹,例:code1【类似gitee线上仓库】点击进入code1,右键选择TortoiseSVN,再下一级菜单下点击Create repository …...
金融支付行业技术侧重点
1. 合规问题 第三方支付系统的平稳运营,严格遵循《非银行支付机构监督管理条例》的各项条款是基础与前提,其中第十八条的规定堪称重中之重,是支付机构必须牢牢把握的关键准则。 第十八条明确指出,非银行支付机构需构建起必要且独…...
axios几种请求类型的格式
Axios 是一个基于 Promise 的 HTTP 客户端,广泛用于浏览器和 Node.js 中发送 HTTP 请求。它支持多种请求格式,包括 GET、POST、PUT、DELETE 等。也叫RESTful 目录 一、axios几种请求类型的格式 1、get请求 2、post请求 3、put请求 4、delete请求 二…...
二、IDE集成DeepSeek保姆级教学(使用篇)
各位看官老爷好,如果还没有安装DeepSeek请查阅前一篇 一、IDE集成DeepSeek保姆级教学(安装篇) 一、DeepSeek在CodeGPT中使用教学 1.1、Edit Code 编辑代码 选中代码片段 —> 右键 —> CodeGPT —> Edit Code, 输入自然语言可编辑代码,点击S…...
通过理解 sk_buff 深入掌握 Linux 内核自定义协议族的开发实现
要开发 Linux 内核中的自定义协议族(如私有传输层或网络层协议),需基于 sk_buff 的结构和操作,结合内核网络栈的扩展机制。以下是实现这一目标的分步指南: 1. 协议族开发的核心步骤 (1) 注册自定义协议族 定义协议号 在 <linux/if_ether.h> 或自定义头文件中分配唯…...
Qt 自带颜色属性
Qt 系统自带颜色如下: enum GlobalColor {color0,color1,black,white,darkGray,gray,lightGray,red,green,blue,cyan,magenta,yellow,darkRed,darkGreen,darkBlue,darkCyan,darkMagenta,darkYellow,transparent};对应颜色如下: color0: 这是自定义颜色…...
Linux的文件与目录管理
rm -rf / 列出目录内容和属性 命令:ls 格式:ls 选项 文件名 例: ls -a 打印工作路径 命令:pwd 切换工作目录 命令:cd 格式:cd 相对路径或者绝对路径 查看文件类型 命令:file 格式…...
常用的 pip 命令
pip 是 Python 的包管理工具,可用于安装、卸载、更新和管理 Python 包。以下是一些常用的 pip 命令: 1. 安装包 安装最新版本的包 pip install package_namepackage_name 是你要安装的 Python 包的名称,例如 pip install requests 可以安装…...
Vue 项目中配置代理的必要性与实现指南
Vue 项目中配置代理的必要性与实现指南 在 Vue 前端项目的开发过程中,前端与后端地址通常不同,可能引发跨域问题。为了在开发环境下顺畅地请求后端接口,常常会通过配置**代理(proxy)**来解决问题。这篇文章将详细解析…...
【QT】QLinearGradient 线性渐变类简单使用教程
目录 0.简介 1)qtDesigner中 2)实际执行 1.功能详述 3.举一反三的样式 0.简介 QLinearGradient 是 Qt 框架中的一个类,用于定义线性渐变效果(通过样式表设置)。它可以用来填充形状、背景或其他图形元素࿰…...
编程题 - 汽水瓶【JavaScript/Node.js解法】
“学如逆水行舟,不进则退。” ——《增广贤文》 目录 汽水瓶 题目:解答分析:js代码解答 -ACM模式:代码通过:题解分析:简洁思路代码: 汽水瓶 题目: 某商店规定:三个空…...
从 0 到 1:使用 Docker 部署个人博客系统
引言 在当今数字化时代,拥有一个个人博客来记录自己的学习、生活和见解是一件非常有意义的事情。然而,传统的博客部署方式往往涉及复杂的环境配置和依赖管理,容易让人望而却步。而 Docker 的出现,为我们提供了一种简单、高效的解…...
Python - Python操作Redis
安装Redis可参考 Redis-入门简介-CSDN博客 在Python中接入Redis数据库通常使用redis-py这个库 一、安装Redis 首先,需要安装redis-py库。通过pip来安装 pip install redis 二、连接Redis Redis连接操作import redisdef redis_connect():try:redisClient redi…...
linux之kylin系统nginx的安装
一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...
ubuntu搭建nfs服务centos挂载访问
在Ubuntu上设置NFS服务器 在Ubuntu上,你可以使用apt包管理器来安装NFS服务器。打开终端并运行: sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享,例如/shared: sudo mkdir /shared sud…...
关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案
问题描述:iview使用table 中type: "index",分页之后 ,索引还是从1开始,试过绑定后台返回数据的id, 这种方法可行,就是后台返回数据的每个页面id都不完全是按照从1开始的升序,因此百度了下,找到了…...
苍穹外卖--缓存菜品
1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据,减少数据库查询操作。 缓存逻辑分析: ①每个分类下的菜品保持一份缓存数据…...
12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...
人机融合智能 | “人智交互”跨学科新领域
本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...
[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.
ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #:…...
go 里面的指针
指针 在 Go 中,指针(pointer)是一个变量的内存地址,就像 C 语言那样: a : 10 p : &a // p 是一个指向 a 的指针 fmt.Println(*p) // 输出 10,通过指针解引用• &a 表示获取变量 a 的地址 p 表示…...
Android写一个捕获全局异常的工具类
项目开发和实际运行过程中难免会遇到异常发生,系统提供了一个可以捕获全局异常的工具Uncaughtexceptionhandler,它是Thread的子类(就是package java.lang;里线程的Thread)。本文将利用它将设备信息、报错信息以及错误的发生时间都…...
智能职业发展系统:AI驱动的职业规划平台技术解析
智能职业发展系统:AI驱动的职业规划平台技术解析 引言:数字时代的职业革命 在当今瞬息万变的就业市场中,传统的职业规划方法已无法满足个人和企业的需求。据统计,全球每年有超过2亿人面临职业转型困境,而企业也因此遭…...
