...
Code Block | ||||
---|---|---|---|---|
| ||||
#!/usr/bin/perl use strict; use warnings; my $expString=""; #you need to create code that adds comma separated signal names to the $expString variable #note that strict is enforced so you need to declare your variables with 'my' #Insert code here my $highLow=0; #set to 1 for bus 63:32, set to 0 for bus 31:0 my $byteOrderHighToLow=0; #set to 1 to make the bytes/strobes descend #set to 0 to make them ascend my $msb_unib=$highLow? 63 : 31; my $msb_lnib=$msb_unib-4; my $dqs_start=$highLow? 7 : 3; my @loopList=$byteOrderHighToLow ? (0,1,2,3) :(3,2,1,0); #skip the first 4 pins in the bank (to get to first strobe pins $expString="!skip[3:0],"; foreach my $i (@loopList) { #add strobe diff pair $expString.=sprintf( "io:dqs%d_c,io:dqs%d_t,", $dqs_start-$i, $dqs_start-$i, ); #add upper nibble $expString.=sprintf( "io:dq[%d:%d],", ($msb_unib)-8*$i,($msb_unib)-8*$i-3, ); #skip the _n pin $expString.="!skip,"; #add the dm pin $expString.=sprintf( "in:dm%d,", $dqs_start-$i, ); #add the lower nibble $expString.=sprintf( "io:dq[%d:%d],", ($msb_lnib)-8*$i,($msb_lnib)-8*$i-3 ); } #print $expString ,"#End insert code print "\$expString=$expString\n"; #this needs to be the last thing you do in this code $expString=$expString; |
...