了解FPGA比特流结构

比特流是一个常用词汇,用于描述包含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个字的帧。


2018年浩泽集团千商峰会召开 今年创下单场次与会人数新高
tda2003和tda2030区别_两者能不能代换?
健身房智能镜子成为了一种发展趋势,它的特色是什么
360儿童七款新品齐发 “少年新装备”安全更兼关怀
万兴PDF密码如何查看列出的权限
了解FPGA比特流结构
IC芯片的晶圆级射频(RF)测试
实战篇:IO设备
助力高校射频教学,RIGOL推出经济型频谱分析仪
【Renesas RA6M4开发板之DHT11温湿度读取】
!销售/回收CTS60数字无线测试仪CTS 60.小兵/李S
三大特点让它在光电圈与众不同!
太阳能发电原理是什么
电机正反转电路图讲解
新一代信息技术产业发展高峰论坛在深圳举办
宝莱高科:Q4营收同比有望实现增长,环比增长存在不确定性
真无线蓝牙耳机哪个好,2020真无线蓝牙耳机推荐
什么是粗抛、中抛和精抛?等离子抛光属于哪种?
基于FPGA的温度模糊自适应PID控制器的设计
“粽”享好礼!探索CodeArts产品,赢取丰厚奖品!