xilinx 7系列fpga上电配置

一、前言

Xilinx FPGA通过加载比特流到内部存储单元来进行配置。

Xilinx FPGA存在两种数据配置路径,一种是满足最小引脚需求的串行路径,一种是可用8位、16位或32位来连接到行业的高性能通用接口,如处理器,8位或者16位并行的闪存。与处理器和处理器外围设备一样, FPGA可以在系统中按需无限次重新编程。

由于Xilinx FPGA 配置数据存储在 CMOS 配置锁存器 (CCL) 中,因此必须在断电后重新配置。比特流每次都通过特殊的配置引脚加载到器件中。常用的配置模式可以分为:

通过在输入引脚M[2:0]专用模式上设置适当的级别来选择特定的配置模式。M2、M1和M0模式引脚应通过上拉或下拉电阻(≤1kΩ),或直接连接到地或VCCO_0l来设置在恒定的DC电压电平,并且引脚不应在配置期间和配置之后变化。

此外,如果M[2:0]为101,则该FPGA只支持JTAG进行配置。处于其余配置模式下时,依旧可以使用JTAG模式进行调试,并且优先级最高。

主和从的概念于配置时钟(configuration clock,CCLK)的方向有关:

  • 在主配置模式下,7系列设备通过内部振荡器驱动CCLK。要选择所需的频率,使用比特流-g ConfigRate选项,具体可以参考UG628(ISE命令行工具用户指南)的BitGen部分和UG908 (Vivado编程和调试用户指南)的“设备配置比特流设置”部分。配置后,除非选择了持久选项或使用了SEU检测,否则CCLK将关闭。CCLK引脚为三态,上拉较弱。
  • 在从配置模式中,CCLK是一个输入。

FPGA 自加载配置模式,通常称为主模式,可用于串行或并行数据路径。主模式利用各种类型的非易失性存储器(如Flash、EEPROM等)来存储 FPGA 的配置信息。 FPGA 在驱动配置逻辑的内部振荡器中生成配置时钟信号,并在 CCLK 输出引脚上可见。

外部控制加载 FPGA 配置模式,通常称为从模式,也可用于串行或并行数据路径。在从模式下,处理器、微控制器、DSP 处理器或测试仪等外部“智能代理”将配置映像下载到 FPGA 中,从配置模式的优势在于 FPGA 比特流几乎可以驻留在整个系统中的任何位置。从串行模式非常简单,仅由时钟和串行数据输入组成。JTAG模式也是一种简单的串行配置模式,流行于原型设计,并高度用于板测试。Slave SelectMAP模式是一个简单的8位、16位或32位宽处理器外围接口,包括芯片选择输入和读/写控制输入。

二、FPGA 配置

一般必然存在的JTAG调试模式,另外使用较多的是主SPI模式和从串行配置模式,其余并行配置模式由于消耗引脚较多,一般不会使用,与这几种串行模式的区别仅在于数据引脚的区别。

2.1 配置信号

每个配置模式都有一组对应的接口引脚,这些引脚跨越7系列FPGA上的一个或多个I/O bank。bank 0包含专用配置引脚,并且始终是每个配置接口的一部分。bank 14 和 bank15包含涉及特定配置模式的多功能引脚。7系列FPGA数据表规定了在3.3V、2.5V、1.8V或1.5V下工作的bank中配置引脚的开关特性。

所有JTAG和专用配置引脚都位于一个单独的专用bank中,该bank具有专用电压电源(VCCO_0)。多功能配置针脚位于bank 14和15中。

CFGBVS(Configuration Banks Voltage Select)

CFGBVS决定专用配置bank0、bank14和bank15中多功能配置引脚的I/O电压操作范围。CFGBVS总是控制7系列FPGA的bank0电压,仅在配置期间控制bank14和bank15的电压。如果为bank0的VCCO_0电源提供2.5V或3.3V,则CFGBVS引脚必须连接为高电平(比如连接到VCCO_ 0)。仅当bank0的VCCO_0小于或等于1.8V,将CFGBVS连接到低电平(比如连接到GND)。在配置过程中,bank14和bank 15的电压应与施加到bank0的VCCO电平相匹配。

