**Every block must have a unique name.
Place the following library blocks (drag and drop) in the block diagram editor.
Blocks |
Configuration |
Digital Simulator | stopTIme = 10.0e-6 A top level parameter named Sim_Time can be defined and linked to this parameter click here to see how to add a parameter in the model |
Architecture Setup | No additional configuration |
Instruction Set | Click here |
Power Table (optional) | Click here |
Blocks |
Connection |
Branch Predictor |
Right side ports are connected to fetch stage or intermediate blocks between BPU and Fetch stage. to_Fetch - Issues flow control request and Predicted address sequence to Fetch stage Frm_Fetch - Flow control response Bottom ports are connected from Decode stage and commit stage. It is a feedback connection for branch table update. |
Fetch Unit |
Left side ports are connected to Branch unit or the intermediate stage between Branch and fetch unit. Frm_Branch - Flow control request and predicted address sequence input to_Branch - Flow control resposnse Right side ports are connected to Decode Stage or intermediate stage between Fetch and Decode Unit to_Decode - Issues flow control and fetched Instruction to Decode stage Frm_Decode - Flow control response Bottom Ports are connected to L1 Instruction cache and MoP cache. Instruction fetch requests to corresponding caches. |
Decode Stage |
Left side ports are connected to Fetch unit or the intermediate stage between fetch and decode unit. Decode_inp - Flow control request and fetched instruction input to_Fetch - Flow control resposnse Right side ports are connected to MUX or Rename Stage or intermediate stage between Decode and Rename Unit to_MUX - Issues decoded instructions to rename stage Frm_MUX - Flow control response Bottom Port is connected to Branch Predictor Feedback path for unconditional branch update |
MUX |
Left side ports are connected to Decode stage and MoP Cache Frm_Decode - Decoded instruction input to_Decode - Flow control trigger Right side ports are connected to Rename stage MUX_out - Forwards the packets from Decode stage or MoP cache as per the control sequence Frm_Rename - Flow control response Bottom Port is connected to MoP cache. Decoded Instruction update to MoP cache. |
MoP |
Left side ports are connected to fetch unit. Mop_inp - Flow control request and fetch request from fetch unit Mop_Resp - Flow control resposnse and Miss response to fetch unit Right side ports are connected to MUX Mop_Out - Issues decoded intructions to Rename stage through MUX Frm_next_Stage - Flow control response Bottom Port is connected to MUX Decoded instruction update. |
Rename_Allocate_Stage |
Left side ports are connected to Decode unit or intermediate blocks between decode and rename. input - Decoded instruction input to_Decode - Flow control resposnse Right side ports are connected to dispatch Stage or intermediate stage between Rename and Dispatch Unit to_Dispatch - Issues flow control and Uops to dispatch stage Frm_Dispatch - Flow control response Bottom Port Frm_Commit - Conditional branch flush and Flow control trigger ROB_Occupancy - ROB occupancy value throughout the simulation, can be connected to plotter. Instruction fetch requests to corresponding caches. |
Dispatch Stage |
Right side ports are connected to Execution stage or intermediate blocks between Dispatch and Execution unit. to_Exec - Issues instructions that are ready to execute Flow_Control - Flow control response Right side ports are connected to Rename stage input - Uops input to_Rename - Flow control resposnse |
Execution_Unit |
Left side ports are connected to Dispatch stage or intermediate blocks between Dispatch and Execution unit. input - Instructions that needs to be executed Flow_Control- Flow control response Bottom ports are connected to Commit stage and D cache. Output - Executed instruction output to_D_Cache - Memory access request from Load/Store unit frm_D_Cache - Data response from D cache |
Commit_Stage |
Left side port is connected to Brach unit Conditional branch feedback Right side port is connected from Execution Unit Executed instruction input Top Ports to_Rename - Conditional branch flush and flow control trigger based on ROB availability ROB_Occupancy - ROB size thorughout the simulation (size after instruction commit) Bottom Port is connected to L1 Data cache. writeback to D cache. |
Blocks |
Connection |
I and D cache |
Instantiation of class file: Graph (from Tool bar) => Instantiate Class enter class name as VisualSim.actor.arch.Processor_Blocks.I_Cache - for I cache VisualSim.actor.arch.Processor_Blocks.D_Cache - for D cache I cache internal structure D cache internal structure |
TLB |
input - Virtual address input output - Physical address output Top ports connected to Page table at the last level TLB L1 TLBs communicate virtually to L2 TLB |
Integrated Cache | Left side ports - connected to Processor or lower level cache Right side ports - connected to higher level cache or main memory for data fetch VIPT_Addr_Check - connects to TLB in VIPT mode for parallel tag check Bottom ports - used for analysis Thoughput & latency can be connected to plotter and Debug can be connected to text display if debugging is enabled |
Memory controller and DRAM |
rd_wr_data_fm_bus - memory access request from cache rd_data_wr_resp_to_bus - memory access response to cache status - Debug port |
Blocks |
Connection |
Key Configuration |
Bus Arbiter and Bus interface |
|
Bus Name should be same in bus arbiter and multiple bus interface which all represent the same bus. Port name should be updated in each bus interface to be unique. |
AXI bus |
for detailed configuration please refer the Block documentation. |
Slave device name should be configured in the "Device_Attached_to_Slave_by_port" parameter. Bus Width - according to the design Read/Write threshold - according to the design |
Blocks |
Libray Location |
Parameter to set unique name - (right click=> Customize Name) |
Model Setup => Parameter= |
Database FileorURL option will load the lookput table from a file if it is not configured then the |
FIle IO => Database |
Variable List |
Model Setup => VariableList |
Expression List |
Behavior => Expression List |
Script |
Behavior => Script |
Relation block (small rhombus shaped connector) connects multiple blocks/wires |
Toolbar |
Join/Fork |
Behavior => Join, Fork |
Text Display |
Results => TextDisplay |
TimeDataPlotter |
Results => TimeDataPlotter |
Top Level Parameter |
Description |
Disassembly_File |
Disassembly file name linked to a database block named "Instruction_Cache_Feed" |
Sim_Time (Optional- it can be configured directly in the block) |
Simulation time linked to the digital simulato stopTime |
Processor_Speed_Mhz (Optional- it can be configured directly in the block) |
Core speed linked to all the pipeline stages and necessary blocks |
Uop_per_cycle (Optional- it can be configured directly in the block) |
Number of UoP per cycle can be issue to dispatch stage linked to Rename and commit stage |
Dispatch_per_Cycle (Optional- it can be configured directly in the block) |
Number of instructions that can be dispatched in a single cycle linked to Dispatch unit |
Page_Size (Optional- it can be configured directly in the block) |
Page Size for TLB configuration linked to all TLBs |
VA_Start_Addr (Optional- it can be configured directly in the block) |
Start of virtual address linked to all TLBs |
PA_Start_Addr (Optional- it can be configured directly in the block) |
Start of Physical address linked to all TLBs |
Power_Enable (Optional- it can be configured directly in the block) |
Enable or disable power feature linked to all pipleine stages |
Debug_Enable (Optional- it can be configured directly in the block) |
Enable or disablel debug feature linked to all pipeline stages |