Virtex-II 系列FPGA 的配置数据处理流程

Virtex-II 系列FPGA 的配置数据处理流程(包括初始化配置和刷新技术)大体上可以分为三个阶段,如下图所示。

阶段一让内部配置逻辑开始准备加载配置数据。

对于初始化配置而言,在此步骤中,FPGA 首先清空内部逻辑,等待接收同步字(0xAA995566)进行系统同步。而对于刷新(Scrubbing)而言,无需清空内部逻辑,而是一直等待进行系统同步。需不需要清空内部逻辑是初始化配置和刷新的一个重要的区别点。复位完CRC 寄存器后,开始设置决定配置属性的相关寄存器,比如帧长寄存器(FLR)、配置选项寄存器(COR)、控制寄存器(CTL)。

阶段二是对FPGA 内部逻辑资源的配置。

对于初始化配置而言,包含内部的三类逻辑资源,设置三类资源的起始帧地址(FAR)后,通过写指令,将后续的配置帧加载到帧数据输入寄存器(FDRI)中。当最后一帧无效帧之前的所有帧数据配置完后,CRC 校验指令就会被写入指令寄存器(CMD)中。在LFRM 指令写入CMD 寄存器后,FPGA 的三类逻辑资源就完成了其初始化配置。与初始化配置不同的是,刷新过程在配置完第一类逻辑资源后,跳过第二类逻辑资源(即所有的BRAM 列),指定第三类资源的起始帧地址开始对其进行重配置。

阶段三是进入启动序列以及数据通道的关闭。

在所有配置帧数据加载完成之后,FPGA 通过将START 指令写入CMD 寄存器中进入启动序列状态。设置完控制寄存器(CTL)和成功完成CRC 校验后,进行去同步操作,关闭数据通道,忽

略数据通道上的所有数据。在完成启动序列后,FPGA 就开始进入工作状态。

下表以Xlinx XC2V3000 FPGA 为例,说明用于初始化配置的数据处理流程。其中,配置数据均以32bit 字为基本单位。

步骤1~7 属于初始化配置的第一阶段,包括数据通道的打开、配置属性的设置,为后续的数据配置做准备。

步骤8~12 属于初始化配置的第二阶段,完成对FPGA 三类资源的初始化配置,对于Virtex-II 系列的FPGA 而言,三类资源的初始化配置顺序为:类一资源(GCLK列、IOB 列、IOI 列和CLB 列)到类二资源(BRAM 列)再到类三资源(BRAMInterconnect 列)。而对于其他系列FPGA,比如Virtex-4 系列,则以类一资源、类三资源、类二资源为顺序进行进行初始化配置。

步骤13~16 也是属于初始化配置的第二阶段, 在默认的情况下( -gFreezeDCI:Yes),全比特流文件中会有此步骤,主要是完成I/O 口的阻抗匹配。用户也可以通过指令(-g FreezeDCI:No)关闭此功能,该步骤就不会出现在全比特流文件中。

步骤17~22 属于初始化配置的第三阶段,主要完成进入启动序列、显性CRC校验和数据通道的关闭,从而启动系统功能。在步骤22 中,由于FPGA 结束配置后进入正常的工作状态需要经历一个启动序列的过程,而启动序列是通过一个内部状态机在8 个周期内完成的,如下图所示。所以,在配置完成后,需要继续送8 个配置时钟,以完成该启动序列。

在启动过程中,内部状态机主要实现:

1、拉低全局三态信号(Global 3-state,GTS),激活I/O;

2、拉高全局写使能信号(Global Write Enable,GWE),激活RAM和触发器;

3、释放DONE 信号;

4、在最后一个周期,拉高FPGA 的内部启动结束信号(End Of Startup,EOS),表示启动过程结束,FPGA 可以进入工作状态。



我给小白们准备了一份礼物,下面是我精心整理的n多verilog代码。帮助小白们由浅至深的"模仿"。在模仿的过程中能够进一步的巩固之前了解的语法知识。

