bitstream文件用于FPGA的JTAG下载。既通过JTAG将bitstream文件正确的下载到FPGA中,FPGA就可以工作。
FPGA内部的configuration memory被分成的段叫做"frame",同系列的各款芯片frame数不同,frame内所包 含的bits也不同。FPGA内部还有10个internal configuration registers,用不同的地址(4bit)区分,向其中写二进制码来实现对FPGA的配置。
文件中同步标志之后的所有数据被封装到包中,包有两种32bit的包头,包头1可以表示读/写、寄存器地址、和本包的数据长度(11bit),包头2用来 表示长度的位有27bit,但不可表示寄存器地址,当用包头1无法表示数据长度时,使用包头2和1结合的方式表示。下图为包头格式。
bitstream文件结构如下:
0、基本信息描述包括文件生成时间、生成文件的ncd名称、器件的型号封装等等。对下载没有影响。
1、Dummy word--FFFF FFFFh : 内部配置逻辑需要几个周期进行初始化。
2、Synchronization word--AA99 5566h
3、Write to CMD register--3000 8001h:使用包头1格式写是10,CMD的地址是0100b,数据长度是1,所以是3000 8001h。
4、RCRC(Reset CRC Register)--0000 0007h:RCRC命令的编码是0111b,所以是7h。
5、Write to FLR register--3001 6001h:该寄存器中记录本器件的frame size模32减1的值。
6、Frame Length--0000 00XXh
7、Write to COR--3001 2001h:Configuration Option
8、Configuration options--XXXX XXXXh:xapp151文档中有每一位功能说明
9、Write to MASK--3000 c001h:标志CTL寄存器哪位有效
10、CTL mask--0000 0000h
11、Write to CMD register--3000 8001h
12、SWITCH--0000 0009h:SWITCH编码9h,这个命令用来改变时钟
13、Write to FAR register--3000 2001h:下载配置流起始存放的位置
14、Frame address--0000 0000h
15、Write to CMD register--3000 8001h
16、WCFG(Write Configuration Data)--0000 0001h:WCFG编码1h
未完,待续......