Hardware_Modeling/Bus_Switch_Ctrl
Block Name: Switch
Code File Location: VisualSim/actor/lib/bus/Switch
o The Switch provides the functionality of both the blocking and non-blocking configuration, based on the parameter setting- Blocking_Mode.
Non-Blocking: This switch transfers requests from each Source (A_Source) to each Destination (A_Destination) in a First Come-First Serve order. Each Source-Destination combination has a separate queue. There are multiple channels assigned for each Point-to-Point connection.
Blocking: This switch transfers requests from a Source (A_Source) to a Destination (A_Destination) in a First Come-First Serve order. There is a single internal queue and all transactions across the switch are placed in this queue.
Delay:
Note: The actual delay across the Switch could be greater than this value because of the queuing on the input side before transmitting based on the availability of the interface.
Commands: A_Command field contains the Command name. This can be Write or any other Type. The any other type will be considered a Read.
Hello Messages: This block bypasses the "Hello Messages" from Architecture components to update the Routing Table for interfaces across multiple buses. No routing Table definitions are required for the devices connected to Buses that are directly connected to ports of this Switch. Do not connect a architecture device such as a Processor or DRAM directly to the Switch Port. Always use a Linear Port to connect the device.
Required Fields: A_Command, A_Bytes_Sent, A_Source and A_Destination.
Refer the Non-blocking Switch and Blocking Switch demo models for more details.
Parameter |
Explanation |
Type |
Example |
Architecture_Name |
This is the name of the Architectue_Setup block that this switch is associated for the purpose of the Routing Table. |
String |
"Architecture_1" |
Switch_Name |
This is an unique name for this block. No other Architecture, Scheduler or Resource must have this name. |
String |
"Switch" |
Speed_Mhz |
This is speed of the Switch and is in Mhz. Internally the speed is converted to MBps for determining the delay across the switch. |
Double or RegEx |
500.0 |
Width_Bytes |
This is the width of each port and the crossbar on this Switch. Both the port and switch are considered to have the same width. |
Integer or RegEx |
4 |
Block_Mode |
true is for blocking and false is for non-blocking |
Boolean |
false |
Overhead_Cycles |
This is the number of additional cycles required for Read and Write operation. |
Integer |
0 |
Number_of_Connected_Devices |
This is a hidden parameter and must be added when additional ports are provided for this block |
Integer |
4 |
Sim_Time |
This is duration of the simulation and is used for the Digital Simulation inside. |
Double |
1.0 |
Address_bits |
This parameter is used to compute the Read request latency. Look at the use in the Delay section above. It is the length of the Address in bits. If a odd multiple of 8 is used, the delay is rounded to the next higher cycle. |
integer |
32 |
Port |
Explanation |
port |
Device_1 input data structure. |
port2 |
Device_1 output data structure. |
port3 |
Device_2 input data structure. |
port4 |
Device_2 output data structure. |
port5 |
Device_3 input data structure. |
port6 |
Device_3 output data structure. |
port7 |
Device_4 input data structure. |
port8 |
Device_4 output data structure. |
Created with the Personal Edition of HelpNDoc: Easily create iPhone documentation