OpenCores
URL https://opencores.org/ocsvn/an-fpga-implementation-of-low-latency-noc-based-mpsoc/an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk

Subversion Repositories an-fpga-implementation-of-low-latency-noc-based-mpsoc

[/] [an-fpga-implementation-of-low-latency-noc-based-mpsoc/] [trunk/] [mpsoc/] [script/] [verilator_2D_mesh.sh] - Diff between revs 28 and 45

Only display areas with differences | Details | Blame | View Log

Rev 28 Rev 45
#!/bin/sh
#!/bin/bash
set -e
set -e
# Any subsequent commands which fail will cause the shell script to exit immediately
# Any subsequent commands which fail will cause the shell script to exit immediately
 
 
script_path=$(pwd)
script_path=$(pwd)
path=$script_path/..
path=$script_path/..
comp_path=$path/../adaptive_work/verilator
comp_path=$path/../adaptive_work/verilator
work_path=$comp_path/work
work_path=$comp_path/work
bin_path=$work_path/bin
bin_path=$work_path/bin
multiple_path=$work_path/multiple
multiple_path=$work_path/multiple
data_path=$multiple_path/data
data_path=$multiple_path/data
plot_path=$multiple_path/plot
plot_path=$multiple_path/plot
src_c_path=$path/src_c
src_c_path=$path/src_c
 
 
rm -Rf $multiple_path
rm -Rf $multiple_path
mkdir -p $data_path
mkdir -p $data_path
mkdir -p $plot_path
mkdir -p $plot_path
cp $path/src_c/plot $multiple_path/plot_bin
cp $path/src_c/plot $multiple_path/plot_bin
 
 
 
 
CORE_NUM(){
CORE_NUM(){
  # local variable x and y with passed args
  # local variable x and y with passed args
  local x=$1
  local x=$1
  local y=$2
  local y=$2
 
 
  echo $(( $x + ($y*$NX) ))
  echo $(( $x + ($y*$NX) ))
}
}
 
 
 
 
 
 
# NoC parameters:
# NoC parameters:
        V=4   # number of VC per port
        V=4   # number of VC per port
    P=5   # number of port per router
    P=5   # number of port per router
    B=4   # buffer space :flit per VC
    B=4   # buffer space :flit per VC
    NX=8  # number of node in x axis
    NX=8  # number of node in x axis
    NY=8  # number of node in y axis
    NY=8  # number of node in y axis
    C=1   #  number of flit class
    C=1   #  number of flit class
    Fpay=32     #flit payload width
    Fpay=32     #flit payload width
    MUX_TYPE="ONE_HOT"  #crossbar multiplexer type : "ONE_HOT" or "BINARY"
    MUX_TYPE="ONE_HOT"  #crossbar multiplexer type : "ONE_HOT" or "BINARY"
    VC_REALLOCATION_TYPE="NONATOMIC" # "ATOMIC" or "NONATOMIC"
    VC_REALLOCATION_TYPE="NONATOMIC" # "ATOMIC" or "NONATOMIC"
    COMBINATION_TYPE="COMB_NONSPEC" # "BASELINE" or "COMB_SPEC1" or "COMB_SPEC2" or "COMB_NONSPEC"
    COMBINATION_TYPE="COMB_NONSPEC" # "BASELINE" or "COMB_SPEC1" or "COMB_SPEC2" or "COMB_NONSPEC"
    FIRST_ARBITER_EXT_P_EN=1
    FIRST_ARBITER_EXT_P_EN=1
    TOPOLOGY="MESH" #"MESH" or "TORUS"
    TOPOLOGY="MESH" #"MESH" or "TORUS"
    ROUTE_NAME="DUATO" # Routing algorithm
    ROUTE_NAME="DUATO" # Routing algorithm
        #    mesh :  "XY"        , "WEST_FIRST"      , "NORTH_LAST"      , "NEGETIVE_FIRST"      , "DUATO"
        #    mesh :  "XY"        , "WEST_FIRST"      , "NORTH_LAST"      , "NEGETIVE_FIRST"      , "DUATO"
    #   torus:  "TRANC_XY"  , "TRANC_WEST_FIRST", "TRANC_NORTH_LAST", "TRANC_NEGETIVE_FIRST", "TRANC_DUATO"
    #   torus:  "TRANC_XY"  , "TRANC_WEST_FIRST", "TRANC_NORTH_LAST", "TRANC_NEGETIVE_FIRST", "TRANC_DUATO"
    CONGESTION_INDEX="VC" #"CREDIT","VC"
    CONGESTION_INDEX="VC" #"CREDIT","VC"
    CLASS_SETTING="4'b1111"
    CLASS_SETTING="4'b1111"
        #0: no class. packets can be sent to any available OVC
        #0: no class. packets can be sent to any available OVC
        #1: class field hold the binary number of VC which the packet can be sent to
        #1: class field hold the binary number of VC which the packet can be sent to
        #2: class field contains one-hot code of candidate OVCs
        #2: class field contains one-hot code of candidate OVCs
    #3: there are two class, class 0 is permitted to be sent to all OVCs VS. class 1 can candidate only half of VCs
    #3: there are two class, class 0 is permitted to be sent to all OVCs VS. class 1 can candidate only half of VCs
 
 
        DEBUG_EN=0 # 1 :do error checking on router, will reduce the simulation speed
        DEBUG_EN=0 # 1 :do error checking on router, will reduce the simulation speed
                        #0 : error checking is disabled
                        #0 : error checking is disabled
 
 
     CLASS_3_TRAFFIC_PATTERN=1
     CLASS_3_TRAFFIC_PATTERN=1
    #0: 25 % class 0 , 75 % class 1
    #0: 25 % class 0 , 75 % class 1
    #1: 50 % class 0 , 50 % class 1
    #1: 50 % class 0 , 50 % class 1
    #2: 75 % class 0 , 25 % class 1
    #2: 75 % class 0 , 25 % class 1
 
 
 # Simulation parameters:
 # Simulation parameters:
    TRAFFIC="RANDOM"     # "RANDOM","TRANSPOSE1","TRANSPOSE2","HOTSPOT","BIT_REVERSE","BIT_COMPLEMENT","CUSTOM"
    TRAFFIC="RANDOM"     # "RANDOM","TRANSPOSE1","TRANSPOSE2","HOTSPOT","BIT_REVERSE","BIT_COMPLEMENT","CUSTOM"
    #Hotspot Traffic setting
    #Hotspot Traffic setting
    HOTSPOT_PERCENTAGE=1                        #maximum 20
    HOTSPOT_PERCENTAGE=1                        #maximum 20
    HOTSOPT_NUM=4                                       #maximum 5
    HOTSOPT_NUM=4                                       #maximum 5
    HOTSPOT_CORE_1=$(CORE_NUM 2 2)
    HOTSPOT_CORE_1=$(CORE_NUM 2 2)
    HOTSPOT_CORE_2=$(CORE_NUM 5 2)
    HOTSPOT_CORE_2=$(CORE_NUM 5 2)
    HOTSPOT_CORE_3=$(CORE_NUM 2 5)
    HOTSPOT_CORE_3=$(CORE_NUM 2 5)
    HOTSPOT_CORE_4=$(CORE_NUM 5 5)
    HOTSPOT_CORE_4=$(CORE_NUM 5 5)
    HOTSPOT_CORE_5=$(CORE_NUM 2 2)
    HOTSPOT_CORE_5=$(CORE_NUM 2 2)
 
 
 
 
 
 
    TOTAL_PKT_PER_ROUTER=5000 #total number of packets which is sent by a router
    TOTAL_PKT_PER_ROUTER=5000 #total number of packets which is sent by a router
    MAX_DELAY_BTWN_PCKTS=64      # maximum delay between two consecutive packets
    MAX_DELAY_BTWN_PCKTS=64      # maximum delay between two consecutive packets
        ESCAP_VC_MASK="4'b0001"  # mask escape VC
        ESCAP_VC_MASK="4'b0001"  # mask escape VC
 
 
