You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: XDMA_Communication/README.md
+17-11Lines changed: 17 additions & 11 deletions
Original file line number
Diff line number
Diff line change
@@ -90,7 +90,7 @@ sudo ./mm_axi_test
90
90
91
91
92
92
93
-
### Memory-Mapped M_AXI_LITE
93
+
### M_AXI_LITE
94
94
95
95
The **M_AXI_LITE** interface is useful for single word access to register-like blocks as communication is via single Transaction Layer Packet (TLP) requests.
96
96
@@ -283,7 +283,7 @@ For this project only one of each interface is required.
Both the **M_AXI** and **M_AXI_LITE** interfaces should have their own SmartConnect block. Connect their *aclk* input to the `xdma_0` block's *axi_aclk* and their *aresetn* input to *axi_aresetn*.
286
+
Both the **M_AXI** and **M_AXI_LITE** interfaces should have their own SmartConnect block. Connect their *aclk* input to the `xdma_0` block's *axi_aclk* and their *aresetn* input to *axi_aresetn*. Connect the `S00_AXI` port of one block to `M_AXI` of the XDMA Block and similarly for `M_AXI_LITE`.
287
287
288
288

You can edit the AXI Block addresses as required. The *Range* is the size that Vivado will implement for each block. If the value is too large for your target FPGA then Implementation will fail. Even though each Network can have overlapping addresses, avoid this as it can lead to confusion.
331
+
Edit the AXI Block addresses as required. The *Range* is the size that Vivado will implement for each block. If the value is too large for your target FPGA then Implementation will fail. Even though each Network can have overlapping addresses, avoid this as it can lead to confusion.
332
332
333
333

334
334
@@ -395,7 +395,7 @@ Generate the Bitstream:
395
395
396
396

397
397
398
-
Synthesis and Implementation should take about 10minutes:
398
+
Synthesis and Implementation should take about 10 minutes:
When running Block Automation, choose**AXI Stream** as the *DMA Interface* and add an AXI Lite interface:
442
+
Choose PCIe Lane Width and Link Speed compatible with your target board. Select**AXI Stream** as the *DMA Interface* and add an AXI Lite interface:
443
443
444
444

445
445
@@ -476,6 +476,10 @@ Click on the `+` next to the `S_AXIS_C2H_0` and `M_AXIS_H2C_0` channels to expan
476
476
477
477
Add a *AXI4-Stream Broadcaster* block which will take a 64-Bit=8-Byte input stream and output two 32-Bit=4-Byte streams. Connect its `S_AXIS` input to `M_AXIS_H2C_0` of the XDMA Block.
One of the output streams is set up to be the lower 32-bits of the input and the second stream is the upper 32-bits.
@@ -487,6 +491,8 @@ One of the output streams is set up to be the lower 32-bits of the input and the
487
491
488
492
Add a [Floating-Point](https://docs.xilinx.com/v/u/en-US/pg060-floating-point) block to the stream as an example of something useful. Connect its `S_AXIS` inputs to the `M??_AXIS` outputs of the *AXI4-Stream Broadcaster*. Each pair of 32-bit=4-byte single precision floating-point values in the 64-Bit=8-Byte Host-to-Card (H2C) stream gets multiplied to produce a floating-point value in the 64-Bit=8-Byte Card-to-Host (C2H) stream. Half as many reads from C2H are necessary as writes to H2C.
@@ -502,18 +508,18 @@ The interface is set up as *Blocking* so that the AXI4-Stream interfaces include
502
508
503
509
#### Data Width Converter
504
510
505
-
Connect an [AXI4-Stream Data Width Converter](https://docs.xilinx.com/r/en-US/pg085-axi4stream-infrastructure/AXI4-Stream-Data-Width-Converter?tocId=XeJGiRyJ7jaFrWoPmP_A0w) to the 32-Bit=4-Byte output of the Floating-Point block. Its `M_AXIS` port should be connected to the `S_AXIS_C2H_0` port of the XDMA Block.
511
+
Connect an [AXI4-Stream Data Width Converter](https://docs.xilinx.com/r/en-US/pg085-axi4stream-infrastructure/AXI4-Stream-Data-Width-Converter?tocId=XeJGiRyJ7jaFrWoPmP_A0w)input (`S_AXIS`) to the 32-Bit=4-Byte output of the Floating-Point block (`M_AXIS_RESULT`). Connect its output `M_AXIS` port to the `S_AXIS_C2H_0` port of the XDMA Block.
506
512
507
-
Set it up to convert its 32-Bit=4-Byte input into a 64-Bit=8-Byte output compatible with the C2H port of the XDMA Block. It will use a FIFO to convert pairs of 32-Bit=4-Byte inputs into 64-Bit=8-Byte outputs.
513
+

508
514
509
-

515
+
Set it up to convert its 32-Bit=4-Byte input into a 64-Bit=8-Byte output compatible with the C2H port of the XDMA Block. It will use a FIFO to convert pairs of 32-Bit=4-Byte inputs into 64-Bit=8-Byte outputs.
510
516
511
517

512
518
513
519
514
520
#### M_AXI_LITE Addresses
515
521
516
-
If you decide to [add a BRAM Block](#add-bram-controller-blocks) to the *M_AXI_LITE* port, set up its addresses.
522
+
If you decide to [add a BRAM Block](#add-bram-controller-blocks)or other peripheral to the **M_AXI_LITE** port, set up its addresses.
0 commit comments