91i PAR-“警告:BASPL:291 – TBUF组件”XXX“不能放置”(如何计算TBUF驱动的网络在设计中的数量)-Xilinx-AMD社区-FPGA CPLD-ChipDebug

91i PAR-“警告:BASPL:291 – TBUF组件”XXX“不能放置”(如何计算TBUF驱动的网络在设计中的数量)

描述

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 ]

出口;

请登录后发表评论

    没有回复内容