# Simulation C file constant:
# Simulation C file constant:
        PACKET_SIZE=2   # packet size in flit. Minimum is 2
        PACKET_SIZE=2   # packet size in flit. Minimum is 2
 
 
 
 
#       for minimal fully adaptive on 2D mesh paper
#       for minimal fully adaptive on 2D mesh paper
        ROUTING_SUBFUNCTION= "XY" # "XY" "NORTH_LAST"
        ROUTING_SUBFUNCTION= "XY" # "XY" "NORTH_LAST"
        AVC_REALLOCATION= ""
        AVC_REALLOCATION= ""
 
 
generate_parameter_v (){
generate_parameter_v (){
        printf " \`ifdef     INCLUDE_PARAM \n\n" >> parameter.v
        printf " \`ifdef     INCLUDE_PARAM \n\n" >> parameter.v
        printf " parameter V=$V;\n" >> parameter.v
        printf " parameter V=$V;\n" >> parameter.v
        printf " parameter P=$P;\n" >> parameter.v
        printf " parameter P=$P;\n" >> parameter.v
    printf " parameter B=$B;\n" >> parameter.v
    printf " parameter B=$B;\n" >> parameter.v
    printf " parameter NX=$NX;\n" >> parameter.v
    printf " parameter NX=$NX;\n" >> parameter.v
    printf " parameter NY=$NY;\n" >> parameter.v
    printf " parameter NY=$NY;\n" >> parameter.v
    printf " parameter C=$C;\n" >> parameter.v
    printf " parameter C=$C;\n" >> parameter.v
    printf " parameter Fpay=$Fpay;\n" >> parameter.v
    printf " parameter Fpay=$Fpay;\n" >> parameter.v
    printf " parameter MUX_TYPE=\"$MUX_TYPE\";\n" >> parameter.v
    printf " parameter MUX_TYPE=\"$MUX_TYPE\";\n" >> parameter.v
    printf " parameter VC_REALLOCATION_TYPE=\"$VC_REALLOCATION_TYPE\";\n" >> parameter.v
    printf " parameter VC_REALLOCATION_TYPE=\"$VC_REALLOCATION_TYPE\";\n" >> parameter.v
    printf " parameter COMBINATION_TYPE=\"$COMBINATION_TYPE\";\n" >> parameter.v
    printf " parameter COMBINATION_TYPE=\"$COMBINATION_TYPE\";\n" >> parameter.v
    printf " parameter FIRST_ARBITER_EXT_P_EN=$FIRST_ARBITER_EXT_P_EN;\n" >> parameter.v
    printf " parameter FIRST_ARBITER_EXT_P_EN=$FIRST_ARBITER_EXT_P_EN;\n" >> parameter.v
    printf " parameter TOPOLOGY=\"$TOPOLOGY\";\n" >> parameter.v
    printf " parameter TOPOLOGY=\"$TOPOLOGY\";\n" >> parameter.v
    printf " parameter ROUTE_NAME=\"$ROUTE_NAME\";\n" >> parameter.v
    printf " parameter ROUTE_NAME=\"$ROUTE_NAME\";\n" >> parameter.v
        printf " parameter CONGESTION_INDEX=\"$CONGESTION_INDEX\";\n" >> parameter.v
        printf " parameter CONGESTION_INDEX=\"$CONGESTION_INDEX\";\n" >> parameter.v
        printf " parameter CLASS_3_TRAFFIC_PATTERN=$CLASS_3_TRAFFIC_PATTERN;\n" >> parameter.v
        printf " parameter CLASS_3_TRAFFIC_PATTERN=$CLASS_3_TRAFFIC_PATTERN;\n" >> parameter.v
    printf " parameter TRAFFIC=\"$TRAFFIC\";\n" >> parameter.v
    printf " parameter TRAFFIC=\"$TRAFFIC\";\n" >> parameter.v
        printf " parameter HOTSPOT_PERCENTAGE=$HOTSPOT_PERCENTAGE;\n" >> parameter.v
        printf " parameter HOTSPOT_PERCENTAGE=$HOTSPOT_PERCENTAGE;\n" >> parameter.v
    printf " parameter HOTSOPT_NUM=$HOTSOPT_NUM;\n" >> parameter.v
    printf " parameter HOTSOPT_NUM=$HOTSOPT_NUM;\n" >> parameter.v
    printf " parameter HOTSPOT_CORE_1=$HOTSPOT_CORE_1;\n" >> parameter.v
    printf " parameter HOTSPOT_CORE_1=$HOTSPOT_CORE_1;\n" >> parameter.v
    printf " parameter HOTSPOT_CORE_2=$HOTSPOT_CORE_2;\n" >> parameter.v
    printf " parameter HOTSPOT_CORE_2=$HOTSPOT_CORE_2;\n" >> parameter.v
    printf " parameter HOTSPOT_CORE_3=$HOTSPOT_CORE_3;\n" >> parameter.v
    printf " parameter HOTSPOT_CORE_3=$HOTSPOT_CORE_3;\n" >> parameter.v
    printf " parameter HOTSPOT_CORE_4=$HOTSPOT_CORE_4;\n" >> parameter.v
    printf " parameter HOTSPOT_CORE_4=$HOTSPOT_CORE_4;\n" >> parameter.v
        printf " parameter HOTSPOT_CORE_5=$HOTSPOT_CORE_5;\n" >> parameter.v
        printf " parameter HOTSPOT_CORE_5=$HOTSPOT_CORE_5;\n" >> parameter.v
    printf " parameter TOTAL_PKT_PER_ROUTER=$TOTAL_PKT_PER_ROUTER;\n" >> parameter.v
    printf " parameter TOTAL_PKT_PER_ROUTER=$TOTAL_PKT_PER_ROUTER;\n" >> parameter.v
    printf " parameter MAX_DELAY_BTWN_PCKTS=$MAX_DELAY_BTWN_PCKTS;\n" >> parameter.v
    printf " parameter MAX_DELAY_BTWN_PCKTS=$MAX_DELAY_BTWN_PCKTS;\n" >> parameter.v
        printf " parameter DEBUG_EN=$DEBUG_EN;\n" >> parameter.v
        printf " parameter DEBUG_EN=$DEBUG_EN;\n" >> parameter.v
        printf " parameter ROUTE_TYPE = (ROUTE_NAME == \"XY\" || ROUTE_NAME == \"TRANC_XY\" )?    \"DETERMINISTIC\" : \n" >> parameter.v
        printf " parameter ROUTE_TYPE = (ROUTE_NAME == \"XY\" || ROUTE_NAME == \"TRANC_XY\" )?    \"DETERMINISTIC\" : \n" >> parameter.v
    printf "                                (ROUTE_NAME == \"DUATO\" || ROUTE_NAME == \"TRANC_DUATO\" )?   \"FULL_ADAPTIVE\": \"PAR_ADAPTIVE\"; \n" >> parameter.v
    printf "                                (ROUTE_NAME == \"DUATO\" || ROUTE_NAME == \"TRANC_DUATO\" )?   \"FULL_ADAPTIVE\": \"PAR_ADAPTIVE\"; \n" >> parameter.v
        printf " parameter ADD_PIPREG_AFTER_CROSSBAR= $ADD_PIPREG_AFTER_CROSSBAR;\n" >>  parameter.v
        printf " parameter ADD_PIPREG_AFTER_CROSSBAR= $ADD_PIPREG_AFTER_CROSSBAR;\n" >>  parameter.v
        printf " parameter CVw=(C==0)? V : C * V;\n" >>  parameter.v
        printf " parameter CVw=(C==0)? V : C * V;\n" >>  parameter.v
        printf " parameter [CVw-1:   0] CLASS_SETTING = $CLASS_SETTING;\n">>  parameter.v
        printf " parameter [CVw-1:   0] CLASS_SETTING = $CLASS_SETTING;\n">>  parameter.v
        printf " parameter [V-1 :       0] ESCAP_VC_MASK=$ESCAP_VC_MASK;\n" >> parameter.v
        printf " parameter [V-1 :       0] ESCAP_VC_MASK=$ESCAP_VC_MASK;\n" >> parameter.v
 
 
 
 
        printf " \n\n \`endif " >> parameter.v
        printf " \n\n \`endif " >> parameter.v
 
 
 
 
}
}
 
 
generate_parameter_h (){
generate_parameter_h (){
        printf " #ifndef     INCLUDE_PARAM\n " >> parameter.h
        printf " #ifndef     INCLUDE_PARAM\n " >> parameter.h
        printf " #define   INCLUDE_PARAM\n\n" >> parameter.h
        printf " #define   INCLUDE_PARAM\n\n" >> parameter.h
        printf "\t #define V    $V\n" >> parameter.h
        printf "\t #define V    $V\n" >> parameter.h
        printf "\t #define B    $B\n" >> parameter.h
        printf "\t #define B    $B\n" >> parameter.h
        printf "\t #define NX   $NX\n" >> parameter.h
        printf "\t #define NX   $NX\n" >> parameter.h
    printf "\t #define NY       $NY\n" >> parameter.h
    printf "\t #define NY       $NY\n" >> parameter.h
    printf "\t #define C        $C\n" >> parameter.h
    printf "\t #define C        $C\n" >> parameter.h
    printf "\t #define  Fpay    $Fpay\n" >> parameter.h
    printf "\t #define  Fpay    $Fpay\n" >> parameter.h
        printf "\t #define      MUX_TYPE    \"$MUX_TYPE\"\n" >> parameter.h
        printf "\t #define      MUX_TYPE    \"$MUX_TYPE\"\n" >> parameter.h
        printf "\t #define      VC_REALLOCATION_TYPE    \"$VC_REALLOCATION_TYPE\"\n" >> parameter.h
        printf "\t #define      VC_REALLOCATION_TYPE    \"$VC_REALLOCATION_TYPE\"\n" >> parameter.h
        printf "\t #define      COMBINATION_TYPE    \"$COMBINATION_TYPE\"\n" >> parameter.h
        printf "\t #define      COMBINATION_TYPE    \"$COMBINATION_TYPE\"\n" >> parameter.h
        printf "\t #define      FIRST_ARBITER_EXT_P_EN    $FIRST_ARBITER_EXT_P_EN\n" >> parameter.h
        printf "\t #define      FIRST_ARBITER_EXT_P_EN    $FIRST_ARBITER_EXT_P_EN\n" >> parameter.h
        printf "\t #define      TOPOLOGY    \"$TOPOLOGY\"\n" >> parameter.h
        printf "\t #define      TOPOLOGY    \"$TOPOLOGY\"\n" >> parameter.h
        printf "\t #define      ROUTE_NAME    \"$ROUTE_NAME\"\n" >> parameter.h
        printf "\t #define      ROUTE_NAME    \"$ROUTE_NAME\"\n" >> parameter.h
        printf "\t #define      CONGESTION_INDEX    \"$CONGESTION_INDEX\"\n" >> parameter.h
        printf "\t #define      CONGESTION_INDEX    \"$CONGESTION_INDEX\"\n" >> parameter.h
        printf "\t #define      CLASS_3_TRAFFIC_PATTERN    $CLASS_3_TRAFFIC_PATTERN\n" >> parameter.h
        printf "\t #define      CLASS_3_TRAFFIC_PATTERN    $CLASS_3_TRAFFIC_PATTERN\n" >> parameter.h
        printf "\t #define      TRAFFIC    \"$TRAFFIC\"\n" >> parameter.h
        printf "\t #define      TRAFFIC    \"$TRAFFIC\"\n" >> parameter.h
        printf "\t #define      HOTSPOT_PERCENTAGE    $HOTSPOT_PERCENTAGE\n" >> parameter.h
        printf "\t #define      HOTSPOT_PERCENTAGE    $HOTSPOT_PERCENTAGE\n" >> parameter.h
        printf "\t #define      HOTSOPT_NUM    $HOTSOPT_NUM\n" >> parameter.h
        printf "\t #define      HOTSOPT_NUM    $HOTSOPT_NUM\n" >> parameter.h
        printf "\t #define      HOTSPOT_CORE_1    $HOTSPOT_CORE_1\n" >> parameter.h
        printf "\t #define      HOTSPOT_CORE_1    $HOTSPOT_CORE_1\n" >> parameter.h
        printf "\t #define      HOTSPOT_CORE_2    $HOTSPOT_CORE_2\n" >> parameter.h
        printf "\t #define      HOTSPOT_CORE_2    $HOTSPOT_CORE_2\n" >> parameter.h
        printf "\t #define      HOTSPOT_CORE_3    $HOTSPOT_CORE_3\n" >> parameter.h
        printf "\t #define      HOTSPOT_CORE_3    $HOTSPOT_CORE_3\n" >> parameter.h
        printf "\t #define      HOTSPOT_CORE_4    $HOTSPOT_CORE_4\n" >> parameter.h
        printf "\t #define      HOTSPOT_CORE_4    $HOTSPOT_CORE_4\n" >> parameter.h
        printf "\t #define      HOTSPOT_CORE_5    $HOTSPOT_CORE_5\n" >> parameter.h
        printf "\t #define      HOTSPOT_CORE_5    $HOTSPOT_CORE_5\n" >> parameter.h
        printf "\t #define      TOTAL_PKT_PER_ROUTER    $TOTAL_PKT_PER_ROUTER\n" >> parameter.h
        printf "\t #define      TOTAL_PKT_PER_ROUTER    $TOTAL_PKT_PER_ROUTER\n" >> parameter.h
        printf "\t #define      MAX_DELAY_BTWN_PCKTS    $MAX_DELAY_BTWN_PCKTS\n" >> parameter.h
        printf "\t #define      MAX_DELAY_BTWN_PCKTS    $MAX_DELAY_BTWN_PCKTS\n" >> parameter.h
    printf "\t #define  PACKET_SIZE     $PACKET_SIZE\n" >> parameter.h
    printf "\t #define  PACKET_SIZE     $PACKET_SIZE\n" >> parameter.h
    printf "\t #define  DEBUG_EN        $DEBUG_EN       \n" >> parameter.h
    printf "\t #define  DEBUG_EN        $DEBUG_EN       \n" >> parameter.h
    printf "\t #define  ADD_PIPREG_AFTER_CROSSBAR  $ADD_PIPREG_AFTER_CROSSBAR\n" >>   parameter.h
    printf "\t #define  ADD_PIPREG_AFTER_CROSSBAR  $ADD_PIPREG_AFTER_CROSSBAR\n" >>   parameter.h
        printf "\t #define  CVw (C==0)? V : C * V\n" >>  parameter.h
        printf "\t #define  CVw (C==0)? V : C * V\n" >>  parameter.h
        printf "\t #define  CLASS_SETTING   \"$CLASS_SETTING\"\n">>  parameter.h
        printf "\t #define  CLASS_SETTING   \"$CLASS_SETTING\"\n">>  parameter.h
        printf "\t #define  ESCAP_VC_MASK       $ESCAP_VC_MASK\n">>  parameter.h
        printf "\t #define  ESCAP_VC_MASK       $ESCAP_VC_MASK\n">>  parameter.h
        printf " \n\n #endif " >> parameter.h
        printf " \n\n #endif " >> parameter.h
 
 
}
}
 
 
 
 
for PACKET_SIZE in  3 2 4 6
for PACKET_SIZE in  3 2 4 6
        do
        do
        for  TRAFFIC in  "RANDOM"  "TRANSPOSE1" "TRANSPOSE2"  "HOTSPOT"
        for  TRAFFIC in  "RANDOM"  "TRANSPOSE1" "TRANSPOSE2"  "HOTSPOT"
        do
        do
 
 
                for  ROUTE_NAME in "XY" "WEST_FIRST" "NORTH_LAST"  "NEGETIVE_FIRST"  "DUATO"
                for  ROUTE_NAME in "XY" "WEST_FIRST" "NORTH_LAST"  "NEGETIVE_FIRST"  "DUATO"
                do
                do
                        # regenerate NoC
                        # regenerate NoC
                        generate_parameter_v
                        generate_parameter_v
                        mv -f parameter.v ../src_verilator/
                        mv -f parameter.v ../src_verilator/
 
 
                        #verilate the NoC and make the library files
                        #verilate the NoC and make the library files
                        ./verilator_compile_hw.sh
                        ./verilator_compile_hw.sh
 
 
 
 
                        # compile the testbench file
                        # compile the testbench file
                        generate_parameter_h
                        generate_parameter_h
                        mv -f parameter.h ../src_verilator/
                        mv -f parameter.h ../src_verilator/
                        ./verilator_compile_sw.sh
                        ./verilator_compile_sw.sh
 
 
                        testnench_name=$ROUTE_NAME$TRAFFIC"_"$PACKET_SIZE
                        testnench_name=$ROUTE_NAME$TRAFFIC"_"$PACKET_SIZE
                        cp $bin_path/testbench $multiple_path/$testnench_name
                        cp $bin_path/testbench $multiple_path/$testnench_name
 
 
                done
                done
                #run multiple testbench files in the same time
                #run multiple testbench files in the same time
                cd $multiple_path
                cd $multiple_path
 
 
                for  ROUTE_NAME in "XY" "WEST_FIRST" "NORTH_LAST"  "NEGETIVE_FIRST"  "DUATO"
                for  ROUTE_NAME in "XY" "WEST_FIRST" "NORTH_LAST"  "NEGETIVE_FIRST"  "DUATO"
                do
                do
 
 
                        ./$ROUTE_NAME$TRAFFIC"_"$PACKET_SIZE $ROUTE_NAME$TRAFFIC"_"$PACKET_SIZE &
                        ./$ROUTE_NAME$TRAFFIC"_"$PACKET_SIZE $ROUTE_NAME$TRAFFIC"_"$PACKET_SIZE &
 
 
                done
                done
                # wait for all simulation to be done
                # wait for all simulation to be done
                wait
                wait
 
 
                # merge the result in one file
                # merge the result in one file
                for  ROUTE_NAME in "XY" "WEST_FIRST" "NORTH_LAST"  "NEGETIVE_FIRST"  "DUATO"
                for  ROUTE_NAME in "XY" "WEST_FIRST" "NORTH_LAST"  "NEGETIVE_FIRST"  "DUATO"
                do
                do
                data_file=$data_path/$TRAFFIC"_"$PACKET_SIZE"_all.txt"
                data_file=$data_path/$TRAFFIC"_"$PACKET_SIZE"_all.txt"
                plot_file=$plot_path/$TRAFFIC"_"$PACKET_SIZE".eps"
                plot_file=$plot_path/$TRAFFIC"_"$PACKET_SIZE".eps"
                testnench_name=$ROUTE_NAME$TRAFFIC"_"$PACKET_SIZE
                testnench_name=$ROUTE_NAME$TRAFFIC"_"$PACKET_SIZE
 
 
                        printf "#name:"$ROUTE_NAME"\n" >> $data_file
                        printf "#name:"$ROUTE_NAME"\n" >> $data_file
                        cat     $testnench_name"_all.txt" >> $data_file
                        cat     $testnench_name"_all.txt" >> $data_file
                        printf "\n\n" >> $data_file
                        printf "\n\n" >> $data_file
                        ./plot_bin $data_file  $plot_file "Injection ratio flits/node/clk" "Average latency clk" left
                        ./plot_bin $data_file  $plot_file "Injection ratio flits/node/clk" "Average latency clk" left
                        rm      $testnench_name*
                        rm      $testnench_name*
                done
                done
 
 
                cd $script_path
                cd $script_path
 
 
 
 
                done # ROUTE_NAME
                done # ROUTE_NAME
        done #TRAFFIC
        done #TRAFFIC
 
 
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.