Cyclone IV GX Platformdesigner PCIe Hard-IP Upstream Port Arbitration
Hello!
I am using a Cyclone IV GX FPGA with the integrated PCIe Hard-IP.
The FPGAs PCIe is connected to an ARMv7 CPU running Linux.
In the FPGA Design (with Platfromdesigner) the PCIe Hard-IP's Avalon txs Slave Port and multiple Avalon Master Bars are used.
Two DMA controllers inside the FPGA write Data to the CPUs RAM via the txs Port. And the CPU has read/write access to the Avalon Slaves via the bars.
Now i have the problem of arbitration/priorities between txs and bar ports. After reading the IP Compiler for PCIe Userguide, I still have no clue which port has a higher priority (also priorities between different bars would be interessting).
In my application the txs should have the lowest priority, so that the DMAs get throttled. As result a low latency read/write to bars should be possible.
I read about PCIe's Virtual Channels, but as far as I know the Cyclone IV does only support one Virtual Channel, so no solution?
Is there any way to setup arbitration/priorities between PCIe txs and bars:
- Using PCIe Configurationspace (Config of FPGA Endpoint / CPU Rootport?
- Adding Arbitration mechanism in Platform Designer between txs and Bars?
Thanks in advance!