Intel® Simics® Simulator for Intel® FPGAs: User Guide

ID 784383
Date 4/01/2024
Public
Document Table of Contents

5.4.1. Listing Objects in the Target System

In Intel® Simics® simulator environment, the virtual hardware platform is presented in a tree hierarchy of namespace and objects. Each namespace can be expanded down to its sublevel objects as all hardware in an Intel® Simics® target machine is simulated as an object. The first method to inspect hardware is to list objects using the list-objects command as shown below:
list-objects ["iface"] ["class"] [namespace] ["substr"] [-n] [-a] [-all] [-recursive] [-tree]
Table 10.  Listing Objects in the Target System Using list-objects
Command Description
["iface"] Only lists objects with a particular interface.
["class"] Only lists objects of a particular class.
[namespace] Lists all objects inside the given namespace.
["substr"] Lists all objects containing the given substring – especially useful with –all.
-n Sorts by name instead of by class.
-all Lists objects anywhere in the configuration.
-recursive Lists objects in the current namespace and below.
-tree Prints a tree structure similar to the view in the System Editor.

In the Intel® Simics® simulator CLI, enter the list-objects command. You see that the namespace agilex (which is an object by itself) is defined in the class sm_hps_board. The agilex is the namespace for the target board HPS hardware system. Other name spaces are ethernet_switch0, fpga0, and service_node_cmp0. Names might vary on different systems.

# Intel Simics simulator CLI  
# You can use “list-objects” with or without stopping simics. 
simics> list-objects
-----------------------------------------------------------------------------
   Component Class          Object
-----------------------------------------------------------------------------
<ethernet_switch>	       ethernet_switch0
<service_node_comp>	     service_node_cmp0
<sm_universal_system_comp>   system
<sm_universal_board_comp>    system.board
<sm_universal_fpga_comp>     system.board.fpga
<sm_ghrd_qsys_top_comp>      system... 
<sm_ghrd_subsys_hps_comp>    system...hps_subsys
<vp_intel_agilex_5_soc>      system..._subsys.agilex.hps
:
-----------------------------------------------------------------------------
------------------------------------------
   Class                   Object
------------------------------------------
<bp-manager>          bp 
<breakpoints-old>     breakpoints
<sync_domain>         default_sync_domain
<script-params>       params 
<preferences>         prefs 
<sim>                 sim
------------------------------------------

You can inspect the objects under system.board.fpga by entering list-object namespace = system.board.fpga. This returns a list of all objects. The output list can be very long.

# Intel Simics simulator CLI  
simics> list-objects namespace = system.board.fpga
-------------------------------------------------------------------------
   Component Class                  Object
-------------------------------------------------------------------------
<sm_ghrd_qsys_top_comp>          system...                              
<sm_fabric_example_design_comp>  system...example_design                 
<sm_ghrd_subsys_hps_comp>        system...hps_subsys                     
<vp_intel_agilex_5_soc>          system...hps_subsys.agilex_hps          
<txt_console_comp>               system...hps_subsys.agilex_hps.console0 
<sm_hps_usb31_comp>              system...hps_subsys.agilex_hps.usb31    
<sm_emif_hps_comp>               system...hps_subsys.emif                
<sm_sdm_bb_comp>                 system...hps_subsys.sdm                 
<sm_ghrd_subsys_periph_comp>     system...periph_subsys                  
<sm_fabric_example_design_comp>  system...periph_subsys.example_design_lw
-------------------------------------------------------------------------
-------------------------------------------------------------------
   Class                   Object
-------------------------------------------------------------------
<connector>              system.board.fpga.gpio_in0[0]
<connector>              system.board.fpga.gpio_in0[1]
<connector>              system.board.fpga.gpio_in0[2]
:
<sm_hps_qspi.sram_pio>   system...hps_subsys.sdm.qspi.port.sram_pio
:
<crypto_engine_sha256>   system...hps_subsys.sdm.sha256_engine
:
-------------------------------------------------------------------

To further inspect the details of an object, enter command list-objects namespace = [namespace].[object]. Use the -tree option to view the object connections as a hierarchy. To view the table and tree representation of the HPS hardware system, enter commands as follows.

# Intel Simics simulator CLI  
# using object “agilex.hps” as an example 

simics> list-objects namespace = system.board.fpga.soc_inst.hps_subsys.agilex_hps
-----------------------------------------------------------------------
   Component Class                   Object
-----------------------------------------------------------------------
<vp_intel_agilex_5_soc>  hps (alias for system...hps_subsys.agilex_hps)
<txt_console_comp>       system...hps_subsys.agilex_hps.console0       
<sm_hps_usb31_comp>      system...hps_subsys.agilex_hps.usb31
:
-----------------------------------------------------------------------
-----------------------------------------------------------------------
Class	                          Object
-----------------------------------------------------------------------
<sm_hps_smmu_marker>      system...hps_subsys.agilex_hps.access_marker
<frequency_bus>           system...hps_subsys.agilex_hps.boot_clk
:
<sm_hps_wdt4.SRESET>      system...hps_subsys.agilex_hps.wdt4.port.SRESET            
<sm_hps_wdt4.preset>      system...hps_subsys.agilex_hps.wdt4.port.preset
-------------------------------------------------------------------------

simics> list-objects namespace = system.board.fpga.soc_inst.hps_subsys.agilex_hps -tree
To list out every namespace and object available in an Intel® Simics® simulator environment, use the following commands:
  • list-objects namespace -all : Lists all objects of the main namespace.
  • list-namespaces : Lists all namespaces and sublevel objects.