Switched Ethernet

Across Ethernet and other prorpeitary protocols

Switched_Ethernet_model

Browsable image of the model.

  • To download OpenWebStart click on the links -
    Windows- Compatibility:Windows 10 or higher (*)
    macOS - Compatibility:macOS 10.15 (Catalina) or higher (*)
    Linux - Compatibility:Ubuntu 18.04 LTS or higher (*)
  • For an executable version,
  • Mouse over the icons to view parameters. Click on hierarchy and plotters to reveal content (if provided).
  • To simulate, click on Launch button, open downloaded file and click Run on the Java Security Page.
Switched_Ethernet_modelmodel <h2>TextDisplay</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>rowsDisplayed</td><td>10</td><td>10</td></tr><tr><td>columnsDisplayed</td><td>40</td><td>40</td></tr><tr><td>suppressBlankLines</td><td>false</td><td>false</td></tr><tr><td>title</td><td>&quot;Stats&quot;</td><td>&quot;Stats&quot;</td></tr><tr><td>ViewText</td><td>true</td><td>true</td></tr><tr><td>saveText</td><td>false</td><td>false</td></tr><tr><td>fileName</td><td>Enter Filename to save text</td><td>&quot;Enter Filename to save text&quot;</td></tr><tr><td>Append_Time</td><td>true</td><td>true</td></tr></table> <h2>ExpressionList4</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>Expression_List</td><td>/* Template to enter multiple RegEx lines*/\\n\\nselect                   = input.A_Queue_Num\\nChannel_Capacity(select) = Channel_Capacity(select) - input.A_Bytes_Sent\\nLatency = TNow - input.A_Time\\n</td><td>/* Template to enter multiple RegEx lines*/\\n\\nselect                   = input.A_Queue_Num\\nChannel_Capacity(select) = Channel_Capacity(select) - input.A_Bytes_Sent\\nLatency = TNow - input.A_Time\\n</td></tr><tr><td>Output_Ports</td><td>output</td><td>&quot;output&quot;</td></tr><tr><td>Output_Values</td><td>Latency</td><td>&quot;Latency&quot;</td></tr><tr><td>Output_Conditions</td><td>true</td><td>&quot;true&quot;</td></tr></table> <h2>ResourceStatistics</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Name</td><td>&quot;Multi_Block_Stats&quot;</td><td>&quot;Multi_Block_Stats&quot;</td></tr><tr><td>Scheduler_Name_Array</td><td>{&quot;Channel&quot;} /* list of all the Schedulers as strings in a array */</td><td>{&quot;Channel&quot;}</td></tr><tr><td>_explanation</td><td>Results-&gt;Resource_Statistical_Report</td><td>Results-&gt;Resource_Statistical_Report</td></tr><tr><td>Smart_Res_Length</td><td>{} /* Number of Queues in each Smart_Resource and match the order in </td><td>{}</td></tr><tr><td>Number_of_Samples</td><td>2</td><td>2</td></tr><tr><td>Smart_Res_Name_Array</td><td>{}</td><td>{}</td></tr><tr><td>Statistics</td><td>true  /* Reset is false and Statistics is true */ </td><td>true</td></tr><tr><td>SimTime</td><td>Sim_Time</td><td>10.0</td></tr></table> <h2>Smart_Controller</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>Block_Name</td><td>&quot;Arbitration_Algorithm&quot;</td><td>&quot;Arbitration_Algorithm&quot;</td></tr><tr><td>Optional_Parameters</td><td>/* First row contains Column Names.              */\\nParameter_Name                 Parameter_Value     \\nPath                           none                \\nRead_File                      none                \\nSave_Files                     false               \\nProfile_File                   none                \\nListen_to_File                 none                \\nDuplicate_Input                true                \\nProfile                        0                   \\nMaximum_Loops                  1000000             \\nBlock_Reference                Block_Name          \\nPort_Order_Array               {&quot;input&quot;}         \\nAdd_Scheduler_Times_to_DS      false               \\n</td><td>/* First row contains Column Names.              */\\nParameter_Name                 Parameter_Value     \\nPath                           none                \\nRead_File                      none                \\nSave_Files                     false               \\nProfile_File                   none                \\nListen_to_File                 none                \\nDuplicate_Input                true                \\nProfile                        0                   \\nMaximum_Loops                  1000000             \\nBlock_Reference                Block_Name          \\nPort_Order_Array               {&quot;input&quot;}         \\nAdd_Scheduler_Times_to_DS      false               \\n</td></tr><tr><td>Single_Cycle</td><td>false</td><td>false</td></tr><tr><td>Breakpoint</td><td>&quot;none&quot;</td><td>&quot;none&quot;</td></tr><tr><td>Self_Start</td><td>true</td><td>true</td></tr><tr><td>Smart_Resource_Name</td><td>&quot;Input_Q&quot;</td><td>&quot;Input_Q&quot;</td></tr></table> <h2>Queue</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>Block_Name</td><td>&quot;Input_Q&quot; /* Unique Name for the entire model */</td><td>&quot;Input_Q&quot;</td></tr><tr><td>Queue_Number_Field</td><td>&quot;A_Queue_Num&quot; /* Use the reference to a field and not a fixed value */</td><td>&quot;A_Queue_Num&quot;</td></tr><tr><td>Priority_Field</td><td>&quot;A_Priority&quot;  /* Field Name as reference */</td><td>&quot;A_Priority&quot;</td></tr><tr><td>Max_Queue_Length</td><td>1 /* Number of Transaction slots in each Queue or FIFO */</td><td>1</td></tr><tr><td>Number_of_Queues</td><td>Num_Queues /* Number of Queues represented by this block */</td><td>3</td></tr><tr><td>Initial_Queue_State</td><td>First_Token_Flow_Through</td><td>First_Token_Flow_Through</td></tr><tr><td>Queue_Reject_Mechanism</td><td>Incoming_Token_Rejected</td><td>Incoming_Token_Rejected</td></tr><tr><td>Queue_Type</td><td>FIFO</td><td>FIFO</td></tr></table> <h2>Channel</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr></table> <h2>While3</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>While_Statement</td><td>&quot;A_Bytes_Remaining &gt; Burst_Size&quot;</td><td>&quot;A_Bytes_Remaining &gt; Burst_Size&quot;</td></tr><tr><td>True_Execute</td><td>&quot;1, 2&quot;</td><td>&quot;1, 2&quot;</td></tr><tr><td>False_Execute</td><td>&quot;3, 4&quot;</td><td>&quot;3, 4&quot;</td></tr><tr><td>Field_Statement_1</td><td>A_Bytes_Sent = Burst_Size</td><td>&quot;A_Bytes_Sent = Burst_Size&quot;</td></tr><tr><td>Field_Statement_2</td><td>A_Bytes_Remaining = A_Bytes_Remaining - Burst_Size</td><td>&quot;A_Bytes_Remaining = A_Bytes_Remaining - Burst_Size&quot;</td></tr><tr><td>Field_Statement_3</td><td>A_Bytes_Sent = A_Bytes_Remaining</td><td>&quot;A_Bytes_Sent = A_Bytes_Remaining&quot;</td></tr><tr><td>Field_Statement_4</td><td>A_Bytes_Remaining = 0</td><td>&quot;A_Bytes_Remaining = 0&quot;</td></tr><tr><td>Loop_Delay_Value</td><td>1.0E-6</td><td>1.0E-6</td></tr><tr><td>Max_Loop_Count</td><td>&quot;MemName_FldName_Param_Num&quot;</td><td>&quot;MemName_FldName_Param_Num&quot;</td></tr><tr><td>Random_Seed</td><td>123457L</td><td>123457L</td></tr></table> <h2>ExpressionList5</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>Expression_List</td><td>/* Template to enter multiple RegEx lines*/\\n\\ninput.A_Destination      = &quot;Device1&quot;\\ninput.A_Bytes            = irand(64,200)\\ninput.A_Bytes_Remaining  = input.A_Bytes\\ninput.A_Command          = &quot;Write&quot;\\ninput.A_Priority         = irand(1,5)\\ninput.A_Time             = TNow\\ninput.A_Queue_Num        = 3\\ninput.Channel_Time       = (input.A_Bytes/Channel_Width)\\nResult_A                 = (input.A_Destination != &quot;Architecture_1&quot;)?true:false</td><td>/* Template to enter multiple RegEx lines*/\\n\\ninput.A_Destination      = &quot;Device1&quot;\\ninput.A_Bytes            = irand(64,200)\\ninput.A_Bytes_Remaining  = input.A_Bytes\\ninput.A_Command          = &quot;Write&quot;\\ninput.A_Priority         = irand(1,5)\\ninput.A_Time             = TNow\\ninput.A_Queue_Num        = 3\\ninput.Channel_Time       = (input.A_Bytes/Channel_Width)\\nResult_A                 = (input.A_Destination != &quot;Architecture_1&quot;)?true:false</td></tr><tr><td>Output_Ports</td><td>output</td><td>&quot;output&quot;</td></tr><tr><td>Output_Values</td><td>input</td><td>&quot;input&quot;</td></tr><tr><td>Output_Conditions</td><td>Result_A</td><td>&quot;Result_A&quot;</td></tr></table> <h2>Node_03</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>Data_Structure_Name</td><td>&quot;Processor_DS&quot;</td><td>&quot;Processor_DS&quot;</td></tr><tr><td>Start_Time</td><td>8.0E-3</td><td>0.008</td></tr><tr><td>Value_1</td><td>5.0E-3</td><td>0.005</td></tr><tr><td>Value_2</td><td>2.0</td><td>2.0</td></tr><tr><td>Random_Seed</td><td>123457L</td><td>123457L</td></tr><tr><td>Time_Distribution</td><td>Fixed (Value_1)</td><td>Fixed (Value_1)</td></tr></table> <h2>While2</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>While_Statement</td><td>&quot;A_Bytes_Remaining &gt; Burst_Size&quot;</td><td>&quot;A_Bytes_Remaining &gt; Burst_Size&quot;</td></tr><tr><td>True_Execute</td><td>&quot;1, 2&quot;</td><td>&quot;1, 2&quot;</td></tr><tr><td>False_Execute</td><td>&quot;3, 4&quot;</td><td>&quot;3, 4&quot;</td></tr><tr><td>Field_Statement_1</td><td>A_Bytes_Sent = Burst_Size</td><td>&quot;A_Bytes_Sent = Burst_Size&quot;</td></tr><tr><td>Field_Statement_2</td><td>A_Bytes_Remaining = A_Bytes_Remaining - Burst_Size</td><td>&quot;A_Bytes_Remaining = A_Bytes_Remaining - Burst_Size&quot;</td></tr><tr><td>Field_Statement_3</td><td>A_Bytes_Sent = A_Bytes_Remaining</td><td>&quot;A_Bytes_Sent = A_Bytes_Remaining&quot;</td></tr><tr><td>Field_Statement_4</td><td>A_Bytes_Remaining = 0</td><td>&quot;A_Bytes_Remaining = 0&quot;</td></tr><tr><td>Loop_Delay_Value</td><td>1.0E-6</td><td>1.0E-6</td></tr><tr><td>Max_Loop_Count</td><td>&quot;MemName_FldName_Param_Num&quot;</td><td>&quot;MemName_FldName_Param_Num&quot;</td></tr><tr><td>Random_Seed</td><td>123457L</td><td>123457L</td></tr></table> <h2>ExpressionList2</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>Expression_List</td><td>/* Template to enter multiple RegEx lines*/\\n\\ninput.A_Destination       = &quot;Device1&quot;\\ninput.A_Bytes             = irand(64,200)\\ninput.A_Bytes_Remaining   = input.A_Bytes\\ninput.A_Command           = &quot;Write&quot;\\ninput.A_Priority          = irand(1,5)\\ninput.A_Time              = TNow\\ninput.A_Queue_Num         = 2\\ninput.Channel_Time        = (input.A_Bytes/Channel_Width)\\nResult_A                  = (input.A_Destination != &quot;Architecture_1&quot;)?true:false</td><td>/* Template to enter multiple RegEx lines*/\\n\\ninput.A_Destination       = &quot;Device1&quot;\\ninput.A_Bytes             = irand(64,200)\\ninput.A_Bytes_Remaining   = input.A_Bytes\\ninput.A_Command           = &quot;Write&quot;\\ninput.A_Priority          = irand(1,5)\\ninput.A_Time              = TNow\\ninput.A_Queue_Num         = 2\\ninput.Channel_Time        = (input.A_Bytes/Channel_Width)\\nResult_A                  = (input.A_Destination != &quot;Architecture_1&quot;)?true:false</td></tr><tr><td>Output_Ports</td><td>output</td><td>&quot;output&quot;</td></tr><tr><td>Output_Values</td><td>input</td><td>&quot;input&quot;</td></tr><tr><td>Output_Conditions</td><td>Result_A</td><td>&quot;Result_A&quot;</td></tr></table> <h2>Node_02</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>Data_Structure_Name</td><td>&quot;Processor_DS&quot;</td><td>&quot;Processor_DS&quot;</td></tr><tr><td>Start_Time</td><td>1.0E-3</td><td>1.0E-3</td></tr><tr><td>Value_1</td><td>4.0E-3</td><td>0.004</td></tr><tr><td>Value_2</td><td>2.0</td><td>2.0</td></tr><tr><td>Random_Seed</td><td>123457L</td><td>123457L</td></tr><tr><td>Time_Distribution</td><td>Fixed (Value_1)</td><td>Fixed (Value_1)</td></tr></table> <h2>Latency</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>fillOnWrapup</td><td>true</td><td>true</td></tr><tr><td>legend</td><td>&nbsp;</td><td>&nbsp;</td></tr><tr><td>startingDataset</td><td>0</td><td>0</td></tr><tr><td>fileName</td><td>Enter Filename to save plot</td><td>&quot;Enter Filename to save plot&quot;</td></tr><tr><td>viewPlot</td><td>true</td><td>true</td></tr><tr><td>savePlot</td><td>false</td><td>false</td></tr></table> <h2>IN2</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>Destination_Name</td><td>output</td><td>&quot;output&quot;</td></tr><tr><td>Destination_Type</td><td>Global</td><td>Global</td></tr></table> <h2>OUT</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>Destination_Name</td><td>Data_out</td><td>&quot;Data_out&quot;</td></tr><tr><td>Destination_Type</td><td>Global</td><td>Global</td></tr></table> <h2>VariableList</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>Memory_Init_Text</td><td>/* Memory Initialize Template          \\nName                  Type          Value     */\\nChannel_Capacity     local         {0,0,0,0}   ;       </td><td>/* Memory Initialize Template          \\nName                  Type          Value     */\\nChannel_Capacity     local         {0,0,0,0}   ;       </td></tr></table> <h2>ExpressionList3</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>Expression_List</td><td>/* Template to enter multiple RegEx lines*/\\n\\nselect                   = input.A_Queue_Num\\nChannel_Capacity(select) = Channel_Capacity(select) + input.A_Bytes_Sent\\nResult_A                 = (Channel_Capacity(select) &lt; 600)? true:false</td><td>/* Template to enter multiple RegEx lines*/\\n\\nselect                   = input.A_Queue_Num\\nChannel_Capacity(select) = Channel_Capacity(select) + input.A_Bytes_Sent\\nResult_A                 = (Channel_Capacity(select) &lt; 600)? true:false</td></tr><tr><td>Output_Ports</td><td>output</td><td>&quot;output&quot;</td></tr><tr><td>Output_Values</td><td>input</td><td>&quot;input&quot;</td></tr><tr><td>Output_Conditions</td><td>Result_A</td><td>&quot;Result_A&quot;</td></tr></table> <h2>While</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>While_Statement</td><td>&quot;A_Bytes_Remaining &gt; Burst_Size&quot;</td><td>&quot;A_Bytes_Remaining &gt; Burst_Size&quot;</td></tr><tr><td>True_Execute</td><td>&quot;1, 2&quot;</td><td>&quot;1, 2&quot;</td></tr><tr><td>False_Execute</td><td>&quot;3, 4&quot;</td><td>&quot;3, 4&quot;</td></tr><tr><td>Field_Statement_1</td><td>A_Bytes_Sent = Burst_Size</td><td>&quot;A_Bytes_Sent = Burst_Size&quot;</td></tr><tr><td>Field_Statement_2</td><td>A_Bytes_Remaining = A_Bytes_Remaining - Burst_Size</td><td>&quot;A_Bytes_Remaining = A_Bytes_Remaining - Burst_Size&quot;</td></tr><tr><td>Field_Statement_3</td><td>A_Bytes_Sent = A_Bytes_Remaining</td><td>&quot;A_Bytes_Sent = A_Bytes_Remaining&quot;</td></tr><tr><td>Field_Statement_4</td><td>A_Bytes_Remaining = 0</td><td>&quot;A_Bytes_Remaining = 0&quot;</td></tr><tr><td>Loop_Delay_Value</td><td>1.0E-8</td><td>1.0E-8</td></tr><tr><td>Max_Loop_Count</td><td>&quot;MemName_FldName_Param_Num&quot;</td><td>&quot;MemName_FldName_Param_Num&quot;</td></tr><tr><td>Random_Seed</td><td>123457L</td><td>123457L</td></tr></table> <h2>ExpressionList</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>Expression_List</td><td>/* Template to enter multiple RegEx lines*/\\n\\ninput.A_Destination     = &quot;Device1&quot;\\ninput.A_Bytes           = irand(64,200)\\ninput.A_Bytes_Remaining = input.A_Bytes\\ninput.A_Command         = &quot;Write&quot;\\ninput.A_Priority        = irand(1,5)\\ninput.A_Time            = TNow\\ninput.A_Queue_Num       = 1\\ninput.Channel_Time      = (input.A_Bytes/Channel_Width)\\nResult_A                = (input.A_Destination != &quot;Architecture_1&quot;)?true:false</td><td>/* Template to enter multiple RegEx lines*/\\n\\ninput.A_Destination     = &quot;Device1&quot;\\ninput.A_Bytes           = irand(64,200)\\ninput.A_Bytes_Remaining = input.A_Bytes\\ninput.A_Command         = &quot;Write&quot;\\ninput.A_Priority        = irand(1,5)\\ninput.A_Time            = TNow\\ninput.A_Queue_Num       = 1\\ninput.Channel_Time      = (input.A_Bytes/Channel_Width)\\nResult_A                = (input.A_Destination != &quot;Architecture_1&quot;)?true:false</td></tr><tr><td>Output_Ports</td><td>output</td><td>&quot;output&quot;</td></tr><tr><td>Output_Values</td><td>input</td><td>&quot;input&quot;</td></tr><tr><td>Output_Conditions</td><td>Result_A</td><td>&quot;Result_A&quot;</td></tr></table> <h2>Node_01</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>Data_Structure_Name</td><td>&quot;Processor_DS&quot;</td><td>&quot;Processor_DS&quot;</td></tr><tr><td>Start_Time</td><td>0.0</td><td>0.0</td></tr><tr><td>Value_1</td><td>1.0E-3</td><td>1.0E-3</td></tr><tr><td>Value_2</td><td>2.0</td><td>2.0</td></tr><tr><td>Random_Seed</td><td>123457L</td><td>123457L</td></tr><tr><td>Time_Distribution</td><td>Fixed (Value_1)</td><td>Fixed (Value_1)</td></tr></table>

Click here to view the pdf