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
Compare Revisions
- This comparison shows the changes necessary to convert path
/an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk/mpsoc/src_verilator
- from Rev 41 to Rev 42
- ↔ Reverse comparison
Rev 41 → Rev 42
/parameter.v
20,22 → 20,22
localparam C=0; |
localparam DEBUG_EN=0; |
localparam ADD_PIPREG_AFTER_CROSSBAR=1'b0; |
localparam FIRST_ARBITER_EXT_P_EN=1; |
localparam SWA_ARBITER_TYPE="RRA"; |
localparam FIRST_ARBITER_EXT_P_EN=1; |
localparam WEIGHTw=4; |
localparam AVC_ATOMIC_EN=0; |
localparam ROUTE_SUBFUNC="XY"; |
localparam MAX_SBP_NUM =0; |
localparam CLASS_SETTING={V{1'b1}}; |
localparam CVw=(C==0)? V : C * V; |
|
|
/* verilator lint_off WIDTH */ |
localparam P=(TOPOLOGY=="RING" || TOPOLOGY=="LINE")? 3 : 5; |
localparam ROUTE_TYPE = (ROUTE_NAME == "XY" || ROUTE_NAME == "TRANC_XY" )? "DETERMINISTIC" : |
(ROUTE_NAME == "DUATO" || ROUTE_NAME == "TRANC_DUATO" )? "FULL_ADAPTIVE": "PAR_ADAPTIVE"; |
/* verilator lint_on WIDTH */ |
//simulation parameter |
|
//simulation parameter |
localparam MAX_PCK_NUM = 100000000; |
localparam MAX_PCK_SIZ = 16383; |
localparam MAX_SIM_CLKs= 100000000; |
localparam TIMSTMP_FIFO_NUM = 16; |
|
|
`endif |
/simulator.cpp
30,9 → 30,9
|
#include "traffic_task_graph.h" |
|
#define STND_DEV_EN 1 |
|
|
|
//Vrouter *router; |
Vrouter *router[NC]; // Instantiation of module |
Vnoc *noc; |
81,9 → 81,17
|
|
#if (STND_DEV_EN) |
#include <math.h> |
//#include <math.h> |
double sqroot (double s){ |
int i; |
double root = s/3; |
if (s<=0) return 0; |
for(i=0;i<32;i++) root = (root +s/root)/2; |
return root; |
} |
|
double sum_clk_pow2=0; |
double sum_clk_pow2_per_class[C]={0}; |
double sum_clk_pow2_per_class[C]; |
double standard_dev( double , unsigned int, double); |
#endif |
|
615,6 → 623,8
if(ratio==RATIO_INIT) first_avg_latency_flit=avg_latency_flit; |
#if (STND_DEV_EN) |
std_dev= standard_dev( sum_clk_pow2,total_pck_num, avg_latency_flit); |
printf(" standard_dev = %f\n",std_dev); |
|
// sprintf(file_name,"%s_std.txt",out_file_name); |
//update_file( file_name,avg_throughput,std_dev); |
|
776,15 → 786,30
* ******************/ |
|
#if (STND_DEV_EN) |
/************************ |
* std_dev = sqrt[(B-A^2/N)/N] = sqrt [(B/N)- (A/N)^2] = sqrt [B/N - mean^2] |
* A = sum of the values |
* B = sum of the squarded values |
* *************/ |
|
|
double standard_dev( double sum_pow2, unsigned int total_num, double average){ |
double std_dev; |
|
/* |
double A, B, N; |
N= total_num; |
A= average * N; |
B= sum_pow2; |
|
std_dev = sum_pow2/(double)total_num; |
std_dev -= (average*average); |
A=(A*A)/N; |
std_dev = (B-A)/N; |
std_dev = sqrt(std_dev); |
*/ |
|
std_dev = sum_pow2/(double)total_num; //B/N |
std_dev -= (average*average);// (B/N) - mean^2 |
std_dev = sqroot(std_dev);// sqrt [B/N - mean^2] |
|
return std_dev; |
|
} |