NoC top file generate: in NoCGenRTL_mesh.cpp, NoCGenRTL_meshDiss.cpp, Link_ps.cpp, Router_ps.cpp --> Link_ps.cpp
In the generated file NoC.v, the stuff I have to modify:
the router name, to tRouter_xy_beOnlyLeftUpCorner, etc, based on position;
.success_o(success_out[ ]), .fail_o(fail_out[ ]), //the element no.
delete router2NoCM_free port in router;
trellis SDM+TDM:
router.cpp 中需每次设置subchannel_num;
trellis.v中需配置parameter Channel_QUANT, SLOT_QTY; rin_edge_state[ i][j][k] = r_subchannel_state; casex(r_success_forward)选择r_nodes_success[3]<=r_success_forward[3];
Hagar SDM+TDM: seems only in graphMatrix.v, rin_edge_state[gen_i][gen_j][gen_k] = r_subchannel_state||;
select which subcannel: if(disableEdge[ i][m][n])begin
if(r_subchannel_state[i][m][n][0])
and in backtrace.v to select which slot.
the NoCSim result is stored in the folder:Sadia\nocsim3\build\architectures\arch_000000\traffic_000000\cpp_results, as following the picture:
nocsim 运行:
nocsim3 $ make verilogSeries
注意:NoCSim只能在64位机下跑,所以cnode14下不能运行。有时NoCSim generate code时会出错,多运行几次后就会正常。
几种NoCM的基础文件(非NoCSim生成的文件),在nocsim3\template_lib\v 中
各模块所在file:
EHAGAR模块:genVeriNoCMGraphColDetectForward,genVeriNoCMGraphColDetectBackward,genVeriNoCMGraphPredecessorForward;genVeriNoCMGraphColDetect,genVeriNoCMGraphPredecessor,等在NoCComponent.cpp中;
trellis模块:genVeriTrellisHagarFileForwardPart,genVeriTrellisHagarFileBackwardPart,genVeriTrellisHagarFileDisableEdges等在router.cpp中
EdgeActivator is generated in file NoCM_version,and the genVeriNoCMResetLinkStateForEdgeActivator is in NoCComponent;genVeriNoCMSetLinkStateForEdgeActivator is in router; TRELLIS is generated in file NoCM_versionHagarTrellis. genVeriTrellisHagarFileForwardPart,genVeriTrellisHagarFileBackwardPart,genVeriTrellisHagarFileDisableEdges are generated in file router.cpp;tAdr2idConverter in NoCGenRTL.cpp
Now the only file need to modify manually is TRELLIS,because of the #slot
and should add in file accessCtrl.v .adrZ1_i(0), //mine,add by myself
.adrZ2_i(0), //mine,add by myself
对于EHAGAR,bidirection EHAGAR的shared files中,tNoCM_hagarDouble与accessCtrl中的parameter COORD_SIZE,accessCtrl.v中的 .adrZ1_i(3'b0)的位宽,要根据network大小进行调整。