RapidIO

Models a Spacecraft network using a RapidIO backbone

Flight_Computer_RIO_to_RIO_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.
Flight_Computer_RIO_to_RIO_Modelmodel <h2>PowerTable2</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>This is the Excel spreadsheet import.  The power \\ninformation is maintained here.</td><td>This is the Excel spreadsheet import.  The power \\ninformation is maintained here.</td></tr><tr><td>Manager_Name</td><td>&quot;Manager_1&quot;</td><td>&quot;Manager_1&quot;</td></tr><tr><td>fileOrURL</td><td>&nbsp;</td><td>&quot;&quot;</td></tr><tr><td>Manager_Setup</td><td>/* Power_Table.  First row contains Column Names, expressions valid for entries except Device Name.                                                 \\n                                                                                                                                                    \\n--------Device Name-------  ---------Power States------  -----Operating States------  -----------State Transitions---------  --Speed--  --Exist-- */\\n    Architecture_Block         Standby  Active  Wait      Idle    Existing  OffState  OnState  t_OnOff  Mhz       Volts   ; \\nScheduler_Flight_Computer_CPU  70.0     350.0    0.0      0.0     Standby   Standby   Active   0.0    1000.0     1.0     ;\\nPower_RIO_1                    10.0     20.0     0.0      0.0     Standby   Standby   Active   0.0    1000.0     1.0     ;\\nPower_RIO_2                    10.0     20.0     0.0      0.0     Standby   Standby   Active   0.0    1000.0     1.0     ;\\nPower_RIO_3                    10.0     20.0     0.0      0.0     Standby   Standby   Active   0.0    1000.0     1.0     ;\\nPower_RIO_4                    10.0     20.0     0.0      0.0     Standby   Standby   Active   0.0    1000.0     1.0     ;\\nPower_Switch                   20.0     40.0     0.0      0.0     Standby   Standby   Active   0.0    1000.0     1.0     ;\\nPower_RIO_5                    10.0     20.0     0.0      0.0     Standby   Standby   Active   0.0    1000.0     1.0     ;\\nPower_RIO_6                    10.0     20.0     0.0      0.0     Standby   Standby   Active   0.0    1000.0     1.0     ;\\nPower_RIO_7                    10.0     20.0     0.0      0.0     Standby   Standby   Active   0.0    1000.0     1.0     ;\\nPower_RIO_8                    10.0     20.0     0.0      0.0     Standby   Standby   Active   0.0    1000.0     1.0     ;\\nPower_RIO_9                    10.0     20.0     0.0      0.0     Standby   Standby   Active   0.0    1000.0     1.0     ;\\nPower_Switch_2                 20.0     40.0     0.0      0.0     Standby   Standby   Active   0.0    1000.0     1.0     ;</td><td>/* Power_Table.  First row contains Column Names, expressions valid for entries except Device Name.                                                 \\n                                                                                                                                                    \\n--------Device Name-------  ---------Power States------  -----Operating States------  -----------State Transitions---------  --Speed--  --Exist-- */\\n    Architecture_Block         Standby  Active  Wait      Idle    Existing  OffState  OnState  t_OnOff  Mhz       Volts   ; \\nScheduler_Flight_Computer_CPU  70.0     350.0    0.0      0.0     Standby   Standby   Active   0.0    1000.0     1.0     ;\\nPower_RIO_1                    10.0     20.0     0.0      0.0     Standby   Standby   Active   0.0    1000.0     1.0     ;\\nPower_RIO_2                    10.0     20.0     0.0      0.0     Standby   Standby   Active   0.0    1000.0     1.0     ;\\nPower_RIO_3                    10.0     20.0     0.0      0.0     Standby   Standby   Active   0.0    1000.0     1.0     ;\\nPower_RIO_4                    10.0     20.0     0.0      0.0     Standby   Standby   Active   0.0    1000.0     1.0     ;\\nPower_Switch                   20.0     40.0     0.0      0.0     Standby   Standby   Active   0.0    1000.0     1.0     ;\\nPower_RIO_5                    10.0     20.0     0.0      0.0     Standby   Standby   Active   0.0    1000.0     1.0     ;\\nPower_RIO_6                    10.0     20.0     0.0      0.0     Standby   Standby   Active   0.0    1000.0     1.0     ;\\nPower_RIO_7                    10.0     20.0     0.0      0.0     Standby   Standby   Active   0.0    1000.0     1.0     ;\\nPower_RIO_8                    10.0     20.0     0.0      0.0     Standby   Standby   Active   0.0    1000.0     1.0     ;\\nPower_RIO_9                    10.0     20.0     0.0      0.0     Standby   Standby   Active   0.0    1000.0     1.0     ;\\nPower_Switch_2                 20.0     40.0     0.0      0.0     Standby   Standby   Active   0.0    1000.0     1.0     ;</td></tr><tr><td>Async_State_Change</td><td>/* Async_State_Change.  First row contains Column Names, expressions valid for entries except Device Name.                                                 \\n                                                                                                                                                    \\n--------Device Name-------  ------------Time State--------- */\\n    Architecture_Block      State     Time_or_Express  Next ; </td><td>/* Async_State_Change.  First row contains Column Names, expressions valid for entries except Device Name.                                                 \\n                                                                                                                                                    \\n--------Device Name-------  ------------Time State--------- */\\n    Architecture_Block      State     Time_or_Express  Next ; </td></tr><tr><td>Expression_List</td><td>/* First row contains Column Names.                                                                                                                 \\n                                                                                                                                                    \\n---------Reference--------  ------------------------------------Expression----------------------------------------------------------------------- */\\n           Name                                                   Value                                                                           ; \\n</td><td>/* First row contains Column Names.                                                                                                                 \\n                                                                                                                                                    \\n---------Reference--------  ------------------------------------Expression----------------------------------------------------------------------- */\\n           Name                                                   Value                                                                           ; \\n</td></tr><tr><td>Battery_Units</td><td>Milli_Watts</td><td>Milli_Watts</td></tr><tr><td>State_Plot_Enable</td><td>false</td><td>false</td></tr></table> <h2>ExpressionList8</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*/\\nMemory_Size = (input.A_Source==&quot;Flight_Computer&quot;)? (Memory_Size - input.A_Bytes):(Memory_Size)\\ninput.A_Source = &quot;SSR&quot;\\ninput.A_Destination = &quot;Telecom&quot;\\ninput.RIO_Sender_Mailbox   = 1\\ninput.RIO_Receiver_Mailbox = 2</td><td>/* Template to enter multiple RegEx lines*/\\nMemory_Size = (input.A_Source==&quot;Flight_Computer&quot;)? (Memory_Size - input.A_Bytes):(Memory_Size)\\ninput.A_Source = &quot;SSR&quot;\\ninput.A_Destination = &quot;Telecom&quot;\\ninput.RIO_Sender_Mailbox   = 1\\ninput.RIO_Receiver_Mailbox = 2</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>true</td><td>&quot;true&quot;</td></tr><tr><td>_flipPortsVertical</td><td>true</td><td>true</td></tr><tr><td>_flipPortsHorizontal</td><td>false</td><td>false</td></tr><tr><td>_rotatePorts</td><td>180</td><td>180</td></tr></table> <h2>ExpressionList7</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   Result_A = TNow - input.TIME\\n   input.DELTA = rand (2.0e-6,1.50e-5) /* Response time from Ground Station */</td><td>/* Template to enter multiple RegEx lines*/\\n   Result_A = TNow - input.TIME\\n   input.DELTA = rand (2.0e-6,1.50e-5) /* Response time from Ground Station */</td></tr><tr><td>Output_Ports</td><td>output,next</td><td>&quot;output,next&quot;</td></tr><tr><td>Output_Values</td><td>Result_A,input</td><td>&quot;Result_A,input&quot;</td></tr><tr><td>Output_Conditions</td><td>true,true</td><td>&quot;true,true&quot;</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*/\\ninput.A_Source = &quot;Instrument&quot;\\ninput.A_Destination = &quot;Flight_Computer&quot;\\ninput.A_Bytes  = irand (Min_Pkt_Size, Max_Pkt_Size)\\ninput.RIO_Sender_Mailbox   = irand (1,4)\\ninput.RIO_Receiver_Mailbox = irand (1,4)\\ninput.RIO_Transmit_Flag    = true\\ninput.A_Command = &quot;Write&quot;\\ninput.A_Task_Flag = false</td><td>/* Template to enter multiple RegEx lines*/\\ninput.A_Source = &quot;Instrument&quot;\\ninput.A_Destination = &quot;Flight_Computer&quot;\\ninput.A_Bytes  = irand (Min_Pkt_Size, Max_Pkt_Size)\\ninput.RIO_Sender_Mailbox   = irand (1,4)\\ninput.RIO_Receiver_Mailbox = irand (1,4)\\ninput.RIO_Transmit_Flag    = true\\ninput.A_Command = &quot;Write&quot;\\ninput.A_Task_Flag = 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>true</td><td>&quot;true&quot;</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*/\\ninput.A_Source = &quot;IO_2&quot;\\ninput.A_Destination = &quot;Telecom&quot;\\ninput.A_Bytes  = irand (Min_Pkt_Size, Max_Pkt_Size)\\ninput.RIO_Sender_Mailbox   = 2\\ninput.RIO_Receiver_Mailbox = 2\\ninput.RIO_Transmit_Flag    = true\\ninput.A_Command = &quot;Write&quot;\\ninput.A_Task_Flag = false</td><td>/* Template to enter multiple RegEx lines*/\\ninput.A_Source = &quot;IO_2&quot;\\ninput.A_Destination = &quot;Telecom&quot;\\ninput.A_Bytes  = irand (Min_Pkt_Size, Max_Pkt_Size)\\ninput.RIO_Sender_Mailbox   = 2\\ninput.RIO_Receiver_Mailbox = 2\\ninput.RIO_Transmit_Flag    = true\\ninput.A_Command = &quot;Write&quot;\\ninput.A_Task_Flag = 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>true</td><td>&quot;true&quot;</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*/\\ninput.DELTA = 1.0 * input.A_Bytes</td><td>/* Template to enter multiple RegEx lines*/\\ninput.DELTA = 1.0 * input.A_Bytes</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>true</td><td>&quot;true&quot;</td></tr><tr><td>_flipPortsVertical</td><td>true</td><td>true</td></tr><tr><td>_flipPortsHorizontal</td><td>false</td><td>false</td></tr><tr><td>_rotatePorts</td><td>180</td><td>180</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*/\\ninput.A_Source             = &quot;Flight_Computer&quot;\\ninput.A_Destination        = &quot;SSR&quot;\\ninput.A_Bytes              = input.A_Bytes / 10  \\ninput.RIO_Sender_Mailbox   = 1\\ninput.RIO_Receiver_Mailbox = 2</td><td>/* Template to enter multiple RegEx lines*/\\ninput.A_Source             = &quot;Flight_Computer&quot;\\ninput.A_Destination        = &quot;SSR&quot;\\ninput.A_Bytes              = input.A_Bytes / 10  \\ninput.RIO_Sender_Mailbox   = 1\\ninput.RIO_Receiver_Mailbox = 2</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>true</td><td>&quot;true&quot;</td></tr></table> <h2>TextDisplay2</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;Node Master&quot;</td><td>&quot;Node Master&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>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;Rapid IO Messages&quot;</td><td>&quot;Rapid IO Messages&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><tr><td>_flipPortsVertical</td><td>false</td><td>false</td></tr><tr><td>_flipPortsHorizontal</td><td>false</td><td>false</td></tr><tr><td>_rotatePorts</td><td>90</td><td>90</td></tr></table> <h2>ExpressionList6</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*/\\nResult_A = (input.A_Source == &quot;SSR&quot;)?true:false\\ninput.A_Source = &quot;Telecom&quot;\\ninput.A_Destination = &quot;SSR&quot;\\ninput.A_Bytes = 10\\ninput.RIO_Sender_Mailbox   = 1\\ninput.RIO_Receiver_Mailbox = 2</td><td>/* Template to enter multiple RegEx lines*/\\nResult_A = (input.A_Source == &quot;SSR&quot;)?true:false\\ninput.A_Source = &quot;Telecom&quot;\\ninput.A_Destination = &quot;SSR&quot;\\ninput.A_Bytes = 10\\ninput.RIO_Sender_Mailbox   = 1\\ninput.RIO_Receiver_Mailbox = 2</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><tr><td>_flipPortsHorizontal</td><td>true</td><td>true</td></tr></table> <h2>SRIO_Node2</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>_explanation</td><td>Interfaces and Buses-&gt;RapidIO-&gt;Rapid_IO_Node</td><td>Interfaces and Buses-&gt;RapidIO-&gt;Rapid_IO_Node</td></tr><tr><td>RIO_Name</td><td>&quot;RIO&quot;</td><td>&quot;RIO&quot;</td></tr><tr><td>Architecture_Name</td><td>&quot;Architecture_1&quot;</td><td>&quot;Architecture_1&quot;</td></tr><tr><td>RIO_Speed_Mhz</td><td>1000.0</td><td>1000.0</td></tr><tr><td>Interface_Speed_Mhz</td><td>1000.0</td><td>1000.0</td></tr><tr><td>Overhead_Bytes</td><td>{8,20,20,20,20,20,20,10} /* Doorbell,Db_Ack,Retry_Ack, Rd_Overhead, Rd_Ack, Wr_Overhead,Wr_Ack, HW_Ack */</td><td>{8, 20, 20, 20, 20, 20, 20, 10}</td></tr><tr><td>Sim_Time</td><td>Sim_Time</td><td>0.005</td></tr><tr><td>RIO_Node_Number</td><td>2</td><td>2</td></tr><tr><td>Power_Manager_Name</td><td>&quot;Manager_1&quot;</td><td>&quot;Manager_1&quot;</td></tr><tr><td>Ingress_Buffer</td><td>256</td><td>256</td></tr><tr><td>Maximum_Payload_Bytes</td><td>256</td><td>256</td></tr><tr><td>Egress_Buffer</td><td>256</td><td>256</td></tr><tr><td>BER</td><td>1.0E-11</td><td>1.0E-11</td></tr><tr><td>Custom_Algorithm_File</td><td>&quot;none&quot;</td><td>&quot;none&quot;</td></tr><tr><td>Watermark_Array</td><td>{2,3,4} /*WM0,WM1,WM2 */</td><td>{2, 3, 4}</td></tr><tr><td>Output_Flow_Control</td><td>false</td><td>false</td></tr><tr><td>Mailbox_Length_Bytes</td><td>{276,276,276,276,276}*2</td><td>{552, 552, 552, 552, 552}</td></tr></table> <h2>Traffic</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-8</td><td>1.0E-8</td></tr><tr><td>Value_1</td><td>1.0e-4</td><td>1.0E-4</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>DeviceInterface2</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>Architecture_Name</td><td>&quot;Architecture_1&quot;</td><td>&quot;Architecture_1&quot;</td></tr><tr><td>IO_Name</td><td>&quot;IO_2&quot;</td><td>&quot;IO_2&quot;</td></tr><tr><td>IO_Destination</td><td>&quot;Fld_Name_or_String&quot;</td><td>&quot;Fld_Name_or_String&quot;</td></tr><tr><td>IO_Command</td><td>&quot;Fld_Name_or_String&quot;</td><td>&quot;Fld_Name_or_String&quot;</td></tr><tr><td>IO_Instruction</td><td>&quot;Fld_Name_or_String_or_None&quot;</td><td>&quot;Fld_Name_or_String_or_None&quot;</td></tr><tr><td>IO_Bytes</td><td>&quot;Fld_Name_or_Integer&quot;</td><td>&quot;Fld_Name_or_Integer&quot;</td></tr><tr><td>IO_Priority</td><td>&quot;Fld_Name_or_Integer&quot;</td><td>&quot;Fld_Name_or_Integer&quot;</td></tr><tr><td>IO_Address</td><td>&quot;Fld_Name_or_Integer&quot;</td><td>&quot;Fld_Name_or_Integer&quot;</td></tr><tr><td>_flipPortsHorizontal</td><td>false</td><td>false</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     */\\nMemory_Size      local         0   ;\\nToken\t\tlocal\t\tProcessor_DS ;</td><td>/* Memory Initialize Template          \\nName          Type          Value     */\\nMemory_Size      local         0   ;\\nToken\t\tlocal\t\tProcessor_DS ;</td></tr></table> <h2>SRIO_Node9</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>_explanation</td><td>Interfaces and Buses-&gt;RapidIO-&gt;Rapid_IO_Node</td><td>Interfaces and Buses-&gt;RapidIO-&gt;Rapid_IO_Node</td></tr><tr><td>RIO_Name</td><td>&quot;RIO&quot;</td><td>&quot;RIO&quot;</td></tr><tr><td>Architecture_Name</td><td>&quot;Architecture_1&quot;</td><td>&quot;Architecture_1&quot;</td></tr><tr><td>RIO_Speed_Mhz</td><td>1000.0</td><td>1000.0</td></tr><tr><td>Interface_Speed_Mhz</td><td>1000.0</td><td>1000.0</td></tr><tr><td>Overhead_Bytes</td><td>{8,20,20,20,20,20,20,10} /* Doorbell,Db_Ack,Retry_Ack, Rd_Overhead, Rd_Ack, Wr_Overhead,Wr_Ack, HW_Ack */</td><td>{8, 20, 20, 20, 20, 20, 20, 10}</td></tr><tr><td>Sim_Time</td><td>Sim_Time</td><td>0.005</td></tr><tr><td>RIO_Node_Number</td><td>8</td><td>8</td></tr><tr><td>Power_Manager_Name</td><td>&quot;Manager_1&quot;</td><td>&quot;Manager_1&quot;</td></tr><tr><td>Ingress_Buffer</td><td>256</td><td>256</td></tr><tr><td>Maximum_Payload_Bytes</td><td>256</td><td>256</td></tr><tr><td>Egress_Buffer</td><td>256</td><td>256</td></tr><tr><td>BER</td><td>1.0E-11</td><td>1.0E-11</td></tr><tr><td>Custom_Algorithm_File</td><td>&quot;none&quot;</td><td>&quot;none&quot;</td></tr><tr><td>Watermark_Array</td><td>{2,3,4} /*WM0,WM1,WM2 */</td><td>{2, 3, 4}</td></tr><tr><td>Output_Flow_Control</td><td>false</td><td>false</td></tr><tr><td>Mailbox_Length_Bytes</td><td>{276,276,276,276,276}*2</td><td>{552, 552, 552, 552, 552}</td></tr><tr><td>_flipPortsHorizontal</td><td>true</td><td>true</td></tr></table> <h2>Boolean_Trigger</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>Port_Arrival_Order</td><td>Input_or_Control_First</td><td>Input_or_Control_First</td></tr></table> <h2>Start_Transfer</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>_explanation</td><td>Source-&gt;Event-&gt;SingleEvent\t</td><td>Source-&gt;Event-&gt;SingleEvent\t</td></tr><tr><td>time</td><td>0.0</td><td>0.0</td></tr><tr><td>value</td><td>1</td><td>1</td></tr><tr><td>_flipPortsHorizontal</td><td>false</td><td>false</td></tr></table> <h2>GND_Ack_Dly</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>Delay_Value</td><td>&quot;DELTA&quot;</td><td>&quot;&quot;DELTA&quot;&quot;</td></tr><tr><td>_flipPortsHorizontal</td><td>true</td><td>true</td></tr></table> <h2>Resp_Time</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>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*/\\nMemory_Size = (input.A_Source==&quot;Flight_Computer&quot;)? (Memory_Size + input.A_Bytes):(Memory_Size)\\n/* Add as many RegEx lines are required */</td><td>/* Template to enter multiple RegEx lines*/\\nMemory_Size = (input.A_Source==&quot;Flight_Computer&quot;)? (Memory_Size + input.A_Bytes):(Memory_Size)\\n/* Add as many RegEx lines are required */</td></tr><tr><td>Output_Ports</td><td>output,output2,mem</td><td>&quot;output,output2,mem&quot;</td></tr><tr><td>Output_Values</td><td>input,input,Memory_Size</td><td>&quot;input,input,Memory_Size&quot;</td></tr><tr><td>Output_Conditions</td><td>(input.A_Source==&quot;Flight_Computer&quot;),(input.A_Source==&quot;Telecom&quot;),true</td><td>&quot;(input.A_Source==&quot;Flight_Computer&quot;),(input.A_Source==&quot;Telecom&quot;),true&quot;</td></tr></table> <h2>Const3</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>value</td><td>1</td><td>1</td></tr><tr><td>_flipPortsHorizontal</td><td>false</td><td>false</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;SSR_Q&quot;</td><td>&quot;SSR_Q&quot;</td></tr><tr><td>Queue_Number_Field</td><td>1</td><td>1</td></tr><tr><td>Priority_Field</td><td>&quot;Priority_Field_or_Int&quot;</td><td>&quot;Priority_Field_or_Int&quot;</td></tr><tr><td>Max_Queue_Length</td><td>30</td><td>30</td></tr><tr><td>Number_of_Queues</td><td>1</td><td>1</td></tr><tr><td>Initial_Queue_State</td><td>First_Token_Enqueue</td><td>First_Token_Enqueue</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>Traffic2</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-8</td><td>1.0E-8</td></tr><tr><td>Value_1</td><td>50.0e-6</td><td>5.0E-5</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>DeviceInterface4</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>Architecture_Name</td><td>&quot;Architecture_1&quot;</td><td>&quot;Architecture_1&quot;</td></tr><tr><td>IO_Name</td><td>&quot;SSR&quot;</td><td>&quot;SSR&quot;</td></tr><tr><td>IO_Destination</td><td>&quot;Fld_Name_or_String&quot;</td><td>&quot;Fld_Name_or_String&quot;</td></tr><tr><td>IO_Command</td><td>&quot;Fld_Name_or_String&quot;</td><td>&quot;Fld_Name_or_String&quot;</td></tr><tr><td>IO_Instruction</td><td>&quot;Fld_Name_or_String_or_None&quot;</td><td>&quot;Fld_Name_or_String_or_None&quot;</td></tr><tr><td>IO_Bytes</td><td>&quot;Fld_Name_or_Integer&quot;</td><td>&quot;Fld_Name_or_Integer&quot;</td></tr><tr><td>IO_Priority</td><td>&quot;Fld_Name_or_Integer&quot;</td><td>&quot;Fld_Name_or_Integer&quot;</td></tr><tr><td>IO_Address</td><td>&quot;Fld_Name_or_Integer&quot;</td><td>&quot;Fld_Name_or_Integer&quot;</td></tr><tr><td>_flipPortsHorizontal</td><td>true</td><td>true</td></tr></table> <h2>DeviceInterface5</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>Architecture_Name</td><td>&quot;Architecture_1&quot;</td><td>&quot;Architecture_1&quot;</td></tr><tr><td>IO_Name</td><td>&quot;Telecom&quot;</td><td>&quot;Telecom&quot;</td></tr><tr><td>IO_Destination</td><td>&quot;Fld_Name_or_String&quot;</td><td>&quot;Fld_Name_or_String&quot;</td></tr><tr><td>IO_Command</td><td>&quot;Fld_Name_or_String&quot;</td><td>&quot;Fld_Name_or_String&quot;</td></tr><tr><td>IO_Instruction</td><td>&quot;Fld_Name_or_String_or_None&quot;</td><td>&quot;Fld_Name_or_String_or_None&quot;</td></tr><tr><td>IO_Bytes</td><td>&quot;Fld_Name_or_Integer&quot;</td><td>&quot;Fld_Name_or_Integer&quot;</td></tr><tr><td>IO_Priority</td><td>&quot;Fld_Name_or_Integer&quot;</td><td>&quot;Fld_Name_or_Integer&quot;</td></tr><tr><td>IO_Address</td><td>&quot;Fld_Name_or_Integer&quot;</td><td>&quot;Fld_Name_or_Integer&quot;</td></tr><tr><td>_flipPortsHorizontal</td><td>true</td><td>true</td></tr></table> <h2>DeviceInterface3</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>Architecture_Name</td><td>&quot;Architecture_1&quot;</td><td>&quot;Architecture_1&quot;</td></tr><tr><td>IO_Name</td><td>&quot;Instrument&quot;</td><td>&quot;Instrument&quot;</td></tr><tr><td>IO_Destination</td><td>&quot;Fld_Name_or_String&quot;</td><td>&quot;Fld_Name_or_String&quot;</td></tr><tr><td>IO_Command</td><td>&quot;Fld_Name_or_String&quot;</td><td>&quot;Fld_Name_or_String&quot;</td></tr><tr><td>IO_Instruction</td><td>&quot;Fld_Name_or_String_or_None&quot;</td><td>&quot;Fld_Name_or_String_or_None&quot;</td></tr><tr><td>IO_Bytes</td><td>&quot;Fld_Name_or_Integer&quot;</td><td>&quot;Fld_Name_or_Integer&quot;</td></tr><tr><td>IO_Priority</td><td>&quot;Fld_Name_or_Integer&quot;</td><td>&quot;Fld_Name_or_Integer&quot;</td></tr><tr><td>IO_Address</td><td>&quot;Fld_Name_or_Integer&quot;</td><td>&quot;Fld_Name_or_Integer&quot;</td></tr><tr><td>_flipPortsHorizontal</td><td>true</td><td>true</td></tr></table> <h2>SystemResource</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>This_Scheduler_Name</td><td>&quot;Flight_Computer_CPU&quot;</td><td>&quot;Flight_Computer_CPU&quot;</td></tr><tr><td>Parent_Scheduler_Name</td><td>&quot;Fld_Name_or_String_or_None&quot;</td><td>&quot;Fld_Name_or_String_or_None&quot;</td></tr><tr><td>Task_Context_Switch_Time</td><td>0.0</td><td>0.0</td></tr><tr><td>Round_Robin_Time_Slice</td><td>1.0E-3</td><td>1.0E-3</td></tr><tr><td>Clock_Rate_Mhz</td><td>500.0</td><td>500.0</td></tr><tr><td>Max_Scheduler_Length</td><td>30</td><td>30</td></tr><tr><td>Time_Type</td><td>Number Clocks</td><td>Number Clocks</td></tr><tr><td>Scheduler_Type</td><td>Scheduler_FCFS</td><td>Scheduler_FCFS</td></tr><tr><td>Add_Scheduler_Times_to_DS</td><td>false</td><td>false</td></tr></table> <h2>Mapper</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>Parent_Scheduler_Name</td><td>&quot;Flight_Computer_CPU&quot;</td><td>&quot;&quot;Flight_Computer_CPU&quot;&quot;</td></tr><tr><td>Task_Number</td><td>1</td><td>&quot;1&quot;</td></tr><tr><td>Task_Priority</td><td>&quot;A_Priority&quot;</td><td>&quot;&quot;A_Priority&quot;&quot;</td></tr><tr><td>Task_Time</td><td>&quot;DELTA&quot;</td><td>&quot;&quot;DELTA&quot;&quot;</td></tr><tr><td>Task_Plot_ID</td><td>1</td><td>1</td></tr></table> <h2>DeviceInterface</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>Architecture_Name</td><td>&quot;Architecture_1&quot;</td><td>&quot;Architecture_1&quot;</td></tr><tr><td>IO_Name</td><td>&quot;Flight_Computer&quot;</td><td>&quot;Flight_Computer&quot;</td></tr><tr><td>IO_Destination</td><td>&quot;Fld_Name_or_String&quot;</td><td>&quot;Fld_Name_or_String&quot;</td></tr><tr><td>IO_Command</td><td>&quot;Fld_Name_or_String&quot;</td><td>&quot;Fld_Name_or_String&quot;</td></tr><tr><td>IO_Instruction</td><td>&quot;Fld_Name_or_String_or_None&quot;</td><td>&quot;Fld_Name_or_String_or_None&quot;</td></tr><tr><td>IO_Bytes</td><td>&quot;Fld_Name_or_Integer&quot;</td><td>&quot;Fld_Name_or_Integer&quot;</td></tr><tr><td>IO_Priority</td><td>&quot;Fld_Name_or_Integer&quot;</td><td>&quot;Fld_Name_or_Integer&quot;</td></tr><tr><td>IO_Address</td><td>&quot;Fld_Name_or_Integer&quot;</td><td>&quot;Fld_Name_or_Integer&quot;</td></tr></table> <h2>SRIO_Node8</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>_explanation</td><td>Interfaces and Buses-&gt;RapidIO-&gt;Rapid_IO_Node</td><td>Interfaces and Buses-&gt;RapidIO-&gt;Rapid_IO_Node</td></tr><tr><td>RIO_Name</td><td>&quot;RIO&quot;</td><td>&quot;RIO&quot;</td></tr><tr><td>Architecture_Name</td><td>&quot;Architecture_1&quot;</td><td>&quot;Architecture_1&quot;</td></tr><tr><td>RIO_Speed_Mhz</td><td>1000.0</td><td>1000.0</td></tr><tr><td>Interface_Speed_Mhz</td><td>1000.0</td><td>1000.0</td></tr><tr><td>Overhead_Bytes</td><td>{8,20,20,20,20,20,20,10} /* Doorbell,Db_Ack,Retry_Ack, Rd_Overhead, Rd_Ack, Wr_Overhead,Wr_Ack, HW_Ack */</td><td>{8, 20, 20, 20, 20, 20, 20, 10}</td></tr><tr><td>Sim_Time</td><td>Sim_Time</td><td>0.005</td></tr><tr><td>RIO_Node_Number</td><td>9</td><td>9</td></tr><tr><td>Power_Manager_Name</td><td>&quot;Manager_1&quot;</td><td>&quot;Manager_1&quot;</td></tr><tr><td>Ingress_Buffer</td><td>256</td><td>256</td></tr><tr><td>Maximum_Payload_Bytes</td><td>256</td><td>256</td></tr><tr><td>Egress_Buffer</td><td>256</td><td>256</td></tr><tr><td>BER</td><td>1.0E-11</td><td>1.0E-11</td></tr><tr><td>Custom_Algorithm_File</td><td>&quot;none&quot;</td><td>&quot;none&quot;</td></tr><tr><td>Watermark_Array</td><td>{2,3,4} /*WM0,WM1,WM2 */</td><td>{2, 3, 4}</td></tr><tr><td>Output_Flow_Control</td><td>false</td><td>false</td></tr><tr><td>Mailbox_Length_Bytes</td><td>{276,276,276,276,276}*2</td><td>{552, 552, 552, 552, 552}</td></tr><tr><td>_flipPortsHorizontal</td><td>true</td><td>true</td></tr></table> <h2>SRIO_Node7</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>_explanation</td><td>Interfaces and Buses-&gt;RapidIO-&gt;Rapid_IO_Node</td><td>Interfaces and Buses-&gt;RapidIO-&gt;Rapid_IO_Node</td></tr><tr><td>RIO_Name</td><td>&quot;RIO&quot;</td><td>&quot;RIO&quot;</td></tr><tr><td>Architecture_Name</td><td>&quot;Architecture_1&quot;</td><td>&quot;Architecture_1&quot;</td></tr><tr><td>RIO_Speed_Mhz</td><td>1000.0</td><td>1000.0</td></tr><tr><td>Interface_Speed_Mhz</td><td>1000.0</td><td>1000.0</td></tr><tr><td>Overhead_Bytes</td><td>{8,20,20,20,20,20,20,10} /* Doorbell,Db_Ack,Retry_Ack, Rd_Overhead, Rd_Ack, Wr_Overhead,Wr_Ack, HW_Ack */</td><td>{8, 20, 20, 20, 20, 20, 20, 10}</td></tr><tr><td>Sim_Time</td><td>Sim_Time</td><td>0.005</td></tr><tr><td>RIO_Node_Number</td><td>6</td><td>6</td></tr><tr><td>Power_Manager_Name</td><td>&quot;Manager_1&quot;</td><td>&quot;Manager_1&quot;</td></tr><tr><td>Ingress_Buffer</td><td>256</td><td>256</td></tr><tr><td>Maximum_Payload_Bytes</td><td>256</td><td>256</td></tr><tr><td>Egress_Buffer</td><td>256</td><td>256</td></tr><tr><td>BER</td><td>1.0E-11</td><td>1.0E-11</td></tr><tr><td>Custom_Algorithm_File</td><td>&quot;none&quot;</td><td>&quot;none&quot;</td></tr><tr><td>Watermark_Array</td><td>{2,3,4} /*WM0,WM1,WM2 */</td><td>{2, 3, 4}</td></tr><tr><td>Output_Flow_Control</td><td>false</td><td>false</td></tr><tr><td>Mailbox_Length_Bytes</td><td>{276,276,276,276,276}*2</td><td>{552, 552, 552, 552, 552}</td></tr></table> <h2>SRIO_Node6</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>_explanation</td><td>Interfaces and Buses-&gt;RapidIO-&gt;Rapid_IO_Node</td><td>Interfaces and Buses-&gt;RapidIO-&gt;Rapid_IO_Node</td></tr><tr><td>RIO_Name</td><td>&quot;RIO&quot;</td><td>&quot;RIO&quot;</td></tr><tr><td>Architecture_Name</td><td>&quot;Architecture_1&quot;</td><td>&quot;Architecture_1&quot;</td></tr><tr><td>RIO_Speed_Mhz</td><td>1000.0</td><td>1000.0</td></tr><tr><td>Interface_Speed_Mhz</td><td>1000.0</td><td>1000.0</td></tr><tr><td>Overhead_Bytes</td><td>{8,20,20,20,20,20,20,10} /* Doorbell,Db_Ack,Retry_Ack, Rd_Overhead, Rd_Ack, Wr_Overhead,Wr_Ack, HW_Ack */</td><td>{8, 20, 20, 20, 20, 20, 20, 10}</td></tr><tr><td>Sim_Time</td><td>Sim_Time</td><td>0.005</td></tr><tr><td>RIO_Node_Number</td><td>7</td><td>7</td></tr><tr><td>Power_Manager_Name</td><td>&quot;Manager_1&quot;</td><td>&quot;Manager_1&quot;</td></tr><tr><td>Ingress_Buffer</td><td>256</td><td>256</td></tr><tr><td>Maximum_Payload_Bytes</td><td>256</td><td>256</td></tr><tr><td>Egress_Buffer</td><td>256</td><td>256</td></tr><tr><td>BER</td><td>1.0E-11</td><td>1.0E-11</td></tr><tr><td>Custom_Algorithm_File</td><td>&quot;none&quot;</td><td>&quot;none&quot;</td></tr><tr><td>Watermark_Array</td><td>{2,3,4} /*WM0,WM1,WM2 */</td><td>{2, 3, 4}</td></tr><tr><td>Output_Flow_Control</td><td>false</td><td>false</td></tr><tr><td>Mailbox_Length_Bytes</td><td>{276,276,276,276,276}*2</td><td>{552, 552, 552, 552, 552}</td></tr><tr><td>_flipPortsHorizontal</td><td>true</td><td>true</td></tr></table> <h2>SRIO_Node5</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>_explanation</td><td>Interfaces and Buses-&gt;RapidIO-&gt;Rapid_IO_Node</td><td>Interfaces and Buses-&gt;RapidIO-&gt;Rapid_IO_Node</td></tr><tr><td>RIO_Name</td><td>&quot;RIO&quot;</td><td>&quot;RIO&quot;</td></tr><tr><td>Architecture_Name</td><td>&quot;Architecture_1&quot;</td><td>&quot;Architecture_1&quot;</td></tr><tr><td>RIO_Speed_Mhz</td><td>1000.0</td><td>1000.0</td></tr><tr><td>Interface_Speed_Mhz</td><td>1000.0</td><td>1000.0</td></tr><tr><td>Overhead_Bytes</td><td>{8,20,20,20,20,20,20,10} /* Doorbell,Db_Ack,Retry_Ack, Rd_Overhead, Rd_Ack, Wr_Overhead,Wr_Ack, HW_Ack */</td><td>{8, 20, 20, 20, 20, 20, 20, 10}</td></tr><tr><td>Sim_Time</td><td>Sim_Time</td><td>0.005</td></tr><tr><td>RIO_Node_Number</td><td>5</td><td>5</td></tr><tr><td>Power_Manager_Name</td><td>&quot;Manager_1&quot;</td><td>&quot;Manager_1&quot;</td></tr><tr><td>Ingress_Buffer</td><td>256</td><td>256</td></tr><tr><td>Maximum_Payload_Bytes</td><td>256</td><td>256</td></tr><tr><td>Egress_Buffer</td><td>256</td><td>256</td></tr><tr><td>BER</td><td>1.0E-11</td><td>1.0E-11</td></tr><tr><td>Custom_Algorithm_File</td><td>&quot;none&quot;</td><td>&quot;none&quot;</td></tr><tr><td>Watermark_Array</td><td>{2,3,4} /*WM0,WM1,WM2 */</td><td>{2, 3, 4}</td></tr><tr><td>Output_Flow_Control</td><td>false</td><td>false</td></tr><tr><td>Mailbox_Length_Bytes</td><td>{276,276,276,276,276}*2</td><td>{552, 552, 552, 552, 552}</td></tr></table> <h2>SRIO_Node4</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>_explanation</td><td>Interfaces and Buses-&gt;RapidIO-&gt;Rapid_IO_Node</td><td>Interfaces and Buses-&gt;RapidIO-&gt;Rapid_IO_Node</td></tr><tr><td>RIO_Name</td><td>&quot;RIO&quot;</td><td>&quot;RIO&quot;</td></tr><tr><td>Architecture_Name</td><td>&quot;Architecture_1&quot;</td><td>&quot;Architecture_1&quot;</td></tr><tr><td>RIO_Speed_Mhz</td><td>1000.0</td><td>1000.0</td></tr><tr><td>Interface_Speed_Mhz</td><td>1000.0</td><td>1000.0</td></tr><tr><td>Overhead_Bytes</td><td>{8,20,20,20,20,20,20,10} /* Doorbell,Db_Ack,Retry_Ack, Rd_Overhead, Rd_Ack, Wr_Overhead,Wr_Ack, HW_Ack */</td><td>{8, 20, 20, 20, 20, 20, 20, 10}</td></tr><tr><td>Sim_Time</td><td>Sim_Time</td><td>0.005</td></tr><tr><td>RIO_Node_Number</td><td>4</td><td>4</td></tr><tr><td>Power_Manager_Name</td><td>&quot;Manager_1&quot;</td><td>&quot;Manager_1&quot;</td></tr><tr><td>Ingress_Buffer</td><td>256</td><td>256</td></tr><tr><td>Maximum_Payload_Bytes</td><td>256</td><td>256</td></tr><tr><td>Egress_Buffer</td><td>256</td><td>256</td></tr><tr><td>BER</td><td>1.0E-11</td><td>1.0E-11</td></tr><tr><td>Custom_Algorithm_File</td><td>&quot;none&quot;</td><td>&quot;none&quot;</td></tr><tr><td>Watermark_Array</td><td>{2,3,4} /*WM0,WM1,WM2 */</td><td>{2, 3, 4}</td></tr><tr><td>Output_Flow_Control</td><td>false</td><td>false</td></tr><tr><td>Mailbox_Length_Bytes</td><td>{276,276,276,276,276}*2</td><td>{552, 552, 552, 552, 552}</td></tr><tr><td>_flipPortsHorizontal</td><td>true</td><td>true</td></tr></table> <h2>SRIO_Node3</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>_explanation</td><td>Interfaces and Buses-&gt;RapidIO-&gt;Rapid_IO_Node</td><td>Interfaces and Buses-&gt;RapidIO-&gt;Rapid_IO_Node</td></tr><tr><td>RIO_Name</td><td>&quot;RIO&quot;</td><td>&quot;RIO&quot;</td></tr><tr><td>Architecture_Name</td><td>&quot;Architecture_1&quot;</td><td>&quot;Architecture_1&quot;</td></tr><tr><td>RIO_Speed_Mhz</td><td>1000.0</td><td>1000.0</td></tr><tr><td>Interface_Speed_Mhz</td><td>1000.0</td><td>1000.0</td></tr><tr><td>Overhead_Bytes</td><td>{8,20,20,20,20,20,20,10} /* Doorbell,Db_Ack,Retry_Ack, Rd_Overhead, Rd_Ack, Wr_Overhead,Wr_Ack, HW_Ack */</td><td>{8, 20, 20, 20, 20, 20, 20, 10}</td></tr><tr><td>Sim_Time</td><td>Sim_Time</td><td>0.005</td></tr><tr><td>RIO_Node_Number</td><td>3</td><td>3</td></tr><tr><td>Power_Manager_Name</td><td>&quot;Manager_1&quot;</td><td>&quot;Manager_1&quot;</td></tr><tr><td>Ingress_Buffer</td><td>256</td><td>256</td></tr><tr><td>Maximum_Payload_Bytes</td><td>256</td><td>256</td></tr><tr><td>Egress_Buffer</td><td>256</td><td>256</td></tr><tr><td>BER</td><td>1.0E-11</td><td>1.0E-11</td></tr><tr><td>Custom_Algorithm_File</td><td>&quot;none&quot;</td><td>&quot;none&quot;</td></tr><tr><td>Watermark_Array</td><td>{2,3,4} /*WM0,WM1,WM2 */</td><td>{2, 3, 4}</td></tr><tr><td>Output_Flow_Control</td><td>false</td><td>false</td></tr><tr><td>Mailbox_Length_Bytes</td><td>{276,276,276,276,276}*2</td><td>{552, 552, 552, 552, 552}</td></tr><tr><td>_flipPortsHorizontal</td><td>true</td><td>true</td></tr></table> <h2>SRIO_Node</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>_explanation</td><td>Interfaces and Buses-&gt;RapidIO-&gt;Rapid_IO_Node</td><td>Interfaces and Buses-&gt;RapidIO-&gt;Rapid_IO_Node</td></tr><tr><td>RIO_Name</td><td>&quot;RIO&quot;</td><td>&quot;RIO&quot;</td></tr><tr><td>Architecture_Name</td><td>&quot;Architecture_1&quot;</td><td>&quot;Architecture_1&quot;</td></tr><tr><td>RIO_Speed_Mhz</td><td>1000.0</td><td>1000.0</td></tr><tr><td>Interface_Speed_Mhz</td><td>1000.0</td><td>1000.0</td></tr><tr><td>Overhead_Bytes</td><td>{8,20,20,20,20,20,20,10} /* Doorbell,Db_Ack,Retry_Ack, Rd_Overhead, Rd_Ack, Wr_Overhead,Wr_Ack, HW_Ack */</td><td>{8, 20, 20, 20, 20, 20, 20, 10}</td></tr><tr><td>Sim_Time</td><td>Sim_Time</td><td>0.005</td></tr><tr><td>RIO_Node_Number</td><td>1</td><td>1</td></tr><tr><td>Power_Manager_Name</td><td>&quot;Manager_1&quot;</td><td>&quot;Manager_1&quot;</td></tr><tr><td>Ingress_Buffer</td><td>256</td><td>256</td></tr><tr><td>Maximum_Payload_Bytes</td><td>256</td><td>256</td></tr><tr><td>Egress_Buffer</td><td>256</td><td>256</td></tr><tr><td>BER</td><td>1.0E-11</td><td>1.0E-11</td></tr><tr><td>Custom_Algorithm_File</td><td>&quot;none&quot;</td><td>&quot;none&quot;</td></tr><tr><td>Watermark_Array</td><td>{2,3,4} /*WM0,WM1,WM2 */</td><td>{2, 3, 4}</td></tr><tr><td>Output_Flow_Control</td><td>false</td><td>false</td></tr><tr><td>Mailbox_Length_Bytes</td><td>{276,276,276,276,276}*2</td><td>{552, 552, 552, 552, 552}</td></tr></table> <h2>Serial_Switch4</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Architecture_Name</td><td>&quot;Architecture_1&quot;</td><td>&quot;Architecture_1&quot;</td></tr><tr><td>Switch_Name</td><td>&quot;Switch_2&quot;</td><td>&quot;Switch_2&quot;</td></tr><tr><td>Speed_Mhz</td><td>1000.0</td><td>1000.0</td></tr><tr><td>Channel_Field_Name</td><td>&quot;RIO_Lane_ID&quot;</td><td>&quot;RIO_Lane_ID&quot;</td></tr><tr><td>Overhead_Cycles</td><td>1</td><td>1</td></tr><tr><td>Sim_Time</td><td>Sim_Time</td><td>0.005</td></tr><tr><td>Number_PHY_Lanes</td><td>16</td><td>16</td></tr><tr><td>Power_Manager_Name</td><td>&quot;Manager_1&quot;</td><td>&quot;Manager_1&quot;</td></tr><tr><td>Switch_Buffer</td><td>5</td><td>5</td></tr><tr><td>_explanation</td><td>Hardware_Modeling-&gt;Bus_Switch_Ctrl-&gt;Serial_Switch</td><td>Hardware_Modeling-&gt;Bus_Switch_Ctrl-&gt;Serial_Switch</td></tr><tr><td>Custom_Algorithm_File</td><td>&quot;none&quot;</td><td>&quot;none&quot;</td></tr><tr><td>Channel_Mbps</td><td>{} /* Empty - No BW Allocation */</td><td>{}</td></tr><tr><td>Enable_Messages</td><td>false</td><td>false</td></tr><tr><td>Cut_Through_Mode</td><td>true</td><td>true</td></tr></table> <h2>Serial_Switch3</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Architecture_Name</td><td>&quot;Architecture_1&quot;</td><td>&quot;Architecture_1&quot;</td></tr><tr><td>Switch_Name</td><td>&quot;Switch&quot;</td><td>&quot;Switch&quot;</td></tr><tr><td>Speed_Mhz</td><td>1000.0</td><td>1000.0</td></tr><tr><td>Channel_Field_Name</td><td>&quot;RIO_Lane_ID&quot;</td><td>&quot;RIO_Lane_ID&quot;</td></tr><tr><td>Overhead_Cycles</td><td>1</td><td>1</td></tr><tr><td>Sim_Time</td><td>Sim_Time</td><td>0.005</td></tr><tr><td>Number_PHY_Lanes</td><td>16</td><td>16</td></tr><tr><td>Power_Manager_Name</td><td>&quot;Manager_1&quot;</td><td>&quot;Manager_1&quot;</td></tr><tr><td>Switch_Buffer</td><td>5</td><td>5</td></tr><tr><td>_explanation</td><td>Hardware_Modeling-&gt;Bus_Switch_Ctrl-&gt;Serial_Switch</td><td>Hardware_Modeling-&gt;Bus_Switch_Ctrl-&gt;Serial_Switch</td></tr><tr><td>Custom_Algorithm_File</td><td>&quot;none&quot;</td><td>&quot;none&quot;</td></tr><tr><td>Channel_Mbps</td><td>{}  /* RIO BW Allocation, Length = Number Lanes */</td><td>{}</td></tr><tr><td>Enable_Messages</td><td>false</td><td>false</td></tr><tr><td>Cut_Through_Mode</td><td>true</td><td>true</td></tr></table> <h2>Const2</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>value</td><td>&quot;RIO_4&quot;</td><td>&quot;RIO_4&quot;</td></tr><tr><td>_hideName</td><td>true</td><td>true</td></tr></table> <h2>Const</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>value</td><td>false</td><td>false</td></tr><tr><td>_hideName</td><td>true</td><td>true</td></tr></table> <h2>Remove_Node</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>Doubles the voltage to see the effect on power, example only.</td><td>Doubles the voltage to see the effect on power, example only.</td></tr><tr><td>_explanation</td><td>Source-&gt;Event-&gt;SingleEvent\t</td><td>Source-&gt;Event-&gt;SingleEvent\t</td></tr><tr><td>time</td><td>2.0E-03</td><td>0.002</td></tr><tr><td>value</td><td>1</td><td>1</td></tr><tr><td>_flipPortsHorizontal</td><td>false</td><td>false</td></tr></table> <h2>Master_Node</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;Node_Master&quot;</td><td>&quot;Node_Master&quot;</td></tr><tr><td>Optional_Parameters</td><td>/* First row contains Column Names.              */\\nParameter_Name                 Parameter_Value  \\nPath                           none             \\nRead_File                      none             \\nSelf_Start                     false            \\nParam_Script                   none             \\nListen_to_File                 none             \\nDuplicate_Input                true             \\nProfile                        0                \\nProfile_File                   none             \\nMaximum_Loops                  1000000          \\nBlock_Reference                Block_Name       \\nPort_Order_Array               {&quot;input&quot;}      \\n</td><td>/* First row contains Column Names.              */\\nParameter_Name                 Parameter_Value  \\nPath                           none             \\nRead_File                      none             \\nSelf_Start                     false            \\nParam_Script                   none             \\nListen_to_File                 none             \\nDuplicate_Input                true             \\nProfile                        0                \\nProfile_File                   none             \\nMaximum_Loops                  1000000          \\nBlock_Reference                Block_Name       \\nPort_Order_Array               {&quot;input&quot;}      \\n</td></tr><tr><td>DEBUG</td><td>true</td><td>true</td></tr></table> <h2>Power</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>Average,Instant</td><td>Average,Instant</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>ArchectureSetup</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>Architecture_Name</td><td>&quot;Architecture_1&quot;</td><td>&quot;Architecture_1&quot;</td></tr><tr><td>Field_Name_Mapping</td><td>/* First row contains Column Names.                */\\nExternal_Field_Name          Internal_Field_Name   ; \\nA_Address                    A_Address             ; \\nA_Bytes                      A_Bytes               ; \\nA_Data                       A_Data                ; \\nA_IDX                        A_IDX                 ; \\nA_Instruction                A_Instruction         ; \\nA_Priority                   A_Priority            ; \\nA_Source                     A_Source              ; \\nA_Destination                A_Destination         ; \\nA_Task_ID                    A_Task_ID             ; \\nA_Time                       A_Time                ;</td><td>/* First row contains Column Names.                */\\nExternal_Field_Name          Internal_Field_Name   ; \\nA_Address                    A_Address             ; \\nA_Bytes                      A_Bytes               ; \\nA_Data                       A_Data                ; \\nA_IDX                        A_IDX                 ; \\nA_Instruction                A_Instruction         ; \\nA_Priority                   A_Priority            ; \\nA_Source                     A_Source              ; \\nA_Destination                A_Destination         ; \\nA_Task_ID                    A_Task_ID             ; \\nA_Time                       A_Time                ;</td></tr><tr><td>Routing_Table</td><td>/* First row contains Column Names.                */</td><td>/* First row contains Column Names.                */</td></tr><tr><td>Number_of_Samples</td><td>2</td><td>2</td></tr><tr><td>Statistics_to_Plot</td><td>&quot;Processor_1_PROC_Utilization_Pct_Min, Processor_1_PROC_Utilization_Pct_Mean, Processor_1_PROC_Utilization_Pct_Max&quot;</td><td>&quot;Processor_1_PROC_Utilization_Pct_Min, Processor_1_PROC_Utilization_Pct_Mean, Processor_1_PROC_Utilization_Pct_Max&quot;</td></tr><tr><td>Internal_Plot_Trace_Offset</td><td>2</td><td>2</td></tr><tr><td>Listen_to_Architecture_Options</td><td>None</td><td>None</td></tr></table>
 

