I2C Star

Multiple slave sources send packets to a Master sub-system using a I2C star chain

I2C_Star

Browsable image of the model.

  • 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.
I2C_Starmodel <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>&nbsp;</td><td>&nbsp;</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>Slave_Source6</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>10 Events/Burst, 10ms Period</td><td>10 Events/Burst, 10ms Period</td></tr><tr><td>_rotatePorts</td><td>90</td><td>90</td></tr><tr><td>Source</td><td>&quot;Slave1&quot;</td><td>&quot;Slave1&quot;</td></tr><tr><td>Destination</td><td>&quot;Master&quot;</td><td>&quot;Master&quot;</td></tr><tr><td>Priority</td><td>1</td><td>1</td></tr><tr><td>Size</td><td>20</td><td>20</td></tr><tr><td>Start_Offset</td><td>5.0e-6</td><td>5.0E-6</td></tr><tr><td>Mean_Time</td><td>15.0e-6</td><td>1.5E-5</td></tr><tr><td>_flipPortsVertical</td><td>true</td><td>true</td></tr><tr><td>_flipPortsHorizontal</td><td>false</td><td>false</td></tr></table> <h2>Slave_Source5</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>10 Events/Burst, 10ms Period</td><td>10 Events/Burst, 10ms Period</td></tr><tr><td>_rotatePorts</td><td>90</td><td>90</td></tr><tr><td>Source</td><td>&quot;Slave2&quot;</td><td>&quot;Slave2&quot;</td></tr><tr><td>Destination</td><td>&quot;Master&quot;</td><td>&quot;Master&quot;</td></tr><tr><td>Priority</td><td>1</td><td>1</td></tr><tr><td>Size</td><td>20</td><td>20</td></tr><tr><td>Start_Offset</td><td>4.0e-6</td><td>4.0E-6</td></tr><tr><td>Mean_Time</td><td>15.0e-6</td><td>1.5E-5</td></tr><tr><td>_flipPortsVertical</td><td>true</td><td>true</td></tr><tr><td>_flipPortsHorizontal</td><td>false</td><td>false</td></tr></table> <h2>Slave_Source4</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>10 Events/Burst, 10ms Period</td><td>10 Events/Burst, 10ms Period</td></tr><tr><td>_rotatePorts</td><td>90</td><td>90</td></tr><tr><td>Source</td><td>&quot;Slave3&quot;</td><td>&quot;Slave3&quot;</td></tr><tr><td>Destination</td><td>&quot;Master&quot;</td><td>&quot;Master&quot;</td></tr><tr><td>Priority</td><td>1</td><td>1</td></tr><tr><td>Size</td><td>20</td><td>20</td></tr><tr><td>Start_Offset</td><td>3.0e-6</td><td>3.0E-6</td></tr><tr><td>Mean_Time</td><td>15.0e-6</td><td>1.5E-5</td></tr></table> <h2>Slave_Source3</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>10 Events/Burst, 10ms Period</td><td>10 Events/Burst, 10ms Period</td></tr><tr><td>_rotatePorts</td><td>90</td><td>90</td></tr><tr><td>Source</td><td>&quot;Slave4&quot;</td><td>&quot;Slave4&quot;</td></tr><tr><td>Destination</td><td>&quot;Master&quot;</td><td>&quot;Master&quot;</td></tr><tr><td>Priority</td><td>1</td><td>1</td></tr><tr><td>Size</td><td>20</td><td>20</td></tr><tr><td>Start_Offset</td><td>2.0e-6</td><td>2.0E-6</td></tr><tr><td>Mean_Time</td><td>15.0e-6</td><td>1.5E-5</td></tr></table> <h2>Slave_Source2</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>10 Events/Burst, 10ms Period</td><td>10 Events/Burst, 10ms Period</td></tr><tr><td>_rotatePorts</td><td>90</td><td>90</td></tr><tr><td>Source</td><td>&quot;Slave5&quot;</td><td>&quot;Slave5&quot;</td></tr><tr><td>Destination</td><td>&quot;Master&quot;</td><td>&quot;Master&quot;</td></tr><tr><td>Priority</td><td>1</td><td>1</td></tr><tr><td>Size</td><td>20</td><td>20</td></tr><tr><td>Start_Offset</td><td>1.0e-6</td><td>1.0E-6</td></tr><tr><td>Mean_Time</td><td>15.0e-6</td><td>1.5E-5</td></tr></table> <h2>Slave7</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>Node_Name</td><td>&quot;Switch&quot;</td><td>&quot;Switch&quot;</td></tr><tr><td>Routing_Table_Name</td><td>&quot;RT&quot;</td><td>&quot;RT&quot;</td></tr><tr><td>Parent_Name</td><td>&quot;none&quot;</td><td>&quot;none&quot;</td></tr></table> <h2>SingleEvent</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>1.0e-3</td><td>1.0E-3</td></tr><tr><td>value</td><td>0</td><td>0</td></tr></table> <h2>NODE_Master</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>Routing_Table_Name</td><td>&quot;RT&quot;</td><td>&quot;RT&quot;</td></tr><tr><td>Link_Src_Des_Dist_BW</td><td>&quot;Src_Fld, Des_Fld, BW_Fld, Dis_Fld&quot;</td><td>&quot;Src_Fld, Des_Fld, BW_Fld, Dis_Fld&quot;</td></tr><tr><td>Dynamic_Routing</td><td>New_Routing_Table</td><td>New_Routing_Table</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>Slave6,Slave5,Slave4,Slave3,Slave2,Slave1</td><td>Slave6,Slave5,Slave4,Slave3,Slave2,Slave1</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>Master_Sub_System</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>_rotatePorts</td><td>90</td><td>90</td></tr><tr><td>Priority</td><td>1</td><td>1</td></tr><tr><td>Size</td><td>5</td><td>5</td></tr><tr><td>_flipPortsVertical</td><td>true</td><td>true</td></tr></table> <h2>Slave_Source</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>_rotatePorts</td><td>90</td><td>90</td></tr><tr><td>Source</td><td>&quot;Slave6&quot;</td><td>&quot;Slave6&quot;</td></tr><tr><td>Destination</td><td>&quot;Master&quot;</td><td>&quot;Master&quot;</td></tr><tr><td>Priority</td><td>1</td><td>1</td></tr><tr><td>Size</td><td>20</td><td>20</td></tr><tr><td>Start_Offset</td><td>0.0e-6</td><td>0.0</td></tr><tr><td>Mean_Time</td><td>15.0e-6</td><td>1.5E-5</td></tr></table> <h2>Database</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>*.xml, *.csv files abs or rel (./) path\\n  -- *.csv real columns set to number\\nInput_Fields == Lookup_Fields (num, type)\\nOutput_Expr: match, match_last, match_all\\n  -- match_all.field not allowed</td><td>*.xml, *.csv files abs or rel (./) path\\n  -- *.csv real columns set to number\\nInput_Fields == Lookup_Fields (num, type)\\nOutput_Expr: match, match_last, match_all\\n  -- match_all.field not allowed</td></tr><tr><td>Linking_Name</td><td>&quot;RT&quot;</td><td>&quot;RT&quot;</td></tr><tr><td>fileOrURL</td><td>&nbsp;</td><td>&quot;&quot;</td></tr><tr><td>Data_Structure_Text</td><td>ID Source_Node  Destination_Node  Distance  Speed_Mbps ;       \\n 0 Master       Switch            1.0        1000.0     ; \\n 1 Slave1       Switch            1.0        1000.0     ; \\n 2 Slave2       Switch            1.0        1000.0     ;      \\n 3 Slave3       Switch            1.0        1000.0     ;\\n 4 Slave4       Switch            1.0        1000.0     ;\\n 5 Slave5       Switch            1.0        1000.0     ;\\n 6 Slave6       Switch            1.0        1000.0     ;\\n 7 Switch       Master            1.0        1000.0     ; \\n 8 Switch       Slave1            1.0        1000.0     ; \\n 9 Switch       Slave2            1.0        1000.0     ;      \\n 10 Switch       Slave3           1.0        1000.0     ;\\n 11 Switch       Slave4           1.0        1000.0     ;\\n 12 Switch       Slave5           1.0        1000.0     ;\\n 13 Switch       Slave6           1.0        1000.0     ;</td><td>ID Source_Node  Destination_Node  Distance  Speed_Mbps ;       \\n 0 Master       Switch            1.0        1000.0     ; \\n 1 Slave1       Switch            1.0        1000.0     ; \\n 2 Slave2       Switch            1.0        1000.0     ;      \\n 3 Slave3       Switch            1.0        1000.0     ;\\n 4 Slave4       Switch            1.0        1000.0     ;\\n 5 Slave5       Switch            1.0        1000.0     ;\\n 6 Slave6       Switch            1.0        1000.0     ;\\n 7 Switch       Master            1.0        1000.0     ; \\n 8 Switch       Slave1            1.0        1000.0     ; \\n 9 Switch       Slave2            1.0        1000.0     ;      \\n 10 Switch       Slave3           1.0        1000.0     ;\\n 11 Switch       Slave4           1.0        1000.0     ;\\n 12 Switch       Slave5           1.0        1000.0     ;\\n 13 Switch       Slave6           1.0        1000.0     ;</td></tr><tr><td>Input_Fields</td><td>&quot;Source_Node&quot;</td><td>&quot;Source_Node&quot;</td></tr><tr><td>Lookup_Fields</td><td>&quot;Source_Node&quot;</td><td>&quot;Source_Node&quot;</td></tr><tr><td>Output_Expression</td><td>&quot;output = match&quot; /* FORMAT output = match.fieldb */</td><td>&quot;output = match&quot;</td></tr><tr><td>Mode</td><td>Read</td><td>Read</td></tr></table> <h2>Routing_Table</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>Routing_Table_DB</td><td>&quot;Routing_Table_DB&quot;</td><td>&quot;Routing_Table_DB&quot;</td></tr><tr><td>Routing_Table_Name</td><td>&quot;RT&quot;</td><td>&quot;&quot;RT&quot;&quot;</td></tr><tr><td>Propagation_Constant_C</td><td>1.0</td><td>1.0</td></tr><tr><td>Message_Names</td><td>{&quot;Retry&quot;, &quot;Request&quot;, &quot;Acknowledge&quot;}</td><td>{&quot;Retry&quot;, &quot;Request&quot;, &quot;Acknowledge&quot;}</td></tr><tr><td>Message_Bytes</td><td>{16, 16, 16}</td><td>{16, 16, 16}</td></tr><tr><td>NODEs_in_Model</td><td>true</td><td>true</td></tr><tr><td>Routing_Algorithm</td><td>Dijkstra</td><td>Dijkstra</td></tr><tr><td>Routing_Algorithm_Cost</td><td>Number_of_Hops</td><td>Number_of_Hops</td></tr><tr><td>Routing_Latencies</td><td>Length_is_zero</td><td>Length_is_zero</td></tr><tr><td>Routing_Configuration</td><td>Connectionless</td><td>Connectionless</td></tr></table> <h2>SWITCH</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>Node_Name</td><td>&quot;Master&quot;</td><td>&quot;Master&quot;</td></tr><tr><td>Routing_Table_Name</td><td>&quot;RT&quot;</td><td>&quot;RT&quot;</td></tr><tr><td>Parent_Name</td><td>&quot;none&quot;</td><td>&quot;none&quot;</td></tr><tr><td>_flipPortsHorizontal</td><td>true</td><td>true</td></tr><tr><td>_flipPortsVertical</td><td>true</td><td>true</td></tr></table> <h2>Slave6</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>Node_Name</td><td>&quot;Slave1&quot;</td><td>&quot;Slave1&quot;</td></tr><tr><td>Routing_Table_Name</td><td>&quot;RT&quot;</td><td>&quot;RT&quot;</td></tr><tr><td>Parent_Name</td><td>&quot;none&quot;</td><td>&quot;none&quot;</td></tr><tr><td>_flipPortsHorizontal</td><td>true</td><td>true</td></tr><tr><td>_flipPortsVertical</td><td>true</td><td>true</td></tr></table> <h2>Slave5</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>Node_Name</td><td>&quot;Slave2&quot;</td><td>&quot;Slave2&quot;</td></tr><tr><td>Routing_Table_Name</td><td>&quot;RT&quot;</td><td>&quot;RT&quot;</td></tr><tr><td>Parent_Name</td><td>&quot;none&quot;</td><td>&quot;none&quot;</td></tr><tr><td>_flipPortsHorizontal</td><td>false</td><td>false</td></tr><tr><td>_flipPortsVertical</td><td>true</td><td>true</td></tr><tr><td>_rotatePorts</td><td>180</td><td>180</td></tr></table> <h2>Slave4</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>Node_Name</td><td>&quot;Slave3&quot;</td><td>&quot;Slave3&quot;</td></tr><tr><td>Routing_Table_Name</td><td>&quot;RT&quot;</td><td>&quot;RT&quot;</td></tr><tr><td>Parent_Name</td><td>&quot;none&quot;</td><td>&quot;none&quot;</td></tr></table> <h2>Slave3</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>Node_Name</td><td>&quot;Slave4&quot;</td><td>&quot;Slave4&quot;</td></tr><tr><td>Routing_Table_Name</td><td>&quot;RT&quot;</td><td>&quot;RT&quot;</td></tr><tr><td>Parent_Name</td><td>&quot;none&quot;</td><td>&quot;none&quot;</td></tr></table> <h2>Slave2</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>Node_Name</td><td>&quot;Slave5&quot;</td><td>&quot;Slave5&quot;</td></tr><tr><td>Routing_Table_Name</td><td>&quot;RT&quot;</td><td>&quot;RT&quot;</td></tr><tr><td>Parent_Name</td><td>&quot;none&quot;</td><td>&quot;none&quot;</td></tr></table> <h2>Slave</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>Node_Name</td><td>&quot;Slave6&quot;</td><td>&quot;Slave6&quot;</td></tr><tr><td>Routing_Table_Name</td><td>&quot;RT&quot;</td><td>&quot;RT&quot;</td></tr><tr><td>Parent_Name</td><td>&quot;none&quot;</td><td>&quot;none&quot;</td></tr></table>

Implements the I2C as a star topology using the VisualSim Network Node blocks. There is a single master and the path is defined using the Database table.