pcie-endpoint-shim-frontend pcie-shim-stub
Simics Reference Manual  /  5 Classes  / 

pcie-port-shim-frontend

Description

Device that behaves like a PCIe root port, upstream port or downstream port towards the Simics PCIe system and captures all downstream accesses to forward them to a Shim device which converts the transactions to an external non-simics API. Use cases are hybrid systems where parts of the PCIe hierarchy sits in Simics, while an Endpoint or Switch run in a separate environment like an RTL simulator, FPGA prototype or in an external functional simulator.

Interfaces Implemented

conf_object, log_object, pcie_device, transaction_translator, translation_flush

Notifiers

cell-change
Notifier that is triggered after the object's cell was changed.
object-delete
Notifier that is triggered just before Simics object is deleted.
queue-change
Notifier that is triggered after the object's clock was changed. New clock can be obtained with the SIM_object_clock function.
state-change
Notifier on potential DML state change

Port Objects

bank.pcie_config
pcie-port-shim-frontend.pcie_config
impl.port.pcie_downstream_mem
pcie-port-shim-frontend.impl.pcie_downstream_mem
port.phy
pcie-port-shim-frontend.phy
port.shared_memory_mapper
pcie-port-shim-frontend.shared_memory_mapper
port.upstream_ingress
pcie-port-shim-frontend.upstream_ingress
upstream_ingress_targets
pcie-port-shim-frontend.upstream_ingress_targets

Commands for interface transaction_translator

Attributes

downstream_shim
Required attribute; read/write access; type: o|[os]
Device receiving all downstream PCIe transactions and is responsible for converting them to the emulator API

Required interface: pcie_port_control

Optional interfaces: io_memory, memory_space, port_space, ram, rom, transaction, transaction_translator, translator

Provided By

sample-pcie-shim

pcie-port-shim-frontend.impl.pcie_downstream_mem

Interfaces Implemented

conf_object, log_object, translator

Notifiers

cell-change
Notifier that is triggered after the object's cell was changed.
object-delete
Notifier that is triggered just before Simics object is deleted.
queue-change
Notifier that is triggered after the object's clock was changed. New clock can be obtained with the SIM_object_clock function.

Commands for interface translator

pcie-port-shim-frontend.pcie_config

Interfaces Implemented

conf_object, log_object, bank_instrumentation_subscribe, instrumentation_order, pcie_function_info, register_view, register_view_catalog, register_view_read_only, transaction

Notifiers

cell-change
Notifier that is triggered after the object's cell was changed.
object-delete
Notifier that is triggered just before Simics object is deleted.
queue-change
Notifier that is triggered after the object's clock was changed. New clock can be obtained with the SIM_object_clock function.

Commands for interface bank_instrumentation_subscribe

Commands for interface instrumentation_order

Commands for interface pcie_function_info

Commands for interface transaction

Attributes

function_number
Pseudo attribute; read-only access; type: i
PCIe function number of this bank

pcie-port-shim-frontend.phy

Interfaces Implemented

conf_object, log_object, pcie_link_readiness, transaction

Notifiers

cell-change
Notifier that is triggered after the object's cell was changed.
object-delete
Notifier that is triggered just before Simics object is deleted.
queue-change
Notifier that is triggered after the object's clock was changed. New clock can be obtained with the SIM_object_clock function.

Commands for interface transaction

pcie-port-shim-frontend.shared_memory_mapper

Interfaces Implemented

conf_object, log_object, shared_memory_map_demap

Notifiers

cell-change
Notifier that is triggered after the object's cell was changed.
object-delete
Notifier that is triggered just before Simics object is deleted.
queue-change
Notifier that is triggered after the object's clock was changed. New clock can be obtained with the SIM_object_clock function.

pcie-port-shim-frontend.upstream_ingress

Interfaces Implemented

conf_object, log_object, pcie_ingress_handling, transaction_translator, translation_flush

Notifiers

cell-change
Notifier that is triggered after the object's cell was changed.
object-delete
Notifier that is triggered just before Simics object is deleted.
queue-change
Notifier that is triggered after the object's clock was changed. New clock can be obtained with the SIM_object_clock function.

Commands for interface transaction_translator

pcie-port-shim-frontend.upstream_ingress_targets

Interfaces Implemented

conf_object, log_object

Notifiers

cell-change
Notifier that is triggered after the object's cell was changed.
object-delete
Notifier that is triggered just before Simics object is deleted.
queue-change
Notifier that is triggered after the object's clock was changed. New clock can be obtained with the SIM_object_clock function.

Port Objects

config
memory-space – Instances of the memory-space class provide linear address spaces into which devices and memory can be mapped.
io
memory-space – Instances of the memory-space class provide linear address spaces into which devices and memory can be mapped.
memory
memory-space – Instances of the memory-space class provide linear address spaces into which devices and memory can be mapped.
message
memory-space – Instances of the memory-space class provide linear address spaces into which devices and memory can be mapped.
port.broadcast
pcie-port-shim-frontend.upstream_ingress_targets.broadcast

pcie-port-shim-frontend.upstream_ingress_targets.broadcast

Interfaces Implemented

conf_object, log_object, transaction

Notifiers

cell-change
Notifier that is triggered after the object's cell was changed.
object-delete
Notifier that is triggered just before Simics object is deleted.
queue-change
Notifier that is triggered after the object's clock was changed. New clock can be obtained with the SIM_object_clock function.

Commands for interface transaction

pcie-endpoint-shim-frontend pcie-shim-stub