Programmable Devices
CPLDs, FPGAs, SoC FPGAs, Configuration, and Transceivers
21594 Discussions

PCIe master transfers from dedicated dual-ported memory

Altera_Forum
Honored Contributor II
1,238 Views

Has anyone tried interfacing the PCIe master logic to a dedicated dual ported memory block? 

So you'd tell the logic the address in the dual ported memory, the PCIe address (64bit), 

the transfer length (maybe limited to a single TLP), and the direction and then read a status 

bit for completion. 

 

This ought to be simpler (and use a lot less resources) than the schemes that need a DMA engine with an internal fifo large enough for the PCIe data bursts. 

 

The transfers themselves would be scheduled by other logic (eg a nios cpu) which could an fpga-side data copy for data that doesn't permanently reside in the correct memory block.
0 Kudos
2 Replies
Altera_Forum
Honored Contributor II
503 Views

 

--- Quote Start ---  

Has anyone tried interfacing the PCIe master logic to a dedicated dual ported memory block? 

So you'd tell the logic the address in the dual ported memory, the PCIe address (64bit), 

the transfer length (maybe limited to a single TLP), and the direction and then read a status 

bit for completion. 

 

This ought to be simpler (and use a lot less resources) than the schemes that need a DMA engine with an internal fifo large enough for the PCIe data bursts. 

 

The transfers themselves would be scheduled by other logic (eg a nios cpu) which could an fpga-side data copy for data that doesn't permanently reside in the correct memory block. 

--- Quote End ---  

 

 

Hi Dave, I have been somewhat busy and had used dual ported IMEM with one port for NIOS and one port for the PCIe Bar master ... but you are indication the PCIe master port ... that would fetch 

from the dual ported memory and send out as a TLP ... Can you say how you configure the PCIe core to do that ( master / DMA function ). ? 

 

Also, for Avalon MM interconnect, can you answer this , to get a greater than single DW write transaction on PCIe , is that a reflection that the Avalon MM transaction was also a greater than DW transaction. 

ie 64 bit transaction or a burst 32 bit transaction ? 

 

One final question while I am here ... I have only used the PCIe Hard IP in Cyclone, Arria and Stratix FPGA's .... I want to know how to control two TLP level items. 

 

1) the Relaxed Ordering ( RO ) bit . 

2) the AT bits that will define a normal address 2b00 versus a ATS translation request or a Read or Write with a cached ATS translated address. 

 

I have a feeling these may require the Soft PCIe IP which is licensed . 

 

Thanks, Bob.
0 Kudos
Altera_Forum
Honored Contributor II
503 Views

I can only answer one of your questions. 

If a dma controller does an Avalon master transfer to the PCIe Avalon slave (PCIe master) then it does generate large TLP. 

I don't actually know how the transfer (or burst) length gets to the PCIe block. 

 

To my mind it would be much easier if the PCIe master interface had an embedded dma controller. 

We were fortunate in our previous design that the ppc processor (at the other end of the PCIe link) did have such a dma controller.
0 Kudos
Reply