Modeling with VisualSim RapidIO Libraries


Note: VisualSim model will load  as a seperate window and  the  initial  download will take 1-4  mins based on the load on our server and  your network  bandwidth. Please make sure that you have latest Java installed on your web browser and accept all security messages.

Please click on green button in the toolbar or press CTRL+R to start simulation. User can modify the model parameters by double clicking on the parameters and block parameters by double clicking on the library blocks.

Introduction

Purpose of this model is to demonstrate the ability to configure RapidIO models to match with Standard RapidIO Switches available in the market. The Rapid IO Block Set from VisualSim is a high performance RIO_Node that works in conjunction with the Serial Switch to create a Rapid IO bus that can be altered, according to specific arbitration algorithms, or other custom configurations. The RIO_Node provides the logic for master and slave node message processing, while the Serial Switch provides the channels and timing needed by the Rapid IO protocol.

In addition, one can monitor the Rapid IO operation with a port at the bottom of the Serial_Switch block to see if Doorbell, HW_Ack, Retry, NRead and NWrite messages are being sent in the expected order. One can also turn off the monitoring, once the messages have been validated using a parameter of the RIO_Node block called Enable_Status_Messages to false.

The RIO_Node takes transactions, or transaction fragments, at a master RIO_Node and sends messages to the designated slave Rapid_IO_Node, based on an internal routing table. This routing table is assembled in the Serial Switch and utilizes fields in the Processor_DS called A_Source and A_Destination to route through the Rapid IO bus. The Serial Switch has a parameter for the Bus_Width that will determine the latency through the switch based on the field A_Bytes_Sent in the Processor_DS.

