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 37

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
Version: 0.1
5
 
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
  * Available flow control methods: wormhole, SDM
30
  * 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
  * vc                                  VC router (ongoing)
59
 
60
How to run:
61
  * to synthesize a router
62
    1. set up your design compiler enviornment and your cell library.
63
    2. modify the "define.v" configuration file for the strcture your want.
64
       currently including:
65
         ENABLE_CLOS   use the 2-stage Clos switch instead of crossbar
66
         ENABLE_CRRD   use the CRRD dispatching algorithm for the Clos
67
         ENABLE_MRMA   use the multi-resource matching arbiter instead of MNMA
68
         ENABLE_CHANNEL_SLICING  use channel slicing
69
         ENABLE_LOOKAHEAD  use the lookahead pipelines
70
         ENABLE_EOF    router use eof bit to indicate end-of-frame
71
    3. modify the "compile.tcl" scription for the design parameters.
72
       currently including:
73
         VCN   number of virtual circuits
74
         DW    the data width of a single virtual circuit
75
         IPD   the depth of input buffers
76
         OPD   the depth of putput buffers
77
    4. if another cell lib is used, change "cell_lib.v" in common\src and other related
78
       files. (very likely you need to email me for further instructions :-) )
79
    5. modify the "tech.tcl" in common/script for your cell library.
80
    6. run the synthesis at [sdm/vc]/syn
81
       dc_shell -f script/compile.tcl
82
    7. the synthesized netlist is inside [sdm/vc]/syn/file/
83
 
84
  * to run post-synthesis simulation
85
    1. check the netlists in [sdm/vc]/syn/file/
86
    2. modify the testbench configuration "define.h" according to your requirements.
87
    3. make sure your NC-Simulator is installed alright (proper SystemC support).
88
    4. run the compilation at [sdm/vc]/sim
89
       compile.tcl
90
    5. run the simulation at [sdm/vc]/sim
91
       ncsim -tcl noctb
92
    6. the simulation output files are *.ana at [sdm/vc]/sim
93
       "throughput.ana":
94
         {simulation time in ps} TAB {throughput in bytes}
95
       "delay.ana":
96
         {simulation time in ps} TAB {avg. frame latency} TAB {avg. path setup delay}
97
 
98
For any questions and bug reports,
99
    please email to Wei Song from wsong83@gmail.com
100
 
101
Wei Song
102
01/06/2011
103
 

powered by: WebSVN 2.1.0

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