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

Subversion Repositories async_sdm_noc

[/] [async_sdm_noc/] [trunk/] [README] - Diff between revs 48 and 80

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 48 Rev 80
Asynchronous Spatial Division Multiplexing Router for On-Chip Networks
Asynchronous Spatial Division Multiplexing Router for On-Chip Networks
Version: 0.2
Version: 0.2
On-chip networks or networks-on-chip (NoCs) are the on-chip communication fabric for
On-chip networks or networks-on-chip (NoCs) are the on-chip communication fabric for
current and future multiprocessor SoCs (MPSoCs) and chip multiprocessors (CMPs).
current and future multiprocessor SoCs (MPSoCs) and chip multiprocessors (CMPs).
Compared with synchronous NoCs, asynchronous NoCs have following benefits:
Compared with synchronous NoCs, asynchronous NoCs have following benefits:
  * Tolerance to all kinds of delay variations caused by process, power and temperature
  * Tolerance to all kinds of delay variations caused by process, power and temperature
    variations.
    variations.
  * Low transmission latency.
  * Low transmission latency.
  * Zero dynamic power when idle.
  * Zero dynamic power when idle.
  * Unified sync/async interface and easy clock domain integration.
  * Unified sync/async interface and easy clock domain integration.
Most NoCs use the wormhole flow control method. Many complex flow control methods are
Most NoCs use the wormhole flow control method. Many complex flow control methods are
built upon the wormhole method, such as virtual channel (VC), TDMA, and SDM. VC is the
built upon the wormhole method, such as virtual channel (VC), TDMA, and SDM. VC is the
most utilized flow control in both sync and async NoCs. However, it is found VC
most utilized flow control in both sync and async NoCs. However, it is found VC
compromises the throughput performance of asynchronous NoCs. This project provides a new
compromises the throughput performance of asynchronous NoCs. This project provides a new
asynchronous router structure which use SDM rather than VC. It has been shown that SDM
asynchronous router structure which use SDM rather than VC. It has been shown that SDM
achieve better throughput than VC in the same router configuration.
achieve better throughput than VC in the same router configuration.
This project provide a reconfigurable asynchronous SDM router which can be configured
This project provide a reconfigurable asynchronous SDM router which can be configured
into a basic wormhole router or an SDM router with multiple virtual circuits in every
into a basic wormhole router or an SDM router with multiple virtual circuits in every
direction.
direction.
Features:
Features:
  * 5-port router for mesh network (0 south, 1 west, 2 north, 3 east, 4 local)
  * 5-port router for mesh network (0 south, 1 west, 2 north, 3 east, 4 local)
  * The dimension order routing (XY routing)
  * The dimension order routing (XY routing)
  * Available flow control methods: wormhole, SDM, VC
  * Available flow control methods: wormhole, SDM, VC
  * Reconfigurable number of virtual circuits, buffer size, data width
  * Reconfigurable number of virtual circuits, buffer size, data width
  * Fully synthesizable router implementation
  * Fully synthesizable router implementation
  * SystemC testbench provided
  * SystemC testbench provided
Languages:
Languages:
  * Routers are written in synthesizable SystemVerilog
  * Routers are written in synthesizable SystemVerilog
  * Test benches are provided by SystemC
  * Test benches are provided by SystemC
Software requirements:
Software requirements:
  * The open source Nangate 45nm cell library
  * The open source Nangate 45nm cell library
  * Synopsys Design Compiler (Synthesis)
  * Synopsys Design Compiler (Synthesis)
  * Cadence IUS -- NC Simulator (for SystemC/Verilog co-simulation)
  * Cadence IUS -- NC Simulator (for SystemC/Verilog co-simulation)
File structure:
File structure:
  * common                              files needed for both SDM and VC routers
  * common                              files needed for both SDM and VC routers
   \- script                            synthesis scripts for all routers
   \- script                            synthesis scripts for all routers
   |- src                               HDL for all routers
   |- src                               HDL for all routers
   \- tb                                test bench files for all routers
   \- tb                                test bench files for all routers
  * doc                                 documents
  * doc                                 documents
  * lib                                 minimal Nangate 45nm cell lib
  * lib                                 minimal Nangate 45nm cell lib
  * sdm                                 SDM/wormhole router design
  * sdm                                 SDM/wormhole router design
   \- define.v                          HDL configuration file
   \- define.v                          HDL configuration file
   |- define.h                          test bench configuration
   |- define.h                          test bench configuration
   |- sim                               simulation run dir
   |- sim                               simulation run dir
   |- src                               HDL
   |- src                               HDL
   |- syn                               synthesis run dir
   |- syn                               synthesis run dir
    \- script                           synthesis script
    \- script                           synthesis script
   \- tb                                test bench
   \- tb                                test bench
  * vc                                  VC router deign
  * vc                                  VC router deign
   \- define.v                          HDL configure file
   \- define.v                          HDL configure file
   |- define.h                          test bench configuration
   |- define.h                          test bench configuration
   |- sim                               simulation run dir
   |- sim                               simulation run dir
   |- src                               HDL
   |- src                               HDL
   |- syn                               synthesis run dir
   |- syn                               synthesis run dir
    \- script                           synthesis script
    \- script                           synthesis script
   \- tb                                test bench
   \- tb                                test bench