VisualSim RapidIO Model

VisualSim RapidIO library supports varities of Source Operations. The supported source operations are listed in the following text. All operations except Port-Write are enabled by default.

  1. Read
  2. Write
  3. Streaming-Write
  4. Write with Response
  5. Data Message
  6. Doorbell
  7. Port-Write

  RapidIO Library supports sifferent flow control techniques specified in v 1.2, V 2.1 and V 3.0.

1.    Between Traffic Source and Fragmentor- This is an optional action that is enabled when Input_Flow_Control parameter is true.  When the Fragmentor has completed fragmenting and transferring all the segments of a transaction to the Ingress Queue, then an EVENT is sent to the Traffic Source to Pop the next transaction. If this is not enabled, the transactions are sentto the fragmentor immediately.

2.       Between Fragmentor and Ingress Queue- There is an EVENT for accepting each packet in the Queue.  When the EVENT for the previous packet is received the next packet is sent.

3.       Between Egress Queue and Ingress Queue- When the Egress Queue is full. Requires a Ack to remove a packet from the Ingress Queue.

4.   Between Egress Queue and the Destination.  This is an optional item. If the Output_Flow_Control parameter is true, then the Egress Queue waits for the previous packet to be Ack using an EVENT. If this is no true, then the packets are immediately sent out from the Egress Queue.