PROGRAM_B(program bar)

PROGRAM_B拉低(下降沿)时复位配置逻辑,PROGRAM_B低脉冲(下降沿)可以清除FPGA内部的所有配置信息,并初始化新的配置序列。注意在上电时把PROGRAM_B 保持为低电平不会使 FPGA 配置保持复位状态,延迟配置的时间需要使用INIT_B信号配合完成。PROGRAM_B 引脚外部需要通过小于等于4.7KΩ的电阻上拉至VCCO_0来确保稳定的高电平输入,推荐连接到GND来使能配置复位。

INIT_B(initialization bar)

低电平有效。当 FPGA 处于配置复位状态、FPGA 正在初始化(清除)其配置存储器或 FPGA 检测到配置错误时,FPGA 将该引脚驱动为低电平。

完成 FPGA 初始化过程后,INIT_B 被释放到高阻态,此时外部电阻器应将 INIT_B 拉高(将 INIT_B 连接到一个 ≤ 4.7 kΩ 的上拉电阻到VCCO_0)。当初始化过程完成后在 INIT_B 输入检测到高电平时,FPGA 继续执行由 M[2:0] 引脚设置指示的配置序列的其余部分。

Done

该信号高电平表示FPGA配置序列完成,默认情况下,该引脚为开漏输出,内部有一个大约10KΩ的上拉电阻,外部只需要通过一个330Ω的电阻上拉即可。

2.2 配置流程

配置流程包含三个大步骤(建立,加载程序,初始化启动),分为8个小步骤

对于所有配置模式,7系列的基本配置流程都是相同的,主要可以分为三个大块:设备启动,数据流加载,启动序列。

后面内容来源于:

谁说配置难?这篇文章让你轻松掌握xilinx 7系列FPGA配置技巧 - 知乎 (zhihu.com)

1.设备上电

配置流程的第一步自然是设备上电,这里也就解释了为何固化程序后需要下电再上电才能生效。配置涉及到的电源如下:

VCCO_0以及VCCO_14、VCCO_15在前文已经提及,其他的电源需要参照对应的数据手册推荐值进行配置,例如K7对应手册【DS182】:

FPGA在设备启动阶段(流程1-3)的时序关系:

TPOR :Power-on Reset (POR) ;TICCK :CCLK Output Delay

FPGA上电启动后电压达到VCCO后在10~50ms后INIT_B信号拉高,初始化完成,FPGA开始加载配置工作。

上电后可以通过拉低将 PROGRAM_B 引脚切换为低电平来重新配置器件:

INIT_B 在初始化期间被内部驱动为低电平,然后在上电情况下(第一次上电配置)在TPOR(图 5‑4)之后释放,在其他情况下(触发退回或者重配置等)在TPL之后释放。如果 INIT_B 引脚在外部保持低电平,则器件在初始化过程中的这一点等待,直到该引脚被释放,并且需要满足TPOR或TPL延迟。

FPGA上电第一次加载与PROGRAM_B没有关系,只要达到延迟时间,FPGA就会初始化完成,init_b信号拉高,直接进入配置数据过程。只有第二次重新配置才使用PROGRAM_B。

图中的时间参数可以在对应的FPGA数据手册中查看,如K7系列对应【DS182】:

2.清除配置寄存器

在器件上电后、PROGRAM_B 引脚脉冲低电平后、使用 JTAG JPROGRAM 指令或 IPROG 命令后或在回退重试配置序列期间,配置存储器会顺序清除。在此期间:

Block RAM 被重置为其初始状态,并且触发器通过全局设置重置 (GSR) 的断言重新初始化。除少数配置输出引脚外,I/O 通过使用全局三态 (GTS) 置于 High‑Z 状态,如果 PUDC_B 为低电平,则内部上拉。

PUDC_B用于设置配置期间的上拉,低电平有效,电路上通过直连或者 ≤ 1kΩ 连接到VCCO_14或GND,禁止悬空。

清除配置寄存器发生在INIT_B为低的这个阶段。通常这个时间为3ms。

