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
* Add Vitis Debug document (#601)
* Create Debug_OpenCL_Kernel.md
* Update and rename Debug_OpenCL_Kernel.md to Debug_Vitis_Kernel.md
* Updated the shell interface spec to reflect current shell (#603)
* Updated the shell interface spec to reflect current shell and pointed to the DDR Data Retention doc
* Update hdk/docs/AWS_Shell_Interface_Specification.md
* Enhance DDR Model Build qualifiers in hdk_setup.sh script. (#604)
* Enhance DDR Model Build qualifiers in hdk_setup.sh script.
* Enhance the DDR model build's lock file creation+check to not rely on external tools.
* Update Virtual_JTAG_XVC.md (#606)
* AR73068 patching (#608)
* Added patching mechanism for Vivado AR73068
* Updated supported versions
* Added dma range error to interrupt status register metrics (#591)
* added dma range error to interrupt status register metrics
* updated tests to match change to output
* Fixing test_fpga_tools to accomodate dma range error addition. (#609)
* Fixed the lines where we expect ` clock group c `
Copy file name to clipboardExpand all lines: ERRATA.md
+16-5
Original file line number
Diff line number
Diff line change
@@ -9,14 +9,25 @@
9
9
* DRAM Data retention is not supported for CL designs with less than 4 DDRs enabled
10
10
* Combinatorial loops in CL designs are not supported.
11
11
* Connecting one of the clocks provided from the shell (clk_main_a0, clk_extra_a1, etc...) directly to a BUFG in the CL is not supported by the Xilinx tools and may result in a non-functional clock. To workaround this limitation, it is recommended to use an MMCM to feed the BUFG (clk_from_shell -> MMCM -> BUFG). Please refer to [Xilinx AR# 73360](https://www.xilinx.com/support/answers/73360.html) for further details.
12
+
13
+
### Xilinx Design Advisory for UltraScale/UltraScale+ DDR4/DDR3 IP - Memory IP Timing Exceptions (AR# 73068)
14
+
AWS EC2 F1 customers using the DDR4 IP in customer logic (HDK or SDAccel/Vitis designs) may be impacted by a recent design advisory from Xilinx.
15
+
16
+
AWS customers may experience hardware failures including: post calibration data errors and DQS gate tracking issues. The error condition is build dependent and errors would need to be detected on the first write/read access after a successful calibration to prevent further data corruption.
17
+
18
+
To detect if your build is impacted by this bug, AWS recommends all EC2 F1 customers utilizing the DDR4 IP in their designs should run a TCL script on the design checkpoint point (DCP) to check to determine if the design is susceptible to this issue. If the check passes, your design is safe to use as the hardware will function properly.
19
+
If the check fails, the design is susceptible to the issue and will need to be regenerated using the same tool version with the AR 73068 patch.
20
+
For designs under development, we recommend applying the patch to your on-premises tools or update to developer kit v1.4.15.
21
+
For additional details, please refer to the [Xilinx Answer Record #73068](https://www.xilinx.com/support/answers/73068.html)
22
+
12
23
### 2019.1
13
24
* Vivado `compile_simlib` command fails to generate the following verilog IP libraries for the following simulators.
25
+
* Please refer to the Xilinx Answer record for details.
14
26
15
-
| Library(verilog) | Simulator |
16
-
|---|---|
17
-
|`sync_ip`| Cadence IES |
18
-
|`hdmi_gt_controller_v1_0_0`| Synopsys VCS |
19
-
* We are working with Xilinx to provide a fix for these.
27
+
| Library(verilog) | Simulator | Xilinx Answer Record |
Copy file name to clipboardExpand all lines: README.md
+6-5
Original file line number
Diff line number
Diff line change
@@ -5,8 +5,8 @@
5
5
1.[Overview of AWS EC2 FPGA Development Kit](#overviewdevkit)
6
6
-[Development environments](#overviewdevenv)
7
7
-[Runtime environments](#overviewrunenv)
8
-
-[Example applications](#overviewexapps)
9
8
-[Development tools](#overviewdevtools)
9
+
-[Example applications](#overviewexapps)
10
10
2.[Getting Started](#gettingstarted)
11
11
3.[FPGA Developer AMI available on AWS Marketplace](#devAmi)
12
12
4.[FPGA Hardware Development Kit (HDK)](#fpgahdk)
@@ -18,7 +18,9 @@
18
18
<aname="overviewdevkit"></a>
19
19
# Overview of AWS EC2 FPGA Development Kit
20
20
21
-
The AWS EC2 FPGA Development Kit is provided by AWS to support development and runtime on [AWS FPGA instances](https://aws.amazon.com/ec2/instance-types/f1/). Amazon EC2 FPGA instances are high-performance compute instances with field programmable gate arrays (FPGAs) that are programmed to create custom hardware accelerations in EC2. F1 instances are easy to program and AWS provides everything needed to develop, simulate, debug, compile and run hardware accelerated applications. Using the [FPGA Developer AMI](https://aws.amazon.com/marketplace/pp/B06VVYBLZZ), developers create an FPGA design. Once the FPGA design (also called CL - Custom logic) is complete, developers create the Amazon FPGA Image (AFI), and easily deploy it to the F1 instance. AFIs are reusable, shareable and can be deployed in a scalable and secure way.
21
+
AWS EC2 FPGA Development Kit is a set of free development and runtime tools that provide everything needed to develop, simulate, debug, compile and run hardware accelerated applications on [Amazon EC2 F1 instances](https://aws.amazon.com/ec2/instance-types/f1/), EC2 F1 instances are high-performance compute instances with field programmable gate arrays (FPGAs) that enable the development and deployment of custom hardware accelerators on AWS cloud.
22
+
23
+
AWS EC2 FPGA Development Kit content is distributed between this github repository and [FPGA Developer AMI](https://aws.amazon.com/marketplace/pp/B06VVYBLZZ) provided by AWS, developers are able to develop, simulate and debug an FPGA design on compute [EC2 instance](https://aws.amazon.com/ec2/) with no cost of development or runtime tools. Once the FPGA design (also called CL - Custom logic) is complete, developers create the Amazon FPGA Image (AFI), and easily deploy it to the F1 instance. AFIs are reusable, shareable and can be deployed in a scalable and secure way.
@@ -78,13 +80,12 @@ The AWS EC2 FPGA Development Kit is provided by AWS to support development and r
78
80
<aname="gettingstarted"></a>
79
81
# Getting Started
80
82
81
-
### New to AWS?
83
+
### Getting familiar with AWS
82
84
If you have never used AWS before, we recommend you start with [AWS getting started training](https://aws.amazon.com/getting-started/), and focus on the basics of the [AWS EC2](https://aws.amazon.com/ec2/) and [AWS S3](https://aws.amazon.com/s3/) services. Understanding the fundamentals of these services will make it easier to work with AWS FPGAs.
83
85
84
86
AWS FPGA generation and EC2 F1 instances are supported in the us-east-1 (N. Virginia), us-west-2 (Oregon), eu-west-1 (Ireland) and us-gov-west-1 ([GovCloud US](https://aws.amazon.com/govcloud-us/)) [regions](https://aws.amazon.com/about-aws/global-infrastructure/).
85
87
86
-
87
-
### New to AWS FPGAs and setting up a development environment?
88
+
### Setting up development environment for the first time
88
89
The developer kit is supported for Linux operating systems only.
89
90
You have the choice to develop on AWS EC2 using the [FPGA Developer AMI](https://aws.amazon.com/marketplace/pp/B06VVYBLZZ) or on-premises. Within a linux environment, you can execute `git clone https://github.com/aws/aws-fpga.git` to download the latest release to your EC2 Instance or local server. Help on cloning from github is available [here](https://help.github.com/articles/which-remote-url-should-i-use/). When using a SSH connection, execute `git clone [email protected]:aws/aws-fpga.git`. [To get help with connecting to Github via SSH](https://help.github.com/articles/connecting-to-github-with-ssh/).
Copy file name to clipboardExpand all lines: SDAccel/examples/3rd_party/README.md
+2-9
Original file line number
Diff line number
Diff line change
@@ -81,7 +81,6 @@ make TARGETS=hw DEVICES=$AWS_PLATFORM all
81
81
82
82
* For more information on running this example on an F1 instance, see [this](../../README.md#runonf1).
83
83
84
-
85
84
## Xilinx and third party Implementation Differences
86
85
#### Host Code
87
86
| third party FPGA | Xilinx |
@@ -104,18 +103,12 @@ make TARGETS=hw DEVICES=$AWS_PLATFORM all
104
103
| declares and initializes an struct object together | declare an struct object and then initialize it separately |
105
104
106
105
## SUPPORT
107
-
For more information check here:
108
-
[SDAccel User Guides][]
106
+
For more information check the [SDAccel User Guides](http://www.xilinx.com/support/documentation-navigation/development-tools/software-development/sdaccel.html?resultsTablePreSelect=documenttype:SeeAll#documentation)
109
107
110
-
For questions and to get help on this project or your own projects, visit the [SDAccel Forums][].
108
+
For questions and to get help on this project or your own projects, visit the [SDAccel Forums](https://forums.xilinx.com/t5/SDAccel/bd-p/SDx)
[SDAccel User Guides]: http://www.xilinx.com/support/documentation-navigation/development-tools/software-development/sdaccel.html?resultsTablePreSelect=documenttype:SeeAll#documentation
Copy file name to clipboardExpand all lines: hdk/docs/AWS_Shell_Interface_Specification.md
+4-12
Original file line number
Diff line number
Diff line change
@@ -222,9 +222,10 @@ These parameters are used to control which DDR controllers are impemented in the
222
222
...
223
223
```
224
224
225
-
### DRAM Content Preservation between AFI Loads (Future)
225
+
### DRAM Content Preservation between AFI Loads
226
226
227
-
In future Shell versions a DRAM content preservation feature will be implemented. This feature allows the DDR state to be preserved when dynamically changing CL logic. The current Shell version will not guarantee preservation of DRAM contents if the CL logic is re-loaded.
227
+
Shell version 1.4 allows the DDR state to be preserved when dynamically changing CL logic. Any AFI generated with a v1.4 shell will enable DRAM content preservation by default.
228
+
Please refer to the [guide on how to use the DRAM data retention mode to preserve the content of DRAM across AFI loads](./data_retention.md) for more details on utilizing this feature.
228
229
229
230
<aname="dma"></a>
230
231
## DMA
@@ -649,12 +650,6 @@ It is ideal to place logic that interfaces to the shell in the same SLR as the S
649
650
For the interfaces that are in both the MID/BOTTOM the recommendation is to use flops for pipelining, but don’t constrain to an SLR. Also it is recommended to not use the SDA interface because it spans two SLR's (use BAR1 or OCL instead). You can constrain logic to a particular SLR by creating PBLOCKs (one per SLR), and assigning logic to the PBLOCKs (refer to cl_dram_dma example [cl_pnr_user.xdc](../cl/examples/cl_dram_dma/build/constraints/cl_pnr_user.xdc)).
650
651
Dataflow should be mapped so that SLR crossing is minimized (for example a pipeline should be organized such that successive stages are mostly in the same SLR).
651
652
652
-
Here’s an example post on the Xilinx forum which points to some documentation related to solving this:
You can report all paths that are greater than a certain number of logic levels. This can be used to iterate on timing in synthesis rather than waiting for place and route. For example at 250MHz a general rule of thumb is try to keep logic levels to around 10. The following commands report on all paths that have more than 10 logic levels:
@@ -692,13 +687,10 @@ You have to be careful that pipeline registers do not infer a shift register com
692
687
693
688
<aname="impl_tips_vivado"></a>
694
689
### Vivado Analysis
695
-
Vivado has some nice analysis capabilities:
690
+
Vivado has the following analysis capabilities:
696
691
* report_methodology (includes CDC report)
697
692
* clock interaction report (see if paths between async clocks are erroneously being timed)
Copy file name to clipboardExpand all lines: hdk/docs/Virtual_JTAG_XVC.md
+26-6
Original file line number
Diff line number
Diff line change
@@ -142,6 +142,7 @@ To connect the debug Xilinx Hardware Manager to Virtual JTAG XVC server on the t
142
142
143
143
`> connect_hw_server -url <hostname or IP address>:3121`
144
144
145
+
If the above command fails, it is most likely because hw_server is not running on target F1 instance. Please follow see this [FAQ](#hw_serverRunOnF1Instance) on how to start hw_server
@@ -153,7 +154,7 @@ To connect the debug Xilinx Hardware Manager to Virtual JTAG XVC server on the t
153
154
154
155
**NOTES:**
155
156
156
-
- If the above command fails, its most likely that either the virtual jtag server is not running, the IP/Port are wrong, or a firewall/security-group rule is blocking the connection. See the [FAQ](#faq) section in the end of this document.
157
+
- If the above command fails, its most likely that either the virtual jtag server or hw_server is not running, the IP/Port are wrong, or a firewall/security-group rule is blocking the connection. See the [FAQ](#faq) section in the end of this document.
157
158
158
159
159
160
Upon successful connection, Vivado's Hardware panel will be populated with a debug bridge instance.
@@ -228,7 +229,6 @@ The following list describes the steps to successfully setup debug in a CL:
228
229
229
230
230
231
# Frequently Asked Questions
231
-
232
232
233
233
234
234
**Q: Do I need to run Vivado or Hardware Manager on the target EC2 instance to debug?**
@@ -238,6 +238,11 @@ No, you may run Vivado on a "remote" host as long as your instance/VPC has the r
238
238
239
239
**Q: How do I configure Linux firewalls and EC2 network security groups to enable remote debug?**
240
240
241
+
If your OS has the `firewalld` service running, you can disable it for the time being for setting up remote debug by calling:
242
+
```sudo systemctl stop firewalld```
243
+
244
+
You will also have to allow incoming and outgoing traffic to TCP ports 3121 and 10201.
245
+
To open up incoming and outgoing traffic on those ports for your instance, please refer to the [EC2 Security Group documentation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html#sg-rules-other-instances)
241
246
242
247
**Q: Can I have a secure connection (i.e. SSL/TLS) to the target FPGA-enable EC2 Instance running Virtual JTAG service?**
243
248
@@ -249,20 +254,35 @@ You may use the ssh "port forwarding" option (-L) to forward connections from th
249
254
No, you need the Vivado Lab Edition which does not require a license.
250
255
251
256
252
-
253
257
**Q: How do I stop the Virtual JTAG service on the target instance?**
254
258
255
-
259
+
After starting the Virtual JTAG service, you can stop it by calling `Ctrl + C` from your keyboard.
256
260
257
261
**Q: Can I debug multiple FPGAs on same target EC2 instance concurrently?**
258
262
259
263
Yes, you must start the the `$ fpga-start-virtual-jtag` with a different Slot/Port for each FPGA. You can launch multiple Vivado sessions, and have each session connect to the corresponding TCP port associated with the FPGA.
260
264
261
-
265
+
<aname="hw_serverRunOnF1Instance"></a>
262
266
**Q: What are some of the best practices I should be aware when working with Virtual JTAG?**
263
267
264
268
If you are running Vivado on a remote machine trying to connect to Virtual JTAG - we recommend running the hw_server on the F1 instance - to ensure optimal performance between Vivado and the Virtual JTAG server.
265
-
269
+
On your target F1 Instance:
270
+
```
271
+
[$] sudo su
272
+
[$]# hw_server &
273
+
****** Xilinx hw_server v2019.2
274
+
**** Build date : Oct 24 2019 at 19:23:45
275
+
** Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
276
+
277
+
INFO: hw_server application started
278
+
INFO: Use Ctrl-C to exit hw_server application
279
+
280
+
INFO: To connect to this hw_server instance use url: TCP:ip-xxx-xx-xx-xxx.ec2.internal:3121
281
+
282
+
[$]# fpga-start-virtual-jtag -P 10201 -S 0
283
+
Starting Virtual JTAG XVC Server for FPGA slot id 0, listening to TCP port 10201.
284
+
Press CTRL-C to stop the service.
285
+
```
266
286
267
287
**Q: Can other instances running on the same F1 server access the Virtual JTAG of my instance?**
0 commit comments