|
这是LabVIEW FPGA的一个问题,在LabVIEW FPGA中特定的NIFlexRIO FPGA VIs将编译失败.当满足下面所有的条件,LabVIEW FPGA VI将编译失败。
* 减少程序框图中乘法器,FIFO的数量和存储空间的总量
* 减少前面板对象的数量
* 改变仲裁设置
* 使用定时循环代替其他循环
* 在程序框图中对资源集中部分使用定时循环而不使用其他循环
这个问题是由叫做IODelayCtrl特定的Xilinx组件重叠引起的。当以上的条件满足时,Xilinx编译工具复制太多的IODelayCtrl组件并且试图将它们映射到FPGA中。由于过度复制,Xilinx工具运行超出了FPGA放置该组件的位置。
按照如下的步骤确定是受到这个问题的影响并且通过安装更新软件更正这个问题
确定你受到影响:
使用下面的步骤来确定你的程序是受这个问题影响:
1. 当你编译失败之后,在编译状态窗口从报告下拉菜单选择Xilinx记录。
2. 滚动到Xilinx记录的末尾,你将会看到和如下相似的错误:如下的错误(或者一个类似)将被报告:
错误位置:543 - 由于的复杂性或者约束,该设计在这个设备中可利用的slice不能满足需求。在 按照类型未能放置的实例: IDELAYCTRL 21 (48.8)
请按照如下进行估计:
- 这里是否有用户定义的约束或者区域组合:
请看下面的“用户自定义约束”部分决定什么约束可能影响满足设计。 估计它们是否可以被移动,隔离或者调整大小来达到满足
.
核实它们在时钟限制区域没有重叠或者冲突。
关于时钟区域的使用,查看映射记录文件中的时钟区域报告获取更多细节
- 是否放置输入查找表有困难:尝试使用映射组合操作(映射本地区域|自动|关闭)
- 是否放置触发器有困难:估计你的设计中控制设置的数量和配置 。
下面的实例是例子最后设置失败的位置:
0. IDELAYCTRL Puma20Window/theCLIPs/IO_Module_CLIP0/IDelayCtrlx
1. IDELAYCTRL Puma20DramMainx/GenBank0or1Mig.u_ddr2_idelay_ctrl/u_idelayctrl_MapLib_replicate0
...
20. IDELAYCTRL Puma20DramMainx/GenBank0or1Mig.u_ddr2_idelay_ctrl/u_idelayctrl_MapLib_replicate19
错误位置:120 - 这里没有足够的地方放置所有选择的组件。
这些失败中的一些可以通过使用交替算法避免(虽然可能运行时间会长)
如果你想使能这个算法,请设置环境变量XIL_PAR_ENABLE_LEGALIZER to 1 andXIL_PAR_ENABLE_LEGALIZER to 1
错误位置:418-失败执行IOB布局
ERROR:Place:418 - Failed to execute IOB Placement
对于错误“由于Xilinx错误导致编译失败”,当使用NI FlexRIO,除了使用以下的步骤纠正这个问题,NI推荐您采取知识库中列举的步骤。
安装更新软件
如果你看见上面的错误,采用如下的步骤改正这个问题:
如果你还有任何安装补丁的问题请联系国家仪器支持
为了确保最大兼容,当你的版本比NI-RIO3.5.1新时,你必须更新你的NI-RIO安装.
|