Simics provides support for writing your own PCI devices, both in DML and in
- In DML, templates are provided to make it easy to generate a PCI
device and re-use the existing code to handle the configuration registers,
generate PCI interrupts, etc. Section 11.2 present
these templates in more details. An example of a DML PCI device is the
DEC21140A model described in section 10.3.
- In C or C++, Simics provides a PCI Device API defined in
pci-device.h and implemented in pci-device.c. The
pci-device.c provides several generic PCI device functions and
interfaces to communicate with the pci-bus. There is a sample
PCI device included with Simics called sample-pci-device that
shows how the PCI Device API can be used. Section 11.3
provides an overview of the API. Function and type specific information can be
found in the Simics Reference Manual.