这些Verilog例程基本涵盖了以后可能遇到的所有用法,参考这些代码,可以做出你想要的任何设计。
当你想要用Verilog编写一段代码实现某个功能时,如果你能够想到参考哪段代码能够实现你的设计,那么恭喜你,你已经入门了!!!

所有示例代码,点击链接获取。

01-锁存器、触发器、寄存器、移位寄存器等

【免费】VerilogHDL示例代码之01-锁存器、触发器、寄存器、移位寄存器等资源-CSDN文库

02-逻辑门、三态门、mux等

【免费】VerilogHDL示例代码之02-逻辑门、三态门、mux等资源-CSDN文库

03-各种计数器

【免费】VerilogHDL示例代码之03-各种计数器资源-CSDN文库

04-各类加法器

【免费】VerilogHDL示例代码之04-各类加法器资源-CSDN文库

05-乘法器

【免费】VerilogHDL示例代码之05-乘法器资源-CSDN文库

06-异步复位同步释放

【免费】VerilogHDL示例代码之06-异步复位同步释放资源-CSDN文库

07-分频

【免费】VerilogHDL示例代码之07-分频资源-CSDN文库

08-语法语句

【免费】VerilogHDL示例代码之08-语法语句资源-CSDN文库

09-串并转换

【免费】VerilogHDL示例代码之09-串并转换资源-CSDN文库

10-状态机设计

【免费】VerilogHDL示例代码之10-状态机设计资源-CSDN文库

11-编解码应用

【免费】VerilogHDL示例代码之11-编解码应用资源-CSDN文库

12-仿真语法举例

【免费】VerilogHDL示例代码之12-仿真语法举例资源-CSDN文库

13-进阶设计

【免费】VerilogHDL示例代码之13-进阶设计资源-CSDN文库


我将Verilog的语法 进行了总结,写了13篇文章,让小白 "快速见识猪如何跑",每一篇讲解一类语法,结合正确的示例代码和错误的示例代码,有的章节对个别语法进行了归纳总结,帮助初学者加深理解。详情点击

小白如何快速入门Verilog?-CSDN博客

Verilog语法之〇:Verilog HDL简介/Verilog语法介绍-CSDN博客

Verilog语法之一:简单的Verilog HDL模块-CSDN博客

Verilog语法之二:常量-CSDN博客

Verilog语法之三:变量-CSDN博客

Verilog语法之四:运算符-CSDN博客

。。。。。。

更多课程,敬请期待

相关推荐
尤老师FPGA10 小时前
HDMI数据的接收发送实验(十二)
fpga开发
坏孩子的诺亚方舟14 小时前
FPGA神经网络数学基础0
人工智能·神经网络·线性代数·fpga开发
熠速14 小时前
PolarBox高性能实时仿真系统
arm开发·fpga开发·嵌入式实时数据库·硬件在环半实物仿真
南檐巷上学15 小时前
基于Zynq-7020的带有正弦波发生器的8051软核设计
单片机·嵌入式硬件·fpga开发·fpga
思尔芯S2C15 小时前
FPGA原型验证中的内存模型应用:基于DDR5的Linux系统启动与测试
fpga开发·内存模型·ddr4·ddr5·memory model·hbm3·prototyping
hai3152475431 天前
RISC-V CVA6 AXI适配器+DMA桥蜂鸟E203处理器的总线接口单元(BIU)仲裁器
驱动开发·fpga开发·硬件架构·硬件工程·精益工程
高速上的乌龟1 天前
Lattice LFCPNX-100 HSB+Fpga开发详解:2.3 Hololink 顶层模块深度全解析
linux·fpga开发
ALINX技术博客1 天前
【FPGA 开发教程】基于 ALINX FPGA 开发板实现 USB3.2 高速通信(Z7-P+FL2010)
fpga开发·fpga·fmc子卡·usb3.2通信
Ricky05531 天前
搭载实时 FPGA 处理系统的航天器上用于海上监视的超分辨率YOLO目标检测技术(意大利2026年研究)
yolo·目标检测·fpga开发
kaizq1 天前
在线设计模仿平台StepFPGA应用实践
fpga开发·verilog编程·在线设计仿真·小脚丫stepfpga·图形化设计·risc-v_soc·ima-copilot-ds