Difference between revisions of "RAMP Relation"

From Vlsiwiki
Jump to: navigation, search
(New page: RAMP is a collaborative research community that aims at using FPGAs to accelerate processor simulations. Most RAMP projects aim at multiprocessor acceleration. This is a similar goal to S...)
 
Line 3: Line 3:
 
This is a similar goal to SCOORE, a major difference is that RAMP does not have an emphasis on ASIC or synthesis but rather on the FPGA acceleration.
 
This is a similar goal to SCOORE, a major difference is that RAMP does not have an emphasis on ASIC or synthesis but rather on the FPGA acceleration.
  
 
+
=== RTL Layers ===
 
RAMP common interface divides the RTL implementation in 3 blocks:
 
RAMP common interface divides the RTL implementation in 3 blocks:
  
Line 14: Line 14:
  
 
The RAMP project aims at providing a common interface to avoid platform and unmodel RTL. SCOORE can benefit as it could potentially reuse both.
 
The RAMP project aims at providing a common interface to avoid platform and unmodel RTL. SCOORE can benefit as it could potentially reuse both.
 +
 +
 +
=== Unit / Channel ===
 +
 +
RAMP partitions the design into units and channels. Main characteristics:
 +
 +
-Units only communicate through channels
 +
-Units wait until all the inputs (in channels) are ready before generating outputs (out channels)
 +
-Channels have a fixed latency
 +
-Channels are unidirectional
 +
-Channels have an initialization
 +
-A firing happens when a unit reads/consumes all the inputs and generates all the outputs.
 +
 +
 +
The RAMP channels are similar to the SCOORE inter-block communication. In SCOORE:
 +
 +
-All the inputs are read every cycle. The unit or block is responsible to read. A key difference is that
 +
in SCOORE we can set a "busy" signal which means that the following cycle the sent packet would not be processed until
 +
the busy is deasserted.
 +
-RAMP uses a "enable" signal to notify that the channel has data. We use a "valid" signal. E.g:
 +
 +
  typedef struct packed{
 +
    BoolType                            valid;
 +
    BoolType                            fault;
 +
    RIDType                            RID;
 +
    OPType                              op;
 +
    PRegType                            psrc1;
 +
    PRegType                            psrc2;
 +
    IMMType                            imm;
 +
    PRegType                            pdest;
 +
  }DInst_SEType;

Revision as of 21:53, 2 February 2009

RAMP is a collaborative research community that aims at using FPGAs to accelerate processor simulations. Most RAMP projects aim at multiprocessor acceleration.

This is a similar goal to SCOORE, a major difference is that RAMP does not have an emphasis on ASIC or synthesis but rather on the FPGA acceleration.

RTL Layers

RAMP common interface divides the RTL implementation in 3 blocks:

-Model RTL: The RTL required to implement a CPU/Memory/... model. Equivalen to the synos/scoore directory.

-Unmodel RTL: The RTL required to gather statistics or control the modeled architecture. It may not be necessary to execute instructions in the model architecture, but it is a requirement for researchers.

-Platform RTL: Each model and unmodel RTL needs to be synthesized in a specific FPGA platform. The platform RTL is the RTL specific for each platform.


The RAMP project aims at providing a common interface to avoid platform and unmodel RTL. SCOORE can benefit as it could potentially reuse both.


Unit / Channel

RAMP partitions the design into units and channels. Main characteristics:

-Units only communicate through channels -Units wait until all the inputs (in channels) are ready before generating outputs (out channels) -Channels have a fixed latency -Channels are unidirectional -Channels have an initialization -A firing happens when a unit reads/consumes all the inputs and generates all the outputs.


The RAMP channels are similar to the SCOORE inter-block communication. In SCOORE:

-All the inputs are read every cycle. The unit or block is responsible to read. A key difference is that in SCOORE we can set a "busy" signal which means that the following cycle the sent packet would not be processed until the busy is deasserted. -RAMP uses a "enable" signal to notify that the channel has data. We use a "valid" signal. E.g:

 typedef struct packed{
   BoolType                            valid;
   BoolType                            fault;
   RIDType                             RID;
   OPType                              op;
   PRegType                            psrc1;
   PRegType                            psrc2;
   IMMType                             imm;
   PRegType                            pdest;
 }DInst_SEType;