Main Content

Display Bus Information

You can display bus information using multiple approaches.

  • To display whether a bus is virtual or nonvirtual, update or simulate the model. A virtual bus appears as three solid lines () and a nonvirtual bus appears as two solid lines on either side of a dashed line ().

  • To interactively display the hierarchy of a bus, see Display Bus Hierarchy.

  • To interactively display the value of bus elements at a port, see Display Value of Bus Elements.

  • To programmatically display the virtuality and hierarchy of a bus, see Programmatically Get Bus Hierarchy and Virtuality.

Display Bus Hierarchy

To interactively display bus hierarchy:

  1. Click a signal line.

  2. On the Signal tab, select Signal Hierarchy.

    A Signal Hierarchy Viewer opens, showing the signal hierarchy for the selected signal.

For example, this Signal Hierarchy Viewer shows the signal hierarchy for a bus named main_bus.

The Signal Hierarchy Viewer shows the hierarchy for a bus with two nested buses that contain two and three elements respectively.

Each Signal Hierarchy Viewer is associated with a specific model. If you edit a model while the associated Signal Hierarchy Viewer is open, the Signal Hierarchy Viewer reflects those updates.

Note

To produce accurate results at edit time in the Signal Hierarchy Viewer, your model must compile successfully.

To filter the displayed signals, click the Show filtering options button on the right side of the Filter by name edit box.

  • To use MATLAB® regular expressions for filtering signal names, select Enable regular expression. For example, to display all signals whose names end with a lowercase r (and their immediate parents), enter r$ in the Filter by name edit box. For more information, see Regular Expressions.

  • To display a flat list of the filtered results, select Show filtered results as a flat list. The flat list uses dot notation to indicate the hierarchy of buses. This example shows a filtered set of nested buses.

    The nested buses that match the filter use dot notation to indicate their hierarchy

Display Value of Bus Elements

To interactively display the values of bus elements at a port:

  1. Click a signal line.

  2. On the Signal tab, select Output Value Label.

  3. Click the port value label, and select the signals you want to display.

    For example, in this model, you can select which signals to display from the signals that are contained in ModelBus.

    Signal-selection menu for output value labels

For more information, see Display Value for a Specific Port.

Programmatically Get Bus Hierarchy and Virtuality

To programmatically get the hierarchy and virtuality of a bus in a compiled model, query these parameters using the get_param function:

  • 'SignalHierarchy' — If the signal is a bus, returns the name and hierarchy of the signals in the bus.

  • 'CompiledBusType' — For a model that has run the 'compile' phase, returns information about whether the signal connected to a port is a bus and whether the signal is a virtual or nonvirtual bus. Before you query the CompiledBusType parameter value, use the model name programmatic interface to compile the model. For more information, see Use Model Name as Programmatic Interface.

For example, open and simulate the busdemo model.

open_system('busdemo')
sim('busdemo');

Obtain the handle of the port for which you want bus information.

ph = get_param('busdemo/Bus Creator', 'PortHandles');

Get the signal hierarchy at the port.

sh = get_param(ph.Outport, 'SignalHierarchy')
sh = struct with fields:
    SignalName: 'main_bus'
     BusObject: ''
      Children: [2x1 struct]

Get the compiled bus type at the port.

busdemo([],[],[],'compile');
bt = get_param(ph.Outport, 'CompiledBusType')
bt = 
'VIRTUAL_BUS'

Terminate the simulation that was started by compiling the model.

busdemo([],[],[],'term');

Related Topics