File indexing completed on 2025-08-06 08:16:12
0001
0002
0003
0004
0005
0006 use strict;
0007 use CGI ;
0008
0009 my %PolygonDefinition;
0010 my %MicroVia;
0011
0012 open (ORIG, "<", "OUTPUT.XML") or die "Can't open original file $!/n";
0013
0014 my $CurrentSignal = "None";
0015 while (<ORIG>)
0016 {
0017 my $line = $_;
0018
0019 if ($line =~ /<signal name/)
0020 {
0021 my @lineValues = split(/"/,$line);
0022 $CurrentSignal = $lineValues[1];
0023 }
0024
0025 if ($CurrentSignal =~ /ZZ/)
0026 {
0027 if (($line =~ /polygon/) || ($line =~ /vertex/))
0028 {
0029 push(@{$PolygonDefinition{$CurrentSignal}}, $line);
0030 }
0031
0032 if (($line =~ /via/) && ($line =~ /extent="15-16"/))
0033 {
0034 $MicroVia{$CurrentSignal} = $line;
0035 }
0036
0037
0038 }
0039 }
0040
0041 close ORIG;
0042
0043 my $Fav = "ZZ.13.113";
0044
0045 # Print the Polygon
0046 foreach my $element (@{$PolygonDefinition{$Fav}})
0047 {
0048 print " $element";
0049 }
0050
0051 # Print the MicroVia
0052 print " $MicroVia{$Fav}";
0053
0054 open (BRD, "<", "StonyBrookUniversity-R2pad-Rev_D-OldPads.brd") or die "Can't open original file $!/n";
0055 open (OUT, ">", "StonyBrookUniversity-R2pad-Rev_D.brd") or die "Can't open original file $!/n";
0056
0057 $CurrentSignal = "None";
0058 while (<BRD>)
0059 {
0060 my $line = $_;
0061
0062 if ($line =~ /<signal name/)
0063 {
0064 my @lineValues = split(/"/,$line);
0065 $CurrentSignal = $lineValues[1];
0066 }
0067
0068 if ($CurrentSignal =~ /ZZ/)
0069 {
0070 my $WriteLine = "true";
0071 if (($line =~ /<polygon width/))
0072 {
0073 $WriteLine = "false";
0074 foreach my $element (@{$PolygonDefinition{$CurrentSignal}})
0075 {
0076 print OUT $element;
0077 }
0078 }
0079
0080 if (($line =~ /vertex/) || ($line =~ /<\/polygon/))
0081 {
0082 $WriteLine = "false";
0083 }
0084
0085
0086
0087
0088
0089
0090
0091
0092
0093
0094
0095
0096
0097
0098
0099
0100
0101
0102
0103
0104
0105
0106
0107
0108
0109
0110
0111 if ($WriteLine =~ /true/)
0112 {
0113 print OUT $line;
0114 }
0115
0116 }
0117 else
0118 {
0119 print OUT $line;
0120 }
0121
0122
0123 }
0124 close BRD;
0125 close OUT;