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
+19-8Lines changed: 19 additions & 8 deletions
Original file line number
Diff line number
Diff line change
@@ -213,7 +213,7 @@ sudo ./stream_test
213
213
214
214
## Creating a Memory-Mapped XDMA Block Diagram Design
215
215
216
-
Start Vivado and choose Create Project:
216
+
This procedure will recreate the design in [`xdma_mm.tcl`](xdma_mm.tcl). Start Vivado and choose *Create Project*:
217
217
218
218

219
219
@@ -408,7 +408,7 @@ Generate a Memory Configuration File and follow your board's instructions for pr
408
408
409
409
## Creating an AXI4-Stream XDMA Block Diagram Design
410
410
411
-
Start Vivado and choose Create Project:
411
+
This procedure will recreate the design in [`xdma_stream.tcl`](xdma_stream.tcl). Start Vivado and choose *Create Project*:
412
412
413
413

414
414
@@ -474,11 +474,11 @@ Click on the `+` next to the `S_AXIS_C2H_0` and `M_AXIS_H2C_0` channels to expan
474
474
475
475
#### AXI4-Stream Broadcaster Block
476
476
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.
477
+
Add an [AXI4-Stream Broadcaster](https://docs.xilinx.com/r/en-US/pg085-axi4stream-infrastructure/AXI4-Stream-Broadcaster?tocId=lTRZ8UtIrjz6JIc8NcwYXg) 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. Its *aclk* should connect to the XDMA block's *axi_aclk*. Its *aresetn* should connect to the XDMA block's *axi_aresetn*.
@@ -489,11 +489,13 @@ One of the output streams is set up to be the lower 32-bits of the input and the
489
489
490
490
#### Floating-Point Block
491
491
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.
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*. Its *aclk* and *aresetn* signals should connect to *axi_aclk* and *axi_aresetn* of the XDMA Block.
493
+
494
+
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.
@@ -508,7 +510,7 @@ The interface is set up as *Blocking* so that the AXI4-Stream interfaces include
508
510
509
511
#### Data Width Converter
510
512
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.
513
+
Add an [AXI4-Stream Data Width Converter](https://docs.xilinx.com/r/en-US/pg085-axi4stream-infrastructure/AXI4-Stream-Data-Width-Converter?tocId=XeJGiRyJ7jaFrWoPmP_A0w). Connect its `S_AXIS` input to the 32-Bit=4-Byte `M_AXIS_RESULT`output of the Floating-Point block. Connect its output `M_AXIS` port to the `S_AXIS_C2H_0` port of the XDMA Block. Its *aclk* and *aresetn* signals should connect to *axi_aclk* and *axi_aresetn* of the XDMA Block.
512
514
513
515

514
516
@@ -517,6 +519,13 @@ Set it up to convert its 32-Bit=4-Byte input into a 64-Bit=8-Byte output compati
517
519

518
520
519
521
522
+
#### M_AXI_LITE BRAM Circuit
523
+
524
+
The demo circuit includes a BRAM Block connected to **M_AXI_LITE**.
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.
@@ -548,7 +557,7 @@ Synthesis and Implementation should take about 10 minutes:
548
557
549
558
## Recreating a Project from a Tcl File
550
559
551
-
Run the [`source`](https://docs.xilinx.com/r/2022.2-English/ug939-vivado-designing-with-ip-tutorial/Source-the-Tcl-Script?tocId=7apMNdBzAEx4udRnUANS9A) command in the Vivado *Tcl Console* to recreate a project.
560
+
Run the [`source`](https://docs.xilinx.com/r/2022.2-English/ug939-vivado-designing-with-ip-tutorial/Source-the-Tcl-Script?tocId=7apMNdBzAEx4udRnUANS9A) command in the Vivado *Tcl Console* to recreate a project. The [`constraints.xdc`](constraints.xdc) file needs to be in the same directory.
552
561
```
553
562
pwd
554
563
cd DOWNLOAD_DIRECTORY
@@ -561,6 +570,8 @@ source PROJECT_NAME.tcl
561
570
562
571
### Porting the Design to Another FPGA
563
572
573
+
If your board and target FPGA are different, the design can be re-targeted.
574
+
564
575
Under *Tools->Settings*, change the **Project Device**.
0 commit comments