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

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;
 
}

powered by: WebSVN 2.1.0

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