3ms的时间来自于复旦微的手册中:JFM7K325T清除配置寄存器时间为20ms,而对标产品为3ms。在从模式中推荐等待INIT_B拉高再进行配置。

3.采样模式引脚

当 INIT_B 引脚转换为高电平时,器件对模式引脚 M[2:0] 进行采样并开始驱动 CCLK(如果处于主模式)。此时,器件开始在配置时钟的上升沿对配置数据输入引脚进行采样。

对于 BPI 和 SelectMAP 模式,总线宽度最初为 x8,可以在状态寄存器查看。在总线宽度检测序列之后,状态寄存器被更新。从串行、主串行、SPI 和 JTAG 模式忽略总线宽度检测模式。

只有在通过电源循环或PROGRAM_B置位进行重新配置时,才会再次对模式引脚进行采样。

4.同步

FPGA正常数据加载前,需要做一个FPGA与配置方(如FLASH)之间的同步检查。方法是将一个特殊的 32 位同步字 (0xAA995566) 发送到FPGA。同步字会提醒FPGA即将到来的配置数据并将配置数据与内部配置逻辑对齐。

除“总线宽度自动检测”序列外,同步之前配置输入引脚上的任何数据都将被忽略。

Xilinx在生成的.bit文件中已经自动加入了这个同步字。可以进行查看:

表5-19说明了bit流的定义:

5. 检测设备ID

设备同步后,必须通过设备 ID 检查才能加载配置数据帧。这可以防止配置具有针对不同设备格式化的比特流。如果在配置期间发生 ID 错误,设备会尝试执行回退重新配置。

设备 ID 检查内置于比特流中,器件 ID 检查是通过配置逻辑的比特流中的命令执行的,而不是通过 JTAG IDCODE 寄存器。ID可以在【UG470】的表1-1中查找到,例如7K325T对应3651093,可以在.bit文件中查找到:

6.加载配置数据

在准备工作完成后,FPGA开始加载配置数据。在这个过程中,FPGA的所有可配置I/O根据HSWAPEN引脚的设置变为弱上拉(HSWAPE=1)或者高阻态(HSWAPE=0)。这个阶段的I/O引脚还没有变为用户需要的状态,也最有可能影响到其他外围电路的上电时序和运行。

设计硬件电路时要特别注意并采取必要措施,如加入上下拉电阻或改变器件加电顺序来尽量避免或减少FPGA配置时对电路其他器件的影响。

7.CRC校验

加载配置数据帧时,器件会根据配置数据包计算循环冗余校验 (CRC) 值。加载配置数据帧后,配置比特流可以向设备发出校验 CRC指令,然后是预期的 CRC 值。如果设备计算的 CRC 值与比特流中的预期 CRC 值不匹配,则设备将 INIT_B 拉低并中止配置,此时用户必须把PROG-B引脚拉低,才能进行重新配置。

默认情况下,CRC 校验包含在配置比特流中,如果禁用 CRC 检查,则存在加载错误配置数据帧的风险,从而导致错误的设计行 为或损坏器件。

8.启动序列

加载配置帧后,FPGA不会马上执行用户的逻辑,比特流指示设备进入启动序列。启动顺序由 8 阶段(阶段 0‑7)顺序状态机控制。用户可以选择每个启动事件的特定阶段(见【UG628】):

可以强制启动序列等待 MMCM 锁定或等待 DCI 与适当的选项匹配。这些选项通常设置为在 MMCM 锁定和/或 DCI 匹配之前防止 DONE、GTS 和 GWE 被断言(防止设备操作)。

默认情况下,启动顺序:

与启动相关的信号:

