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