How to run:
How to run:
  * to synthesize a router
  * to synthesize a router
    1. set up your design compiler enviornment and your cell library.
    1. set up your design compiler enviornment and your cell library.
    2. modify the "define.v" configuration file for the strcture your want.
    2. modify the "define.v" configuration file for the strcture your want.
       currently including:
       currently including:
         ENABLE_CLOS   use the 2-stage Clos switch instead of crossbar
         ENABLE_CLOS   use the 2-stage Clos switch instead of crossbar
         ENABLE_CRRD   use the CRRD dispatching algorithm for the Clos
         ENABLE_CRRD   use the CRRD dispatching algorithm for the Clos
         ENABLE_MRMA   use the multi-resource matching arbiter instead of MNMA
         ENABLE_MRMA   use the multi-resource matching arbiter instead of MNMA
         ENABLE_CHANNEL_SLICING  use channel slicing
         ENABLE_CHANNEL_SLICING  use channel slicing
         ENABLE_LOOKAHEAD  use the lookahead pipelines
         ENABLE_LOOKAHEAD  use the lookahead pipelines
         ENABLE_EOF    router use eof bit to indicate end-of-frame
         ENABLE_EOF    router use eof bit to indicate end-of-frame
    3. modify the "compile.tcl" scription for the design parameters.
    3. modify the "compile.tcl" scription for the design parameters.
       currently including:
       currently including:
         VCN   number of virtual circuits
         VCN   number of virtual circuits
         DW    the data width of a single virtual circuit
         DW    the data width of a single virtual circuit
         IPD   the depth of input buffers
         IPD   the depth of input buffers
         OPD   the depth of putput buffers
         OPD   the depth of putput buffers
    4. if another cell lib is used, change "cell_lib.v" in common\src and other related
    4. if another cell lib is used, change "cell_lib.v" in common\src and other related
       files. (very likely you need to email me for further instructions :-) )
       files. (very likely you need to email me for further instructions :-) )
    5. modify the "tech.tcl" in common/script for your cell library.
    5. modify the "tech.tcl" in common/script for your cell library.
    6. run the synthesis at [sdm/vc]/syn
    6. run the synthesis at [sdm/vc]/syn
       dc_shell -f script/compile.tcl
       dc_shell -f script/compile.tcl
    7. the synthesized netlist is inside [sdm/vc]/syn/file/
    7. the synthesized netlist is inside [sdm/vc]/syn/file/
  * to run post-synthesis simulation
  * to run post-synthesis simulation
    1. check the netlists in [sdm/vc]/syn/file/
    1. check the netlists in [sdm/vc]/syn/file/
    2. modify the testbench configuration "define.h" according to your requirements.
    2. modify the testbench configuration "define.h" according to your requirements.
 
       Especially make sure the following are matched (at least in the SDM routers):
 
         ChBW = DW/8; SubChN = VCN
    3. make sure your NC-Simulator is installed alright (proper SystemC support).
    3. make sure your NC-Simulator is installed alright (proper SystemC support).
    4. run the compilation at [sdm/vc]/sim
    4. run the compilation at [sdm/vc]/sim
       compile.tcl
       compile.sh
    5. run the simulation at [sdm/vc]/sim
    5. run the simulation at [sdm/vc]/sim
       ncsim -tcl noctb
       ncsim -tcl noctb
    6. the simulation output files are *.ana at [sdm/vc]/sim
    6. the simulation output files are *.ana at [sdm/vc]/sim
       "throughput.ana":
       "throughput.ana":
         {simulation time in ps} TAB {throughput in bytes}
         {simulation time in ps} TAB {throughput in bytes}
       "delay.ana":
       "delay.ana":
         {simulation time in ps} TAB {avg. frame latency} TAB {avg. path setup delay}
         {simulation time in ps} TAB {avg. frame latency} TAB {avg. path setup delay}
  * The process of synthesize and simulate the VC router is similar to the procedure of
  * The process of synthesize and simulate the VC router is similar to the procedure of
    the wormhole/SDM router.
    the wormhole/SDM router.
For any questions and bug reports,
For any questions and bug reports,
    please email to Wei Song from wsong83@gmail.com
    please email to Wei Song from wsong83@gmail.com
Wei Song
Wei Song
08/06/2011
08/06/2011
 
 
 

powered by: WebSVN 2.1.0

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