信号名称描述
DONE表示配置完成。可以在外部保持低电平以与其他 FPGA 同步启动。
Release_DONE指示设备是否已停止将 DONE 引脚驱动为低电平。如果引脚在外部保持为低电平,Release_DONE 可能与 DONE 引脚上的实际值不同。
GWE全局写使能 (GWE)。置位后,GWE 启用 CLB 和 IOB 触发器以及FPGA 上的其他同步元件。
GTS全局三态 (GTS)。置位后,GTS 禁用所有 I/O 驱动程序,除了少数配置管脚。
EOS启动结束 (EOS)。 EOS 表示配置和启动过程的绝对结束。
DCI_MATCH指示所有数控阻抗 (DCI) 控制器何时将其内部电阻器与外部参考电阻器匹配。
MMCM_LOCK指示所有时钟管理块何时就绪。该信号默认置位。如果在MMCM 上使用了 LOCK_WAIT 选项并且在生成比特流时使用了LockCycle 选项,则它处于活动状态。

DONE信号可通过DONE 引脚或7 系列FPGA状态寄存器获取,其余只能通过7 系列FPGA状态寄存器获取。对应的信号时序如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/524514.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

测试开发:从0到1学习如何测试API网关

日常工作中,难免会遇到临危受命的情况,虽然没有这么夸张,但是也可能会接到一个陌生的任务,也许只是对这个概念有所耳闻。也许这个时候会感到一丝的焦虑,生怕没法完成领导交给的测试任务。其实也没有必要那么紧张&#…

【微服务】面试题(一)

最近进行了一些面试,这几个问题分享给大家 一、分别介绍一下微服务、分布式以及两者的区别 微服务(Microservices)和分布式系统(Distributed Systems)是两种不同的软件架构风格,虽然它们之间有些重叠&#…

南京观海微电子---Vitis HLS设计流程(实例演示)——Vitis HLS教程

1. 前言 课时2我们介绍了Vitis HLS的设计流程,如下图所示: 算法或软件的设计和仿真都基于C/C,通过HLS平台导出打包好的IP RTL代码,最后将该打包的IP加入到主工程使用。 本课时,我们通过一个具体的实例,演示…

Kibana管理ES生命周期

希望通过Kibana界面管理ES索引的生命周期 版本:7.15.2 创建索引模板 创建索引模板方便匹配索引,对匹配到的一批索引采用同一套生命周期管理策略,例如开发环境的所有索引以dev-开头,可以创建样式为dev-*的索引模板以匹配开发环境…

【服务器uwsgi + flask + nginx的搭建】

目录 服务器uwsgi flask nginx的搭建1. 安装必要的软件2. 启动nginx服务3. 测试Nginx4. 配置uwsgi和flask5. 配置nginx 服务器uwsgi flask nginx的搭建 1. 安装必要的软件 安装Python、uWSGI、Flask 和 Nginx。 # Ubuntu 安装命令 sudo apt-get update sudo apt-get ins…

海外媒体宣发,穿透与世界的交流 - “保姆级”教程 - 大舍传媒

1. 引言 在当今高度信息化的世界,境外媒体宣发已经成为企业、品牌和政府机构推广自身形象、扩大影响力的重要手段。如何在国际舞台上有效传播信息,提高国际知名度,成为了许多组织面临的重要课题。大舍传媒凭借多年的境外媒体宣发经验&#x…

第六篇: 3.5 性能效果 (Performance)- IAB/MRC及《增强现实广告效果测量指南1.0》

