For a customer's test environment I need to emulate a number of PCIe devices so that error states can be simulated easily. The tests shall run inside a virtual machine that receives a PCIe device as a passthrough.
I have a CycloneIV GX board lying around and would like to use that for the initial implementation, but I'm open to switching to another family if needed (although I'd need to commission a board then).
I can make a single PCIe device with a 64-bit MMIO mapping appear in the system, this works so far.
Now I'd like to split my device into two functions, one for test control/status readback, and one for the device that is going to be passed through to the VM, but I haven't found an option to define multiple functions in MegaWizard. Is this possible?
In addition, the emulated device has extra registers in configuration space, above 0x40. I haven't been able to see configuration space accesses on the Avalon-ST interface, can this be enabled?
I don't aware cyclone IV support multifunction. However if you are using Cyclone V, you may refer to this link:
This "configuration bypass" mechanism sounds like exactly what I need, for both multi-function and configuration space registers. I'll check if that works on CycloneIV as well or if I have to upgrade, thanks a lot!