描述
PAR报告以下警告信息:
警告:BASPL:291 – TBUF组件“XXX”无法放置。
错误:BASPL:292 -这可能是由于缺乏资源或偏好冲突。如果PAR已被运行,请检查.PAR文件的资源分配和利用,并验证有足够的资源来放置组件。同时确保所有的安置冲突都得到解决。
4K设计可以容纳的TBUF驱动的网络的数量是4×NUMLROWS。例如,XC4036EX具有36行,并且可以容纳144个TBUF驱动的网络。当超过此限制时,PAR报告先前的警告消息,这可能有误导性。
要查看此限制是否已经超过,必须计算TBUF驱动的网络的数量。请参阅下面的解决方案的例子,如何计数TBUF驱动的网络。
解决方案
下面的Perl脚本将从指定的NCD文件中提取XDL文件,如果XDL文件不存在,则在每个TBUF网络上计数TBUF驱动程序的数量。
命令行:
XILPL TBUF.PL设计
在这里切割并创建TBUF.PL
在现有NCD中计数TBUF集合的per.perl脚本
语法:XILPL TBFF.PL设计
创建必要的XDL文件
@ NCDL根=分裂(/\,$ARGV〔0〕);
如果(!)-e $ $NCDLoRoad(0).xdl){
打印“生成XDL文件”。请等待…\n;
‘xdl -nopiPS-nCD2xdl $ nCDL根[0 ];
}
打印“加载XDL数据…\n”;
打开(文件)“$NCDLRORT ROOT(0).XDL);
@ xdl= & lt;文件& gt;
关闭(文件);
CNT=0;
前线$线(@ xdl)
{
乔姆斯;
@字段=拆分(/s+//$行);
找到网络记录的开始
如果($field(0)eq“net”)
{
净值=“是”;
$NETYNAMOR= $字段〔1〕;
}
找到多个驱动程序的网络记录结束和打印报告
如果($字段[1 ] eq);()
{
如果($CNT&Gt=“2”)
{
在$NET$NET\N上打印“$CNT TBUF驱动程序”;
}
净值=“不”;
CNT=0;
}
网上计数驱动程序
如果(净eq)“是”& & $$字段[1 ] eq“OutPIN”
{
$CNT+
}
}
使用Perl脚本:
下面的脚本“TBUF.PL”可以用来计算ViTeX或ViTeX II设计中的TBUF驱动的网络的数量(这个脚本依赖于一个有效的Xilinx环境的存在)。
对于PC,运行:
XILPL TBUF.PL设计
对于UNIX工作站,运行:
TBF.PL设计
————————————————–
哎呀!/urr/Studio/bin/perl
在命令行上指定的NCD上运行ncDRAAD
@ NCDL根=分裂(/\,$ARGV〔0〕);
NCDRAD$ $ NCDLRORT〔0〕。NCD>$NCDCURRORT〔0〕。
打开(文件)“$NCDLRORT ROOT(0).DMP);
而(& lt;文件& gt){
乔姆斯;
@字段=拆分(/\s+/);
如果(($)字段〔3〕=// TINV /π$字段〔3〕=~/tMUX/)和(和)$字段〔1〕eq“配置”){$tBuf=“1”}
如果($字段[ 3 ]!~/Tunv/&&&;$字段〔3〕!~/TMUX/]和AMP;$字段[1 ] EQ“配置”){$TBUF=“0”}
如果($TBUF EQ)1“&&;$字段[1 ] EQ”PIN“&&$$字段[4 ] EQ“O:”){
推(@网,“$字段[5 ] ]);
$TBuffCNT++;
}
}
PROACH $ NET(排序(@ NET)){
子串($Net,–2,2)=“”;
子串($net,0,1)=“”;
如果($NET$$旧&&$CNT & gt;“0”){
打印“TBUF净$$旧拥有$CNT驱动程序\\n”;
CNT=1;
$NETYCNCn++}
否则{$CNT++}
旧=净额;
}
打印“TBUF净$$旧拥有$CNT驱动程序\\n”;
$NET-CNCNT+;
打印“有$TBuffCNT TBUFS驱动$NETCNCNT不同的网。\n”;
RM $ NCDL根[ 0 ]
出口;
没有回复内容