Skip to content

Commit 625bb4f

Browse files
committed
Updated release information and removed IES simulator support
1 parent f922f82 commit 625bb4f

File tree

21 files changed

+255
-971
lines changed

21 files changed

+255
-971
lines changed

README.md

Lines changed: 44 additions & 38 deletions
Large diffs are not rendered by default.

RELEASE_NOTES.md

Lines changed: 106 additions & 101 deletions
Large diffs are not rendered by default.

hdk/README.md

Lines changed: 42 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,24 @@
11
# AWS FPGA Hardware Development Kit (HDK)
22

33
## Table of Contents
4-
1. [HDK Overview](#overview)
5-
2. [Getting Started](#gettingstarted)
6-
- [AWS Account, F1/EC2 Instances, On-Premises, AWS IAM Permissions, AWS CLI and S3 Setup (One-time Setup)](#iss)
7-
- [Install the HDK and setup environment](#setup)
8-
- [Review examples](#examples)
9-
3. [How To Create an Amazon FPGA Image (AFI) From One of The CL Examples: Step-by-Step Guide](#endtoend)
10-
- [Fast path to running CL Examples on FPGA Instance](#fastpath)
11-
- [Step 1. Pick one of the examples and move to its directory](#step1)
12-
- [Step 2. Build the CL](#step2)
13-
- [Step 3. Submit the Design Checkpoint to AWS to Create the AFI](#step3)
14-
- [Step 4. Setup AWS FPGA Management tools](#step4)
15-
- [Step 5. Load the AFI](#step5)
16-
- [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)
17+
- [Step 4. Setup AWS FPGA Management tools](#step-4-setup-aws-fpga-management-tools)
18+
- [Step 5. Load the AFI](#step-5-load-the-afi)
19+
- [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)
1922

2023
<a name="overview"></a>
2124
## HDK Overview
@@ -25,11 +28,11 @@
2528
* RTL (Verilog or VHDL) development
2629
* Synthesis tools and the iterative process of identifying timing critical paths and optimizing hardware to meet timing
2730
* Familiarity with concepts related to designing for FPGAs, DMA, DDR, AXI protocol and linux drivers
28-
* RTL simulation
31+
* RTL simulation
2932
* 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)
3134
* 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)
3336

3437
* The [documents directory](./docs) provides the specification for the AWS Shell (SH) to Custom Logic (CL) interface:
3538
* [Shell Interface](./docs/AWS_Shell_Interface_Specification.md)
@@ -39,7 +42,7 @@
3942
* [Simulating RTL Design using testbenches and shell simulation model](./docs/RTL_Simulating_CL_Designs.md)
4043
* [Analyzing Power](./docs/afi_power.md)
4144
* [Detecting a shell timeout](./docs/HOWTO_detect_shell_timeout.md)
42-
45+
4346
* 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.
4447
* Developers should not need to change any file under the `/common` directory
4548
* `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
5457
#### AWS Account, F1/EC2 Instances, On-Premises, AWS IAM Permissions, AWS CLI and S3 Setup (One-time Setup)
5558
* [Setup an AWS Account](https://aws.amazon.com/free/)
5659
* 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:
5861

5962
| Developer Kit Version | Tool Version Supported | Compatible FPGA Developer AMI Version |
6063
|-----------|-----------|------|
@@ -67,6 +70,7 @@ For more details on the examples, see the [examples table](./cl/examples/cl_exam
6770
| 1.4.11-1.4.x | 2019.2 | v1.8.x (Xilinx Vivado 2019.2) |
6871
| 1.4.16-1.4.x | 2020.1 | v1.9.x (Xilinx Vivado 2020.1) |
6972
| 1.4.18-1.4.x | 2020.2 | v1.10.x (Xilinx Vivado 2020.2) |
73+
| 1.4.25-1.4.x | 2024.1 | v1.16.x (Xilinx Vivado 2024.1) |
7074

7175

7276
* The FPGA Developer Kit version is listed in [hdk_version.txt](./hdk_version.txt)
@@ -88,23 +92,23 @@ Use the aws-cli [region](http://docs.aws.amazon.com/cli/latest/userguide/cli-com
8892
8993
The AWS FPGA HDK can be cloned to your instance by executing:
9094
91-
> When using the FPGA Developer AMI, add:
95+
> When using the FPGA Developer AMI, add:
9296
> `AWS_FPGA_REPO_DIR=/home/centos/src/project_data/aws-fpga`
93-
97+
9498
```bash
9599
$ git clone https://github.com/aws/aws-fpga.git $AWS_FPGA_REPO_DIR
96100
$ cd $AWS_FPGA_REPO_DIR
97101
$ source hdk_setup.sh
98102
```
99103

100104
Sourcing `hdk_setup.sh` does the following:
101-
* 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.
103107

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.
105109

106110
<a name="examples"></a>
107-
#### Review examples
111+
#### Review examples
108112

109113
The [Examples readme](./cl/examples/cl_examples_list.md) provides an overview of all examples available to developers.
110114

@@ -114,7 +118,7 @@ The [Examples readme](./cl/examples/cl_examples_list.md) provides an overview of
114118
<a name="fastpath"></a>
115119
#### Fast path to running CL Examples on FPGA Instance
116120

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.
118122
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).
119123

120124
<a name="step1"></a>
@@ -144,7 +148,7 @@ Executing the `aws_build_dcp_from_cl.sh` script will perform the entire implemen
144148
The output is a tarball file comprising the DCP file, and other log/manifest files, formatted as `YY_MM_DD-hhmm.Developer_CL.tar`.
145149
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.
146150

147-
```
151+
```
148152
$ cd $CL_DIR/build/scripts
149153
$ ./aws_build_dcp_from_cl.sh
150154
```
@@ -204,16 +208,16 @@ Create a bucket and folder for your tarball, then copy to S3
204208
205209
NOTE: The trailing '/' is required after <dcp-folder-name>
206210
```
207-
Create a folder for your log files
208-
```
211+
Create a folder for your log files
212+
```
209213
$ aws s3 mb s3://<bucket-name>/<logs-folder-name>/ # Create a folder to keep your logs
210214
$ touch LOGS_FILES_GO_HERE.txt # Create a temp file
211215
$ aws s3 cp LOGS_FILES_GO_HERE.txt s3://<bucket-name>/<logs-folder-name>/ #Which creates the folder on S3
212-
216+
213217
NOTE: The trailing '/' is required after <logs-folder-name>
214-
```
218+
```
215219

216-
Start AFI creation.
220+
Start AFI creation.
217221
```
218222
$ aws ec2 create-fpga-image \
219223
--region <region> \
@@ -223,7 +227,7 @@ Start AFI creation.
223227
--logs-storage-location Bucket=<logs-bucket-name>,Key=<path-to-logs> \
224228
[ --client-token <value> ] \
225229
[ --dry-run | --no-dry-run ]
226-
230+
227231
NOTE: <path-to-tarball> is <dcp-folder-name>/<tar-file-name>
228232
<path-to-logs> is <logs-folder-name>
229233
```
@@ -246,7 +250,7 @@ You must provide the **FPGA Image Identifier** returned by `create-fpga-image`:
246250
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
247251
send an email with the results.
248252

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`:
250254
```
251255
{
252256
"FpgaImages": [
@@ -330,13 +334,13 @@ Now, you can verify that the AFI was loaded properly. The output shows the FPGA
330334
Type FpgaImageSlot VendorId DeviceId DBDF
331335
AFIDEVICE 0 0x1d0f 0xf000 0000:00:1d.0
332336
```
333-
337+
334338
<a name="step6"></a>
335339
#### Step 6. Validating using the CL Example Software
336340

337341
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.
338342

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.
340344

341345
```
342346
$ cd $CL_DIR/software/runtime/
@@ -349,7 +353,7 @@ For additional information per example, review the README.md located in the $CL_
349353
<a name="simcl"></a>
350354
## Simulate your Custom Logic design (RTL Simulation)
351355

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).
353357
Follow the [RTL simulation environment setup](./docs/RTL_Simulating_CL_Designs.md#introduction) to run these simulations
354358

355359
<a name="buildcl"></a>
@@ -358,6 +362,3 @@ Follow the [RTL simulation environment setup](./docs/RTL_Simulating_CL_Designs.m
358362
* Before starting your new design review the specification for the AWS Shell (SH) to Custom Logic (CL) [interface](./docs/AWS_Shell_Interface_Specification.md).
359363
* Try the [debug flow](docs/Virtual_JTAG_XVC.md) and understand the [shell timeout behavior](docs/HOWTO_detect_shell_timeout.md).
360364
* 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.
361-
362-
363-

hdk/cl/examples/cl_dram_dma/verif/README.md

Lines changed: 17 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -8,27 +8,24 @@ The system verilog simulation tests can be run from the [verif/scripts](scripts)
88
$ make TEST=test_dram_dma (Runs with XSIM by default)
99
$ make TEST=test_dram_dma VCS=1
1010
$ make TEST=test_dram_dma QUESTA=1
11-
$ make TEST=test_dram_dma IES=1
12-
11+
1312
//To Run Simulations in AXI_MEMORY_MODEL mode
14-
13+
1514
$ 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+
2018
//To Run DDR backdoor loading tests
2119
$ make TEST=test_ddr_peek_bdr_walking_ones DDR_BKDR=1 (Runs with XSIM by default)
2220
$ make TEST=test_ddr_peek_bdr_walking_ones DDR_BKDR=1 VCS=1
2321
$ 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
2825
test_dram_dma_dram_bdr_walking_ones
2926
test_dram_dma_dram_bdr_row_col_combo
30-
test_ddr_peek_bdr_walking_ones
31-
27+
test_ddr_peek_bdr_walking_ones
28+
3229
```
3330

3431
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
3734
$ make C_TEST=test_dram_dma_hwsw_cosim (Runs with XSIM by default)
3835
$ make C_TEST=test_dram_dma_hwsw_cosim VCS=1
3936
$ make C_TEST=test_dram_dma_hwsw_cosim QUESTA=1
40-
$ make C_TEST=test_dram_dma_hwsw_cosim IES=1
41-
37+
4238
//To Run in AXI_MEMORY_MODEL mode with AXI memory models instead of DDR.
43-
39+
4440
$ make C_TEST=test_dram_dma_hwsw_cosim AXI_MEMORY_MODEL=1 (Runs with XSIM by default)
4541
$ make C_TEST=test_dram_dma_hwsw_cosim AXI_MEMORY_MODEL=1 VCS=1
4642
$ 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+
4944
```
5045

5146
Note that the appropriate simulators must be installed.
5247

53-
# Dump Waves
48+
# Dump Waves
5449

5550
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)
5651

@@ -62,7 +57,7 @@ The system verilog tests are located at [verif/tests](tests). Information about
6257
This test programs valid clock recipes defined in and verifies the corresponding clock frequencies.
6358

6459
## 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'.
6661

6762
## test_ddr.sv
6863
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
124119
## test_ddr_peek_bdr_walking_ones
125120
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.
126121

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.
129124

130125
## test_dram_dma_dram_bdr_row_col_combo
131126
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](
143138
# Using IPI to run simulations in cl_dram_dma example
144139

145140
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)
146-
147-
148-
149-

hdk/cl/examples/cl_dram_dma/verif/scripts/Makefile.ies

Lines changed: 0 additions & 43 deletions
This file was deleted.

0 commit comments

Comments
 (0)