Version: 0.0001
Type: Full Script
Category: Algorithms
License: GNU General Public License
Description: A script for you to easily to change all big-endian wires to big-endian in a Verilog file. this script was written for an x86 machine where there are only 8, 16, 32 bit registers. if you have a machine for 64 bits, modiy the code to what you need. the variable i used in the script is called ir_in[127:96] the file this script reads must be called file.v have fun. it'll save you some time.
<?
$lines = file("file.v");
$search = array("/ir_in\[(\d{1,3}):(\d{1,3})\]/e");
$replace = array("fix($1, $2)");
function fix($hi, $lo){
switch($hi-$lo)
{
case 7:
return "ir_in[".$hi.":".$lo."]";
break;
case 15:
return "{ir_in[".($lo+7).":".$lo."], ir_in[".($lo+15).":".($lo+8)."]}";
break;
case 31:
return "{ir_in[".($lo+7).":".$lo."], ir_in[".($lo+15).":".($lo+8)."], ir_in[".($lo+23).":".($lo+16)."], ir_in[".($lo+31).":".($lo+24)."]}";
break;
default:
echo "HELP! hi-lo=".($hi-$lo)."\n";
break;
}
return "HELP! hi-lo=".($hi-$lo);
}
for($i=0;$i<count($lines);$i++)
{
echo preg_replace($search, $replace, $lines[$i]);
}