FPGA知识汇集-了解FPGA比特流结构

文章详细介绍了FPGA的比特流概念,包括填充、同步字、解同步字、命令和存储器帧等组成部分,特别是XilinxFPGA的比特流结构。BITGEN工具用于生成比特流,而Virtex-6FPGA的配置用户指南提供了相关文档。文章还提及了比特流在FPGA配置过程中的作用和重要性。
摘要由CSDN通过智能技术生成

       比特流是一个常用词汇,用于描述包含FPGA完整内部配置状态的文件,包括布线、逻辑资源和IO设置。大多数现代FPGA都是基于SRAM的,包括Xilinx Spartan 和Virtex 系列。在FPGA上电或随后的FPGA重新配置期间,比特流从外部诸如闪存这样的非易失性存储器中读取,通过FPGA配置控制器的处理,加载到内部的配置SRAM中。

       在有些情况下,设计者需要很好地了解FPGA比特流的内部结构。例如,使用FPGA物理实现工具的参数不能访问自定义的低级比特流、实现复杂的配置回溯方案、通过内部配置端口(ICAP)产生用于FPGA重新配置的短命令序列、读配置状态等。.

比特流格式

Xilinx FPGA的比特流结构如图1所示。

比特流包括以下组成部分:填充、同步字、用于访问配置寄存器的命令、存储器帧和解同步字。

填充

填充的数据是全0或全1序列,被FPGA配置控制器忽略。填充数据用于非易失性存储器中分离比特流。一般使用全 1填充较为方便,因为执行擦除后闪存的状态也是全1。

同步字

同步字是一个特殊值(0xAA995566), 通知FPGA配置控制器处理后续的比特流数据。

解同步字

解同步字通知FPGA配置控制器比特流的末端位置。解同步字之后,所有的比特流数据被忽略,直到遇到下一个同步字。

命令

 命令用于读和写FPGA配置控制器寄存器。每个比特流中出现的一些命令, 有的是ID-CODE,用于标识比特流属于哪个FPGA器件。帧地址寄存器(FAR)、帧数据寄存器(FDRI)和无操作( NOOP)将被忽略。

存储器帧

存储器帧是配置Xilinx FPGA的比特流基本单元。帧的大小与具体的PPGA系列有关,系列不同,帧的大小也不同。Virtex-6 器件的帧有2592位。每个Virtex-6 器件具有的帧数不同,从最小7491(对于LX7ST)到最大5ss 548(对于LX550T)。帧用于多个逻辑片、I0、BRAM及其他FPGA的配置。每帧都有一个地址,对应于FPGA配置空间的位置。比特流使用FAR和FDRI命令序列来配置帧。

Virtex-6 FPGA配置用户指南包含足够的关于比特流和访向FPGA配置控制器寄存器命令的文档。然而,关于存储器帧的详细文档不仅对于Xilinx FPGA无法获得,而且对于其他供应商的FPGA也是如此。

Xilinx的BITGEN实用程序

BITGEN是Xilinx的实用程序,利用本地电路描述( NCD)格式的布局布线后文件,创建用于FPGA配置的比特流。BITGEN 是一个高度可配置的工具,具有100多个命令行选项(在命令行工具用户指南2中描述)。有些选项用于确定比特流输出格式、启用压缩处理减少比特流大小、提高FPGA配置速度、使用CRC来确保数据完整性、对比特流加密等。

示例

以下示例用于根据差异部分配置的短比特流,通过脚本语言描述比特流命令。脚本采用Perl编写,在配套的网站上提供。

仔细观察比特流,能区分出同步和解同步命令、属于Virtex.6 LX240T PPGA的IDCODE,以及两个405个和243个字的帧。

参考文献 

[1]Virtex-6 FPGA Configuration User Guide UG360

http://www.xilinx.com/support/documentation/user_ guides/ug360.pdf

[2] Xilinx Command Line Tools User Guide

http://www.xilinx.com/support/documentation/sw_ manuals/xilinx12_2/devref.pdf

更多有趣的话题请看链接:

FPGA知识汇集-FPGA项目开发包含那些任务?

FPGA知识汇集--FPGA结构(1)

FPGA的应用

FPGA知识汇集-在命令行模式下使用Xilinx工具

FPGA知识汇集-ISE的这些有用的工具您知道吗?

FPGA知识汇集-FPGA设计开发需要熟悉哪些EDA工具呢?

FPGA知识汇集-值得收藏的FPGA代码命名规范?

FPGA 知识汇集--Linux下ISE的环境变量设置

FPGA知识汇集-值得收藏的Verilog代码风格1

FPGA知识汇集-值得收藏的Verilog代码风格2

FPGA知识汇集-编写可综合代码(RTL)需要注意的规则总结

FPGA知识汇集-Verilog和VHDL的混合使用

FPGA知识汇集-关于Xilinx 工具报告

FPGA知识汇集-例化与推译

硬件仿真加速器与原型验证平台

  FPGA知识汇集-ASIC向FPGA的移植

 FPGA知识汇集-时钟系统的移植

  FPGA知识汇集-FPGA的低功耗设计方法总结

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当将ASIC设计移植到FPGA芯片时,需要进行一些重要的工作和优化。首先,ASIC设计的不同部分需要分别映射到不同的FPGA芯片中,通常以功能模块为划分边界。这个划分和优化的过程相对复杂,需要考虑系统成本、整体性能、资源容量、FPGA芯片之间的互联以及划分的复杂度等因素。 移植ASIC设计到FPGA芯片中需要进行大量的重编码和优化工作。尤其是时钟树结构,需要正确地分配到FPGA芯片的各种时钟资源上。这是一个非常具有挑战性的任务。 尽管FPGA工具和设计流程与ASIC相似,但是由于一些根本性的差异,工程师仍然需要解决一些问题。ASIC综合工具通常对Verilog语法的支持更宽松,而且ASIC和FPGA综合工具在引导语句和工具选项方面也有所不同。此外,无论是资源占用还是布线密度,ASIC工具需要处理的工作比FPGA复杂得多。在某些复杂情况下,FPGA工具甚至可能无法成功布局和布线。因此,在某些情况下,可能需要修改RTL源代码,甚至重新规划多芯片划分方案。 总结起来,将ASIC设计移植到FPGA芯片中需要进行划分和优化工作,并需解决RTL源代码的重编码和时钟树结构的挑战。此外,需要注意ASIC和FPGA综合工具的差异,并可能需修改RTL源代码和重新规划多芯片划分方案。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [FPGA知识汇集-ASIC向FPGA的移植](https://blog.csdn.net/mochenbaobei/article/details/128677191)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值