From f2aa87a330dc68207088bf60828376f9fa454d72 Mon Sep 17 00:00:00 2001 From: Nick Date: Fri, 13 Sep 2019 08:02:14 -0400 Subject: Seems like multiple passes for reformatting comments --- src/gpuwattch/XML_Parse.cc | 6562 ++++++++++++++++++++++++++++++-------------- 1 file changed, 4508 insertions(+), 2054 deletions(-) (limited to 'src/gpuwattch/XML_Parse.cc') diff --git a/src/gpuwattch/XML_Parse.cc b/src/gpuwattch/XML_Parse.cc index 39bf2a1..1b9a38a 100644 --- a/src/gpuwattch/XML_Parse.cc +++ b/src/gpuwattch/XML_Parse.cc @@ -29,2102 +29,4556 @@ * ***************************************************************************/ /******************************************************************** -* Modified by: * -* Jingwen Leng, Univeristy of Texas, Austin * -* Syed Gilani, University of Wisconsin–Madison * -* Tayler Hetherington, University of British Columbia * -* Ahmed ElTantawy, University of British Columbia * -********************************************************************/ + * Modified by: + ** Jingwen Leng, Univeristy of Texas, Austin * Syed Gilani, + *University of Wisconsin–Madison * Tayler Hetherington, + *University of British Columbia * Ahmed ElTantawy, University of + *British Columbia * + ********************************************************************/ +#include "XML_Parse.h" #include -#include "xmlParser.h" #include -#include "XML_Parse.h" +#include "xmlParser.h" using namespace std; -const char * perf_count_label[] = {"TOT_INST,", "FP_INT,", "IC_H,", "IC_M,", "DC_RH,", "DC_RM,", "DC_WH,", "DC_WM,", - "TC_H,", "TC_M,", "CC_H,", "CC_M,", "SHRD_ACC,", "REG_RD,", "REG_WR,", "NON_REG_OPs,", - "SP_ACC,", "SFU_ACC,", "FPU_ACC,", "MEM_RD,","MEM_WR,", "MEM_PRE,", "L2_RH,", "L2_RM,", "L2_WH,", - "L2_WM,", "NOC_A,", "PIPE_A,", "IDLE_CORE_N,", "CONST_DYNAMICN"}; - -void ParseXML::parse(char* filepath) -{ - unsigned int i,j,k,m,n; - unsigned int NumofCom_4; - unsigned int itmp; - //Initialize all structures - ParseXML::initialize(); - string strtmp; - char chtmp[60]; - char chtmp1[60]; - chtmp1[0]='\0'; - // this open and parse the XML file: - XMLNode xMainNode=XMLNode::openFileHelper(filepath,"component"); //the 'component' in the first layer - - XMLNode xNode2=xMainNode.getChildNode("component"); // the 'component' in the second layer - //get all params in the second layer - itmp=xNode2.nChildNode("param"); - for(i=0; iOrderofComponents_3layer) - { - //___________________________get all system.core0-n________________________________________________ - if (sys.homogeneous_cores==1) OrderofComponents_3layer=0; - else OrderofComponents_3layer=sys.number_of_cores-1; - for (i=0; i<=OrderofComponents_3layer; i++) - { - xNode3=xNode2.getChildNode("component",i); - if (xNode3.isEmpty()==1) { - printf("The value of homogeneous_cores or number_of_cores is not correct!"); - exit(0); - } - else{ - if (strstr(xNode3.getAttribute("name"),"core")!=NULL) - { - { //For cpu0-cpui - //Get all params with system.core? - itmp=xNode3.nChildNode("param"); - for(k=0; k OrderofComponents_3layer) { + //___________________________get all + // system.core0-n________________________________________________ + if (sys.homogeneous_cores == 1) + OrderofComponents_3layer = 0; + else + OrderofComponents_3layer = sys.number_of_cores - 1; + for (i = 0; i <= OrderofComponents_3layer; i++) { + xNode3 = xNode2.getChildNode("component", i); + if (xNode3.isEmpty() == 1) { + printf( + "The value of homogeneous_cores or number_of_cores is not " + "correct!"); + exit(0); + } else { + if (strstr(xNode3.getAttribute("name"), "core") != NULL) { + { // For cpu0-cpui + // Get all params with system.core? + itmp = xNode3.nChildNode("param"); + for (k = 0; k < itmp; k++) { + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "clock_rate") == 0) { + sys.core[i].clock_rate = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "opt_local") == 0) { + sys.core[i].opt_local = (bool)atoi( + xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "x86") == 0) { + sys.core[i].x86 = (bool)atoi( + xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "machine_bits") == 0) { + sys.core[i].machine_bits = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "virtual_address_width") == 0) { + sys.core[i].virtual_address_width = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "physical_address_width") == 0) { + sys.core[i].physical_address_width = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "instruction_length") == 0) { + sys.core[i].instruction_length = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "opcode_width") == 0) { + sys.core[i].opcode_width = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "micro_opcode_width") == 0) { + sys.core[i].micro_opcode_width = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "machine_type") == 0) { + sys.core[i].machine_type = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "internal_datapath_width") == 0) { + sys.core[i].internal_datapath_width = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "number_hardware_threads") == 0) { + sys.core[i].number_hardware_threads = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "fetch_width") == 0) { + sys.core[i].fetch_width = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "number_instruction_fetch_ports") == 0) { + sys.core[i].number_instruction_fetch_ports = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "decode_width") == 0) { + sys.core[i].decode_width = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "issue_width") == 0) { + sys.core[i].issue_width = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "peak_issue_width") == 0) { + sys.core[i].peak_issue_width = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "commit_width") == 0) { + sys.core[i].commit_width = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "fp_issue_width") == 0) { + sys.core[i].fp_issue_width = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "prediction_width") == 0) { + sys.core[i].prediction_width = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } - } - } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "pipelines_per_core") == 0) { + strtmp.assign( + xNode3.getChildNode("param", k).getAttribute("value")); + m = 0; + for (n = 0; n < strtmp.length(); n++) { + if (strtmp[n] != ',') { + sprintf(chtmp, "%c", strtmp[n]); + strcat(chtmp1, chtmp); + } else { + sys.core[i].pipelines_per_core[m] = atoi(chtmp1); + m++; + chtmp1[0] = '\0'; + } + } + sys.core[i].pipelines_per_core[m] = atoi(chtmp1); + m++; + chtmp1[0] = '\0'; + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "pipeline_depth") == 0) { + strtmp.assign( + xNode3.getChildNode("param", k).getAttribute("value")); + m = 0; + for (n = 0; n < strtmp.length(); n++) { + if (strtmp[n] != ',') { + sprintf(chtmp, "%c", strtmp[n]); + strcat(chtmp1, chtmp); + } else { + sys.core[i].pipeline_depth[m] = atoi(chtmp1); + m++; + chtmp1[0] = '\0'; + } + } + sys.core[i].pipeline_depth[m] = atoi(chtmp1); + m++; + chtmp1[0] = '\0'; + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "FPU") == 0) { + strcpy(sys.core[i].FPU, + xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "divider_multiplier") == 0) { + strcpy(sys.core[i].divider_multiplier, + xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "ALU_per_core") == 0) { + sys.core[i].ALU_per_core = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "FPU_per_core") == 0) { + sys.core[i].FPU_per_core = + atof(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "MUL_per_core") == 0) { + sys.core[i].MUL_per_core = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "instruction_buffer_size") == 0) { + sys.core[i].instruction_buffer_size = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "decoded_stream_buffer_size") == 0) { + sys.core[i].decoded_stream_buffer_size = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "instruction_window_scheme") == 0) { + sys.core[i].instruction_window_scheme = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "instruction_window_size") == 0) { + sys.core[i].instruction_window_size = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "fp_instruction_window_size") == 0) { + sys.core[i].fp_instruction_window_size = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "ROB_size") == 0) { + sys.core[i].ROB_size = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "rf_banks") == 0) { + sys.core[i].rf_banks = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "simd_width") == 0) { + sys.core[i].simd_width = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "collector_units") == 0) { + sys.core[i].collector_units = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "core_clock_ratio") == 0) { + sys.core[i].core_clock_ratio = + atof(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "warp_size") == 0) { + sys.core[i].warp_size = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } - if (strcmp(xNode4.getAttribute("name"),"BTB")==0) - {//find system.core0.BTB - itmp=xNode4.nChildNode("param"); - for(k=0; k0) OrderofComponents_3layer=OrderofComponents_3layer+1; - xNode3=xNode2.getChildNode("component",OrderofComponents_3layer); - if (xNode3.isEmpty()==1) { - printf("some value(s) of number_of_cores/number_of_L2s/number_of_L3s/number_of_NoCs is/are not correct!"); - exit(0); - } - if (strstr(xNode3.getAttribute("id"),"system.mem")!=NULL) - { + //__________________________________________Get + // system.L2[0..n]____________________________________________ + w = OrderofComponents_3layer + 1; + tmpOrderofComponents_3layer = OrderofComponents_3layer; + if (sys.homogeneous_L2s == 1) + OrderofComponents_3layer = OrderofComponents_3layer + 1; + else + OrderofComponents_3layer = OrderofComponents_3layer + sys.number_of_L2s; - itmp=xNode3.nChildNode("param"); - for(k=0; k0) OrderofComponents_3layer=OrderofComponents_3layer+1; - xNode3=xNode2.getChildNode("component",OrderofComponents_3layer); - if (xNode3.isEmpty()==1) { - printf("some value(s) of number_of_cores/number_of_L2s/number_of_L3s/number_of_NoCs is/are not correct!"); - exit(0); - } - if (strstr(xNode3.getAttribute("id"),"system.mc")!=NULL) - { - itmp=xNode3.nChildNode("param"); - for(k=0; k0) OrderofComponents_3layer=OrderofComponents_3layer+1; - xNode3=xNode2.getChildNode("component",OrderofComponents_3layer); - if (xNode3.isEmpty()==1) { - printf("some value(s) of number_of_cores/number_of_L2s/number_of_L3s/number_of_NoCs is/are not correct!"); - exit(0); - } - if (strstr(xNode3.getAttribute("id"),"system.niu")!=NULL) - { - itmp=xNode3.nChildNode("param"); - for(k=0; k0) OrderofComponents_3layer=OrderofComponents_3layer+1; - xNode3=xNode2.getChildNode("component",OrderofComponents_3layer); - if (xNode3.isEmpty()==1) { - printf("some value(s) of number_of_cores/number_of_L2s/number_of_L3s/number_of_NoCs is/are not correct!"); - exit(0); - } - if (strstr(xNode3.getAttribute("id"),"system.pcie")!=NULL) - { - itmp=xNode3.nChildNode("param"); - for(k=0; k0) OrderofComponents_3layer=OrderofComponents_3layer+1; - xNode3=xNode2.getChildNode("component",OrderofComponents_3layer); - if (xNode3.isEmpty()==1) { - printf("some value(s) of number_of_cores/number_of_L2s/number_of_L3s/number_of_NoCs is/are not correct!"); - exit(0); - } - if (strstr(xNode3.getAttribute("id"),"system.flashc")!=NULL) - { - itmp=xNode3.nChildNode("param"); - for(k=0; k 0) + OrderofComponents_3layer = OrderofComponents_3layer + 1; + xNode3 = xNode2.getChildNode("component", OrderofComponents_3layer); + if (xNode3.isEmpty() == 1) { + printf( + "some value(s) of " + "number_of_cores/number_of_L2s/number_of_L3s/number_of_NoCs is/are " + "not correct!"); + exit(0); + } + if (strstr(xNode3.getAttribute("id"), "system.mem") != NULL) { + itmp = xNode3.nChildNode("param"); + for (k = 0; k < itmp; k++) { // get all items of param in system.mem + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "mem_tech_node") == 0) { + sys.mem.mem_tech_node = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "device_clock") == 0) { + sys.mem.device_clock = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "peak_transfer_rate") == 0) { + sys.mem.peak_transfer_rate = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "capacity_per_channel") == 0) { + sys.mem.capacity_per_channel = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "number_ranks") == 0) { + sys.mem.number_ranks = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "num_banks_of_DRAM_chip") == 0) { + sys.mem.num_banks_of_DRAM_chip = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "Block_width_of_DRAM_chip") == 0) { + sys.mem.Block_width_of_DRAM_chip = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "output_width_of_DRAM_chip") == 0) { + sys.mem.output_width_of_DRAM_chip = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "page_size_of_DRAM_chip") == 0) { + sys.mem.page_size_of_DRAM_chip = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "burstlength_of_DRAM_chip") == 0) { + sys.mem.burstlength_of_DRAM_chip = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "internal_prefetch_of_DRAM_chip") == 0) { + sys.mem.internal_prefetch_of_DRAM_chip = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + } + itmp = xNode3.nChildNode("stat"); + for (k = 0; k < itmp; k++) { // get all items of stat in system.mem + if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), + "memory_accesses") == 0) { + sys.mem.memory_accesses = + atof(xNode3.getChildNode("stat", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), + "memory_reads") == 0) { + sys.mem.memory_reads = + atof(xNode3.getChildNode("stat", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), + "memory_writes") == 0) { + sys.mem.memory_writes = + atof(xNode3.getChildNode("stat", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), + "dram_pre") == 0) { + sys.mem.dram_pre = + atof(xNode3.getChildNode("stat", k).getAttribute("value")); + continue; + } + } + } else { + printf( + "some value(s) of " + "number_of_cores/number_of_L2s/number_of_L3s/number_of_NoCs is/are " + "not correct!"); + exit(0); + } + //__________________________________________Get + // system.mc____________________________________________ + if (OrderofComponents_3layer > 0) + OrderofComponents_3layer = OrderofComponents_3layer + 1; + xNode3 = xNode2.getChildNode("component", OrderofComponents_3layer); + if (xNode3.isEmpty() == 1) { + printf( + "some value(s) of " + "number_of_cores/number_of_L2s/number_of_L3s/number_of_NoCs is/are " + "not correct!"); + exit(0); + } + if (strstr(xNode3.getAttribute("id"), "system.mc") != NULL) { + itmp = xNode3.nChildNode("param"); + for (k = 0; k < itmp; k++) { // get all items of param in system.mem + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "mc_clock") == 0) { + sys.mc.mc_clock = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "block_size") == 0) { + sys.mc.llc_line_length = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "number_mcs") == 0) { + sys.mc.number_mcs = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "memory_channels_per_mc") == 0) { + sys.mc.memory_channels_per_mc = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "req_window_size_per_channel") == 0) { + sys.mc.req_window_size_per_channel = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "IO_buffer_size_per_channel") == 0) { + sys.mc.IO_buffer_size_per_channel = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "databus_width") == 0) { + sys.mc.databus_width = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "addressbus_width") == 0) { + sys.mc.addressbus_width = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "PRT_entries") == 0) { + sys.mc.PRT_entries = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "peak_transfer_rate") == 0) { + sys.mc.peak_transfer_rate = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "number_ranks") == 0) { + sys.mc.number_ranks = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "LVDS") == 0) { + sys.mc.LVDS = + (bool)atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "type") == 0) { + sys.mc.type = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "withPHY") == 0) { + sys.mc.withPHY = + (bool)atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } - } - } - else{ - printf("some value(s) of number_of_cores/number_of_L2s/number_of_L3s/number_of_NoCs is/are not correct!"); - exit(0); - } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "dram_cmd_coeff") == 0) { + sys.mc.dram_cmd_coeff = + atof(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "dram_act_coeff") == 0) { + sys.mc.dram_act_coeff = + atof(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "dram_nop_coeff") == 0) { + sys.mc.dram_nop_coeff = + atof(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "dram_activity_coeff") == 0) { + sys.mc.dram_activity_coeff = + atof(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "dram_pre_coeff") == 0) { + sys.mc.dram_pre_coeff = + atof(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "dram_rd_coeff") == 0) { + sys.mc.dram_rd_coeff = + atof(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "dram_wr_coeff") == 0) { + sys.mc.dram_wr_coeff = + atof(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "dram_req_coeff") == 0) { + sys.mc.dram_req_coeff = + atof(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "dram_const_coeff") == 0) { + sys.mc.dram_const_coeff = + atof(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + } + itmp = xNode3.nChildNode("stat"); + for (k = 0; k < itmp; + k++) { // get all items of stat in system.mendirectory + if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), + "memory_accesses") == 0) { + sys.mc.memory_accesses = + atof(xNode3.getChildNode("stat", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), + "memory_reads") == 0) { + sys.mc.memory_reads = + atof(xNode3.getChildNode("stat", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), + "memory_writes") == 0) { + sys.mc.memory_writes = + atof(xNode3.getChildNode("stat", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), + "dram_pre") == 0) { + sys.mc.dram_pre = + atof(xNode3.getChildNode("stat", k).getAttribute("value")); + continue; + } + } + } else { + printf( + "some value(s) of " + "number_of_cores/number_of_L2s/number_of_L3s/number_of_NoCs is/are " + "not correct!"); + exit(0); + } + //__________________________________________Get + // system.niu____________________________________________ + if (OrderofComponents_3layer > 0) + OrderofComponents_3layer = OrderofComponents_3layer + 1; + xNode3 = xNode2.getChildNode("component", OrderofComponents_3layer); + if (xNode3.isEmpty() == 1) { + printf( + "some value(s) of " + "number_of_cores/number_of_L2s/number_of_L3s/number_of_NoCs is/are " + "not correct!"); + exit(0); + } + if (strstr(xNode3.getAttribute("id"), "system.niu") != NULL) { + itmp = xNode3.nChildNode("param"); + for (k = 0; k < itmp; k++) { // get all items of param in system.mem + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "clockrate") == 0) { + sys.niu.clockrate = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "number_units") == 0) { + sys.niu.number_units = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "type") == 0) { + sys.niu.type = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + } + itmp = xNode3.nChildNode("stat"); + for (k = 0; k < itmp; + k++) { // get all items of stat in system.mendirectory + if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), + "duty_cycle") == 0) { + sys.niu.duty_cycle = + atof(xNode3.getChildNode("stat", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), + "total_load_perc") == 0) { + sys.niu.total_load_perc = + atof(xNode3.getChildNode("stat", k).getAttribute("value")); + continue; + } + } + } else { + printf( + "some value(s) of " + "number_of_cores/number_of_L2s/number_of_L3s/number_of_NoCs is/are " + "not correct!"); + exit(0); + } - } + //__________________________________________Get + // system.pcie____________________________________________ + if (OrderofComponents_3layer > 0) + OrderofComponents_3layer = OrderofComponents_3layer + 1; + xNode3 = xNode2.getChildNode("component", OrderofComponents_3layer); + if (xNode3.isEmpty() == 1) { + printf( + "some value(s) of " + "number_of_cores/number_of_L2s/number_of_L3s/number_of_NoCs is/are " + "not correct!"); + exit(0); + } + if (strstr(xNode3.getAttribute("id"), "system.pcie") != NULL) { + itmp = xNode3.nChildNode("param"); + for (k = 0; k < itmp; k++) { // get all items of param in system.mem + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "clockrate") == 0) { + sys.pcie.clockrate = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "number_units") == 0) { + sys.pcie.number_units = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "num_channels") == 0) { + sys.pcie.num_channels = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "type") == 0) { + sys.pcie.type = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "withPHY") == 0) { + sys.pcie.withPHY = + (bool)atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + } + itmp = xNode3.nChildNode("stat"); + for (k = 0; k < itmp; + k++) { // get all items of stat in system.mendirectory + if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), + "duty_cycle") == 0) { + sys.pcie.duty_cycle = + atof(xNode3.getChildNode("stat", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), + "total_load_perc") == 0) { + sys.pcie.total_load_perc = + atof(xNode3.getChildNode("stat", k).getAttribute("value")); + continue; + } + } + } else { + printf( + "some value(s) of " + "number_of_cores/number_of_L2s/number_of_L3s/number_of_NoCs is/are " + "not correct!"); + exit(0); + } + //__________________________________________Get + // system.flashcontroller____________________________________________ + if (OrderofComponents_3layer > 0) + OrderofComponents_3layer = OrderofComponents_3layer + 1; + xNode3 = xNode2.getChildNode("component", OrderofComponents_3layer); + if (xNode3.isEmpty() == 1) { + printf( + "some value(s) of " + "number_of_cores/number_of_L2s/number_of_L3s/number_of_NoCs is/are " + "not correct!"); + exit(0); + } + if (strstr(xNode3.getAttribute("id"), "system.flashc") != NULL) { + itmp = xNode3.nChildNode("param"); + for (k = 0; k < itmp; k++) { // get all items of param in system.mem + // if + //(strcmp(xNode3.getChildNode("param",k).getAttribute("name"),"flashc_clock")==0) + //{sys.flashc.mc_clock=atoi(xNode3.getChildNode("param",k).getAttribute("value"));continue;} + // if + //(strcmp(xNode3.getChildNode("param",k).getAttribute("name"),"block_size")==0) + //{sys.flashc.llc_line_length=atoi(xNode3.getChildNode("param",k).getAttribute("value"));continue;} + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "number_flashcs") == 0) { + sys.flashc.number_mcs = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + // if + //(strcmp(xNode3.getChildNode("param",k).getAttribute("name"),"memory_channels_per_flashc")==0) + //{sys.flashc.memory_channels_per_mc=atoi(xNode3.getChildNode("param",k).getAttribute("value"));continue;} + // if + //(strcmp(xNode3.getChildNode("param",k).getAttribute("name"),"req_window_size_per_channel")==0) + //{sys.flashc.req_window_size_per_channel=atoi(xNode3.getChildNode("param",k).getAttribute("value"));continue;} + // if + //(strcmp(xNode3.getChildNode("param",k).getAttribute("name"),"IO_buffer_size_per_channel")==0) + //{sys.flashc.IO_buffer_size_per_channel=atoi(xNode3.getChildNode("param",k).getAttribute("value"));continue;} + // if + //(strcmp(xNode3.getChildNode("param",k).getAttribute("name"),"databus_width")==0) + //{sys.flashc.databus_width=atoi(xNode3.getChildNode("param",k).getAttribute("value"));continue;} + // if + //(strcmp(xNode3.getChildNode("param",k).getAttribute("name"),"addressbus_width")==0) + //{sys.flashc.addressbus_width=atoi(xNode3.getChildNode("param",k).getAttribute("value"));continue;} + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "peak_transfer_rate") == 0) { + sys.flashc.peak_transfer_rate = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + // if + //(strcmp(xNode3.getChildNode("param",k).getAttribute("name"),"number_ranks")==0) + //{sys.flashc.number_ranks=atoi(xNode3.getChildNode("param",k).getAttribute("value"));continue;} + // if + //(strcmp(xNode3.getChildNode("param",k).getAttribute("name"),"LVDS")==0) + //{sys.flashc.LVDS=(bool)atoi(xNode3.getChildNode("param",k).getAttribute("value"));continue;} + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "type") == 0) { + sys.flashc.type = + atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("param", k).getAttribute("name"), + "withPHY") == 0) { + sys.flashc.withPHY = + (bool)atoi(xNode3.getChildNode("param", k).getAttribute("value")); + continue; + } + } + itmp = xNode3.nChildNode("stat"); + for (k = 0; k < itmp; + k++) { // get all items of stat in system.mendirectory + // if + //(strcmp(xNode3.getChildNode("stat",k).getAttribute("name"),"memory_accesses")==0) + //{sys.flashc.memory_accesses=atof(xNode3.getChildNode("stat",k).getAttribute("value"));continue;} + // if + //(strcmp(xNode3.getChildNode("stat",k).getAttribute("name"),"memory_reads")==0) + //{sys.flashc.memory_reads=atof(xNode3.getChildNode("stat",k).getAttribute("value"));continue;} + // if + //(strcmp(xNode3.getChildNode("stat",k).getAttribute("name"),"memory_writes")==0) + //{sys.flashc.memory_writes=atof(xNode3.getChildNode("stat",k).getAttribute("value"));continue;} + if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), + "duty_cycle") == 0) { + sys.flashc.duty_cycle = + atof(xNode3.getChildNode("stat", k).getAttribute("value")); + continue; + } + if (strcmp(xNode3.getChildNode("stat", k).getAttribute("name"), + "total_load_perc") == 0) { + sys.flashc.total_load_perc = + atof(xNode3.getChildNode("stat", k).getAttribute("value")); + continue; + } + } + } else { + printf( + "some value(s) of " + "number_of_cores/number_of_L2s/number_of_L3s/number_of_NoCs is/are " + "not correct!"); + exit(0); + } + } } -void ParseXML::initialize() //Initialize all +void ParseXML::initialize() // Initialize all { - //All number_of_* at the level of 'system' 03/21/2009 - sys.number_of_cores=1; - sys.architecture=1; //1 - fermi - sys.number_of_L1Directories=1; - sys.number_of_L2Directories=1; - sys.number_of_L2s=1; - sys.Private_L2 = false; - sys.number_of_L3s=1; - sys.number_of_NoCs=1; - // All params at the level of 'system' - //strcpy(sys.homogeneous_cores,"default"); - sys.core_tech_node=1; - sys.target_core_clockrate=1; - sys.target_chip_area=1; - sys.temperature=1; - sys.number_cache_levels=1; - sys.homogeneous_cores=1; - sys.homogeneous_L1Directories=1; - sys.homogeneous_L2Directories=1; - sys.homogeneous_L2s=1; - sys.homogeneous_L3s=1; - sys.homogeneous_NoCs=1; - sys.homogeneous_ccs=1; + // All number_of_* at the level of 'system' 03/21/2009 + sys.number_of_cores = 1; + sys.architecture = 1; // 1 - fermi + sys.number_of_L1Directories = 1; + sys.number_of_L2Directories = 1; + sys.number_of_L2s = 1; + sys.Private_L2 = false; + sys.number_of_L3s = 1; + sys.number_of_NoCs = 1; + // All params at the level of 'system' + // strcpy(sys.homogeneous_cores,"default"); + sys.core_tech_node = 1; + sys.target_core_clockrate = 1; + sys.target_chip_area = 1; + sys.temperature = 1; + sys.number_cache_levels = 1; + sys.homogeneous_cores = 1; + sys.homogeneous_L1Directories = 1; + sys.homogeneous_L2Directories = 1; + sys.homogeneous_L2s = 1; + sys.homogeneous_L3s = 1; + sys.homogeneous_NoCs = 1; + sys.homogeneous_ccs = 1; - sys.Max_area_deviation=1; - sys.Max_power_deviation=1; - sys.device_type=1; - sys.longer_channel_device =true; - sys.Embedded =false; - sys.opt_dynamic_power=false; - sys.opt_lakage_power=false; - sys.opt_clockrate=true; - sys.opt_area=false; - sys.interconnect_projection_type=1; - sys.idle_core_power=0; - int i,j; - for (i=0; i<=63; i++) - { - sys.scaling_coefficients[i]=1; - sys.core[i].clock_rate=1; - sys.core[i].opt_local = true; - sys.core[i].x86 = false; - sys.core[i].machine_bits=1; - sys.core[i].virtual_address_width=1; - sys.core[i].physical_address_width=1; - sys.core[i].opcode_width=1; - sys.core[i].micro_opcode_width=1; - //strcpy(sys.core[i].machine_type,"default"); - sys.core[i].internal_datapath_width=1; - sys.core[i].number_hardware_threads=1; - sys.core[i].fetch_width=1; - sys.core[i].number_instruction_fetch_ports=1; - sys.core[i].decode_width=1; - sys.core[i].issue_width=1; - sys.core[i].peak_issue_width=1; - sys.core[i].commit_width=1; - for (j=0; j<20; j++) sys.core[i].pipelines_per_core[j]=1; - for (j=0; j<20; j++) sys.core[i].pipeline_depth[j]=1; - strcpy(sys.core[i].FPU,"default"); - strcpy(sys.core[i]. divider_multiplier,"default"); - sys.core[i].ALU_per_core=1; - sys.core[i].FPU_per_core=1.0; - sys.core[i].MUL_per_core=1; - sys.core[i].instruction_buffer_size=1; - sys.core[i].decoded_stream_buffer_size=1; - //strcpy(sys.core[i].instruction_window_scheme,"default"); - sys.core[i].instruction_window_size=1; - sys.core[i].ROB_size=1; - sys.core[i].archi_Regs_IRF_size=1; - sys.core[i].archi_Regs_FRF_size=1; - sys.core[i].phy_Regs_IRF_size=1; - sys.core[i].phy_Regs_FRF_size=1; - //strcpy(sys.core[i].rename_scheme,"default"); - sys.core[i].register_windows_size=1; - strcpy(sys.core[i].LSU_order,"default"); - sys.core[i].store_buffer_size=1; - sys.core[i].load_buffer_size=1; - sys.core[i].memory_ports=1; - strcpy(sys.core[i].Dcache_dual_pump,"default"); - sys.core[i].RAS_size=1; - //all stats at the level of system.core(0-n) - sys.core[i].total_instructions=1; - sys.core[i].int_instructions=1; - sys.core[i].fp_instructions=1; - sys.core[i].branch_instructions=1; - sys.core[i].branch_mispredictions=1; - sys.core[i].committed_instructions=1; - sys.core[i].load_instructions=1; - sys.core[i].store_instructions=1; - sys.core[i].total_cycles=1; - sys.core[i].idle_cycles=1; - sys.core[i].busy_cycles=1; - sys.core[i].instruction_buffer_reads=1; - sys.core[i].instruction_buffer_write=1; - sys.core[i].ROB_reads=1; - sys.core[i].ROB_writes=1; - sys.core[i].rename_accesses=1; - sys.core[i].inst_window_reads=1; - sys.core[i].inst_window_writes=1; - sys.core[i].inst_window_wakeup_accesses=1; - sys.core[i].inst_window_selections=1; - sys.core[i].archi_int_regfile_reads=1; - sys.core[i].archi_float_regfile_reads=1; - sys.core[i].phy_int_regfile_reads=1; - sys.core[i].phy_float_regfile_reads=1; - sys.core[i].windowed_reg_accesses=1; - sys.core[i].windowed_reg_transports=1; - sys.core[i].function_calls=1; - sys.core[i].ialu_accesses=1; - sys.core[i].fpu_accesses=1; - sys.core[i].mul_accesses=1; - sys.core[i].cdb_alu_accesses=1; - sys.core[i].cdb_mul_accesses=1; - sys.core[i].cdb_fpu_accesses=1; - sys.core[i].load_buffer_reads=1; - sys.core[i].load_buffer_writes=1; - sys.core[i].load_buffer_cams=1; - sys.core[i].store_buffer_reads=1; - sys.core[i].store_buffer_writes=1; - sys.core[i].store_buffer_cams=1; - sys.core[i].store_buffer_forwards=1; - sys.core[i].main_memory_access=1; - sys.core[i].main_memory_read=1; - sys.core[i].main_memory_write=1; - sys.core[i].IFU_duty_cycle = 1; - sys.core[i].BR_duty_cycle = 1; - sys.core[i].LSU_duty_cycle = 1; - sys.core[i].MemManU_I_duty_cycle =1; - sys.core[i].MemManU_D_duty_cycle =1; - sys.core[i].ALU_duty_cycle =1; - sys.core[i].MUL_duty_cycle =1; - sys.core[i].FPU_duty_cycle =1; - sys.core[i].ALU_cdb_duty_cycle =1; - sys.core[i].MUL_cdb_duty_cycle =1; - sys.core[i].FPU_cdb_duty_cycle =1; - //system.core?.predictor - sys.core[i].predictor.prediction_width=1; - strcpy(sys.core[i].predictor.prediction_scheme,"default"); - sys.core[i].predictor.predictor_size=1; - sys.core[i].predictor.predictor_entries=1; - sys.core[i].predictor.local_predictor_entries=1; - for (j=0; j<20; j++) sys.core[i].predictor.local_predictor_size[j]=1; - sys.core[i].predictor.global_predictor_entries=1; - sys.core[i].predictor.global_predictor_bits=1; - sys.core[i].predictor.chooser_predictor_entries=1; - sys.core[i].predictor.chooser_predictor_bits=1; - sys.core[i].predictor.predictor_accesses=1; - //system.core?.itlb - sys.core[i].itlb.number_entries=1; - sys.core[i].itlb.total_hits=1; - sys.core[i].itlb.total_accesses=1; - sys.core[i].itlb.total_misses=1; - //system.core?.icache - for (j=0; j<20; j++) sys.core[i].icache.icache_config[j]=1; - //strcpy(sys.core[i].icache.buffer_sizes,"default"); - sys.core[i].icache.total_accesses=1; - sys.core[i].icache.read_accesses=1; - sys.core[i].icache.read_misses=1; - sys.core[i].icache.replacements=1; - sys.core[i].icache.read_hits=1; - sys.core[i].icache.total_hits=1; - sys.core[i].icache.total_misses=1; - sys.core[i].icache.miss_buffer_access=1; - sys.core[i].icache.fill_buffer_accesses=1; - sys.core[i].icache.prefetch_buffer_accesses=1; - sys.core[i].icache.prefetch_buffer_writes=1; - sys.core[i].icache.prefetch_buffer_reads=1; - sys.core[i].icache.prefetch_buffer_hits=1; - //system.core?.dtlb - sys.core[i].dtlb.number_entries=1; - sys.core[i].dtlb.total_accesses=1; - sys.core[i].dtlb.read_accesses=1; - sys.core[i].dtlb.write_accesses=1; - sys.core[i].dtlb.write_hits=1; - sys.core[i].dtlb.read_hits=1; - sys.core[i].dtlb.read_misses=1; - sys.core[i].dtlb.write_misses=1; - sys.core[i].dtlb.total_hits=1; - sys.core[i].dtlb.total_misses=1; - //system.core?.dcache - for (j=0; j<20; j++) sys.core[i].dcache.dcache_config[j]=1; - //strcpy(sys.core[i].dcache.buffer_sizes,"default"); - sys.core[i].dcache.total_accesses=1; - sys.core[i].dcache.read_accesses=1; - sys.core[i].dcache.write_accesses=1; - sys.core[i].dcache.total_hits=1; - sys.core[i].dcache.total_misses=1; - sys.core[i].dcache.read_hits=1; - sys.core[i].dcache.write_hits=1; - sys.core[i].dcache.read_misses=1; - sys.core[i].dcache.write_misses=1; - sys.core[i].dcache.replacements=1; - sys.core[i].dcache.write_backs=1; - sys.core[i].dcache.miss_buffer_access=1; - sys.core[i].dcache.fill_buffer_accesses=1; - sys.core[i].dcache.prefetch_buffer_accesses=1; - sys.core[i].dcache.prefetch_buffer_writes=1; - sys.core[i].dcache.prefetch_buffer_reads=1; - sys.core[i].dcache.prefetch_buffer_hits=1; - sys.core[i].dcache.wbb_writes=1; - sys.core[i].dcache.wbb_reads=1; - //system.core?.BTB - for (j=0; j<20; j++) sys.core[i].BTB.BTB_config[j]=1; - sys.core[i].BTB.total_accesses=1; - sys.core[i].BTB.read_accesses=1; - sys.core[i].BTB.write_accesses=1; - sys.core[i].BTB.total_hits=1; - sys.core[i].BTB.total_misses=1; - sys.core[i].BTB.read_hits=1; - sys.core[i].BTB.write_hits=1; - sys.core[i].BTB.read_misses=1; - sys.core[i].BTB.write_misses=1; - sys.core[i].BTB.replacements=1; - } + sys.Max_area_deviation = 1; + sys.Max_power_deviation = 1; + sys.device_type = 1; + sys.longer_channel_device = true; + sys.Embedded = false; + sys.opt_dynamic_power = false; + sys.opt_lakage_power = false; + sys.opt_clockrate = true; + sys.opt_area = false; + sys.interconnect_projection_type = 1; + sys.idle_core_power = 0; + int i, j; + for (i = 0; i <= 63; i++) { + sys.scaling_coefficients[i] = 1; + sys.core[i].clock_rate = 1; + sys.core[i].opt_local = true; + sys.core[i].x86 = false; + sys.core[i].machine_bits = 1; + sys.core[i].virtual_address_width = 1; + sys.core[i].physical_address_width = 1; + sys.core[i].opcode_width = 1; + sys.core[i].micro_opcode_width = 1; + // strcpy(sys.core[i].machine_type,"default"); + sys.core[i].internal_datapath_width = 1; + sys.core[i].number_hardware_threads = 1; + sys.core[i].fetch_width = 1; + sys.core[i].number_instruction_fetch_ports = 1; + sys.core[i].decode_width = 1; + sys.core[i].issue_width = 1; + sys.core[i].peak_issue_width = 1; + sys.core[i].commit_width = 1; + for (j = 0; j < 20; j++) sys.core[i].pipelines_per_core[j] = 1; + for (j = 0; j < 20; j++) sys.core[i].pipeline_depth[j] = 1; + strcpy(sys.core[i].FPU, "default"); + strcpy(sys.core[i].divider_multiplier, "default"); + sys.core[i].ALU_per_core = 1; + sys.core[i].FPU_per_core = 1.0; + sys.core[i].MUL_per_core = 1; + sys.core[i].instruction_buffer_size = 1; + sys.core[i].decoded_stream_buffer_size = 1; + // strcpy(sys.core[i].instruction_window_scheme,"default"); + sys.core[i].instruction_window_size = 1; + sys.core[i].ROB_size = 1; + sys.core[i].archi_Regs_IRF_size = 1; + sys.core[i].archi_Regs_FRF_size = 1; + sys.core[i].phy_Regs_IRF_size = 1; + sys.core[i].phy_Regs_FRF_size = 1; + // strcpy(sys.core[i].rename_scheme,"default"); + sys.core[i].register_windows_size = 1; + strcpy(sys.core[i].LSU_order, "default"); + sys.core[i].store_buffer_size = 1; + sys.core[i].load_buffer_size = 1; + sys.core[i].memory_ports = 1; + strcpy(sys.core[i].Dcache_dual_pump, "default"); + sys.core[i].RAS_size = 1; + // all stats at the level of system.core(0-n) + sys.core[i].total_instructions = 1; + sys.core[i].int_instructions = 1; + sys.core[i].fp_instructions = 1; + sys.core[i].branch_instructions = 1; + sys.core[i].branch_mispredictions = 1; + sys.core[i].committed_instructions = 1; + sys.core[i].load_instructions = 1; + sys.core[i].store_instructions = 1; + sys.core[i].total_cycles = 1; + sys.core[i].idle_cycles = 1; + sys.core[i].busy_cycles = 1; + sys.core[i].instruction_buffer_reads = 1; + sys.core[i].instruction_buffer_write = 1; + sys.core[i].ROB_reads = 1; + sys.core[i].ROB_writes = 1; + sys.core[i].rename_accesses = 1; + sys.core[i].inst_window_reads = 1; + sys.core[i].inst_window_writes = 1; + sys.core[i].inst_window_wakeup_accesses = 1; + sys.core[i].inst_window_selections = 1; + sys.core[i].archi_int_regfile_reads = 1; + sys.core[i].archi_float_regfile_reads = 1; + sys.core[i].phy_int_regfile_reads = 1; + sys.core[i].phy_float_regfile_reads = 1; + sys.core[i].windowed_reg_accesses = 1; + sys.core[i].windowed_reg_transports = 1; + sys.core[i].function_calls = 1; + sys.core[i].ialu_accesses = 1; + sys.core[i].fpu_accesses = 1; + sys.core[i].mul_accesses = 1; + sys.core[i].cdb_alu_accesses = 1; + sys.core[i].cdb_mul_accesses = 1; + sys.core[i].cdb_fpu_accesses = 1; + sys.core[i].load_buffer_reads = 1; + sys.core[i].load_buffer_writes = 1; + sys.core[i].load_buffer_cams = 1; + sys.core[i].store_buffer_reads = 1; + sys.core[i].store_buffer_writes = 1; + sys.core[i].store_buffer_cams = 1; + sys.core[i].store_buffer_forwards = 1; + sys.core[i].main_memory_access = 1; + sys.core[i].main_memory_read = 1; + sys.core[i].main_memory_write = 1; + sys.core[i].IFU_duty_cycle = 1; + sys.core[i].BR_duty_cycle = 1; + sys.core[i].LSU_duty_cycle = 1; + sys.core[i].MemManU_I_duty_cycle = 1; + sys.core[i].MemManU_D_duty_cycle = 1; + sys.core[i].ALU_duty_cycle = 1; + sys.core[i].MUL_duty_cycle = 1; + sys.core[i].FPU_duty_cycle = 1; + sys.core[i].ALU_cdb_duty_cycle = 1; + sys.core[i].MUL_cdb_duty_cycle = 1; + sys.core[i].FPU_cdb_duty_cycle = 1; + // system.core?.predictor + sys.core[i].predictor.prediction_width = 1; + strcpy(sys.core[i].predictor.prediction_scheme, "default"); + sys.core[i].predictor.predictor_size = 1; + sys.core[i].predictor.predictor_entries = 1; + sys.core[i].predictor.local_predictor_entries = 1; + for (j = 0; j < 20; j++) sys.core[i].predictor.local_predictor_size[j] = 1; + sys.core[i].predictor.global_predictor_entries = 1; + sys.core[i].predictor.global_predictor_bits = 1; + sys.core[i].predictor.chooser_predictor_entries = 1; + sys.core[i].predictor.chooser_predictor_bits = 1; + sys.core[i].predictor.predictor_accesses = 1; + // system.core?.itlb + sys.core[i].itlb.number_entries = 1; + sys.core[i].itlb.total_hits = 1; + sys.core[i].itlb.total_accesses = 1; + sys.core[i].itlb.total_misses = 1; + // system.core?.icache + for (j = 0; j < 20; j++) sys.core[i].icache.icache_config[j] = 1; + // strcpy(sys.core[i].icache.buffer_sizes,"default"); + sys.core[i].icache.total_accesses = 1; + sys.core[i].icache.read_accesses = 1; + sys.core[i].icache.read_misses = 1; + sys.core[i].icache.replacements = 1; + sys.core[i].icache.read_hits = 1; + sys.core[i].icache.total_hits = 1; + sys.core[i].icache.total_misses = 1; + sys.core[i].icache.miss_buffer_access = 1; + sys.core[i].icache.fill_buffer_accesses = 1; + sys.core[i].icache.prefetch_buffer_accesses = 1; + sys.core[i].icache.prefetch_buffer_writes = 1; + sys.core[i].icache.prefetch_buffer_reads = 1; + sys.core[i].icache.prefetch_buffer_hits = 1; + // system.core?.dtlb + sys.core[i].dtlb.number_entries = 1; + sys.core[i].dtlb.total_accesses = 1; + sys.core[i].dtlb.read_accesses = 1; + sys.core[i].dtlb.write_accesses = 1; + sys.core[i].dtlb.write_hits = 1; + sys.core[i].dtlb.read_hits = 1; + sys.core[i].dtlb.read_misses = 1; + sys.core[i].dtlb.write_misses = 1; + sys.core[i].dtlb.total_hits = 1; + sys.core[i].dtlb.total_misses = 1; + // system.core?.dcache + for (j = 0; j < 20; j++) sys.core[i].dcache.dcache_config[j] = 1; + // strcpy(sys.core[i].dcache.buffer_sizes,"default"); + sys.core[i].dcache.total_accesses = 1; + sys.core[i].dcache.read_accesses = 1; + sys.core[i].dcache.write_accesses = 1; + sys.core[i].dcache.total_hits = 1; + sys.core[i].dcache.total_misses = 1; + sys.core[i].dcache.read_hits = 1; + sys.core[i].dcache.write_hits = 1; + sys.core[i].dcache.read_misses = 1; + sys.core[i].dcache.write_misses = 1; + sys.core[i].dcache.replacements = 1; + sys.core[i].dcache.write_backs = 1; + sys.core[i].dcache.miss_buffer_access = 1; + sys.core[i].dcache.fill_buffer_accesses = 1; + sys.core[i].dcache.prefetch_buffer_accesses = 1; + sys.core[i].dcache.prefetch_buffer_writes = 1; + sys.core[i].dcache.prefetch_buffer_reads = 1; + sys.core[i].dcache.prefetch_buffer_hits = 1; + sys.core[i].dcache.wbb_writes = 1; + sys.core[i].dcache.wbb_reads = 1; + // system.core?.BTB + for (j = 0; j < 20; j++) sys.core[i].BTB.BTB_config[j] = 1; + sys.core[i].BTB.total_accesses = 1; + sys.core[i].BTB.read_accesses = 1; + sys.core[i].BTB.write_accesses = 1; + sys.core[i].BTB.total_hits = 1; + sys.core[i].BTB.total_misses = 1; + sys.core[i].BTB.read_hits = 1; + sys.core[i].BTB.write_hits = 1; + sys.core[i].BTB.read_misses = 1; + sys.core[i].BTB.write_misses = 1; + sys.core[i].BTB.replacements = 1; + } - //system_L1directory - for (i=0; i<=63; i++) - { - for (j=0; j<20; j++) sys.L1Directory[i].Dir_config[j]=1; - for (j=0; j<20; j++) sys.L1Directory[i].buffer_sizes[j]=1; - sys.L1Directory[i].clockrate=1; - sys.L1Directory[i].ports[20]=1; - sys.L1Directory[i].device_type=1; - strcpy(sys.L1Directory[i].threeD_stack,"default"); - sys.L1Directory[i].total_accesses=1; - sys.L1Directory[i].read_accesses=1; - sys.L1Directory[i].write_accesses=1; - sys.L1Directory[i].duty_cycle =1; - } - //system_L2directory - for (i=0; i<=63; i++) - { - for (j=0; j<20; j++) sys.L2Directory[i].Dir_config[j]=1; - for (j=0; j<20; j++) sys.L2Directory[i].buffer_sizes[j]=1; - sys.L2Directory[i].clockrate=1; - sys.L2Directory[i].ports[20]=1; - sys.L2Directory[i].device_type=1; - strcpy(sys.L2Directory[i].threeD_stack,"default"); - sys.L2Directory[i].total_accesses=1; - sys.L2Directory[i].read_accesses=1; - sys.L2Directory[i].write_accesses=1; - sys.L2Directory[i].duty_cycle =1; - } - for (i=0; i<=63; i++) - { - //system_L2 - for (j=0; j<20; j++) sys.L2[i].L2_config[j]=1; - sys.L2[i].clockrate=1; - for (j=0; j<20; j++) sys.L2[i].ports[j]=1; - sys.L2[i].device_type=1; - strcpy(sys.L2[i].threeD_stack,"default"); - for (j=0; j<20; j++) sys.L2[i].buffer_sizes[j]=1; - sys.L2[i].total_accesses=1; - sys.L2[i].read_accesses=1; - sys.L2[i].write_accesses=1; - sys.L2[i].total_hits=1; - sys.L2[i].total_misses=1; - sys.L2[i].read_hits=1; - sys.L2[i].write_hits=1; - sys.L2[i].read_misses=1; - sys.L2[i].write_misses=1; - sys.L2[i].replacements=1; - sys.L2[i].write_backs=1; - sys.L2[i].miss_buffer_accesses=1; - sys.L2[i].fill_buffer_accesses=1; - sys.L2[i].prefetch_buffer_accesses=1; - sys.L2[i].prefetch_buffer_writes=1; - sys.L2[i].prefetch_buffer_reads=1; - sys.L2[i].prefetch_buffer_hits=1; - sys.L2[i].wbb_writes=1; - sys.L2[i].wbb_reads=1; - sys.L2[i].duty_cycle =1; - sys.L2[i].merged_dir=false; - sys.L2[i].homenode_read_accesses =1; - sys.L2[i].homenode_write_accesses=1; - sys.L2[i].homenode_read_hits=1; - sys.L2[i].homenode_write_hits=1; - sys.L2[i].homenode_read_misses=1; - sys.L2[i].homenode_write_misses=1; - sys.L2[i].dir_duty_cycle=1; - } - for (i=0; i<=63; i++) - { - //system_L3 - for (j=0; j<20; j++) sys.L3[i].L3_config[j]=1; - sys.L3[i].clockrate=1; - for (j=0; j<20; j++) sys.L3[i].ports[j]=1; - sys.L3[i].device_type=1; - strcpy(sys.L3[i].threeD_stack,"default"); - for (j=0; j<20; j++) sys.L3[i].buffer_sizes[j]=1; - sys.L3[i].total_accesses=1; - sys.L3[i].read_accesses=1; - sys.L3[i].write_accesses=1; - sys.L3[i].total_hits=1; - sys.L3[i].total_misses=1; - sys.L3[i].read_hits=1; - sys.L3[i].write_hits=1; - sys.L3[i].read_misses=1; - sys.L3[i].write_misses=1; - sys.L3[i].replacements=1; - sys.L3[i].write_backs=1; - sys.L3[i].miss_buffer_accesses=1; - sys.L3[i].fill_buffer_accesses=1; - sys.L3[i].prefetch_buffer_accesses=1; - sys.L3[i].prefetch_buffer_writes=1; - sys.L3[i].prefetch_buffer_reads=1; - sys.L3[i].prefetch_buffer_hits=1; - sys.L3[i].wbb_writes=1; - sys.L3[i].wbb_reads=1; - sys.L3[i].duty_cycle =1; - sys.L3[i].merged_dir=false; - sys.L3[i].homenode_read_accesses =1; - sys.L3[i].homenode_write_accesses=1; - sys.L3[i].homenode_read_hits=1; - sys.L3[i].homenode_write_hits=1; - sys.L3[i].homenode_read_misses=1; - sys.L3[i].homenode_write_misses=1; - sys.L3[i].dir_duty_cycle=1; - } - //system_NoC - for (i=0; i<=63; i++) - { - sys.NoC[i].clockrate=1; - sys.NoC[i].type=true; - sys.NoC[i].chip_coverage=1; - sys.NoC[i].has_global_link = true; - strcpy(sys.NoC[i].topology,"default"); - sys.NoC[i].horizontal_nodes=1; - sys.NoC[i].vertical_nodes=1; - sys.NoC[i].input_ports=1; - sys.NoC[i].output_ports=1; - sys.NoC[i].virtual_channel_per_port=1; - sys.NoC[i].flit_bits=1; - sys.NoC[i].input_buffer_entries_per_vc=1; - sys.NoC[i].total_accesses=1; - sys.NoC[i].duty_cycle=1; - sys.NoC[i].route_over_perc = 0.5; - for (j=0; j<20; j++) sys.NoC[i].ports_of_input_buffer[j]=1; - sys.NoC[i].number_of_crossbars=1; - strcpy(sys.NoC[i].crossbar_type,"default"); - strcpy(sys.NoC[i].crosspoint_type,"default"); - //system.NoC?.xbar0; - sys.NoC[i].xbar0.number_of_inputs_of_crossbars=1; - sys.NoC[i].xbar0.number_of_outputs_of_crossbars=1; - sys.NoC[i].xbar0.flit_bits=1; - sys.NoC[i].xbar0.input_buffer_entries_per_port=1; - sys.NoC[i].xbar0.ports_of_input_buffer[20]=1; - sys.NoC[i].xbar0.crossbar_accesses=1; - } - //system_mem - sys.mem.mem_tech_node=1; - sys.mem.device_clock=1; - sys.mem.capacity_per_channel=1; - sys.mem.number_ranks=1; - sys.mem.peak_transfer_rate =1; - sys.mem.num_banks_of_DRAM_chip=1; - sys.mem.Block_width_of_DRAM_chip=1; - sys.mem.output_width_of_DRAM_chip=1; - sys.mem.page_size_of_DRAM_chip=1; - sys.mem.burstlength_of_DRAM_chip=1; - sys.mem.internal_prefetch_of_DRAM_chip=1; - sys.mem.memory_accesses=1; - sys.mem.memory_reads=1; - sys.mem.memory_writes=1; + // system_L1directory + for (i = 0; i <= 63; i++) { + for (j = 0; j < 20; j++) sys.L1Directory[i].Dir_config[j] = 1; + for (j = 0; j < 20; j++) sys.L1Directory[i].buffer_sizes[j] = 1; + sys.L1Directory[i].clockrate = 1; + sys.L1Directory[i].ports[20] = 1; + sys.L1Directory[i].device_type = 1; + strcpy(sys.L1Directory[i].threeD_stack, "default"); + sys.L1Directory[i].total_accesses = 1; + sys.L1Directory[i].read_accesses = 1; + sys.L1Directory[i].write_accesses = 1; + sys.L1Directory[i].duty_cycle = 1; + } + // system_L2directory + for (i = 0; i <= 63; i++) { + for (j = 0; j < 20; j++) sys.L2Directory[i].Dir_config[j] = 1; + for (j = 0; j < 20; j++) sys.L2Directory[i].buffer_sizes[j] = 1; + sys.L2Directory[i].clockrate = 1; + sys.L2Directory[i].ports[20] = 1; + sys.L2Directory[i].device_type = 1; + strcpy(sys.L2Directory[i].threeD_stack, "default"); + sys.L2Directory[i].total_accesses = 1; + sys.L2Directory[i].read_accesses = 1; + sys.L2Directory[i].write_accesses = 1; + sys.L2Directory[i].duty_cycle = 1; + } + for (i = 0; i <= 63; i++) { + // system_L2 + for (j = 0; j < 20; j++) sys.L2[i].L2_config[j] = 1; + sys.L2[i].clockrate = 1; + for (j = 0; j < 20; j++) sys.L2[i].ports[j] = 1; + sys.L2[i].device_type = 1; + strcpy(sys.L2[i].threeD_stack, "default"); + for (j = 0; j < 20; j++) sys.L2[i].buffer_sizes[j] = 1; + sys.L2[i].total_accesses = 1; + sys.L2[i].read_accesses = 1; + sys.L2[i].write_accesses = 1; + sys.L2[i].total_hits = 1; + sys.L2[i].total_misses = 1; + sys.L2[i].read_hits = 1; + sys.L2[i].write_hits = 1; + sys.L2[i].read_misses = 1; + sys.L2[i].write_misses = 1; + sys.L2[i].replacements = 1; + sys.L2[i].write_backs = 1; + sys.L2[i].miss_buffer_accesses = 1; + sys.L2[i].fill_buffer_accesses = 1; + sys.L2[i].prefetch_buffer_accesses = 1; + sys.L2[i].prefetch_buffer_writes = 1; + sys.L2[i].prefetch_buffer_reads = 1; + sys.L2[i].prefetch_buffer_hits = 1; + sys.L2[i].wbb_writes = 1; + sys.L2[i].wbb_reads = 1; + sys.L2[i].duty_cycle = 1; + sys.L2[i].merged_dir = false; + sys.L2[i].homenode_read_accesses = 1; + sys.L2[i].homenode_write_accesses = 1; + sys.L2[i].homenode_read_hits = 1; + sys.L2[i].homenode_write_hits = 1; + sys.L2[i].homenode_read_misses = 1; + sys.L2[i].homenode_write_misses = 1; + sys.L2[i].dir_duty_cycle = 1; + } + for (i = 0; i <= 63; i++) { + // system_L3 + for (j = 0; j < 20; j++) sys.L3[i].L3_config[j] = 1; + sys.L3[i].clockrate = 1; + for (j = 0; j < 20; j++) sys.L3[i].ports[j] = 1; + sys.L3[i].device_type = 1; + strcpy(sys.L3[i].threeD_stack, "default"); + for (j = 0; j < 20; j++) sys.L3[i].buffer_sizes[j] = 1; + sys.L3[i].total_accesses = 1; + sys.L3[i].read_accesses = 1; + sys.L3[i].write_accesses = 1; + sys.L3[i].total_hits = 1; + sys.L3[i].total_misses = 1; + sys.L3[i].read_hits = 1; + sys.L3[i].write_hits = 1; + sys.L3[i].read_misses = 1; + sys.L3[i].write_misses = 1; + sys.L3[i].replacements = 1; + sys.L3[i].write_backs = 1; + sys.L3[i].miss_buffer_accesses = 1; + sys.L3[i].fill_buffer_accesses = 1; + sys.L3[i].prefetch_buffer_accesses = 1; + sys.L3[i].prefetch_buffer_writes = 1; + sys.L3[i].prefetch_buffer_reads = 1; + sys.L3[i].prefetch_buffer_hits = 1; + sys.L3[i].wbb_writes = 1; + sys.L3[i].wbb_reads = 1; + sys.L3[i].duty_cycle = 1; + sys.L3[i].merged_dir = false; + sys.L3[i].homenode_read_accesses = 1; + sys.L3[i].homenode_write_accesses = 1; + sys.L3[i].homenode_read_hits = 1; + sys.L3[i].homenode_write_hits = 1; + sys.L3[i].homenode_read_misses = 1; + sys.L3[i].homenode_write_misses = 1; + sys.L3[i].dir_duty_cycle = 1; + } + // system_NoC + for (i = 0; i <= 63; i++) { + sys.NoC[i].clockrate = 1; + sys.NoC[i].type = true; + sys.NoC[i].chip_coverage = 1; + sys.NoC[i].has_global_link = true; + strcpy(sys.NoC[i].topology, "default"); + sys.NoC[i].horizontal_nodes = 1; + sys.NoC[i].vertical_nodes = 1; + sys.NoC[i].input_ports = 1; + sys.NoC[i].output_ports = 1; + sys.NoC[i].virtual_channel_per_port = 1; + sys.NoC[i].flit_bits = 1; + sys.NoC[i].input_buffer_entries_per_vc = 1; + sys.NoC[i].total_accesses = 1; + sys.NoC[i].duty_cycle = 1; + sys.NoC[i].route_over_perc = 0.5; + for (j = 0; j < 20; j++) sys.NoC[i].ports_of_input_buffer[j] = 1; + sys.NoC[i].number_of_crossbars = 1; + strcpy(sys.NoC[i].crossbar_type, "default"); + strcpy(sys.NoC[i].crosspoint_type, "default"); + // system.NoC?.xbar0; + sys.NoC[i].xbar0.number_of_inputs_of_crossbars = 1; + sys.NoC[i].xbar0.number_of_outputs_of_crossbars = 1; + sys.NoC[i].xbar0.flit_bits = 1; + sys.NoC[i].xbar0.input_buffer_entries_per_port = 1; + sys.NoC[i].xbar0.ports_of_input_buffer[20] = 1; + sys.NoC[i].xbar0.crossbar_accesses = 1; + } + // system_mem + sys.mem.mem_tech_node = 1; + sys.mem.device_clock = 1; + sys.mem.capacity_per_channel = 1; + sys.mem.number_ranks = 1; + sys.mem.peak_transfer_rate = 1; + sys.mem.num_banks_of_DRAM_chip = 1; + sys.mem.Block_width_of_DRAM_chip = 1; + sys.mem.output_width_of_DRAM_chip = 1; + sys.mem.page_size_of_DRAM_chip = 1; + sys.mem.burstlength_of_DRAM_chip = 1; + sys.mem.internal_prefetch_of_DRAM_chip = 1; + sys.mem.memory_accesses = 1; + sys.mem.memory_reads = 1; + sys.mem.memory_writes = 1; - //system_mc - sys.mc.mc_clock =1; - sys.mc.number_mcs=1; - sys.mc.peak_transfer_rate =1; - sys.mc.memory_channels_per_mc=1; - sys.mc.number_ranks=1; - sys.mc.req_window_size_per_channel=1; - sys.mc.IO_buffer_size_per_channel=1; - sys.mc.databus_width=1; - sys.mc.addressbus_width=1; - sys.mc.memory_accesses=1; - sys.mc.memory_reads=1; - sys.mc.memory_writes=1; - sys.mc.LVDS=true; - sys.mc.type=1; + // system_mc + sys.mc.mc_clock = 1; + sys.mc.number_mcs = 1; + sys.mc.peak_transfer_rate = 1; + sys.mc.memory_channels_per_mc = 1; + sys.mc.number_ranks = 1; + sys.mc.req_window_size_per_channel = 1; + sys.mc.IO_buffer_size_per_channel = 1; + sys.mc.databus_width = 1; + sys.mc.addressbus_width = 1; + sys.mc.memory_accesses = 1; + sys.mc.memory_reads = 1; + sys.mc.memory_writes = 1; + sys.mc.LVDS = true; + sys.mc.type = 1; - //system_niu - sys.niu.clockrate =1; - sys.niu.number_units=1; - sys.niu.type = 1; - sys.niu.duty_cycle =1; - sys.niu.total_load_perc=1; - //system_pcie - sys.pcie.clockrate =1; - sys.pcie.number_units=1; - sys.pcie.num_channels=1; - sys.pcie.type = 1; - sys.pcie.withPHY = false; - sys.pcie.duty_cycle =1; - sys.pcie.total_load_perc=1; - //system_flash_controller - sys.flashc.mc_clock =1; - sys.flashc.number_mcs=1; - sys.flashc.peak_transfer_rate =1; - sys.flashc.memory_channels_per_mc=1; - sys.flashc.number_ranks=1; - sys.flashc.req_window_size_per_channel=1; - sys.flashc.IO_buffer_size_per_channel=1; - sys.flashc.databus_width=1; - sys.flashc.addressbus_width=1; - sys.flashc.memory_accesses=1; - sys.flashc.memory_reads=1; - sys.flashc.memory_writes=1; - sys.flashc.LVDS=true; - sys.flashc.withPHY = false; - sys.flashc.type =1; - sys.flashc.duty_cycle =1; - sys.flashc.total_load_perc=1; + // system_niu + sys.niu.clockrate = 1; + sys.niu.number_units = 1; + sys.niu.type = 1; + sys.niu.duty_cycle = 1; + sys.niu.total_load_perc = 1; + // system_pcie + sys.pcie.clockrate = 1; + sys.pcie.number_units = 1; + sys.pcie.num_channels = 1; + sys.pcie.type = 1; + sys.pcie.withPHY = false; + sys.pcie.duty_cycle = 1; + sys.pcie.total_load_perc = 1; + // system_flash_controller + sys.flashc.mc_clock = 1; + sys.flashc.number_mcs = 1; + sys.flashc.peak_transfer_rate = 1; + sys.flashc.memory_channels_per_mc = 1; + sys.flashc.number_ranks = 1; + sys.flashc.req_window_size_per_channel = 1; + sys.flashc.IO_buffer_size_per_channel = 1; + sys.flashc.databus_width = 1; + sys.flashc.addressbus_width = 1; + sys.flashc.memory_accesses = 1; + sys.flashc.memory_reads = 1; + sys.flashc.memory_writes = 1; + sys.flashc.LVDS = true; + sys.flashc.withPHY = false; + sys.flashc.type = 1; + sys.flashc.duty_cycle = 1; + sys.flashc.total_load_perc = 1; } -- cgit v1.3