​​​​​​​ 翻译计划 第一篇概述—IAB与MRC及《增强现实广告效果测量指南》之目录、适用范围及术语第二篇 广告效果测量定义和其他矩阵之- 3.1 广告印象(AD Impression)第三篇 广告效果测量定义和其他矩阵之- 3.2 可见性 (Viewability…

Goingpub国自然基金-免费查询

可进行年份、学部、项目类别等检索,支持生成主题词汇总分析报告。 最最最关键,免费,只需要你注册登录一下,防止被爬虫侵扰。 界面简单,实用,支持模糊搜索,包含最新2023年数据,共56…

34-4 CSRF漏洞 - CSRF跨站点请求伪造

一、漏洞定义 CSRF(跨站请求伪造)是一种客户端攻击,又称为“一键式攻击”。该漏洞利用了Web应用程序与受害用户之间的信任关系,通过滥用同源策略,使受害者在不知情的情况下代表攻击者执行操作。与XSS攻击不同,XSS利用用户对特定网站的信任,而CSRF则利用了网站对用户网页…

yolov9直接调用zed相机实现三维测距(python)

yolov9直接调用zed相机实现三维测距(python) 1. 相关配置2. 相关代码2.1 相机设置2.2 测距模块2.2 实验结果 相关链接 此项目直接调用zed相机实现三维测距,无需标定,相关内容如下: 1. yolov4直接调用zed相机实现三维测…

iPhone卡在苹果标志如何修复?

由于多种原因,您的 iPhone 可能会陷入白色 Apple 标志。第一次出现的时候你可能并没有多在意,以为只是这次时间比较长,直到发现任何操作都无法恢复到正常状态,这时你就开始感到焦虑了。这时,你可能会认为在尝试了很多你…

基于ARM内核的智能手环(day6)

模拟量传感器 模拟量传感器可以提供连续的输出信号,通过测量和转换物理量的变化来获取相关信息。其中包括: 光照传感器 光照传感器常用于测量周围环境的光照强度。其特点包括: 使用光敏电阻作为传感器元件。光敏电阻的阻值随着光照强度的…

3D数据发布工具HOOPS Publish如何将3D模型转换成PDF格式?

在现代科技发展的推动下,3D技术在各个行业中扮演着越来越重要的角色。从工程设计到医疗保健,从建筑规划到教育培训,3D模型都成为了理解、沟通和展示复杂数据的主要工具。而将这些3D模型转换成PDF格式,能够使其更易于共享、存档和展…

让智能体像Excel易用还要多久?

2023年,国内AI产业迎来狂飙时代。大模型热潮推动AI智能体(AI Agent)发展,继ChatGPT成功后,OpenAI目标直指AI Agents。上半年,行业竞相扩大模型规模、提升参数和计算能力,抢占AI浪潮先机。然而&a…

单身女孩的心事26岁的我在寻找另一半微信脱单群

在繁华的都市中,有一个名叫小雅的26岁女孩,她每天穿梭在拥挤的人群中,过着看似平凡却充满期待的生活。小雅是一个性格开朗、独立自主的女孩,她有着稳定的工作和不错的收入,朋友们都羡慕她的生活。然而,小雅…

IP-GUARD内置用户系统同步飞书组织架构使用说明

一、功能简介 实现将飞书的通讯录组织架构同步到内置用户系统。 二、功能配置 2.1 飞书创建自建应用 在浏览器上打开飞书开放平台 https://open.feishu.cn ,登录管理员账号后点击开发 者后台 在开发者后台点击创建企业自建应用,填写自建应用程序名称以及描述,设置图标,点…

nestjs 全栈进阶--module

视频教程 10_模块Module1_哔哩哔哩_bilibili 1. 模块Module 在 Nest.js 中,Module 是框架的核心概念之一,用于组织和管理应用程序的不同部分,包括服务、控制器、中间件以及其他模块的导入。每个 Nest.js 应用程序至少有一个根模块&#xf…

【QT+QGIS跨平台编译】076:【libdxfrw跨平台编译】(一套代码、一套框架,跨平台编译)

点击查看专栏目录 文章目录 一、libdxfrw介绍二、QGIS下载三、文件分析四、pro文件五、编译实践一、libdxfrw介绍 libdxfrw是一个用于读取和写入DXF(Drawing Exchange Format)文件的开源C++库。DXF是一种由AutoCAD开发的文件格式,用于存储CAD(计算机辅助设计)图形数据,它…

【代码随想录】哈希表

文章目录 242.有效的字母异位词349. 两个数组的交集202. 快乐数1. 两数之和454. 四数相加 II383. 赎金信15. 三数之和18. 四数之和 242.有效的字母异位词 class Solution {public boolean isAnagram(String s, String t) {if(snull || tnull || s.length()!t.length()){return …

基于计算机视觉的交通信号违章检测系统(闯红灯违章检测)

Introduce: 该系统可以实时检测交通信号灯违规: 城市中越来越多的汽车会导致大量交通拥堵,这意味着如今在孟加拉国和世界各地,交通违规行为变得更加严重。这造成了严重的财产破坏和更多可能危及人民生命的事故。为了解决令人震惊的问题并防止这种深不可…