Skip to content

Commit e6c4b01

Browse files
authored
Merge pull request #751 from aws/rc/2.2.1
Release v2.2.1
2 parents 9ae615e + 5be5f18 commit e6c4b01

File tree

80 files changed

+4332
-908
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

80 files changed

+4332
-908
lines changed

.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ fpga_utils.c
3939
*.a
4040
*.ko
4141
fio
42+
.coverage
4243

4344
!SDAccel/aws_platform/xilinx_aws-vu9p-f1_1ddr-xpr-2pr_4_0/sw/lib/x86_64/libxilinxopencl.so
4445
!SDAccel/aws_platform/xilinx_aws-vu9p-f1_4ddr-xpr-2pr_4_0/sw/lib/x86_64/libxilinxopencl.so
@@ -139,3 +140,8 @@ slurm*.out
139140

140141
# RTD Builds
141142
docs-rtd/build/*
143+
144+
# HLx files
145+
*.tmp
146+
**/example_projects/
147+
*.pb

.gitmodules

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,7 @@
66
path = hdk/common/ip
77
url = https://github.com/aws/aws-fpga-resources.git
88
ignore = dirty
9-
branch = Vivado_2025.1-hdk/common/ip
9+
[submodule "hdk/common/shell_stable/hlx"]
10+
path = hdk/common/shell_stable/hlx
11+
url = https://github.com/aws/aws-fpga-resources.git
12+
ignore = dirty

.readthedocs.yaml

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,40 @@
11
version: 2
22

33
build:
4-
os: ubuntu-20.04
4+
os: ubuntu-24.04
55
tools:
6-
python: "3.10"
6+
python: "3.12"
7+
nodejs: "22"
8+
rust: "1.82"
9+
golang: "1.23"
10+
711

812
python:
913
install:
1014
- requirements: docs-rtd/requirements.txt
1115

1216
sphinx:
1317
configuration: docs-rtd/source/conf.py
18+
builder: html
19+
fail_on_warning: true
20+
21+
search:
22+
ranking:
23+
index.html: 10
24+
all-links.html: 7
25+
User-Guide-AWS-EC2-FPGA-Development-Kit.html: 9
26+
hdk/README.html: 9
27+
hdk/cl/CHECKLIST-BEFORE-BUILDING-CL.html: 8
28+
hdk/cl/examples/cl-dram-hbm-dma/README.html: 8
29+
hdk/cl/examples/cl-mem-perf/README.html: 8
30+
hdk/cl/examples/cl-sde/README.html: 8
31+
hdk/cl/examples/CL-TEMPLATE/README.html: 8
32+
hdk/docs/AWS-CLI-FPGA-Commands.html: 8
33+
hdk/docs/AWS-Shell-Interface-Specification.html: 8
34+
hdk/docs/List-AFI-on-Marketplace.html: 8
35+
sdk/README.html: 9
36+
sdk/apps/msix-interrupts/README.html: 8
37+
sdk/apps/virtual-ethernet/README.html: 8
38+
sdk/docs/F2-Software-Performance-Optimization-Guide.html: 8
39+
vitis/README.html: 9
40+
developer-resources/Amazon-DCV-Setup-Guide.html: 8