RapidIO has four priority levels. Three non-zero watermarks are needed to progressively limit the packet priorities that may be transmitted as the effective number of free buffers decreases. Designate the three watermarks as WM0, WM1, and WM2 where WM0 > WM1 > WM2 > 0 and employ the following rules.

          If free_buffer_count >= WM0, all priority packets may be transmitted.

          If WM0 > free_buffer_count >= WM1, only priority 1, 2, and 3 packets may be transmitted.

          If WM1 > free_buffer_count >= WM2, only priority 2 and 3 packets may be transmitted.

          If WM2 > free_buffer_count, only priority 3 packets may be transmitted.

The default values for the Watermarks are:

          WM0 = 4

          WM1 = 3

          WM2 = 2

At the logical layer, the VisualSim library block will cover three functionality- Doorbell, Retry, mailboxes and Rd/Wr Ack. There is a top-level parameter at each Node that defines the Bytes associated with these header-only packets. There is a separate output port at the Node block that receives the Doorbell, Retry request, and the Ack messages.  The RIO blocks do not process the Type 11 messages.  It simply provides it on the output port.

The Doorbells message is sent by the user with the RIO_Message field=”Doorbell”. This is sent to the Destination node and it returns a “DB_Ack” message.

The Read and Write data sends back an Ack when received at the Destination.  In addition, the Read and Write send a local Ack at each Egress port of a Router. This is for use in guarantee delivery.

