《了解FPGA比特流结构.docx》由会员分享,可在线阅读,更多相关《了解FPGA比特流结构.docx(4页珍藏版)》请在第一文库网上搜索。
1、了解FPGA比特流结构比特流是一个常用词汇,用于描述包含咏完整内部配置状态的文件,包括布线、逻辑资源和IO设置。大多数现代FPGA都是基于S幽的,包括Xi1inxSpartan和VirteX系列。在FPGA上电或随后的FPGA重新配置期间,比特流从外部诸如闪存这样的非易失性存储器中读取,通过FPGA配置控制器的处理,加载到内部的配置SRAM中。在有些情况下,设计者需要很好地了解FPGA比特流的内部结构。例如,使用FPGA物理实现工具的参数不能访问自定义的低级比特流、实现复杂的配置回溯方案、通过内部配置皿(KAP)产生用于FPGA重新配置的短命令序列、读配置状态等。比特流格式Xi1inxFPGA
2、的比特流结构如图1所示。多个命令多个存储器蚓图1XihnxFPGA比特流结构比特流包括以下组成部分:填充、同步字、用于访问配置寄存器的命令、存储器帧和解同步字。填充填充的数据是全O或全1序列,被FPGA配置控制器忽略。填充数据用于非易失性存储器中分离比特流。一般使用全1填充较为方便,因为执行擦除后闪存的状态也是全1。同步字同步字是一个特殊值(OXAA995566),通知FPGA配置控制器处理后续的比特流数据。解同步字解同步字通知FPGA配置控制器比特流的末端位置。解同步字之后,所有的比特流数据被忽略,直到遇到下一个同步字。命令命令用于读和写FPGA配置控制器寄存器。每个比特流中出现的一些命令,
3、有的是ID-CODE,用于标识比特流属于哪个FPGA器件。帧地址寄存器(FAR)、帧数据寄存器(FDRI)和无操作(N(X)P)将被忽略。存储器帧存储器帧是配置Xi1inXFPGA的比特流基本单元。帧的大小与具体的PPGA系列有关,系列不同,帧的大小也不同。Virtex-6器件的帧有2592位。每个Virtex-6器件具有的帧数不同,从最小7491(对于1X7ST)到最大5ss548(对于1X550T)。帧用于多个逻辑片、10、BRAM及其他FPGA的配置。每帧都有一个地址,对应于FPGA配置空间的位置。比特流使用FAR和FDRI命令序列来配置帧。Virtex-6FPGA配置用户指南包含足够的
4、关于比特流和访向FPGA配置控制器寄存器命令的文档。然而,关于存储器帧的详细文档不仅对于XiIinXFPGA无法获得,而且对于其他供应商的FPGA也是如此。XiIinX的BITGEN实用程序B1TGEN是Xi1inX的实用程序,利用本地电路描述(NCD)格式的布局布线后文件,创建用于FPGA配置的比特流。BITGEN是一个高度可配置的工具,具有100多个命令行选项(在命令行工具用户指南2中描述)。有些选项用于确定比特流输出格式、启用压缩处理减少比特流大小、提高FPGA配置速度、使用CRC来确保数据完整性、对比特流加密等。示例以下示例用于根据差异部分配置的短比特流,通过脚本语言描述比特流命令。脚
5、本采用Per1编写,在配套的网站上提供。FFFFFFFFPaddingFFFFFFFFPaddingOOOOOOBBBuswidth112200448.e32BusWidthFFFFFFFFPaddingFFFFFFFFPaddingAA995566SYNCcommand20000000NOOP30008001write1wordtoCMD00000007RCRCcommand20000000NOOP20000000NOOP30018001write1wordtoID04250093IDCODE30008001write1wordtoCMD00000000NU11command30002001
6、write1wordtoFAR00000000FARB1ockTopRowCo1:Minor030008001write1wordtoCMD00000001WCFGcommand20000000NOOP30002001write1wordtoFAR0000951AFARB1ock0ToPROw1Co142Minor2620000000NOOE30004195write405wordstoFDRIdatawords0.40430002001write1wordtoEAR001014A8FARB1ock0BotRowDCo141Minor4020000000NOOP300040F3write243
7、wordstoFDRIdatawords0.2423000C001write1wordtoMASK00001000MASK30030001write1wordtoCT1100000000CT1130008001write_wordtoCMD00000031FRMcommand20000000NOOP20000000NOOP20000000NOOP30002001write1wordtoFAR00EF3000FARB1ock7TopRow3_Co1CMinorC30000001write_wordtoCRC1CO6EA42CRC30008001write-wordtoCMD0000000DDESYNCHcommand20000000NOOP仔细观察比特流,能区分出同步和解同步命令、属于VirteX.61X240TPPGA的IDCODE,以及两个405个和243个字的帧。审核汤梓红