ERRATA.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,10 @@ Shell errata is [documented here](./hdk/docs/AWS_Shell_ERRATA.md)
4141
9. Vivado 2025.1 introduces a `set_property DONT_TOUCH` to the HBM model that makes meeting
4242
timing difficult in the implementation stage. AMD has responded to this issue on their AR, stating that it will be fixed in a future version of Vivado. [See here for more details](https://adaptivesupport.amd.com/s/article/000038502?language=en_US&t=1754923887312). All HDK CL examples have been updated to address this issue. Customers should follow this AR when creating their own designs.
4343

44+
## HLx
45+
46+
1. When executing the `aws::make_ipi` command in Vivado to set up the HLx IPI environment, the AWS IP instance may default to the name `f1_inst`. This is a known Vivado behavior and can be safely ignored. Users can rename this instance according to their preference.
47+
4448
## SDK
4549

4650
1. The following fpga_mgmt flags are not supported for F2:
@@ -74,3 +78,7 @@ timing difficult in the implementation stage. AMD has responded to this issue on
7478
2. Support for Vitis 2024.1 and 2024.2 accelerator binary creation and AFI creation is not supported, but will be released at a later time.
7579

7680
3. Support for Vitis software emulation has been deprecated by AMD, therefore, no longer supported.
81+
82+
## Amazon DCV
83+
84+
1. Amazon DCV does not support Rocky Linux 8.10 at this time.

Jenkinsfile

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

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
![f2_headline_graphic](./shared/assets/f2_headline_graphic.png)
2+
![f2_headline_graphic](./docs-rtd/source/_static/f2_headline_graphic.png)
33

44
# AWS F2
55

RELEASE_NOTES.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,15 @@
11
# F2 Developer Kit Release Notes
22

3+
## v2.2.1
4+
5+
* [Release of FPGA Developer AMI 1.18.0 (Rocky Linux 8.10)](http://aws.amazon.com/marketplace/pp/prodview-7mukkbz7l2uvu) with Vivado/Vitis 2025.1 tools pre-installed
6+
* [Release of Vivado HLx flow](./User_Guide_AWS_EC2_FPGA_Development_Kit.md#development-environments)
7+
* Fixed TCL glob expression to properly read both .sv and .v files. Credit to @pyz-creeper and @dsw for this update!
8+
* Updated error codes in create-fpga-image for unsupported design logic
9+
* Updated the Virtual Ethernet Application to write the DMA buffer descriptors using the byte alignment required by the CL_SDE example, preventing data alignment errors on Rocky
10+
* [Added Amazon FPGA Image (AFI) creation Python script](./hdk/README.md#step-6-submit-generated-dcp-for-afi-creation)
11+
* Updated XRT version which includes stability fixes for Vitis
12+
313
## v2.2.0
414

515
* Release of Vivado/Vitis 2025.1 Tools on [FPGA Developer AMI 1.18.0 (Ubuntu)](http://aws.amazon.com/marketplace/pp/prodview-tcl7sjgreh6bq)

User_Guide_AWS_EC2_FPGA_Development_Kit.md

Lines changed: 57 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,15 @@ This documentation is relevant to F2 only. Therefore, it applies to all branches
2525

2626
### Instance Types
2727

28-
![f2_instances](./shared/assets/instance_sizes_20250110.png)
28+
![f2_instances](./docs-rtd/source/_static/instance_sizes.png)
2929

3030
### 2nd Generation On-Cloud FPGA Accelerator Card
3131

32-
![f2_instances](./shared/assets/accel_card_specs_20250110.png)
32+
![accel_card_specs](./docs-rtd/source/_static/accel_card_specs.png)
3333

3434
### Comparison to F1
3535

36-
![f2_f1_comp](./shared/assets/f2_f1_comp_20250110.png)
36+
![f2_f1_comp](./docs-rtd/source/_static/f2_f1_comp.png)
3737

3838
## AWS EC2 F2 FPGA Development Kit
3939

@@ -43,10 +43,11 @@ This table lists the F2 development flows currently enabled and supported in the
4343

4444
| Development Environment | Description | Accelerator Language | Hardware Interface | Debug Options | Typical Developer |
4545
| ------------------------|-------------|----------------------|--------------------|---------------|-------------------|
46-
| Hardware accelerator development using Vivado (HDK) | This environment supports the Hardware Development Kit (HDK) design flow, which empowers FPGA developers to create accelerator designs from scratch, using HDL source code and IPs. <br><br>The AMD Vivado tool synthesizes, implements, and generates the Design Check Point (DCP) file used in F2 AFI creation. AWS FPGA developers benefit from the suite of scripts supplied in the HDK that help to automate different design steps. This allows for flexibility in architecting, implementing, and optimizing accelerator designs while using the HDK.| Verilog/SystemVerilog/VHDL | User-implemented DMA engine or Streaming Data Engine (SDE) | Simulation | Hardware developers with advanced FPGA experience |
46+
| Hardware accelerator development using Vivado (HDK) | This environment supports the Hardware Development Kit (HDK) design flow, which empowers FPGA developers to create accelerator designs from scratch, using HDL source code and IPs. <br><br>The AMD Vivado tool synthesizes, implements, and generates the Design Check Point (DCP) file used in F2 AFI creation. AWS FPGA developers benefit from the suite of scripts supplied in the HDK that help to automate different design steps. This allows for flexibility in architecting, implementing, and optimizing accelerator designs while using the HDK.| Verilog/SystemVerilog/VHDL | User-implemented DMA engine or Streaming Data Engine (SDE) | Simulation, Virtual JTAG | Hardware developers with advanced FPGA experience |
4747
| Hardware accelerator development using Vitis | This environment supports the Vitis design flow, which enables software developers to write C++ code, which may then be compiled into RTL and used in cycle-accurate hardware simulation. After it may then be built into an accelerator design. This step is not necessary, but is encouraged. Vitis may also be used to implement accelerator designs from scratch, using HDL and IPs directly, similar to Vivado. Vitis offers additional analysis tools to aid in the refinement of designs. | Verilog/System Verilog/VHDL | XDMA Engine (coming soon) | Hardware Emulation | Advanced software developers or hardware developers with intermediate to advanced FPGA experience |
48+
| Hardware accelerator development using Vivado IP Integrator (IPI) and High Level Design (HLx) | This environment supports the Vivado high-level design flow using IP integrator in the GUI. | Block Design in IP Integrator | AWS IP for HLx | Simulation, Virtual JTAG | Hardware developers with intermediate FPGA experience |
4849

49-
On-premise environment: Customers can set up a on-premise development environment. See the [supported AMD tool versions here.](#hardware-development-kit-hdk) Refer to this guide [here](./hdk/docs/on_premise_licensing_help.md) for licensing requirements.
50+
On-premise environment: Customers can set up a [on-premise development (with licensing requirements listed)](./hdk/docs/on_premise_licensing_help.md) environment for [supported AMD tool versions.](#hardware-development-kit-hdk).
5051

5152
### Quick Start Links
5253

@@ -116,12 +117,48 @@ On-premise environment: Customers can set up a on-premise development environmen
116117
<td style="text-align: center"><a href="https://github.com/Xilinx/Vitis_Accel_Examples/blob/main/hello_world/src/vadd.cpp">Design Source</a></td>
117118
</tr>
118119
<tr>
119-
<td style="text-align: center"><a href="https://github.com/Xilinx/Vitis_Accel_Examples/blob/main/hello_world/src/host.cpp#L92">Testbench</a></td>
120+
<td style="text-align: center"><a href="https://github.com/Xilinx/Vitis_Accel_Examples/blob/main/hello_world/src/host.cpp">Testbench</a></td>
120121
</tr>
121122
<tr>
122123
<td style="text-align: center"><a href="https://github.com/Xilinx/Vitis_Accel_Examples/blob/main/hello_world/src/host.cpp">Runtime Software</a></td>
123124
</tr>
124-
125+
<tr>
126+
<td style="text-align: center" rowspan="9">HLx</td>
127+
<td style="text-align: center" rowspan="3"><a href="https://github.com/aws/aws-fpga/tree/f2/hdk/cl/examples/hello_world_hlx">hello_world_hlx</a></td>
128+
<td style="text-align: center" rowspan="3">Demonstrates simple register peek and poke using GPIO and VLED</td>
129+
<td style="text-align: center" rowspan="3"><a href="./hdk/docs/IPI-GUI-Vivado-Setup.md">Vivado IPI Setup Guide</a></td>
130+
<td style="text-align: center"><a href="./hdk/cl/examples/hello_world_hlx/README.md">Design Spec</a></td>
131+
</tr>
132+
<tr>
133+
<td style="text-align: center"><a href="https://github.com/aws/aws-fpga-resources/tree/Hlx_1.0-hdk/common/shell_stable/hlx/hlx_examples/build/IPI/hello_world/verif">Testbench</a></td>
134+
</tr>
135+
<tr>
136+
<td style="text-align: center"><a href="https://github.com/aws/aws-fpga-resources/tree/Hlx_1.0-hdk/common/shell_stable/hlx/hlx_examples/build/IPI/hello_world/software">Runtime Software</a></td>
137+
</tr>
138+
<tr>
139+
<td style="text-align: center" rowspan="3"><a href="https://github.com/aws/aws-fpga/tree/f2/hdk/cl/examples/hello_world_mb_hlx">hello_world_mb_hlx</a></td>
140+
<td style="text-align: center" rowspan="3">Demonstrates integrating MicroBlaze soft processor in HLx design</td>
141+
<td style="text-align: center" rowspan="3"></td>
142+
<td style="text-align: center"><a href="./hdk/cl/examples/hello_world_mb_hlx/README.md">Design Spec</a></td>
143+
</tr>
144+
<tr>
145+
<td style="text-align: center"><a href="https://github.com/aws/aws-fpga-resources/tree/Hlx_1.0-hdk/common/shell_stable/hlx/hlx_examples/build/IPI/hello_world_mb/verif">Testbench</a></td>
146+
</tr>
147+
<tr>
148+
<td style="text-align: center"><a href="https://github.com/aws/aws-fpga-resources/tree/Hlx_1.0-hdk/common/shell_stable/hlx/hlx_examples/build/IPI/hello_world_mb/software">Runtime Software</a></td>
149+
</tr>
150+
<tr>
151+
<td style="text-align: center" rowspan="3"><a href="https://github.com/aws/aws-fpga/tree/f2/hdk/cl/examples/cl_ipi_cdma_test_hlx">cl_ipi_cdma_test_hlx</a></td>
152+
<td style="text-align: center" rowspan="3">Demonstrates direct memory access to the DDR and HBM in AWS IP</td>
153+
<td style="text-align: center" rowspan="3"></td>
154+
<td style="text-align: center"><a href="./hdk/cl/examples/cl_ipi_cdma_test_hlx/README.md">Design Spec</a></td>
155+
</tr>
156+
<tr>
157+
<td style="text-align: center"><a href="https://github.com/aws/aws-fpga-resources/tree/Hlx_1.0-hdk/common/shell_stable/hlx/hlx_examples/build/IPI/cl_ipi_cdma_test/verif">Testbench</a></td>
158+
</tr>
159+
<tr>
160+
<td style="text-align: center"><a href="https://github.com/aws/aws-fpga-resources/tree/Hlx_1.0-hdk/common/shell_stable/hlx/hlx_examples/build/IPI/cl_ipi_cdma_test/software">Runtime Software</a></td>
161+
</tr>
125162
</table>
126163

127164
### AWS Shells
@@ -178,8 +215,9 @@ To get started, please see the [README for a hello world accelerator example](./
178215

179216
A free-to-use FPGA developer AMI is available for on-cloud F2 development with AMD tools pre-installed on a variety of AWS EC2 instance types. Customers can use this AMI to design, simulate, and build their designs. The table below lists the FPGA Developer AMI(s) currently released to customers:
180217

181-
| FPGA Developer AMI Version | FPGA Developer AMI ID | Vivado/Vitis Version Supported | Operating System Version |
182-
|----------------------------|-----------------------|--------------------------------|-----------------------------|
218+
| FPGA Developer AMI Version | FPGA Developer AMI ID (us-east-1) | Vivado/Vitis Version Supported | Operating System Version |
219+
|----------------------------|-----------------------------------|--------------------------------|-----------------------------|
220+
| 1.18.0 | [ami-04b57de2833b499b1](http://aws.amazon.com/marketplace/pp/prodview-7mukkbz7l2uvu) | 2025.1 | Rocky Linux 8.10 (4.18.0-553.36.1.el8_10.x86_64)|
183221
| 1.18.0 | [ami-098b2ed4c92602975](http://aws.amazon.com/marketplace/pp/prodview-tcl7sjgreh6bq) | 2025.1 | Ubuntu 24.04 (kernel 6.8.0-1021-aws)|
184222
| 1.16.1 | [ami-092fc5deb8f3c0f7d](https://aws.amazon.com/marketplace/pp/prodview-f5kjsenkfkz5u) | 2024.1 | Ubuntu 20.04.6 (kernel 5.15)|
185223

@@ -193,13 +231,15 @@ If you have never used AWS before, we recommend you start with [AWS getting star
193231

194232
## Next Steps
195233

196-
Before you create your own AWS FPGA design, we recommend that you go through the [step-by-step quickstart guide for customer hardware development](./hdk/README.md).
234+
Once developers are familiar with the F2 development kit and the HDK development environment, we recommend exploring all the design features and examples offered in the AWS EC2 FPGA Development Kit:
235+
236+
1. **Get Started**: Follow the [step-by-step quickstart guide for customer hardware development](./hdk/README.md) before creating your own AWS FPGA design
237+
2. **Learn by Example**: Explore [CL examples](./hdk/README.md#cl-examples) to understand shell-to-CL connectivity, memory interfaces (DDR & HBM), and the [CL clock generation block](./hdk/docs/AWS_CLK_GEN_spec.md)
238+
239+
- [Run RTL simulations](./hdk/docs/RTL_Simulation_Guide_for_HDK_Design_Flow.md) for design verification of existing CL examples.
240+
- Review the [AWS F2 Shell-CL interfaces](./hdk/docs/AWS_Shell_Interface_Specification.md), e.g. [the HBM monitor interface](./hdk/docs/AWS_Shell_Interface_Specification.md#hbm-monitor-interface)
197241

198-
Once developers are familiar with the F2 development kit and the HDK development environment, we recommend exploring the following contents to master all the design features and examples offered in the AWS EC2 FPGA Development Kit:
242+
3. **Create Your Design**: Use the [CL_TEMPLATE](./hdk/cl/examples/CL_TEMPLATE/README.md) example as a starting point
199243

200-
- [Run RTL simulations](./hdk/docs/RTL_Simulation_Guide_for_HDK_Design_Flow.md) provided in CL examples to learn the design verification setup in the HDK development environment.
201-
- Familiarize with the [AWS F2 Shell-CL interfaces](./hdk/docs/AWS_Shell_Interface_Specification.md), e.g. [the HBM monitor interface](./hdk/docs/AWS_Shell_Interface_Specification.md/#hbm-monitor-interface)
202-
- Familiarize with the [shell floorplan](./hdk/docs/shell_floorplan.md) and locations of major shell interfaces.
203-
- Deep dive into [CL examples](./hdk/README.md#cl-examples) to explore shell-to-CL connectivity, CL resources e.g. DDR and HBM, and features e.g. [CL clock generation block](./hdk/docs/AWS_CLK_GEN_spec.md).
204-
- Create a custom CL design using the [CL_TEMPLATE](./hdk/cl/examples/CL_TEMPLATE/README.md) example.
205-
- Connect to a custom CL design in FPGA through [Virtual JTAG](./hdk/docs/Virtual_JTAG_XVC.md) to run hardware debug.
244+
- Review the [shell floorplan](./hdk/docs/shell_floorplan.md) and locations of major shell interfaces.
245+
- Connect to debug cores within a custom FPGA CL design through the [Virtual JTAG](./hdk/docs/Virtual_JTAG_XVC.md) interface to debug hardware issues.

developer_resources/Amazon_DCV_Setup_Guide.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ graphical user interface (GUI) to visualize FPGA development in the cloud.
3232
### Prerequisites
3333

3434
1. [Instance and IAM Configuration for DCV Licensing](https://docs.aws.amazon.com/dcv/latest/adminguide/setting-up-license.html#dcv-lic-req)
35-
2. [Depenency Installation](https://docs.aws.amazon.com/dcv/latest/adminguide/setting-up-installing-linux-prereq.html#linux-prereq-gui)
35+
2. [Dependency Installation](https://docs.aws.amazon.com/dcv/latest/adminguide/setting-up-installing-linux-prereq.html#linux-prereq-gui)
3636
- :warning: DO NOT PERFORM STEP 3! Upgrading may impact the stability of development kit software!
3737
3. [Protocol Setup](https://docs.aws.amazon.com/dcv/latest/adminguide/setting-up-installing-linux-prereq.html#linux-prereq-wayland)
3838
4. [Driver Installation and Setting Virtual Display Resolution](https://docs.aws.amazon.com/dcv/latest/adminguide/setting-up-installing-linux-prereq.html#linux-prereq-nongpu)

docs-rtd/Makefile

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,16 @@ doctest:
154154
"results in $(BUILDDIR)/doctest/output.txt."
155155

156156
spelling:
157-
$(SPHINXBUILD) -b spelling source/ build/
157+
$(SPHINXBUILD) -b spelling source/ build/ && \
158+
echo "Spelling check complete" >&2 && \
159+
if [ -n "$$(find build -name "*.spelling" 2>/dev/null)" ]; then \
160+
find build -name "*.spelling" -exec cat {} \; | \
161+
sed 's/^\(.*\.rst\):\([0-9]*\): (\([^)]*\)).*/- \3 (in \1, line \2)/' | \
162+
sort | uniq >&2 && \
163+
echo "Spelling errors found. Total misspelled words: $$(find build -name "*.spelling" -exec cat {} \; | wc -l)" >&2; \
164+
else \
165+
echo "No spelling errors found." >&2; \
166+
fi
158167

159168
links:
160169
make clean && make html && python3 ../shared/bin/check_doc_links.py

0 commit comments

Comments
 (0)