Forum Discussion

SRichter's avatar
SRichter
Icon for New Contributor rankNew Contributor
7 years ago

CycloneIV GX: How do I implement registers in configuration space, or multiple PCI functions?

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?

2 Replies