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…...
Spark 之 入门讲解详细版(1)
1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...
【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)
可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...
python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...
【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...
Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理
引言 Bitmap(位图)是Android应用内存占用的“头号杀手”。一张1080P(1920x1080)的图片以ARGB_8888格式加载时,内存占用高达8MB(192010804字节)。据统计,超过60%的应用OOM崩溃与Bitm…...
tree 树组件大数据卡顿问题优化
问题背景 项目中有用到树组件用来做文件目录,但是由于这个树组件的节点越来越多,导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多,导致的浏览器卡顿,这里很明显就需要用到虚拟列表的技术&…...
企业如何增强终端安全?
在数字化转型加速的今天,企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机,到工厂里的物联网设备、智能传感器,这些终端构成了企业与外部世界连接的 “神经末梢”。然而,随着远程办公的常态化和设备接入的爆炸式…...
Reasoning over Uncertain Text by Generative Large Language Models
https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...
管理学院权限管理系统开发总结
文章目录 🎓 管理学院权限管理系统开发总结 - 现代化Web应用实践之路📝 项目概述🏗️ 技术架构设计后端技术栈前端技术栈 💡 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 🗄️ 数据库设…...
基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解
JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用,结合SQLite数据库实现联系人管理功能,并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能,同时可以最小化到系统…...
