1、在Xilinx网站上有,链接(3)Xilinx: Using a Microprocessor to Configure Xilinx FPGAs via Slave Serial or SelectMAP Mode.XAPP502 (v1.5) December 3, 2007GTS : 激活用户IO,之前都是高阻。EOS : 表示配置结束DCI_MATCH : 表示所有的DCI(Digitally Controlled Impedance)控制器已经把内部电阻和外部参考电阻匹配完毕。DCM_LOCK : 表示所有的DCM已经锁定。这个选项默认是选中的。因此,我们可以得出如下结论:(1)FP
2、GA最后的Startup过程有8个周期,其中DONE变高仅仅是第4个周期。因此,在DONE变高之后还需要再给3个CCLK。否则DONE虽然变高了,FPGA程序并没有正确运行。(2)ISE会在设计中搜索用户是否使用了DCI,如果是,FPGA会使用2个周期的Start Up Phase,等待DCI匹配上。即FPGA会在那儿等待,直到DCI匹配上。如果我们在上位机读取了配置文件,获得了文件大小,我们把它写到负责加载V4的SP3里,然后CCLK时钟就不给了。这就产生问题,因为DCI匹配需要时间,我们的问题就是,过了一段时间,DCI匹配完毕了,但是CCLK却没有了,因此FPGA一直处在Start UP的
3、前2个Phase上,不会到DONE。导致无法配置成功。看xilinx Development System Reference Guide(dev.pdf)中,写到BitGen Match_cycleThe BitGen Match_cycle setting specifies a stall in the Startup cycle until digitallycontrolled impedance (DCI) match signals are asserted.DCI matching does not begin on the Match_cycle that was set i
4、n BitGen. The Startup sequence simply waits in this cycle until DCI has matched. Given that there are a number of variables in determining how long it will take DCI to match, the number of CCLK cycles required to complete the Startup sequence may vary in any given system. Ideally, the configuration
5、solution should continue driving CCLK until DONE goes high. When the Auto setting is specified, BitGen searches the design for any DCI I/O standards.If DCI standards exist, BitGen uses Match_cycle:2. Otherwise, BitGen uses Match_cycle:NoWait.关于DCI_MATCH的设置,在生成bit文件的StartUP Options里有个Match Cycle的选项,默
6、认是Auto。含义是ISE会去确认用户是否使用了DCI,没有的话,Startup Sequence直接跳过这一步,否则会等待DCI匹配完毕。2 bit文件的格式.bit是二进制文件,可以分为三个部分:头部冗余信息,配置数据,尾部冗余信息。头部信息配置数据尾部信息其中头部信息的格式可以参见Tell me about the .BIT file format.它里面包含了当前ISE工程名字、编译时间等信息,因此头部信息的长度是不确定的,72个字节左右。第二部分是配置数据流,以0xFF FF FF FF AA 99 55 66开头,AA 99 55 66是Xilinx指定的同步字符。配置数据流的具体
7、格式及含义可以参见参考文献,比如ug071.pdf的P95的Configuration Sequence,基本格式就是指令+数据,很清晰地给出哪个字节是什么命令,用来干什么。例如bit文件中,加载数据帧之后,有CMD寄存器的命令: START 0x5(0101b) 表示开始Start-Up Sequence。最后一部分是尾部信息,由16个32bit的空操作指令:0x20 00 00 00组成。大家可以打开bit文件看,有很多20 00 00 00。这些表示空操作。这部分信息可以不用加载到FPGA。我认为Xilinx把bit文件后面加上这些空操作,是为了在SelectMAP时能让用户多给一些CC
8、LK,完成StartUp。3 bit文件和bin文件的区别.bin文件和.bit的区别就在于,.bin只包含配置数据,没有前面的header inforamtion。4 SelectMAP文件是加载.bit呢还是.bin?既然.bit和.bin仅仅是header information不一样,配置数据是一样的,所以两个文件都可以加载。但是,当用户在ISE中调用了EDK(比如使用microblaze或者powerpc),ISE生成.bin文件并不会把用户的.elf文件初始化到FPGA内部的数据和程序存储器中,造成用户的microblaze或ppc代码不运行。至少当前ISE版本( Generate
9、 Programming File的属性- Startup Options - FPGA Start-Up Clock的Value是CCLK;在EDK- Project Files - Bitgen Options File: etc/bitgen.ut里头写着 -g StartUpClk:JTAGCLK,把它修改为-g StartUpClk:CCLK,重新生成download.bit,SelectMAP加载,FPGA工作正常!查Xilinx关于SelectMAP的说明(v4的配置手册ug71.pdf),发现一句话:The BitGen startup clock setting must b
10、e set for CCLK for SelectMAP configuration.6 xapp138.pdf比较详细的介绍了FPGA配置细节;(1) 在Master Serial 模式,FPGA输出的CCLK开始是2.5MHz,在同步字符后第60个字节CCLK的频率切换为用户指定的时钟。我们可以在ISE中选择配置时钟的频率,单位是MHz,需要注意的是,CCLK的周期有-30%+45%的偏差。ISE不同版本、不同FPGA系列,它默认的配置时钟是不一样的。此外,还需要注意选择的CCLK频率能被PROM支持。我曾经遇到过这个问题:用Virtex5 SX50T作为PCI接口芯片,默认的配置时钟选择
11、了6MHz。完成整个加载超过1s的时间,结果是PCI设备无法识别。解决方法就是在生成bit文件的时候,把CCLK设置为20MHz,这样SX50T很快就能完成加载。(2)在bit文件末尾有一些关于startup的配置命令。(3) /PROGRAM 低有效的持续时间不能小于300ns,最长时间没有限制。所以,我们在用SelectMAP配置的时候,要注意拉低此信号的持续时间。(4) CRC校验,在整个配置过程中会校验两次。The first check is just before the last configuration frame is loaded, and the second is a
12、t the very end of configuration.(5) selectMAP模式,BUSY仅在CCLK频率大于50MHz时才是必需的。(BUSY is only necessary for CCLK frequencies above 50MHz. If the CCLK frequency is less,than 50 MHz, this can be done without handshaking.)(6) Completion of the configuration process requires 8 to 16 clock cycles after the fin
13、al CRC is loaded.这个参见第1节。7 模式信号Xilinx的Configuration Guide上面说,M0M1M2 Can be either 0 or 1, but must not toggle during and after configuration.好像在配置完后切换应该没有什么关系,因为M0M1M2是在Init_b上升沿被采样。8 关于部分重加载 (xapp290.pdf)生成bit文件的时候 加上-g ActiveReconfig:Yes。则FPGA在加载的时候仍然会正常工作。同时,必须设置-g Persist:Yes,这个选项表示在SelectMAP模式下
14、,加载的管脚在配置成功后仍然是加载管脚,不会变为用户IO,这样就可以用来部分重加载。此外,-g security:none必须设置。meaning that the device remains in full operation while the new partial bitstream is being downloaded.If ActiveReconfig:Yes is not specified (or -g ActiveReconfig:No is specified), then the partial bitstream contains the Shutdown and AGHIGH commands used to dea
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1