Line 946... |
Line 946... |
$discrete_sv="\t localparam DISCRETE_PCK_SIZ_NUM=$i;
|
$discrete_sv="\t localparam DISCRETE_PCK_SIZ_NUM=$i;
|
\t rnd_discrete_t rnd_discrete [DISCRETE_PCK_SIZ_NUM-1: 0];\n".$discrete_sv;
|
\t rnd_discrete_t rnd_discrete [DISCRETE_PCK_SIZ_NUM-1: 0];\n".$discrete_sv;
|
}
|
}
|
|
|
my $modelsim_bin= $ENV{MODELSIM_BIN};
|
my $modelsim_bin= $ENV{MODELSIM_BIN};
|
if(! defined $modelsim_bin){
|
my $vsim = (! defined $modelsim_bin)? "vsim" : "$modelsim_bin/vsim";
|
add_colored_info($info, "Error: Path to modelsim bin directory is not defined in ProNoC setting\n",'red');
|
|
show_setting(0);
|
|
return;
|
|
}
|
|
|
|
my $cpu_num = $simulate->object_get_attribute('compile', 'cpu_num');
|
my $cpu_num = $simulate->object_get_attribute('compile', 'cpu_num');
|
$cpu_num = 1 if (!defined $cpu_num);
|
$cpu_num = 1 if (!defined $cpu_num);
|
|
|
my $thread_num = $simulate->object_get_attribute('compile', 'thread_num');
|
my $thread_num = $simulate->object_get_attribute('compile', 'thread_num');
|
Line 1028... |
Line 1027... |
quit
|
quit
|
";
|
";
|
|
|
save_file ("$out/model.tcl",$tcl);
|
save_file ("$out/model.tcl",$tcl);
|
|
|
my $cmd="cd $out; rm -Rf rtl_work; $modelsim_bin/vsim -do $out/model.tcl ";
|
my $cmd="cd $out; rm -Rf rtl_work; $vsim -do $out/model.tcl ";
|
save_file ("$out/run.sh",'#!/bin/bash'."
|
save_file ("$out/run.sh",'#!/bin/bash'."
|
sed -i \"s/ INJRATIO=\[\[:digit:\]\]\\+/ INJRATIO=\$1/\" $out/sim_param.sv
|
sed -i \"s/ INJRATIO=\[\[:digit:\]\]\\+/ INJRATIO=\$1/\" $out/sim_param.sv
|
".$cmd);
|
".$cmd);
|
add_info($info, "model.tcl is created in $out\n");
|
add_info($info, "model.tcl is created in $out\n");
|
}#for
|
}#for
|
Line 1052... |
Line 1051... |
my $cmd;
|
my $cmd;
|
|
|
if ($simulator eq 'Modelsim'){
|
if ($simulator eq 'Modelsim'){
|
add_info($info, "Run $bin with injection ratio of $ratio_in \% \n");
|
add_info($info, "Run $bin with injection ratio of $ratio_in \% \n");
|
my $out="$out_path/modelsim/work$c";
|
my $out="$out_path/modelsim/work$c";
|
$cmd=" xterm -e bash -c ' cd $out; sed -i \"s/ INJRATIO=\[\[:digit:\]\]\\+/ INJRATIO=$ratio_in/\" $out/sim_param.sv; rm -Rf rtl_work; $modelsim_bin/vsim -c -do $out/model.tcl -l $out_path/sim_out$ratio_in;' &\n ";
|
$cmd=" xterm -e bash -c ' cd $out; sed -i \"s/ INJRATIO=\[\[:digit:\]\]\\+/ INJRATIO=$ratio_in/\" $out/sim_param.sv; rm -Rf rtl_work; $vsim -c -do $out/model.tcl -l $out_path/sim_out$ratio_in;' &\n ";
|
|
|
}elsif ($simulator eq 'Modelsim gui'){
|
}elsif ($simulator eq 'Modelsim gui'){
|
add_info($info, "Run $bin with injection ratio of $ratio_in \% \n");
|
add_info($info, "Run $bin with injection ratio of $ratio_in \% \n");
|
my $out="$out_path/modelsim/work$c";
|
my $out="$out_path/modelsim/work$c";
|
$cmd="cd $out; sed -i \"s/ INJRATIO=\[\[:digit:\]\]\\+/ INJRATIO=$ratio_in/\" $out/sim_param.sv; rm -Rf rtl_work; $modelsim_bin/vsim -do $out/model.tcl -l $out_path/sim_out$ratio_in; ";
|
$cmd="cd $out; sed -i \"s/ INJRATIO=\[\[:digit:\]\]\\+/ INJRATIO=$ratio_in/\" $out/sim_param.sv; rm -Rf rtl_work; $vsim -do $out/model.tcl -l $out_path/sim_out$ratio_in; ";
|
|
|
}else{
|
}else{
|
add_info($info, "Run $bin with injection ratio of $ratio_in \% \n");
|
add_info($info, "Run $bin with injection ratio of $ratio_in \% \n");
|
$cmd="$bin -t \"$patern\" $pck_size -T $thread_num -n $PCK_NUM_LIMIT -c $SIM_CLOCK_LIMIT -i $ratio_in $classes $hotspot $custom > $out_path/sim_out$ratio_in & ";
|
$cmd="$bin -t \"$patern\" $pck_size -T $thread_num -n $PCK_NUM_LIMIT -c $SIM_CLOCK_LIMIT -i $ratio_in $classes $hotspot $custom > $out_path/sim_out$ratio_in & ";
|
|
|