Line 9... |
Line 9... |
}
|
}
|
|
|
|
|
# NoC parameters:
|
# NoC parameters:
|
V=2 # number of VC per port
|
V=2 # number of VC per port
|
P=5 # number of port per router
|
TOPOLOGY="MESH" #"MESH" or "TORUS"
|
|
P="(TOPOLOGY==\"RING\")? 3 : 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=0
|
FIRST_ARBITER_EXT_P_EN=0
|
TOPOLOGY="MESH" #"MESH" or "TORUS"
|
|
ROUTE_NAME="XY" # Routing algorithm
|
ROUTE_NAME="XY" # 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"
|
|
|
|
|
CLASS_SETTING="{CVw{1'b1}}"
|
CLASS_SETTING="{CVw{1'b1}}"
|
|
|
|
SSA_EN="NO"
|
|
|
|
|
ADD_PIPREG_AFTER_CROSSBAR=0
|
ADD_PIPREG_AFTER_CROSSBAR=0
|
ADD_PIPREG_BEFORE_CROSSBAR=0
|
|
#simulation parameters:
|
#simulation parameters:
|
C0_p=100 # the percentage of injected packets with class 0
|
C0_p=100 # the percentage of injected packets with class 0
|
C1_p=0
|
C1_p=0
|
C2_p=0
|
C2_p=0
|
C3_p=0
|
C3_p=0
|
Line 84... |
Line 87... |
STND_DEV_EN=0 # 1: generate standard devision
|
STND_DEV_EN=0 # 1: generate standard devision
|
|
|
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 TOPOLOGY=\"$TOPOLOGY\";\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 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 C0_p=$C0_p;\n" >> parameter.v
|
printf " parameter C0_p=$C0_p;\n" >> parameter.v
|
printf " parameter C1_p=$C1_p;\n" >> parameter.v
|
printf " parameter C1_p=$C1_p;\n" >> parameter.v
|
printf " parameter C2_p=$C2_p;\n" >> parameter.v
|
printf " parameter C2_p=$C2_p;\n" >> parameter.v
|
Line 120... |
Line 124... |
printf " parameter DEBUG_EN=$DEBUG_EN;\n" >> parameter.v
|
printf " parameter DEBUG_EN=$DEBUG_EN;\n" >> parameter.v
|
printf " parameter ROUTE_SUBFUNC= \"$ROUTE_SUBFUNC\";\n">> parameter.v
|
printf " parameter ROUTE_SUBFUNC= \"$ROUTE_SUBFUNC\";\n">> parameter.v
|
printf " parameter AVC_ATOMIC_EN= $AVC_ATOMIC_EN;\n">> parameter.v
|
printf " parameter AVC_ATOMIC_EN= $AVC_ATOMIC_EN;\n">> parameter.v
|
printf " parameter AVG_LATENCY_METRIC= \"$AVG_LATENCY_METRIC\";\n">> parameter.v
|
printf " parameter AVG_LATENCY_METRIC= \"$AVG_LATENCY_METRIC\";\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 ADD_PIPREG_BEFORE_CROSSBAR= $ADD_PIPREG_BEFORE_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 " parameter SSA_EN= \"$SSA_EN\";\n">> parameter.v
|
printf " \n\n \`endif " >> parameter.v
|
printf " \n\n \`endif " >> parameter.v
|
|
|
|
|
}
|
}
|
|
|
Line 168... |
Line 172... |
printf "\t #define AVC_ATOMIC_EN $AVC_ATOMIC_EN\n" >> parameter.h
|
printf "\t #define AVC_ATOMIC_EN $AVC_ATOMIC_EN\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 STND_DEV_EN $STND_DEV_EN\n">> parameter.h
|
printf "\t #define STND_DEV_EN $STND_DEV_EN\n">> parameter.h
|
printf "\t #define AVG_LATENCY_METRIC \"$AVG_LATENCY_METRIC\"\n">> parameter.h
|
printf "\t #define AVG_LATENCY_METRIC \"$AVG_LATENCY_METRIC\"\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 ADD_PIPREG_BEFORE_CROSSBAR $ADD_PIPREG_BEFORE_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 "\t #define SSA_EN \"$SSA_EN\"\n" >> parameter.h
|
printf " \n\n #endif " >> parameter.h
|
printf " \n\n #endif " >> parameter.h
|
|
|
}
|
}
|
|
|
No newline at end of file
|
No newline at end of file
|