RTOS Generator

Modeling testbed for a RTOS using a state machine

RTOS_base_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 (*)
Launch
  • 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.
<h2>Traffic4</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;Header&quot;</td><td>&quot;Header&quot;</td></tr><tr><td>Start_Time</td><td>Task_t</td><td>2.0E-6</td></tr><tr><td>Value_1</td><td>Task_t * 50.0</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><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>Instruction_Set</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>Define some top level instruction types:\\nInteger (INT), Floating Point (FP) Memory (MEM), or Input/Output (IO)\\nFP and IO references MEM as a secondary action.  Integers reflect \\nexpected number of cycles per Task, not instruction.</td><td>Define some top level instruction types:\\nInteger (INT), Floating Point (FP) Memory (MEM), or Input/Output (IO)\\nFP and IO references MEM as a secondary action.  Integers reflect \\nexpected number of cycles per Task, not instruction.</td></tr><tr><td>Instruction_Set_Name</td><td>&quot;Processor_Macro_Instr&quot;</td><td>&quot;Processor_Macro_Instr&quot;</td></tr><tr><td>_explanation</td><td>ProcessorGenerator-&gt;Instruction_Set</td><td>ProcessorGenerator-&gt;Instruction_Set</td></tr><tr><td>Instruction_Set_Text</td><td>/* Macro Instruction Set.   */\\n   Mnew  Ww   Xx  Yy   Zz    ;   /* Label */\\n   INT    1                  ;\\n   FP     2                  ;\\n   MEM    3                  ;\\n   IO     4                  ;\\n\\n\\n\\n</td><td>/* Macro Instruction Set.   */\\n   Mnew  Ww   Xx  Yy   Zz    ;   /* Label */\\n   INT    1                  ;\\n   FP     2                  ;\\n   MEM    3                  ;\\n   IO     4                  ;\\n\\n\\n\\n</td></tr><tr><td>Record_Set_Name</td><td>&quot;Macro_Instr&quot;</td><td>&quot;Macro_Instr&quot;</td></tr></table> <h2>Script</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;MyRTOS&quot;</td><td>&quot;MyRTOS&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></table> <h2>SystemResource4</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;IO&quot;</td><td>&quot;IO&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>Context_Switch</td><td>1.0E-7</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>Speed_Mhz</td><td>100.0</td></tr><tr><td>Max_Scheduler_Length</td><td>30</td><td>30</td></tr><tr><td>Time_Type</td><td>Relative Time</td><td>Relative Time</td></tr><tr><td>Scheduler_Type</td><td>FCFS + Preempt</td><td>FCFS + Preempt</td></tr><tr><td>Add_Scheduler_Times_to_DS</td><td>false</td><td>false</td></tr></table> <h2>Traffic3</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_Text</td><td>/* Text Template or File Path.       \\n   First row contains Field Names. */\\n   MyTime  Instruction                      Priority    ;     \\n   Task_t  {&quot;INT.1&quot;,&quot;FP.2&quot;,&quot;MEM.3&quot;,&quot;IO.4&quot;}  2           ;  /* DS 1 */\\n   Task_t2 {&quot;INT.2&quot;,&quot;FP.1&quot;,&quot;MEM.3&quot;,&quot;IO.4&quot;}  2           ;  /* DS 2 */\\n   Task_t  {&quot;INT.3&quot;,&quot;FP.2&quot;,&quot;MEM.2&quot;,&quot;IO.3&quot;}  2           ;  /* DS 3 */\\n   Task_t  {&quot;INT.4&quot;,&quot;FP.2&quot;,&quot;MEM.3&quot;,&quot;IO.1&quot;}  2           ;  /* DS 4 */\\n   Task_t  {&quot;INT.5&quot;,&quot;FP.0&quot;,&quot;MEM.5&quot;,&quot;IO.0&quot;}  2           ;  /* DS 5 */\\n</td><td>/* Text Template or File Path.       \\n   First row contains Field Names. */\\n   MyTime  Instruction                      Priority    ;     \\n   Task_t  {&quot;INT.1&quot;,&quot;FP.2&quot;,&quot;MEM.3&quot;,&quot;IO.4&quot;}  2           ;  /* DS 1 */\\n   Task_t2 {&quot;INT.2&quot;,&quot;FP.1&quot;,&quot;MEM.3&quot;,&quot;IO.4&quot;}  2           ;  /* DS 2 */\\n   Task_t  {&quot;INT.3&quot;,&quot;FP.2&quot;,&quot;MEM.2&quot;,&quot;IO.3&quot;}  2           ;  /* DS 3 */\\n   Task_t  {&quot;INT.4&quot;,&quot;FP.2&quot;,&quot;MEM.3&quot;,&quot;IO.1&quot;}  2           ;  /* DS 4 */\\n   Task_t  {&quot;INT.5&quot;,&quot;FP.0&quot;,&quot;MEM.5&quot;,&quot;IO.0&quot;}  2           ;  /* DS 5 */\\n</td></tr><tr><td>Time_Field</td><td>&quot;MyTime&quot;</td><td>&quot;MyTime&quot;</td></tr><tr><td>Probability_Field</td><td>&quot;Field_Name_or_None&quot;</td><td>&quot;Field_Name_or_None&quot;</td></tr><tr><td>Output_Expression</td><td>&quot;trigger = traffic&quot;</td><td>&quot;trigger = traffic&quot;</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_Text</td><td>/* Text Template or File Path.       \\n   First row contains Field Names. */\\n   MyTime  Instruction                      Priority    ;     \\n   Task_t  {&quot;INT.1&quot;,&quot;FP.2&quot;,&quot;MEM.3&quot;,&quot;IO.4&quot;}  1           ;  /* DS 1 */\\n   Task_t  {&quot;INT.2&quot;,&quot;FP.1&quot;,&quot;MEM.3&quot;,&quot;IO.4&quot;}  1           ;  /* DS 2 */\\n   Task_t  {&quot;INT.3&quot;,&quot;FP.2&quot;,&quot;MEM.2&quot;,&quot;IO.3&quot;}  1           ;  /* DS 3 */\\n   Task_t  {&quot;INT.4&quot;,&quot;FP.2&quot;,&quot;MEM.3&quot;,&quot;IO.1&quot;}  1           ;  /* DS 4 */\\n   Task_t  {&quot;INT.5&quot;,&quot;FP.0&quot;,&quot;MEM.5&quot;,&quot;IO.0&quot;}  1           ;  /* DS 5 */\\n</td><td>/* Text Template or File Path.       \\n   First row contains Field Names. */\\n   MyTime  Instruction                      Priority    ;     \\n   Task_t  {&quot;INT.1&quot;,&quot;FP.2&quot;,&quot;MEM.3&quot;,&quot;IO.4&quot;}  1           ;  /* DS 1 */\\n   Task_t  {&quot;INT.2&quot;,&quot;FP.1&quot;,&quot;MEM.3&quot;,&quot;IO.4&quot;}  1           ;  /* DS 2 */\\n   Task_t  {&quot;INT.3&quot;,&quot;FP.2&quot;,&quot;MEM.2&quot;,&quot;IO.3&quot;}  1           ;  /* DS 3 */\\n   Task_t  {&quot;INT.4&quot;,&quot;FP.2&quot;,&quot;MEM.3&quot;,&quot;IO.1&quot;}  1           ;  /* DS 4 */\\n   Task_t  {&quot;INT.5&quot;,&quot;FP.0&quot;,&quot;MEM.5&quot;,&quot;IO.0&quot;}  1           ;  /* DS 5 */\\n</td></tr><tr><td>Time_Field</td><td>&quot;MyTime&quot;</td><td>&quot;MyTime&quot;</td></tr><tr><td>Probability_Field</td><td>&quot;Field_Name_or_None&quot;</td><td>&quot;Field_Name_or_None&quot;</td></tr><tr><td>Output_Expression</td><td>&quot;trigger = traffic&quot;</td><td>&quot;trigger = traffic&quot;</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_Text</td><td>/* Text Template or File Path.       \\n   First row contains Field Names. */\\n   MyTime  Instruction                      Priority    ;     \\n   Task_t  {&quot;INT.2&quot;,&quot;FP.2&quot;,&quot;MEM.3&quot;,&quot;IO.4&quot;}  0           ;  /* DS 1 */\\n   Task_t  {&quot;INT.2&quot;,&quot;FP.1&quot;,&quot;MEM.3&quot;,&quot;IO.4&quot;}  0           ;  /* DS 2 */\\n   Task_t  {&quot;INT.3&quot;,&quot;FP.2&quot;,&quot;MEM.2&quot;,&quot;IO.3&quot;}  0           ;  /* DS 3 */\\n   Task_t  {&quot;INT.4&quot;,&quot;FP.2&quot;,&quot;MEM.3&quot;,&quot;IO.1&quot;}  0           ;  /* DS 4 */\\n   Task_t  {&quot;INT.5&quot;,&quot;FP.0&quot;,&quot;MEM.5&quot;,&quot;IO.0&quot;}  0           ;  /* DS 5 */\\n</td><td>/* Text Template or File Path.       \\n   First row contains Field Names. */\\n   MyTime  Instruction                      Priority    ;     \\n   Task_t  {&quot;INT.2&quot;,&quot;FP.2&quot;,&quot;MEM.3&quot;,&quot;IO.4&quot;}  0           ;  /* DS 1 */\\n   Task_t  {&quot;INT.2&quot;,&quot;FP.1&quot;,&quot;MEM.3&quot;,&quot;IO.4&quot;}  0           ;  /* DS 2 */\\n   Task_t  {&quot;INT.3&quot;,&quot;FP.2&quot;,&quot;MEM.2&quot;,&quot;IO.3&quot;}  0           ;  /* DS 3 */\\n   Task_t  {&quot;INT.4&quot;,&quot;FP.2&quot;,&quot;MEM.3&quot;,&quot;IO.1&quot;}  0           ;  /* DS 4 */\\n   Task_t  {&quot;INT.5&quot;,&quot;FP.0&quot;,&quot;MEM.5&quot;,&quot;IO.0&quot;}  0           ;  /* DS 5 */\\n</td></tr><tr><td>Time_Field</td><td>&quot;MyTime&quot;</td><td>&quot;MyTime&quot;</td></tr><tr><td>Probability_Field</td><td>&quot;Field_Name_or_None&quot;</td><td>&quot;Field_Name_or_None&quot;</td></tr><tr><td>Output_Expression</td><td>&quot;trigger = traffic&quot;</td><td>&quot;trigger = traffic&quot;</td></tr></table> <h2>xTimeyDataPlot</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>SystemResource2</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;FP&quot;</td><td>&quot;FP&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>Context_Switch</td><td>1.0E-7</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>Speed_Mhz</td><td>100.0</td></tr><tr><td>Max_Scheduler_Length</td><td>30</td><td>30</td></tr><tr><td>Time_Type</td><td>Relative Time</td><td>Relative Time</td></tr><tr><td>Scheduler_Type</td><td>FCFS + Preempt</td><td>FCFS + Preempt</td></tr><tr><td>Add_Scheduler_Times_to_DS</td><td>false</td><td>false</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;INT&quot;</td><td>&quot;INT&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>Context_Switch</td><td>1.0E-7</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>Speed_Mhz</td><td>100.0</td></tr><tr><td>Max_Scheduler_Length</td><td>30</td><td>30</td></tr><tr><td>Time_Type</td><td>Relative Time</td><td>Relative Time</td></tr><tr><td>Scheduler_Type</td><td>FCFS + Preempt</td><td>FCFS + Preempt</td></tr><tr><td>Add_Scheduler_Times_to_DS</td><td>false</td><td>false</td></tr></table> <h2>SystemResource3</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;MEM&quot;</td><td>&quot;MEM&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>Context_Switch</td><td>1.0E-7</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>Speed_Mhz</td><td>100.0</td></tr><tr><td>Max_Scheduler_Length</td><td>30</td><td>30</td></tr><tr><td>Time_Type</td><td>Relative Time</td><td>Relative Time</td></tr><tr><td>Scheduler_Type</td><td>FCFS + Preempt</td><td>FCFS + Preempt</td></tr><tr><td>Add_Scheduler_Times_to_DS</td><td>false</td><td>false</td></tr></table>

    Contact Us

    Subscribe