OpenCores
URL https://opencores.org/ocsvn/async_sdm_noc/async_sdm_noc/trunk

Subversion Repositories async_sdm_noc

[/] [async_sdm_noc/] [trunk/] [README] - Blame information for rev 48

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
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
 

powered by: WebSVN 2.1.0

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