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
-[Step 6. Validating using the CL Example Software](#step6)
17
-
4.[Simulate Custom Logic (CL) RTL Design](#simcl)
18
-
5.[Start your own Custom Logic design (RTL flow, using Verilog or VHDL)](#buildcl)
4
+
-[AWS FPGA Hardware Development Kit (HDK)](#aws-fpga-hardware-development-kit-hdk)
5
+
-[Table of Contents](#table-of-contents)
6
+
-[HDK Overview](#hdk-overview)
7
+
-[Getting Started](#getting-started)
8
+
-[AWS Account, F1/EC2 Instances, On-Premises, AWS IAM Permissions, AWS CLI and S3 Setup (One-time Setup)](#aws-account-f1ec2-instances-on-premises-aws-iam-permissions-aws-cli-and-s3-setup-one-time-setup)
9
+
-[Install the HDK and setup environment](#install-the-hdk-and-setup-environment)
10
+
-[Review examples](#review-examples)
11
+
-[How To Create an Amazon FPGA Image (AFI) From One of The CL Examples: Step-by-Step Guide](#how-to-create-an-amazon-fpga-image-afi-from-one-of-the-cl-examples-step-by-step-guide)
12
+
-[Fast path to running CL Examples on FPGA Instance](#fast-path-to-running-cl-examples-on-fpga-instance)
13
+
-[Step 1. Pick one of the examples and start in the example directory](#step-1-pick-one-of-the-examples-and-start-in-the-example-directory)
14
+
-[Step 2. Build the CL](#step-2-build-the-cl)
15
+
-[Step 3. Submit the Design Checkpoint to AWS to Create the AFI](#step-3-submit-the-design-checkpoint-to-aws-to-create-the-afi)
16
+
-[Step by step guide how to load and test a registered AFI from within an F1 instance](#step-by-step-guide-how-to-load-and-test-a-registered-afi-from-within-an-f1-instance)
-[Step 6. Validating using the CL Example Software](#step-6-validating-using-the-cl-example-software)
20
+
-[Simulate your Custom Logic design (RTL Simulation)](#simulate-your-custom-logic-design-rtl-simulation)
21
+
-[Start your own Custom Logic design (RTL flow, using Verilog or VHDL)](#start-your-own-custom-logic-design-rtl-flow-using-verilog-or-vhdl)
19
22
20
23
<aname="overview"></a>
21
24
## HDK Overview
@@ -25,11 +28,11 @@
25
28
* RTL (Verilog or VHDL) development
26
29
* Synthesis tools and the iterative process of identifying timing critical paths and optimizing hardware to meet timing
27
30
* Familiarity with concepts related to designing for FPGAs, DMA, DDR, AXI protocol and linux drivers
28
-
* RTL simulation
31
+
* RTL simulation
29
32
* Experience with simulation debug or FPGA runtime waveform viewer debug methods
30
-
* Developers not familiar with these areas should start with [software defined acceleration](../Vitis/README.md)
33
+
* Developers not familiar with these areas should start with [software defined acceleration](../Vitis/README.md)
31
34
* Developers with existing RTL IP that are not familiar with the areas listed above should start with RTL Kernel development using [software defined acceleration](../Vitis/README.md).
32
-
* Developers looking for a faster HDK development path, should start with RTL Kernel development using [software defined acceleration](../Vitis/README.md)
35
+
* Developers looking for a faster HDK development path, should start with RTL Kernel development using [software defined acceleration](../Vitis/README.md)
33
36
34
37
* The [documents directory](./docs) provides the specification for the AWS Shell (SH) to Custom Logic (CL) interface:
*[Simulating RTL Design using testbenches and shell simulation model](./docs/RTL_Simulating_CL_Designs.md)
40
43
*[Analyzing Power](./docs/afi_power.md)
41
44
*[Detecting a shell timeout](./docs/HOWTO_detect_shell_timeout.md)
42
-
45
+
43
46
* The [common directory](./common) includes common environment setup scripts, common build scripts and constraints files and IP libraries like the DRAM controller. This directory includes a production shell which is reference under `shell_stable` directory. The AWS Shell Design Checkpoint (DCP) will be downloaded into the common directory from S3 during hdk setup.
44
47
* Developers should not need to change any file under the `/common` directory
45
48
*`shell_stable` directory contains the files needed by developers to build a CL using a current production shell.
@@ -54,7 +57,7 @@ For more details on the examples, see the [examples table](./cl/examples/cl_exam
54
57
#### AWS Account, F1/EC2 Instances, On-Premises, AWS IAM Permissions, AWS CLI and S3 Setup (One-time Setup)
55
58
*[Setup an AWS Account](https://aws.amazon.com/free/)
56
59
* Launch an instance using the [FPGA Developer AMI](https://aws.amazon.com/marketplace/pp/B06VVYBLZZ) which comes pre-installed with Vivado and required licenses. Given the large size of the FPGA used inside the AWS FPGA instances, the implementation tools require 32GiB Memory (ex: c4.4xlarge, m4.2xlarge, r4.xlarge, t2.2xlarge). c4.4xlarge and c4.8xlarge would provide the fastest execution time with 30 and 60GiB of memory respectively. Developers who want to save on cost, would start coding and run simulations on low-cost instances, like t2.2xlarge, and move to the aforementioned larger instances to run the synthesis of their acceleration code. Follow the [On-Premises Instructions](../docs/on_premise_licensing_help.md) to purchase and install a license from Xilinx.
57
-
* The compatibility table describes the mapping of developer kit version to [FPGA Developer AMI](https://aws.amazon.com/marketplace/pp/B06VVYBLZZ) version:
60
+
* The compatibility table describes the mapping of developer kit version to [FPGA Developer AMI](https://aws.amazon.com/marketplace/pp/B06VVYBLZZ) version:
58
61
59
62
| Developer Kit Version | Tool Version Supported | Compatible FPGA Developer AMI Version |
60
63
|-----------|-----------|------|
@@ -67,6 +70,7 @@ For more details on the examples, see the [examples table](./cl/examples/cl_exam
* It sets required environment variables that are used throughout the examples in the HDK.
102
-
* Downloads DDR simulation models and DCP(s) from S3.
105
+
* It sets required environment variables that are used throughout the examples in the HDK.
106
+
* Downloads DDR simulation models and DCP(s) from S3.
103
107
104
-
New terminals or xterm require `hdk_setup.sh` to be rerun so that the correct environment variables are set.
108
+
New terminals or xterm require `hdk_setup.sh` to be rerun so that the correct environment variables are set.
105
109
106
110
<aname="examples"></a>
107
-
#### Review examples
111
+
#### Review examples
108
112
109
113
The [Examples readme](./cl/examples/cl_examples_list.md) provides an overview of all examples available to developers.
110
114
@@ -114,7 +118,7 @@ The [Examples readme](./cl/examples/cl_examples_list.md) provides an overview of
114
118
<aname="fastpath"></a>
115
119
#### Fast path to running CL Examples on FPGA Instance
116
120
117
-
For developers that want to skip the development flow and start running the examples on the FPGA instance. You can skip steps 1 through 3 if you are not interested in the development process. Step 4 through 6 will show you how to use one of the pre-designed AFI examples.
121
+
For developers that want to skip the development flow and start running the examples on the FPGA instance. You can skip steps 1 through 3 if you are not interested in the development process. Step 4 through 6 will show you how to use one of the pre-designed AFI examples.
118
122
By using the public AFIs, developers can skip the build flow steps and jump to step 4. [Public AFIs are available for each example and can be found in the example/README](cl/examples/cl_hello_world/README.md#metadata).
119
123
120
124
<aname="step1"></a>
@@ -144,7 +148,7 @@ Executing the `aws_build_dcp_from_cl.sh` script will perform the entire implemen
144
148
The output is a tarball file comprising the DCP file, and other log/manifest files, formatted as `YY_MM_DD-hhmm.Developer_CL.tar`.
145
149
This file would be submitted to AWS to create an AFI. By default the build script will use Clock Group A Recipe A0 which uses a main clock of 125 MHz.
146
150
147
-
```
151
+
```
148
152
$ cd $CL_DIR/build/scripts
149
153
$ ./aws_build_dcp_from_cl.sh
150
154
```
@@ -204,16 +208,16 @@ Create a bucket and folder for your tarball, then copy to S3
204
208
205
209
NOTE: The trailing '/' is required after <dcp-folder-name>
206
210
```
207
-
Create a folder for your log files
208
-
```
211
+
Create a folder for your log files
212
+
```
209
213
$ aws s3 mb s3://<bucket-name>/<logs-folder-name>/ # Create a folder to keep your logs
210
214
$ touch LOGS_FILES_GO_HERE.txt # Create a temp file
211
215
$ aws s3 cp LOGS_FILES_GO_HERE.txt s3://<bucket-name>/<logs-folder-name>/ #Which creates the folder on S3
212
-
216
+
213
217
NOTE: The trailing '/' is required after <logs-folder-name>
NOTE: <path-to-tarball> is <dcp-folder-name>/<tar-file-name>
228
232
<path-to-logs> is <logs-folder-name>
229
233
```
@@ -246,7 +250,7 @@ You must provide the **FPGA Image Identifier** returned by `create-fpga-image`:
246
250
You can use the [wait_for_afi.py](./docs/wait_for_afi.md) script to wait for the AFI creation to complete and then optionally
247
251
send an email with the results.
248
252
249
-
The AFI can only be loaded to an instance once the AFI generation completes and the AFI state is set to `available`:
253
+
The AFI can only be loaded to an instance once the AFI generation completes and the AFI state is set to `available`:
250
254
```
251
255
{
252
256
"FpgaImages": [
@@ -330,13 +334,13 @@ Now, you can verify that the AFI was loaded properly. The output shows the FPGA
330
334
Type FpgaImageSlot VendorId DeviceId DBDF
331
335
AFIDEVICE 0 0x1d0f 0xf000 0000:00:1d.0
332
336
```
333
-
337
+
334
338
<aname="step6"></a>
335
339
#### Step 6. Validating using the CL Example Software
336
340
337
341
Developers using AMI 1.5.0 or Later Instances that come with pre-installed Xilinx Runtime Environment (XRT) should [refer to this note](../sdk/linux_kernel_drivers/xdma/xdma_install.md#xdmainstallfail) before installing XDMA driver.
338
342
339
-
Each CL Example comes with a runtime software under `$CL_DIR/software/runtime/` subdirectory. You will need to build the runtime application that matches your loaded AFI.
343
+
Each CL Example comes with a runtime software under `$CL_DIR/software/runtime/` subdirectory. You will need to build the runtime application that matches your loaded AFI.
340
344
341
345
```
342
346
$ cd $CL_DIR/software/runtime/
@@ -349,7 +353,7 @@ For additional information per example, review the README.md located in the $CL_
349
353
<aname="simcl"></a>
350
354
## Simulate your Custom Logic design (RTL Simulation)
351
355
352
-
You can use Vivado XSIM simulator, or bring your own simulator (like Synopsys' VCS, Mentor's Questa, or Cadence Incisive).
356
+
You can use Vivado XSIM simulator, or bring your own simulator (like Synopsys' VCS or Mentor's Questa).
353
357
Follow the [RTL simulation environment setup](./docs/RTL_Simulating_CL_Designs.md#introduction) to run these simulations
354
358
355
359
<aname="buildcl"></a>
@@ -358,6 +362,3 @@ Follow the [RTL simulation environment setup](./docs/RTL_Simulating_CL_Designs.m
358
362
* Before starting your new design review the specification for the AWS Shell (SH) to Custom Logic (CL) [interface](./docs/AWS_Shell_Interface_Specification.md).
359
363
* Try the [debug flow](docs/Virtual_JTAG_XVC.md) and understand the [shell timeout behavior](docs/HOWTO_detect_shell_timeout.md).
360
364
* When you are ready, copy an example to [start your own CL design](./cl/developer_designs/Starting_Your_Own_CL.md) and make a simple modification to get familiar with customizing the hardware developer kit for your development needs.
Copy file name to clipboardExpand all lines: hdk/cl/examples/cl_dram_dma/verif/README.md
+17-26Lines changed: 17 additions & 26 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,27 +8,24 @@ The system verilog simulation tests can be run from the [verif/scripts](scripts)
8
8
$ make TEST=test_dram_dma (Runs with XSIM by default)
9
9
$ make TEST=test_dram_dma VCS=1
10
10
$ make TEST=test_dram_dma QUESTA=1
11
-
$ make TEST=test_dram_dma IES=1
12
-
11
+
13
12
//To Run Simulations in AXI_MEMORY_MODEL mode
14
-
13
+
15
14
$ make TEST=test_dram_dma AXI_MEMORY_MODEL=1 (Runs with XSIM by default in AXI_MEMORY_MODEL mode)
16
-
$ make TEST=test_dram_dma AXI_MEMORY_MODEL=1 VCS=1
17
-
$ make TEST=test_dram_dma AXI_MEMORY_MODEL=1 QUESTA=1
18
-
$ make TEST=test_dram_dma AXI_MEMORY_MODEL=1 IES=1
19
-
15
+
$ make TEST=test_dram_dma AXI_MEMORY_MODEL=1 VCS=1
16
+
$ make TEST=test_dram_dma AXI_MEMORY_MODEL=1 QUESTA=1
17
+
20
18
//To Run DDR backdoor loading tests
21
19
$ make TEST=test_ddr_peek_bdr_walking_ones DDR_BKDR=1 (Runs with XSIM by default)
22
20
$ make TEST=test_ddr_peek_bdr_walking_ones DDR_BKDR=1 VCS=1
23
21
$ make TEST=test_ddr_peek_bdr_walking_ones DDR_BKDR=1 QUESTA=1
24
-
$ make TEST=test_ddr_peek_bdr_walking_ones DDR_BKDR=1 IES=1
25
-
26
-
//Backdoor loading test list. Description can be found in the sections below.
27
-
test_dram_dma_dram_bdr_wr
22
+
23
+
//Backdoor loading test list. Description can be found in the sections below.
24
+
test_dram_dma_dram_bdr_wr
28
25
test_dram_dma_dram_bdr_walking_ones
29
26
test_dram_dma_dram_bdr_row_col_combo
30
-
test_ddr_peek_bdr_walking_ones
31
-
27
+
test_ddr_peek_bdr_walking_ones
28
+
32
29
```
33
30
34
31
The HW/SW co-simulation tests can be run from the [verif/scripts](scripts) directory with all supported simulators:
@@ -37,20 +34,18 @@ The HW/SW co-simulation tests can be run from the [verif/scripts](scripts) direc
37
34
$ make C_TEST=test_dram_dma_hwsw_cosim (Runs with XSIM by default)
38
35
$ make C_TEST=test_dram_dma_hwsw_cosim VCS=1
39
36
$ make C_TEST=test_dram_dma_hwsw_cosim QUESTA=1
40
-
$ make C_TEST=test_dram_dma_hwsw_cosim IES=1
41
-
37
+
42
38
//To Run in AXI_MEMORY_MODEL mode with AXI memory models instead of DDR.
43
-
39
+
44
40
$ make C_TEST=test_dram_dma_hwsw_cosim AXI_MEMORY_MODEL=1 (Runs with XSIM by default)
45
41
$ make C_TEST=test_dram_dma_hwsw_cosim AXI_MEMORY_MODEL=1 VCS=1
46
42
$ make C_TEST=test_dram_dma_hwsw_cosim AXI_MEMORY_MODEL=1 QUESTA=1
47
-
$ make C_TEST=test_dram_dma_hwsw_cosim AXI_MEMORY_MODEL=1 IES=1
48
-
43
+
49
44
```
50
45
51
46
Note that the appropriate simulators must be installed.
52
47
53
-
# Dump Waves
48
+
# Dump Waves
54
49
55
50
For information about how to dump waves with XSIM, please refer to [debugging-custom-logic-using-the-aws-hdk](../../../../docs/RTL_Simulating_CL_Designs.md#debugging-custom-logic-using-the-aws-hdk)
56
51
@@ -62,7 +57,7 @@ The system verilog tests are located at [verif/tests](tests). Information about
62
57
This test programs valid clock recipes defined in and verifies the corresponding clock frequencies.
63
58
64
59
## test_ddr_peek_poke.sv
65
-
This does a walking ones test through the DDR address range. Also checks if any of the bits are stuck at '0'.
60
+
This does a walking ones test through the DDR address range. Also checks if any of the bits are stuck at '0'.
66
61
67
62
## test_ddr.sv
68
63
This test programs ATG to generate traffic to access all three DDRs in CL and one DDR in SH.
@@ -124,8 +119,8 @@ The tests below use backdoor loading to populate DDR memory. The description of
124
119
## test_ddr_peek_bdr_walking_ones
125
120
DDR test which uses backdoor loading to populate DDR memory. The test writes data(walking ones) for different addresses. The test backdoor loads DDR memory and reads through frontdoor and checks that the data matches.
126
121
127
-
## test_dram_dma_dram_bdr_wr
128
-
DMA test backdoor loads one address in DRAM memory and reads through frontdoor.
122
+
## test_dram_dma_dram_bdr_wr
123
+
DMA test backdoor loads one address in DRAM memory and reads through frontdoor.
129
124
130
125
## test_dram_dma_dram_bdr_row_col_combo
131
126
DMA test which covers all row column combinations in each memory model.
@@ -143,7 +138,3 @@ The software test with HW/SW co-simulation support [test_dram_dma_hwsw_cosim.c](
143
138
# Using IPI to run simulations in cl_dram_dma example
144
139
145
140
Xilinx IPI can also be used to simulate cl_dram_dma. For information about how to use IPI to simulate cl_dram_dma example, please refer to [IPI_GUI_cl_dram_dma_example](../../cl_dram_dma_hlx/README.md)
0 commit comments