Skip to content

Commit

Permalink
Release v1.4.18 (#514)
Browse files Browse the repository at this point in the history
* Fixed the broken links pointing to the AXI interface specifications

* Enable Xilinx 2020.2 tools

* Updated FAQ on how to request an AFI limit increase
  • Loading branch information
deeppat authored Mar 18, 2021
1 parent aeda393 commit 4750aac
Show file tree
Hide file tree
Showing 39 changed files with 172 additions and 76 deletions.
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,6 @@
[submodule "Vitis/examples/xilinx_2020.1"]
path = Vitis/examples/xilinx_2020.1
url = https://github.com/Xilinx/Vitis_Accel_Examples
[submodule "Vitis/examples/xilinx_2020.2"]
path = Vitis/examples/xilinx_2020.2
url = https://github.com/Xilinx/Vitis_Accel_Examples
10 changes: 9 additions & 1 deletion FAQs.md
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,15 @@ Every FPGA deployed in AWS cloud includes an AWS Shell, and the developer Custom

It is the compiled FPGA code that is loaded into an FPGA in AWS for performing the Custom Logic (CL) function created by the developer. AFIs are maintained by AWS according and associated with the AWS account that created them. The AFI includes the CL and AWS FPGA Shell. An AFI ID is used to reference a particular AFI from an F1 instance.

The developer can create multiple AFIs at no extra cost, up to a defined limited (typically 100 AFIs per region per AWS account). An AFI can be loaded into as many FPGAs as needed.
The developer can create multiple AFIs at no extra cost, up to a defined limited (typically 500 AFIs per region per AWS account). An AFI can be loaded into as many FPGAs as needed.

**Q: How do I increase my AFI limit?**

You can increase your AFI limit by creating an [AWS Support Case](https://console.aws.amazon.com/support/home#/case/create).
1. Select the `Service Limit Increase` tab
2. In the `Limit Type`, select `EC2 FPGA`
3. Select the region(s) where you want your limit to be increased
4. Add justification for the limit increase.


**Q: What regions are supported?**
Expand Down
21 changes: 18 additions & 3 deletions Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -126,9 +126,9 @@ task_label = [
]

// Put the latest version last
def xilinx_versions = [ '2019.1', '2019.2', '2020.1' ]
def xilinx_versions = [ '2019.1', '2019.2', '2020.1' , '2020.2' ]

def vitis_versions = ['2019.2', '2020.1']
def vitis_versions = ['2019.2', '2020.1' , '2020.2' ]

// We want the default to be the latest.
def default_xilinx_version = xilinx_versions.last()
Expand All @@ -139,7 +139,8 @@ def dsa_map = [

def xsa_map = [
'2019.2' : [ 'DYNAMIC':'dyn'],
'2020.1' : [ 'DYNAMIC':'dyn']
'2020.1' : [ 'DYNAMIC':'dyn'],
'2020.2' : [ 'DYNAMIC':'dyn']
]

def sdaccel_example_default_map = [
Expand All @@ -165,6 +166,14 @@ def vitis_example_default_map = [
'RTL_Vadd_Debug': 'Vitis/examples/xilinx/rtl_kernels/rtl_vadd_hw_debug',
'gemm_blas': 'Vitis/examples/xilinx/library_examples/gemm',
'gzip_app': 'Vitis/examples/xilinx/library_examples/gzip_app'
],
'2020.2' : [
'Hello_World_1ddr': 'Vitis/examples/xilinx/ocl_kernels/cl_helloworld',
'Gmem_2Banks_2ddr': 'Vitis/examples/xilinx/ocl_kernels/cl_gmem_2banks',
'Kernel_Global_Bw_4ddr': 'Vitis/examples/xilinx/cpp_kernels/kernel_global_bandwidth',
'RTL_Vadd_Debug': 'Vitis/examples/xilinx/rtl_kernels/rtl_vadd_hw_debug',
'gemm_blas': 'Vitis/examples/xilinx/library_examples/gemm',
'gzip_app': 'Vitis/examples/xilinx/library_examples/gzip_app'
]
]

Expand All @@ -186,6 +195,12 @@ def simulator_tool_default_map = [
'vcs': 'synopsys/vcs-mx/P-2019.06-SP1-1',
'questa': 'questa/2019.4',
'ies': 'incisive/15.20.079'
],
'2020.2' : [
'vivado': 'xilinx/Vivado/2020.2',
'vcs': 'synopsys/vcs-mx/Q-2020.03',
'questa': 'questa/2020.2',
'ies': 'incisive/15.20.083'
]
]

Expand Down
10 changes: 8 additions & 2 deletions Jenkinsfile_int_sims
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ task_label = [
]

// Put the latest version last
def xilinx_versions = [ '2019.2' ]
def xilinx_versions = [ '2020.2' ]

// We want the default to be the latest.
def default_xilinx_version = xilinx_versions.last()
Expand All @@ -53,6 +53,12 @@ def simulator_tool_default_map = [
'vcs': 'synopsys/vcs-mx/P-2019.06-SP1-1',
'questa': 'questa/2019.4',
'ies': 'incisive/15.20.079'
],
'2020.2' : [
'vivado': 'xilinx/Vivado/2020.2',
'vcs': 'synopsys/vcs/Q-2020.03',
'questa': 'questa/2019.4_3',
'ies': 'incisive/15.20.083'
]
]

Expand Down Expand Up @@ -177,7 +183,7 @@ if (test_sims) {
module purge
module load python/3.7.2
module load python/2.7.14
module load batch
module load slurm
module load ${vivado_module}
module load ${vcs_module}
module load ${questa_module}
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ AWS marketplace offers multiple versions of the FPGA Developer AMI. The followin

| Developer Kit Version | Tool Version Supported | Compatible FPGA Developer AMI Version |
|-----------|-----------|------|
| 1.4.18+ | 2020.2 | v1.10.X (Xilinx Vivado/Vitis 2020.2) |
| 1.4.16+ | 2020.1 | v1.9.0-v1.9.X (Xilinx Vivado/Vitis 2020.1) |
| 1.4.13+ | 2019.2 | v1.8.0-v1.8.X (Xilinx Vivado/Vitis 2019.2) |
| 1.4.11+ | 2019.1 | v1.7.0-v1.7.X (Xilinx Vivado/SDx 2019.1) |
Expand Down
3 changes: 3 additions & 0 deletions RELEASE_NOTES.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
# AWS EC2 FPGA HDK+SDK Release Notes

## Release 1.4.18 (See [ERRATA](./ERRATA.md) for unsupported features)
* FPGA developer kit now supports Xilinx Vivado/Vitis 2020.2

## Release 1.4.17 (See [ERRATA](./ERRATA.md) for unsupported features)
* Updated XDMA Driver to allow builds on newer kernels
* Updated documentation on Alveo U200 to F1 platform porting
Expand Down
5 changes: 3 additions & 2 deletions Vitis/docs/Create_Runtime_AMI.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,9 @@

| Vitis Version used for AFI Development | Compatible Xilinx Runtime |
|--------------------------------------|-----------------------------|
| 2020.1 | AWS FPGA Developer AMI 1.9.0 (XRT is pre-installed) or [XRT](https://xilinx.github.io/XRT/2020.1/html/build.html) |
| 2019.2 | AWS FPGA Developer AMI 1.8.0 (XRT is pre-installed) or [XRT](https://xilinx.github.io/XRT/2019.2/html/build.html) |
| 2020.2 | AWS FPGA Developer AMI 1.10.x (XRT is pre-installed) or [XRT](https://xilinx.github.io/XRT/2020.2/html/build.html) |
| 2020.1 | AWS FPGA Developer AMI 1.9.x (XRT is pre-installed) or [XRT](https://xilinx.github.io/XRT/2020.1/html/build.html) |
| 2019.2 | AWS FPGA Developer AMI 1.8.x (XRT is pre-installed) or [XRT](https://xilinx.github.io/XRT/2019.2/html/build.html) |

## 1. Launch a Runtime Instance & Install Required Packages

Expand Down
5 changes: 3 additions & 2 deletions Vitis/docs/XRT_installation_instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,9 @@
* We provide pre-built RPM's for Centos/RHEL/AL2 and instructions for building XRT
* Use the below table as reference to install and use the correct XRT version for your applications.

| Xilinx Vitis Tool Version | XRT Release Tag | SHA | `xrt`|`xrt-aws` RPM's (Centos/RHEL) |`xrt`|`xrt-aws` RPM's (AL2)
|---|---|---|---|
| Xilinx Vitis Tool Version | XRT Release Tag | SHA | `xrt` or `xrt-aws` RPM's (Centos/RHEL) |`xrt` or`xrt-aws` RPM's (AL2) |
|---|---|---|---|---|
|2020.2| [202020.2.8.743](https://github.com/Xilinx/XRT/releases/tag/202020.2.8.743) | 77d5484b5c4daa691a7f78235053fb036829b1e9 | [xrt_202020.2.8.0_7.9.2009-x86_64-xrt.rpm](https://aws-fpga-developer-ami.s3.amazonaws.com/1.10.0/Patches/XRT_2020_2/xrt_202020.2.8.0_7.9.2009-x86_64-xrt.rpm) [xrt_202020.2.8.0_7.9.2009-x86_64-aws.rpm](https://aws-fpga-developer-ami.s3.amazonaws.com/1.10.0/Patches/XRT_2020_2/xrt_202020.2.8.0_7.9.2009-x86_64-aws.rpm) | [xrt_202020.2.8.0_2-x86_64-xrt.rpm](https://aws-fpga-developer-ami.s3.amazonaws.com/1.10.0/Patches/XRT_2020_2/xrt_202020.2.8.0_2-x86_64-xrt.rpm) [xrt_202020.2.8.0_2-x86_64-aws.rpm](https://aws-fpga-developer-ami.s3.amazonaws.com/1.10.0/Patches/XRT_2020_2/xrt_202020.2.8.0_2-x86_64-aws.rpm)|
|2020.1| [202010.2.6.AWS](https://github.com/Xilinx/XRT/releases/tag/202010.2.6.AWS) | d09c4a458c16e8d843b3165dcf929c38f7a32b6f | [xrt_202010.2.6.0_7.7.1908-x86_64-xrt.rpm](https://aws-fpga-developer-ami.s3.amazonaws.com/1.9.0/Patches/XRT_2020_1/xrt_202010.2.6.0_7.7.1908-x86_64-xrt.rpm) [xrt_202010.2.6.0_7.7.1908-x86_64-aws.rpm](https://aws-fpga-developer-ami.s3.amazonaws.com/1.9.0/Patches/XRT_2020_1/xrt_202010.2.6.0_7.7.1908-x86_64-aws.rpm) | [xrt_202010.2.6.0_2-x86_64-xrt.rpm](https://aws-fpga-developer-ami.s3.amazonaws.com/1.9.0/Patches/XRT_2020_1/xrt_202010.2.6.0_2-x86_64-xrt.rpm) [xrt_202010.2.6.0_2-x86_64-aws.rpm](https://aws-fpga-developer-ami.s3.amazonaws.com/1.9.0/Patches/XRT_2020_1/xrt_202010.2.6.0_2-x86_64-aws.rpm)|
|2019.2| [2019.2.0.3](https://github.com/Xilinx/XRT/releases/tag/2019.2.0.3) | 9e13d57c4563e2c19bf5f518993f6e5a8dadc18a | [xrt_201920.2.3.0_7.7.1908-xrt.rpm](https://aws-fpga-developer-ami.s3.amazonaws.com/1.8.0/Patches/XRT_2019_2/xrt_201920.2.3.0_7.7.1908-xrt.rpm) [xrt_201920.2.3.0_7.7.1908-aws.rpm](https://aws-fpga-developer-ami.s3.amazonaws.com/1.8.0/Patches/XRT_2019_2/xrt_201920.2.3.0_7.7.1908-aws.rpm) | N/A |

Expand Down
1 change: 1 addition & 0 deletions Vitis/examples/xilinx_2020.2
Submodule xilinx_2020.2 added at f72dff
8 changes: 7 additions & 1 deletion Vitis/tools/create_vitis_afi.sh
Original file line number Diff line number Diff line change
Expand Up @@ -279,4 +279,10 @@ echo ${timestamp}_agfi_id.txt

#STEP 6
#Create .awsxclbin
/opt/xilinx/xrt/bin/xclbinutil -i $xclbin --remove-section PARTITION_METADATA --remove-section SYSTEM_METADATA --replace-section BITSTREAM:RAW:${timestamp}_agfi_id.txt -o ${awsxclbin}.awsxclbin

if [ "$RELEASE_VER" == "2020.2" ]
then
/opt/xilinx/xrt/bin/xclbinutil -i $xclbin --remove-section PARTITION_METADATA --replace-section BITSTREAM:RAW:${timestamp}_agfi_id.txt -o ${awsxclbin}.awsxclbin
else
/opt/xilinx/xrt/bin/xclbinutil -i $xclbin --remove-section PARTITION_METADATA --remove-section SYSTEM_METADATA --replace-section BITSTREAM:RAW:${timestamp}_agfi_id.txt -o ${awsxclbin}.awsxclbin
fi
2 changes: 1 addition & 1 deletion Vitis/vitis_xrt_version.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
2019.2:9e13d57c4563e2c19bf5f518993f6e5a8dadc18a
2020.1:12115fd4054cb46a5ade62fafa74c523f59116e6
2020.1:d09c4a458c16e8d843b3165dcf929c38f7a32b6f

2020.2:77d5484b5c4daa691a7f78235053fb036829b1e9
7 changes: 6 additions & 1 deletion docs/on_premise_licensing_help.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,19 @@
**NOTE: If you are developing on the AWS cloud and using AWS FPGA Developer AMI provided on AWS Marketplace, you can skip this document.**

This document helps developers who choose to develop on-premises with specifying and licensing AWS-compatible Xilinx tools for use with the AWS FPGA HDK.
## Requirements for AWS HDK 1.4.18+ (2020.2)
* Xilinx Vivado or Vitis v2020.2
* License: EF-VIVADO-SDX-VU9P-OP
* URL: https://www.xilinx.com/member/forms/download/xef.html?filename=Xilinx_Unified_2020.2_1118_1232.tar.gz
* MD5 SUM Value: 523e8596f114ab5e389c14df50ecb1d8

## Requirements for AWS HDK 1.4.16+ (2020.1)
* Xilinx Vivado or Vitis v2020.1
* License: EF-VIVADO-SDX-VU9P-OP
* URL: https://www.xilinx.com/member/forms/download/xef.html?filename=Xilinx_Unified_2020.1_0602_1208.tar.gz
* MD5 SUM Value: b018f7b331ab0446137756156ff944d9

## Requirements for AWS HDK 1.4.13+ (2019.2)
## Requirements for AWS HDK 1.4.13+ (2019.2)
* Xilinx Vivado or Vitis v2019.2
* License: EF-VIVADO-SDX-VU9P-OP
* URL: https://www.xilinx.com/member/forms/download/xef-vitis.html?filename=Xilinx_Vitis_2019.2_1106_2127.tar.gz
Expand Down
2 changes: 2 additions & 0 deletions hdk/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,8 @@ For more details on the examples, see the [examples table](./cl/examples/cl_exam
| 1.4.11-1.4.x | 2019.1 | v1.7.0 (Xilinx Vivado 2019.1) |
| 1.4.11-1.4.x | 2019.2 | v1.8.x (Xilinx Vivado 2019.2) |
| 1.4.16-1.4.x | 2020.1 | v1.9.x (Xilinx Vivado 2020.1) |
| 1.4.18-1.4.x | 2020.2 | v1.10.x (Xilinx Vivado 2020.2) |


* The FPGA Developer Kit version is listed in [hdk_version.txt](./hdk_version.txt)

Expand Down
15 changes: 8 additions & 7 deletions hdk/cl/examples/cl_dram_dma/build/scripts/create_dcp_from_cl.tcl
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ package require tar
set TOP top_sp

## Replace with the name of your module
set CL_MODULE cl_dram_dma
set CL_MODULE cl_dram_dma

#################################################
## Command-line Arguments
Expand All @@ -39,7 +39,7 @@ set uram_option [lindex $argv 11]
set notify_via_sns [lindex $argv 12]
set VDEFINES [lindex $argv 13]
##################################################
## Flow control variables
## Flow control variables
##################################################
set cl.synth 1
set implement 1
Expand Down Expand Up @@ -147,6 +147,9 @@ set_msg_config -id {DRC CKLD-2} -suppress
set_msg_config -id {DRC REQP-1853} -suppress
set_msg_config -id {Timing 38-436} -suppress

set_msg_config -severity "CRITICAL WARNING" -string "WRAPPER_INST/SH" -suppress
set_msg_config -severity "WARNING" -string "WRAPPER_INST/SH" -suppress

# Check that an email address has been set, else unset notify_via_sns

if {[string compare $notify_via_sns "1"] == 0} {
Expand All @@ -159,7 +162,7 @@ if {[string compare $notify_via_sns "1"] == 0} {
}

##################################################
### Strategy options
### Strategy options
##################################################
switch $strategy {
"BASIC" {
Expand Down Expand Up @@ -200,7 +203,7 @@ source $HDK_SHELL_DIR/build/scripts/device_type.tcl
source $HDK_SHELL_DIR/build/scripts/step_user.tcl -notrace

########################################
## Generate clocks based on Recipe
## Generate clocks based on Recipe
########################################

puts "AWS FPGA: ([clock format [clock seconds] -format %T]) Calling aws_gen_clk_constraints.tcl to generate clock constraints from developer's specified recipe.";
Expand Down Expand Up @@ -254,7 +257,7 @@ if {$implement} {
# Apply Clock Properties for Clock Table Recipes
##################################################
puts "AWS FPGA: ([clock format [clock seconds] -format %T]) - Sourcing aws_clock_properties.tcl to apply properties to clocks. ";

# Apply properties to clocks
source $HDK_SHELL_DIR/build/scripts/aws_clock_properties.tcl

Expand Down Expand Up @@ -385,5 +388,3 @@ if {[string compare $notify_via_sns "1"] == 0} {
}

puts "AWS FPGA: ([clock format [clock seconds] -format %T]) - Build complete.";


Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,10 @@ if {[string compare $notify_via_sns "1"] == 0} {
}
}

# suppress warnings coming from Shell
set_msg_config -severity "CRITICAL WARNING" -string "WRAPPER_INST/SH" -suppress
set_msg_config -severity "WARNING" -string "WRAPPER_INST/SH" -suppress

#################################################
## Create BD (Block Design) of example Hello World design
#################################################
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ set uram_option [lindex $argv 11]
set notify_via_sns [lindex $argv 12]
set VDEFINES [lindex $argv 13]
##################################################
## Flow control variables
## Flow control variables
##################################################
set cl.synth 1
set implement 1
Expand Down Expand Up @@ -134,6 +134,9 @@ set_msg_config -id {Synth 8-3848} -suppress
set_msg_config -id {Synth 8-3917} -suppress
set_msg_config -id {Opt 31-430} -suppress

set_msg_config -severity "CRITICAL WARNING" -string "WRAPPER_INST/SH" -suppress
set_msg_config -severity "WARNING" -string "WRAPPER_INST/SH" -suppress

puts "AWS FPGA: ([clock format [clock seconds] -format %T]) Calling the encrypt.tcl.";

# Check that an email address has been set, else unset notify_via_sns
Expand All @@ -148,7 +151,7 @@ if {[string compare $notify_via_sns "1"] == 0} {
}

##################################################
### Strategy options
### Strategy options
##################################################
switch $strategy {
"BASIC" {
Expand Down Expand Up @@ -187,14 +190,14 @@ source $HDK_SHELL_DIR/build/scripts/device_type.tcl
source $HDK_SHELL_DIR/build/scripts/step_user.tcl -notrace

########################################
## Generate clocks based on Recipe
## Generate clocks based on Recipe
########################################

puts "AWS FPGA: ([clock format [clock seconds] -format %T]) Calling aws_gen_clk_constraints.tcl to generate clock constraints from developer's specified recipe.";

source $HDK_SHELL_DIR/build/scripts/aws_gen_clk_constraints.tcl
#################################################################
#### Do not remove this setting. Need to workaround bug
#### Do not remove this setting. Need to workaround bug
##################################################################
set_param hd.clockRoutingWireReduction false
##################################################
Expand Down Expand Up @@ -236,7 +239,7 @@ if {$implement} {
# Apply Clock Properties for Clock Table Recipes
##################################################
puts "AWS FPGA: ([clock format [clock seconds] -format %T]) - Sourcing aws_clock_properties.tcl to apply properties to clocks. ";

# Apply properties to clocks
source $HDK_SHELL_DIR/build/scripts/aws_clock_properties.tcl

Expand Down Expand Up @@ -365,5 +368,3 @@ if {[string compare $notify_via_sns "1"] == 0} {
}

puts "AWS FPGA: ([clock format [clock seconds] -format %T]) - Build complete.";


Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ set VDEFINES $VDEFINES
create_project -in_memory -part [DEVICE_TYPE] -force

########################################
## Generate clocks based on Recipe
## Generate clocks based on Recipe
########################################

puts "AWS FPGA: ([clock format [clock seconds] -format %T]) Calling aws_gen_clk_constraints.tcl to generate clock constraints from developer's specified recipe.";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,10 @@ if {[string compare $notify_via_sns "1"] == 0} {
}
}

# suppress warnings coming from Shell
set_msg_config -severity "CRITICAL WARNING" -string "WRAPPER_INST/SH" -suppress
set_msg_config -severity "WARNING" -string "WRAPPER_INST/SH" -suppress

#################################################
## Create BD (Block Design) of example Hello World design
#################################################
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,10 @@ if {[string compare $notify_via_sns "1"] == 0} {
}
}

# suppress warnings coming from Shell
set_msg_config -severity "CRITICAL WARNING" -string "WRAPPER_INST/SH" -suppress
set_msg_config -severity "WARNING" -string "WRAPPER_INST/SH" -suppress

#################################################
## Create BD (Block Design) of example Hello World design
#################################################
Expand Down
Loading

0 comments on commit 4750aac

Please sign in to comment.