当前位置: 首页 > news >正文

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全局安装(通用&#xf…...

【大模型】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 系统自带颜色如下&#xff1a; enum GlobalColor {color0,color1,black,white,darkGray,gray,lightGray,red,green,blue,cyan,magenta,yellow,darkRed,darkGreen,darkBlue,darkCyan,darkMagenta,darkYellow,transparent};对应颜色如下&#xff1a; color0: 这是自定义颜色…...

Linux的文件与目录管理

rm -rf / 列出目录内容和属性 命令&#xff1a;ls 格式&#xff1a;ls 选项 文件名 例&#xff1a; ls -a 打印工作路径 命令&#xff1a;pwd 切换工作目录 命令&#xff1a;cd 格式&#xff1a;cd 相对路径或者绝对路径 查看文件类型 命令&#xff1a;file 格式…...

常用的 pip 命令

pip 是 Python 的包管理工具&#xff0c;可用于安装、卸载、更新和管理 Python 包。以下是一些常用的 pip 命令&#xff1a; 1. 安装包 安装最新版本的包 pip install package_namepackage_name 是你要安装的 Python 包的名称&#xff0c;例如 pip install requests 可以安装…...

Vue 项目中配置代理的必要性与实现指南

Vue 项目中配置代理的必要性与实现指南 在 Vue 前端项目的开发过程中&#xff0c;前端与后端地址通常不同&#xff0c;可能引发跨域问题。为了在开发环境下顺畅地请求后端接口&#xff0c;常常会通过配置**代理&#xff08;proxy&#xff09;**来解决问题。这篇文章将详细解析…...

【QT】QLinearGradient 线性渐变类简单使用教程

目录 0.简介 1&#xff09;qtDesigner中 2&#xff09;实际执行 1.功能详述 3.举一反三的样式 0.简介 QLinearGradient 是 Qt 框架中的一个类&#xff0c;用于定义线性渐变效果&#xff08;通过样式表设置&#xff09;。它可以用来填充形状、背景或其他图形元素&#xff0…...

编程题 - 汽水瓶【JavaScript/Node.js解法】

‌“学如逆水行舟&#xff0c;不进则退。”‌ ——《增广贤文》 目录 汽水瓶 题目&#xff1a;解答分析&#xff1a;js代码解答 -ACM模式&#xff1a;代码通过&#xff1a;题解分析&#xff1a;简洁思路代码&#xff1a; 汽水瓶 题目&#xff1a; 某商店规定&#xff1a;三个空…...

从 0 到 1:使用 Docker 部署个人博客系统

引言 在当今数字化时代&#xff0c;拥有一个个人博客来记录自己的学习、生活和见解是一件非常有意义的事情。然而&#xff0c;传统的博客部署方式往往涉及复杂的环境配置和依赖管理&#xff0c;容易让人望而却步。而 Docker 的出现&#xff0c;为我们提供了一种简单、高效的解…...

Python - Python操作Redis

安装Redis可参考 Redis-入门简介-CSDN博客 在Python中接入Redis数据库通常使用redis-py这个库 一、安装Redis 首先&#xff0c;需要安装redis-py库。通过pip来安装 pip install redis 二、连接Redis Redis连接操作import redisdef redis_connect():try:redisClient redi…...

Vue记事本应用实现教程

文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展&#xff1a;显示创建时间8. 功能扩展&#xff1a;记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...

K8S认证|CKS题库+答案| 11. AppArmor

目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作&#xff1a; 1&#xff09;、切换集群 2&#xff09;、切换节点 3&#xff09;、切换到 apparmor 的目录 4&#xff09;、执行 apparmor 策略模块 5&#xff09;、修改 pod 文件 6&#xff09;、…...

Unity3D中Gfx.WaitForPresent优化方案

前言 在Unity中&#xff0c;Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染&#xff08;即CPU被阻塞&#xff09;&#xff0c;这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案&#xff1a; 对惹&#xff0c;这里有一个游戏开发交流小组&…...

WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成

厌倦手动写WordPress文章&#xff1f;AI自动生成&#xff0c;效率提升10倍&#xff01; 支持多语言、自动配图、定时发布&#xff0c;让内容创作更轻松&#xff01; AI内容生成 → 不想每天写文章&#xff1f;AI一键生成高质量内容&#xff01;多语言支持 → 跨境电商必备&am…...

如何理解 IP 数据报中的 TTL?

目录 前言理解 前言 面试灵魂一问&#xff1a;说说对 IP 数据报中 TTL 的理解&#xff1f;我们都知道&#xff0c;IP 数据报由首部和数据两部分组成&#xff0c;首部又分为两部分&#xff1a;固定部分和可变部分&#xff0c;共占 20 字节&#xff0c;而即将讨论的 TTL 就位于首…...

【Java学习笔记】BigInteger 和 BigDecimal 类

BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点&#xff1a;传参类型必须是类对象 一、BigInteger 1. 作用&#xff1a;适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...

省略号和可变参数模板

本文主要介绍如何展开可变参数的参数包 1.C语言的va_list展开可变参数 #include <iostream> #include <cstdarg>void printNumbers(int count, ...) {// 声明va_list类型的变量va_list args;// 使用va_start将可变参数写入变量argsva_start(args, count);for (in…...

Mysql故障排插与环境优化

前置知识点 最上层是一些客户端和连接服务&#xff0c;包含本 sock 通信和大多数jiyukehuduan/服务端工具实现的TCP/IP通信。主要完成一些简介处理、授权认证、及相关的安全方案等。在该层上引入了线程池的概念&#xff0c;为通过安全认证接入的客户端提供线程。同样在该层上可…...

【Java】Ajax 技术详解

文章目录 1. Filter 过滤器1.1 Filter 概述1.2 Filter 快速入门开发步骤:1.3 Filter 执行流程1.4 Filter 拦截路径配置1.5 过滤器链2. Listener 监听器2.1 Listener 概述2.2 ServletContextListener3. Ajax 技术3.1 Ajax 概述3.2 Ajax 快速入门服务端实现:客户端实现:4. Axi…...

深入理解 C++ 左值右值、std::move 与函数重载中的参数传递

在 C 编程中&#xff0c;左值和右值的概念以及std::move的使用&#xff0c;常常让开发者感到困惑。特别是在函数重载场景下&#xff0c;如何合理利用这些特性来优化代码性能、确保语义正确&#xff0c;更是一个值得深入探讨的话题。 在开始之前&#xff0c;先提出几个问题&…...