Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

I have two questions ,can someone help me #43

Open
hdu-lpl opened this issue Dec 24, 2023 · 1 comment
Open

I have two questions ,can someone help me #43

hdu-lpl opened this issue Dec 24, 2023 · 1 comment

Comments

@hdu-lpl
Copy link

hdu-lpl commented Dec 24, 2023

Hello, I am a beginner. I want to use these open source module to build a module similar to xilinx's XDMA IP function. Regarding the pcie_axi_master module, I saw the explanation you gave is :It can be used to terminate device-to-device DMA operations with reasonable performance.I don't understand what this terminate means.can you help me ?And How can I use these modules to combine into a function similar to XDMA? I am just learning it as an individual and do not need to use it for other purposes.

@alexforencich
Copy link
Owner

PCIe devices can assume roles of requester/initiator/bus master or completer/target. Requesters initiate memory read/write operations, and completers terminate read/write operations, potentially generating a completion which is returned to the requester. The CPU is always a requester (load and store operations initiate memory reads and writes), and the memory controller is always a completer (memory reads and writes are terminated by, well, reading and writing system memory). Other devices on the bus can take on both roles as appropriate - they can initiate DMA operations, or terminate operations on their BARs that were initiated by other devices. So, the DMA interface module serves in the requester/initiator role (generating read/write operations against system memory and/or other devices in the hierarchy), and the PCIe AXI master module serves in the completer/target role (terminating read/write operations that were initiated by other devices).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants