1 |
37 |
wsong0210 |
|
2 |
|
|
Asynchronous Spatial Division Multiplexing Router for On-Chip Networks
|
3 |
|
|
|
4 |
48 |
wsong0210 |
Version: 0.2
|
5 |
37 |
wsong0210 |
|
6 |
|
|
On-chip networks or networks-on-chip (NoCs) are the on-chip communication fabric for
|
7 |
|
|
current and future multiprocessor SoCs (MPSoCs) and chip multiprocessors (CMPs).
|
8 |
|
|
Compared with synchronous NoCs, asynchronous NoCs have following benefits:
|
9 |
|
|
* Tolerance to all kinds of delay variations caused by process, power and temperature
|
10 |
|
|
variations.
|
11 |
|
|
* Low transmission latency.
|
12 |
|
|
* Zero dynamic power when idle.
|
13 |
|
|
* Unified sync/async interface and easy clock domain integration.
|
14 |
|
|
|
15 |
|
|
Most NoCs use the wormhole flow control method. Many complex flow control methods are
|
16 |
|
|
built upon the wormhole method, such as virtual channel (VC), TDMA, and SDM. VC is the
|
17 |
|
|
most utilized flow control in both sync and async NoCs. However, it is found VC
|
18 |
|
|
compromises the throughput performance of asynchronous NoCs. This project provides a new
|
19 |
|
|
asynchronous router structure which use SDM rather than VC. It has been shown that SDM
|
20 |
|
|
achieve better throughput than VC in the same router configuration.
|
21 |
|
|
|
22 |
|
|
This project provide a reconfigurable asynchronous SDM router which can be configured
|
23 |
|
|
into a basic wormhole router or an SDM router with multiple virtual circuits in every
|
24 |
|
|
direction.
|
25 |
|
|
|
26 |
|
|
Features:
|
27 |
|
|
* 5-port router for mesh network (0 south, 1 west, 2 north, 3 east, 4 local)
|
28 |
|
|
* The dimension order routing (XY routing)
|
29 |
48 |
wsong0210 |
* Available flow control methods: wormhole, SDM, VC
|
30 |
37 |
wsong0210 |
* Reconfigurable number of virtual circuits, buffer size, data width
|
31 |
|
|
* Fully synthesizable router implementation
|
32 |
|
|
* SystemC testbench provided
|
33 |
|
|
|
34 |
|
|
Languages:
|
35 |
|
|
* Routers are written in synthesizable SystemVerilog
|
36 |
|
|
* Test benches are provided by SystemC
|
37 |
|
|
|
38 |
|
|
Software requirements:
|
39 |
|
|
* The open source Nangate 45nm cell library
|
40 |
|
|
* Synopsys Design Compiler (Synthesis)
|
41 |
|
|
* Cadence IUS -- NC Simulator (for SystemC/Verilog co-simulation)
|
42 |
|
|
|
43 |
|
|
File structure:
|
44 |
|
|
* common files needed for both SDM and VC routers
|
45 |
|
|
\- script synthesis scripts for all routers
|
46 |
|
|
|- src HDL for all routers
|
47 |
|
|
\- tb test bench files for all routers
|
48 |
|
|
* doc documents
|
49 |
|
|
* lib minimal Nangate 45nm cell lib
|
50 |
|
|
* sdm SDM/wormhole router design
|
51 |
|
|
\- define.v HDL configuration file
|
52 |
|
|
|- define.h test bench configuration
|
53 |
|
|
|- sim simulation run dir
|
54 |
|
|
|- src HDL
|
55 |
|
|
|- syn synthesis run dir
|
56 |
|
|
\- script synthesis script
|
57 |
|
|
\- tb test bench
|
58 |
48 |
wsong0210 |
* vc VC router deign
|
59 |
|
|
\- define.v HDL configure file
|
60 |
|
|
|- define.h test bench configuration
|
61 |
|
|
|- sim simulation run dir
|
62 |
|
|
|- src HDL
|
63 |
|
|
|- syn synthesis run dir
|
64 |
|
|
\- script synthesis script
|
65 |
|
|
\- tb test bench
|
66 |
37 |
wsong0210 |
|
67 |
|
|
How to run:
|
68 |
|
|
* to synthesize a router
|
69 |
|
|
1. set up your design compiler enviornment and your cell library.
|
70 |
|
|
2. modify the "define.v" configuration file for the strcture your want.
|
71 |
|
|
currently including:
|
72 |
|
|
ENABLE_CLOS use the 2-stage Clos switch instead of crossbar
|
73 |
|
|
ENABLE_CRRD use the CRRD dispatching algorithm for the Clos
|
74 |
|
|
ENABLE_MRMA use the multi-resource matching arbiter instead of MNMA
|
75 |
|
|
ENABLE_CHANNEL_SLICING use channel slicing
|
76 |
|
|
ENABLE_LOOKAHEAD use the lookahead pipelines
|
77 |
|
|
ENABLE_EOF router use eof bit to indicate end-of-frame
|
78 |
|
|
3. modify the "compile.tcl" scription for the design parameters.
|
79 |
|
|
currently including:
|
80 |
|
|
VCN number of virtual circuits
|
81 |
|
|
DW the data width of a single virtual circuit
|
82 |
|
|
IPD the depth of input buffers
|
83 |
|
|
OPD the depth of putput buffers
|
84 |
|
|
4. if another cell lib is used, change "cell_lib.v" in common\src and other related
|
85 |
|
|
files. (very likely you need to email me for further instructions :-) )
|
86 |
|
|
5. modify the "tech.tcl" in common/script for your cell library.
|
87 |
|
|
6. run the synthesis at [sdm/vc]/syn
|
88 |
|
|
dc_shell -f script/compile.tcl
|
89 |
|
|
7. the synthesized netlist is inside [sdm/vc]/syn/file/
|
90 |
|
|
|
91 |
|
|
* to run post-synthesis simulation
|
92 |
|
|
1. check the netlists in [sdm/vc]/syn/file/
|
93 |
|
|
2. modify the testbench configuration "define.h" according to your requirements.
|
94 |
|
|
3. make sure your NC-Simulator is installed alright (proper SystemC support).
|
95 |
|
|
4. run the compilation at [sdm/vc]/sim
|
96 |
|
|
compile.tcl
|
97 |
|
|
5. run the simulation at [sdm/vc]/sim
|
98 |
|
|
ncsim -tcl noctb
|
99 |
|
|
6. the simulation output files are *.ana at [sdm/vc]/sim
|
100 |
|
|
"throughput.ana":
|
101 |
|
|
{simulation time in ps} TAB {throughput in bytes}
|
102 |
|
|
"delay.ana":
|
103 |
|
|
{simulation time in ps} TAB {avg. frame latency} TAB {avg. path setup delay}
|
104 |
|
|
|
105 |
48 |
wsong0210 |
* The process of synthesize and simulate the VC router is similar to the procedure of
|
106 |
|
|
the wormhole/SDM router.
|
107 |
|
|
|
108 |
37 |
wsong0210 |
For any questions and bug reports,
|
109 |
|
|
please email to Wei Song from wsong83@gmail.com
|
110 |
|
|
|
111 |
|
|
Wei Song
|
112 |
48 |
wsong0210 |
08/06/2011
|
113 |
37 |
wsong0210 |
|