第一种方法:
结合map file和display.drf file
(display.drf 文件会放在virtuoso相关文件的目录下)
#!/usr/bin/perl
$Mapfile = $ARGV[0];
$Drffile = $ARGV[1];
$color = "blue red green yellow maroon orange pink cyan brown";
if ($Mapfile eq "-help") {
print "please \"perl layerprop.pl <virtuoso*.map> <display.drf>\"\n""
exit 0
}
if ($Mapfile eq "" || $Drffile eq "") {
print "please \"perl layerprop.pl <virtuoso*.map> <display.drf>\"\n""
exit 0;
}
open(Map_handle, "< $Mapfile") or die "file open failed,$!";
open(Tar_handle,"> ./calibre.layerprop") or die "file open failed,$!";
while ($lines = <Map_handle>) {
if ($lines !~ /#/ && $lines !~ /^\s*$) {
$lines =~ s/\s+/ /g;
@element = split(" ",$lines);
$new_lines = $element[0]._.$element[1];
$layer_num = $element[2].".".$element[3];
$layer{$layer_num} = $new_lines;
}
}
@Keys = keys %layer;
@af_keys = sort {$a <=> $b} @Keys;
foreach $kkey (@af_keys) {
$value = $layer{$kkey};
@drf_value = `grep -a -s -E "$value" "$Drffile"`;
@a = split (/\s+/,$drf_value[0]);
printf Tar_handle "%-6s %-8s %-10s %-15s",$kkey,$a[5],$a[4],$layer{$kkey};
}
close Map_handle;
close Tar_handle;
第二种方法:
也可以采用先启动calibre读取gds之后,在GUI上
Layer --> Load Input SVRF Layers Names;再将design rule的cmd file(.encrypt)读入;
Layer --> Save Layer Properties;指定文件名称即可
使用下面命令启动calibre后,后续读入的gds都会按照下面的层次描述显示
calibredrv -dl tech.layerprops