问题描述
Xilinx LUTNM属性旨在为用户提供对Virtex-5器件中相同LUT对中LUT5和LUT6符号封装的控制。将这些约束应用于非Virtex-5架构中的LUT符号或LUT5和LUT6之外的LUT符号无效。
在Synplify Pro版本8.6.2U网表中发现了几个案例,其中这些约束使用不当导致以下问题:
1.已经发现Spartan-3设计包含LUTNM属性的情况。尽管Spartan-3设计不支持此约束,但该属性确实会影响所有体系结构通用的代码中LUT的处理,从而影响LUT封装。在一种情况下,LUT1缓冲区未能按预期优化,导致次优MAP结果和失败的定向布线约束。
2.在Virtex-5设计中应用于LUT1常数的LUTNM属性导致以下致命错误的情况:
FATAL_ERROR:Pack:pkibaexception.c:198:1.4.102.2 – 无法对器件进行编程
comp的使用模型
“idot16ephytop / idot16ephytx_top / itxsrcbank_Q / u_filt_exp / N_49105_i”。比较
是SLICEL类型的实例。使用了以下配置字符串
编程器件使用模型:D5LUT:#LUT:O5 = 2
D6LUT:#LUT:O6 =(A6 + ~A6)*(2)DOUTMUX:O5 DUSED:0异常文本:ERBCF SLICEL
失败:INVALID_EQN:“O5 = 2”CFG:“D5LUT:#LUT:O5 = 2 D6LUT:#LUT:O6 =(A6 + ~A6)*(2)
DOUTMUX:O5 DUSED:0“进程将终止。要解决此错误,
请参阅答案数据库和其他在线资源
http://support.xilinx.com。如果您需要进一步的帮助,请打开一个
通过单击http://support.xilinx.com上的“WebCase”链接来获取Webcase
解决/修复方法
ISE版本9.1i修复了Virtex-5致命错误。非Virtex-5问题将在9.1i sp1中修复。
同时,通过在Synplicity中关闭LUTNM插入或使用以下Perl脚本从生成的EDIF文件中删除无效的LUTNM属性,可以避免这些问题。要运行此脚本,请使用以下命令:
script.pl design.edf> stripped_design.edf
———-在此处剪切并编辑下面的第一行以访问xilperl以进行安装————————-
#!/ My_XILINX_PATHf /斌/ LIN / xilperl
$ LUT = “假”;
while(<>){
终日啃食;
@fields = split();
#捕获LUT类型
if($ fields [0] eq“(instance”){
$ LUT = $领域[5];
}
#在适当的时候打印LUTNM属性
if($ fields [1] eq“LUTNM”&&($ lut eq LUT5 || $ lut eq LUT5_L || $ lut eq LUT6 || $ lut eq LUT6_L)){
打印“@fields \ n”;
}
#打印所有非LUTNM行
if($ fields [1] ne“LUTNM”){
打印“@fields \ n”;
}
}
– – – – – – – – – – – – – – 剪这里 – – – – – – – – – – – ————————————-
没有回复内容