Five Mailboxes are provided at Each Sender and Receiver Nodes.  The first Mailbox is exclusive for Doorbells. Each of the Mailboxes can have up to 4 messages outstanding to each Sender Mailbox for a total of 16 outstanding messages.  The queue consumed for the Mailbox is separate from the Ingress/Egress Queues. The user sets the Sender and Receiver mailboxes numbers in the RIO_SENDER_MAILBOX and RIO_RECEIVER_MAILBOX fields. The addresses are not managed by the RIO Node.  It is the responsibility of the user to set those in the model at the Requester.

The Mailbox 0 has the highest priority and Mailbox 4 has the lowest priority. The Mailbox content will be reordered at the Destination Receiver Mailbox.

Modifying Flow Control Type

Flow Control Table allows user to change Flow Control  Type from V 1.2, V 2.1 or V 3.0 for RIO switches available in the model. Sample Flow Control Details are given below

ID Switch Flow Control Type ;
0 Switch1 V1.3 ;
1 Switch2 V2.1 ;
2 Switch3 V3.0 ;
4 Switch4 V1.3 ;

Routing Information

Routing information is maintained using "RIO_Routing_Table", RIO_Routing_Table is a  lookup table and user can enter Routing information of devices connected to each switches in this table. Sample table is given below
ID  Switch   Dest         Port     ;      
 0  Switch1  SDRAM        output   ;
 1  Switch1  Instrument   output13 ;
 2  Switch1  Comm         output24 ;
 2  Switch1  Multicast_1  lookup   ;
User can monitor the Rapid IO operation with a port at the bottom of the Serial_Switch block to see if Doorbell, HW_Ack, Retry, NRead and NWrite messages are being sent in the expected order. One can also turn off the monitoring, once the messages have been validated using a parameter of the RIO_Node block called Enable_Status_Messages to false.