XilinxFPGA配置的一些细节文档格式.docx

上传人:b****5 文档编号:16028570 上传时间:2022-11-17 格式:DOCX 页数:7 大小:52.20KB
下载 相关 举报
XilinxFPGA配置的一些细节文档格式.docx_第1页
第1页 / 共7页
XilinxFPGA配置的一些细节文档格式.docx_第2页
第2页 / 共7页
XilinxFPGA配置的一些细节文档格式.docx_第3页
第3页 / 共7页
XilinxFPGA配置的一些细节文档格式.docx_第4页
第4页 / 共7页
XilinxFPGA配置的一些细节文档格式.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

XilinxFPGA配置的一些细节文档格式.docx

《XilinxFPGA配置的一些细节文档格式.docx》由会员分享,可在线阅读,更多相关《XilinxFPGA配置的一些细节文档格式.docx(7页珍藏版)》请在冰豆网上搜索。

XilinxFPGA配置的一些细节文档格式.docx

在Xilinx网站上有,链接

(3)Xilinx:

UsingaMicroprocessortoConfigureXilinxFPGAsviaSlaveSerialorSelectMAPMode.XAPP502(v1.5)December3,2007

GTS:

激活用户IO,之前都是高阻。

EOS:

表示配置结束

DCI_MATCH:

表示所有的DCI(DigitallyControlledImpedance)控制器已经把内部电阻和外部参考电阻匹配完毕。

DCM_LOCK:

表示所有的DCM已经锁定。

这个选项默认是选中的。

因此,我们可以得出如下结论:

(1)FPGA最后的Startup过程有8个周期,其中DONE变高仅仅是第4个周期。

因此,在DONE变高之后还需要再给3个CCLK。

否则DONE虽然变高了,FPGA程序并没有正确运行。

(2)ISE会在设计中搜索用户是否使用了DCI,如果是,FPGA会使用2个周期的StartUpPhase,等待DCI匹配上。

即FPGA会在那儿等待,直到DCI匹配上。

如果我们在上位机读取了配置文件,获得了文件大小,我们把它写到负责加载V4的SP3里,然后CCLK时钟就不给了。

这就产生问题,因为DCI匹配需要时间,我们的问题就是,过了一段时间,DCI匹配完毕了,但是CCLK却没有了,因此FPGA一直处在StartUP的前2个Phase上,不会到DONE。

导致无法配置成功。

看xilinxDevelopmentSystemReferenceGuide(dev.pdf)中,写到

BitGenMatch_cycle

TheBitGenMatch_cyclesettingspecifiesastallintheStartupcycleuntildigitally

controlledimpedance(DCI)matchsignalsareasserted.DCImatchingdoesnotbeginontheMatch_cyclethatwassetinBitGen.TheStartupsequencesimplywaitsinthiscycleuntilDCIhasmatched.GiventhatthereareanumberofvariablesindetermininghowlongitwilltakeDCItomatch,thenumberofCCLKcyclesrequiredtocompletetheStartupsequencemayvaryinanygivensystem.Ideally,theconfigurationsolutionshouldcontinuedrivingCCLKuntilDONEgoeshigh.WhentheAutosettingisspecified,BitGensearchesthedesignforanyDCII/Ostandards.

IfDCIstandardsexist,BitGenusesMatch_cycle:

2.Otherwise,BitGenusesMatch_cycle:

NoWait.

关于DCI_MATCH的设置,在生成bit文件的StartUPOptions里有个MatchCycle的选项,默认是Auto。

含义是ISE会去确认用户是否使用了DCI,没有的话,StartupSequence直接跳过这一步,否则会等待DCI匹配完毕。

2bit文件的格式

.bit是二进制文件,可以分为三个部分:

头部冗余信息,配置数据,尾部冗余信息。

头部信息

配置数据

尾部信息

其中头部信息的格式可以参见《Tellmeaboutthe.BITfileformat》.它里面包含了当前ISE工程名字、编译时间等信息,因此头部信息的长度是不确定的,72个字节左右。

第二部分是配置数据流,以0xFFFFFFFFAA995566开头,AA995566是Xilinx指定的同步字符。

配置数据流的具体格式及含义可以参见参考文献,比如ug071.pdf的P95的ConfigurationSequence,基本格式就是指令+数据,很清晰地给出哪个字节是什么命令,用来干什么。

例如bit文件中,加载数据帧之后,有CMD寄存器的命令:

START0x5(0101b)表示开始Start-UpSequence。

最后一部分是尾部信息,由16个32bit的空操作指令:

0x20000000组成。

大家可以打开bit文件看,有很多20000000。

这些表示空操作。

