- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.Link Copied
2 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- 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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page