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

ID 784383
Date 12/04/2023
Public

A newer version of this document is available. Customers should click here to go to the newest version.

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]
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
------------------------------------------
<fm_hps_board>         agilex 
<ethernet_switch>      ethernet_switch0 
<fm_fpga_base_board>   fpga0 
<service_node_comp>    service_node_cmp0
------------------------------------------
------------------------------------------
   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 = agilex
------------------------------------------
   Component Class          Object
------------------------------------------
<txt_console_comp>        agilex.console0 
<fm_hps_comp>             agilex.hps 
<fm_hps_nand_flash_comp>  agilex.nand_image
<spi_flash_comp>          agilex.qspi_slave 
<sd_comp>                 agilex.sd_card
------------------------------------------
------------------------------------------
   Class                   Object
------------------------------------------
<crypto_engine_aes>       agilex.aes_engine 
<frequency_bus>           agilex.boot_clk 
<fm_hps_ccu>              agilex.ccu 
<cell>                    agilex.cell   
<fm_hps_i2c_0>            agilex.i2c0 
     :                        : 
     :                        : 
<fm_hps_sysmgr>           agilex.sysmgr 
<fm_hps_uart0>            agilex.uart0 
<fm_hps_uart1>            agilex.uart1 
<fm_hps_wdt0>             agilex.wdt0 
<fm_hps_wdt1>             agilex.wdt1
------------------------------------------

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 = agilex.hps
-------------------------------------------------
   Class                   Object
-------------------------------------------------
<arm_broadcast_bus>    agilex.hps.broadcast_bus
<bitmask-translator>   agilex.hps.bt
<arm-cortex-a53>       agilex.hps.core[0] 
<arm-cortex-a53>       agilex.hps.core[1] 
<arm-cortex-a53>       agilex.hps.core[2]  
<arm-cortex-a53>       agilex.hps.core[3] 
<memory-space>         agilex.hps.cpu_mem[0] 
<memory-space>         agilex.hps.cpu_mem[1] 
<memory-space>         agilex.hps.cpu_mem[2]   
<memory-space>         agilex.hps.cpu_mem[3] 
<fm_hps_gic>           agilex.hps.gic  
<memory-space>         agilex.hps.gic_mem[0] 
<memory-space>         agilex.hps.gic_mem[1]  
<memory-space>         agilex.hps.gic_mem[2]  
<memory-space>         agilex.hps.gic_mem[3] 
<memory-space>         agilex.hps.gic_mem_ns[0]
<memory-space>         agilex.hps.gic_mem_ns[1]
<memory-space>         agilex.hps.gic_mem_ns[2]
<memory-space>         agilex.hps.gic_mem_ns[3] 
<signal-bus>           agilex.hps.l2reset_n_bus 
<memory-space>         agilex.hps.phys_mem  
<arm_generic_timer>    agilex.hps.timer[0]   
<arm_generic_timer>    agilex.hps.timer[1]  
<arm_generic_timer>    agilex.hps.timer[2] 
<arm_generic_timer>    agilex.hps.timer[3]
-------------------------------------------------

simics> list-objects namespace = 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.