这部分信息可以不用加载到FPGA。

我认为Xilinx把bit文件后面加上这些空操作,是为了在SelectMAP时能让用户多给一些CCLK,完成StartUp。

3bit文件和bin文件的区别

.bin文件和.bit的区别就在于,.bin只包含配置数据,没有前面的headerinforamtion。

4SelectMAP文件是加载.bit呢还是.bin?

既然.bit和.bin仅仅是headerinformation不一样,配置数据是一样的,所以两个文件都可以加载。

但是,当用户在ISE中调用了EDK(比如使用microblaze或者powerpc),ISE生成.bin文件并不会把用户的.elf文件初始化到FPGA内部的数据和程序存储器中,造成用户的microblaze或ppc代码不运行。

至少当前ISE版本(<

=10.1)是这样的,不知道以后的版本Xilinx会不会解决这个bug。

因此,推荐使用.bit文件。

5EDK生成的.bit和ISE生成的.bit文件有什么区别吗?

我们发现,EDK的工程中,生成的.bit文件通过SelectMAP加载到FPGA,程序运行不正常,如果用JTAG加载这个.bit文件,则程序运行正常。

如果把EDK的工程作为ISE的子模块调用,生成的.bit可以通过SelectMAP加载。

那么,EDK生成的.bit和ISE生成的.bit有什么区别吗?

有!

原因就在于ISE和EDK的StartUpClock默认属性设置的不一样。

在ISE->

GenerateProgrammingFile的属性->

StartupOptions->

FPGAStart-UpClock的Value是CCLK;

在EDK->

ProjectFiles->

BitgenOptionsFile:

etc/bitgen.ut里头写着-gStartUpClk:

JTAGCLK,把它修改为-gStartUpClk:

CCLK,重新生成download.bit,SelectMAP加载,FPGA工作正常!

查Xilinx关于SelectMAP的说明(v4的配置手册ug71.pdf),发现一句话:

TheBitGenstartupclocksettingmustbesetforCCLKforSelectMAPconfiguration.

6xapp138.pdf

比较详细的介绍了FPGA配置细节;

(1)在MasterSerial模式,FPGA输出的CCLK开始是2.5MHz,在同步字符后第60个字节CCLK的频率切换为用户指定的时钟。

我们可以在ISE中选择配置时钟的频率,单位是MHz,

需要注意的是,CCLK的周期有-30%~+45%的偏差。

ISE不同版本、不同FPGA系列,它默认的配置时钟是不一样的。

此外,还需要注意选择的CCLK频率能被PROM支持。

我曾经遇到过这个问题:

用Virtex5SX50T作为PCI接口芯片,默认的配置时钟选择了6MHz。

完成整个加载超过1s的时间,结果是PCI设备无法识别。

解决方法就是在生成bit文件的时候,把CCLK设置为20MHz,这样SX50T很快就能完成加载。

(2)在bit文件末尾有一些关于startup的配置命令。

(3)/PROGRAM低有效的持续时间不能小于300ns,最长时间没有限制。

所以,我们在用SelectMAP配置的时候,要注意拉低此信号的持续时间。

(4)CRC校验,在整个配置过程中会校验两次。

Thefirstcheckisjustbeforethelastconfigurationframeisloaded,andthesecondisattheveryendofconfiguration.

(5)selectMAP模式,BUSY仅在CCLK频率大于50MHz时才是必需的。

(BUSYisonlynecessaryforCCLKfrequenciesabove50MHz.IftheCCLKfrequencyisless,than50MHz,thiscanbedonewithouthandshaking.)

(6)Completionoftheconfigurationprocessrequires8to16clockcyclesafterthefinalCRCisloaded.这个参见第1节。

7模式信号

Xilinx的ConfigurationGuide上面说,M0M1M2Canbeeither0or1,butmustnottoggleduringandafterconfiguration.

好像在配置完后切换应该没有什么关系,因为M0M1M2是在Init_b上升沿被采样。

8关于部分重加载(xapp290.pdf)

生成bit文件的时候加上-gActiveReconfig:

Yes。

则FPGA在加载的时候仍然会正常工作。

同时,必须设置-gPersist:

Yes,这个选项表示在SelectMAP模式下,加载的管脚在配置成功后仍然是加载管脚,不会变为用户IO,这样就可以用来部分重加载。

此外,-gsecurity:

none必须设置。

[meaningthatthedeviceremainsinfulloperationwhilethenewpartialbitstreamisbeingdownloaded.IfActiveReconfig:

Yesisnotspecified(or-gActiveReconfig:

Noisspecified),thenthepartialbitstreamcontainstheShutdownandAGHIGHcommandsusedtodea

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 判决书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1