问题描述
在日语操作系统上使用Bitgen8.1isp3生成的.rbt文件在使用UC-II参考设计提供的“mcsgen.sh”脚本时可能会出现问题。
解决/修复方法
“mcsgen.sh”脚本随UC-II参考设计提供,该设计调用perl脚本“genmcs.pl”。此perl脚本将执行模式匹配以获取生成新rbt文件所需的位大小。由于在使用日语操作系统创建rbt文件时没有回车符,因此perl脚本错过了“bits:”数据的模式匹配,并且在promgen期间将导致位大小不匹配错误。
要解决此问题,可以使用两门课程:
1.手动编辑rbt文件并在“Date:”和“Bits:”之间插入回车符。
在日语操作系统(Windows XP和2000)下,标题写出如下:
————————————————– ———–
设计名称:system_cache.ncd
架构:virtex4
部分:4vfx12ff668
日期:THU 1 JUN 12:42:20 2006Bits:1491712
————————————————– ———–
因此,应在“Bits:1491712”之前插入“return”,使其看起来如下:
————————————————– ———–
设计名称:system_cache.ncd
架构:virtex4
部分:4vfx12ff668
日期:2006年6月1日星期四12:14:13
比特:1491712
————————————————– ———–
2.修改perl脚本(genmcs.pl)
在genmcs.pl的“Read in design.rbt file”部分下,相关代码编写如下:
————————————————– ———–
$ rbtfile = $ ncdname。“。rbt”;
print“Reading $ rbtfile …”;
打开(INFILE,“$ rbtfile”)|| die(“ERROR:$ rbtfile无法打开\ n”);
while(<INFILE>){
终日啃食;
if($ _ =〜/ ^设计名称:\ s +(\ w +)$ /){$ desname = $ 1;下一个; }
if($ _ =〜/ ^ Part:\ s +(\ w +)$ /){$ filepart = $ 1;下一个; }
if($ _ =〜/ ^ Architecture:\ s +(\ w +)$ /){$ filearch = $ 1;下一个; }
if($ _ =〜/ ^ Date:/){next; }
if($ _ =〜/ ^ Bits:\ s +(\ w +)$ /){$ bitcount1 = $ 1;下一个; }
next if(!($ _ =〜/ ^ [10] /));
push(@filelines,$ _);
}
关闭(INFILE);
print“(parttype $ filepart,architecture $ filearch)\ n”;
————————————————– ———–
要解决此问题,请修改代码,如下所示:
————————————————– ———–
$ rbtfile = $ ncdname。“。rbt”;
print“Reading $ rbtfile …”;
打开(INFILE,“$ rbtfile”)|| die(“ERROR:$ rbtfile无法打开\ n”);
while(<INFILE>){
终日啃食;
if($ _ =〜/ ^设计名称:\ s +(\ w +)$ /){$ desname = $ 1;下一个; }
if($ _ =〜/ ^ Part:\ s +(\ w +)$ /){$ filepart = $ 1;下一个; }
if($ _ =〜/ ^ Architecture:\ s +(\ w +)$ /){$ filearch = $ 1;下一个; }
if($ _ =〜/^.*Bits:\s+(.*)$/) {$ bitcount1 = $ 1;下一个; } ## TI – 为日语操作系统修改
## if($ _ =〜/ ^ Bits:\ s +(\ w +)$ /){$ bitcount1 = $ 1;下一个; }
next if(!($ _ =〜/ ^ [10] /));
push(@filelines,$ _);
}
关闭(INFILE);
print“(parttype $ filepart,architecture $ filearch)\ n”;
print“(bitcount $ bitcount1)\ n”;
————————————————– ———–
没有回复内容