Skip to content

Commit 4156888

Browse files
authored
Updated Shell versioning details. (#520)
* Added new shell versioning FAQ * Updated shell versioning * Provided links to small shell
1 parent 4323e78 commit 4156888

File tree

9 files changed

+94
-43
lines changed

9 files changed

+94
-43
lines changed

ERRATA.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11

22
# AWS EC2 FPGA HDK+SDK Errata
33

4-
## Shell v1.4 (04261818)
5-
[Shell\_04261818_Errata](./hdk/docs/AWS_Shell_ERRATA.md)
4+
## Shell Errata
5+
Shell errata is [documented here](./hdk/docs/AWS_Shell_ERRATA.md)
66

77
## HDK
88
* Multiple SDE instances per CL is not supported in this release. Support is planned for a future release.
@@ -22,7 +22,7 @@ Q: Which designs does this bug affect?
2222
A: This bug only affects designs that instantiate the sh_ddr module.
2323

2424
Q: How do I fix my design if I am affected by this bug?
25-
A: Pull aws-fpga release v1.4.19 or laterfrom the aws-fpga github and rebuild your cl design.
25+
A: Pull aws-fpga release v1.4.19 or later from the aws-fpga github and rebuild your cl design.
2626
The flop_ccf.sv files from the latest release that contain the fix are: [sh_ddr/synth/flop_ccf.sv](https://github.com/aws/aws-fpga/blob/master/hdk/common/shell_v04261818/design/sh_ddr/synth/flop_ccf.sv) &
2727
[sh_ddr/sim/flop_ccf.sv](https://github.com/aws/aws-fpga/blob/master/hdk/common/shell_v04261818/design/sh_ddr/sim/flop_ccf.sv)
2828

FAQs.md

Lines changed: 59 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -449,26 +449,81 @@ Refer to [Virtual JTAG readme](./hdk/docs/Virtual_JTAG_XVC.md) for more details.
449449

450450
<a name="shell"></a>
451451
## General AWS FPGA Shell FAQs
452+
453+
**Q: What is the AWS Shell?**
454+
An AWS Shell is in short the AWS platform logic implementing the FPGA external peripherals, PCIe, DRAM, and Interrupts in the FPGA.
455+
456+
452457
**Q: Do I need to interface to the AWS Shell?**
453458

454-
Yes. The only way to interface to PCIe and the instance CPU is using the AWS Shell. The AWS Shell is included with every FPGA. There is no option to run the F1 FPGA without a Shell. The Shell takes care of the non-differentiating heavy lifting tasks like PCIe tuning, FPGA I/O assignment, power, thermal management, and runtime health monitoring.
459+
Yes. The only way to interface to PCIe and the instance CPU is using an AWS Shell.
460+
An AWS Shell is included with every FPGA. There is no option to run the F1 FPGA without a Shell.
461+
The Shell takes care of the non-differentiating heavy lifting tasks like PCIe tuning, FPGA I/O assignment, power, thermal management, and runtime health monitoring.
455462

456463

457464
**Q: Is a simulation model of the AWS Shell available?**
458465

459-
Yes. The HDK includes a simulation model for the AWS shell. See the [HDK common tree](./hdk/common/verif) for more information on the Shell simulation model.
466+
Yes. The HDK includes a simulation model for the AWS shell.
467+
See the [HDK common tree](./hdk/common/verif) for more information on the Shell simulation model.
460468

461469

462470
**Q: What resources within the FPGA does the AWS Shell consume?**
463471

464-
The Shell consumes about 20% of the FPGA resources, and that includes the PCIe Gen3 X16, DMA engine, DRAM controller interface, ChipScope (Virtual JTAG) and other health monitoring and image loading logic. No modifications to the Shell or the partition pins between the Shell and the Custom Logic are possible by the FPGA developer.
472+
AWS provides multiple families of shells.
473+
474+
The F1 XDMA shell F1.X.1.4 shell consumes about 20% of the FPGA resources, and that includes the PCIe Gen3 X16, DMA engine,
475+
DRAM controller interface, ChipScope (Virtual JTAG) and other health monitoring and image loading logic.
476+
477+
No modifications to the Shell or the partition pins between the Shell and the Custom Logic are possible by the FPGA developer.
478+
479+
**Q: What different shells does AWS provide?**
480+
481+
AWS Provides the following families of shells:
482+
483+
| Shell Name| Shell Version | Dev Kit Branch | Description|
484+
|--------|--------|---------|-------|
485+
| F1 XDMA Shell | F1.X.1.4 | [master](https://github.com/aws/aws-fpga/) | Provides all the [interfaces listed here](https://github.com/aws/aws-fpga/blob/master/hdk/docs/AWS_Shell_Interface_Specification.md), includes DMA |
486+
| F1 Small Shell | F1.S.1.0 | [small_shell](https://github.com/aws/aws-fpga/tree/small_shell) | Provides all the [interfaces listed here](https://github.com/aws/aws-fpga/blob/small_shell/hdk/docs/AWS_Shell_Interface_Specification.md). This shell does not include DMA engine and provides significant reduction in Shell resource usage. |
487+
488+
**Q: How does AWS change Shell versions?**
489+
490+
Shell version schema is defined below:
491+
```
492+
|Platform String| . |Short Shell name string| . |major| . | minor|
493+
494+
Platform String
495+
Changes with platform and also with FPGAs used within a platform.
496+
497+
F1
498+
499+
Short Shell name string
500+
Short string to show the shell family
501+
502+
S = Small shell
503+
X = XDMA shell
504+
505+
Major
506+
Shell major version.
507+
This number increments when the RL interface changes
508+
Increments are for RL interface breaking changes
509+
510+
Minor
511+
Shell minor version.
512+
This number increments when the RL implementation/interface sees minor changes
513+
Increments are for feature additions, non breaking changes
514+
515+
```
516+
Examples of shell versions:
465517

518+
F1 XDMA Shell - F1.X.1.3(Deprecated), F1.X.1.4
519+
Small Shell - F1.S.1.0
466520

467521
<a name="troubleshooting"></a>
468522
## Troubleshooting FAQs
469523
**Q: Why do I see error “vivado not found” while running hdk_setup.sh?**
470524

471-
This is an indication that Xilinx Vivado tool set are not installed. Try installing the tool if you are working on your own environment, or alternative use AWS FPGA Development AMI available on AWS Marketplace, which comes with pre-installed Vivado toolset and license.
525+
This is an indication that Xilinx Vivado tool set are not installed.
526+
Try installing the tool if you are working on your own environment, or alternative use AWS FPGA Development AMI available on AWS Marketplace, which comes with pre-installed Vivado toolset and license.
472527

473528

474529
**Q: Why did my example job run and die without generating a DCP file?**

README.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -85,10 +85,12 @@ At the end of the development process, combining the Shell and CL creates an Ama
8585

8686
The following table provides the shells currently available to develop your CL with. Each shell provides specific interfaces and features and currently needs to be used with the Dev Kit branch listed in the table.
8787

88-
| Shell Version | Dev Kit Branch | Description|
89-
| --------|---------|-------|
90-
| v04261818 | [master](https://github.com/aws/aws-fpga/) | Provides all the [interfaces listed here](https://github.com/aws/aws-fpga/blob/master/hdk/docs/AWS_Shell_Interface_Specification.md) including DMA |
91-
| v04182104 | [small_shell](https://github.com/aws/aws-fpga/tree/small_shell) | Provides all the [interfaces listed here](https://raw.githubusercontent.com/aws/aws-fpga/small_shell/hdk/docs/AWS_Shell_Interface_Specification.md). This shell does not include DMA engine and provides significant reduction in Shell resource usage. |
88+
| Shell Name| Shell Version | Dev Kit Branch | Description|
89+
|--------|--------|---------|-------|
90+
| F1 XDMA Shell | F1.X.1.4 | [master](https://github.com/aws/aws-fpga/) | Provides all the [interfaces listed here](https://github.com/aws/aws-fpga/blob/master/hdk/docs/AWS_Shell_Interface_Specification.md), includes DMA |
91+
| F1 Small Shell | F1.S.1.0 | [small_shell](https://github.com/aws/aws-fpga/tree/small_shell) | Provides all the [interfaces listed here](https://github.com/aws/aws-fpga/blob/small_shell/hdk/docs/AWS_Shell_Interface_Specification.md). This shell does not include DMA engine and provides significant reduction in Shell resource usage. |
92+
93+
For more details, check the [FAQ](./FAQs.md#general-aws-fpga-shell-faqs)
9294

9395
## Software-defined Development Environment
9496

RELEASE_NOTES.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
11
# AWS EC2 FPGA HDK+SDK Release Notes
22

3+
## Release 1.4.19 (See [ERRATA](./ERRATA.md) for unsupported features)
4+
* Bug Fix release
5+
6+
We have identified a bug in the `flop_ccf.sv` module that can potentially impact timing closure of designs.
7+
The module is instantiated in `sh_ddr.sv` and inadvertently introduces a timing path on the reset logic.
8+
Although there is no functional impact, it may increase Vivado tool’s effort in timing closure of design.
9+
There should be no functional impact from this bug if your design has already met timing.
10+
311
## Release 1.4.18 (See [ERRATA](./ERRATA.md) for unsupported features)
412
* FPGA developer kit now supports Xilinx Vivado/Vitis 2020.2
513

hdk/docs/AWS_Shell_ERRATA.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1-
# AWS EC2 FPGA Shell Errata (04261818)
1+
# AWS EC2 FPGA Shell Errata
22

3-
## Implementation Restrictions
3+
## AWS Shell F1.X.1.4 (04261818)
4+
5+
### Implementation Restrictions
46
* PCIE AXI4 interfaces between Custom Logic(CL) and Shell(SH) have following restrictions:
57
* All PCIe transactions must adhere to the PCIe Express base spec
68
* 4Kbyte Address boundary for all transactions(PCIe restriction)
@@ -16,12 +18,10 @@
1618

1719
* AFI must be re-loaded after an instance re-boot.
1820

19-
## Unsupported Features (Planned for future releases)
21+
### Unsupported Features
2022
* FPGA to FPGA over serial ring links for F1.16xl and F1.4xl
2123
* Aurora and Reliable Aurora modules for the FPGA-to-FPGA
2224
* Cadence Xcelium simulations tools
2325

24-
## Known Bugs/Issues
26+
### Known Bugs/Issues
2527
* **sh_cl_ddr_is_ready[2:0]** outputs of sh_ddr.sv are not synchronized to clk_main_a0. Developers should synchronize these signals to clk_main_a0.
26-
27-

hdk/docs/AWS_Shell_Interface_Specification.md

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,4 @@
11
# AWS Shell Interface Specification
2-
3-
## Revision History
4-
5-
2016/11/28 - Initial public release with HDK release version
6-
7-
2016/12/06 - Added capability to remove DDR controllers in the CL through parameters in `sh_ddr.sv`
8-
9-
2017/02/02 - Major updates for Feb/2017 Shell, that includes interrupts, wider and more buses, DMA, Virtual LED and other. (Please refer to [Release Notes](../../RELEASE_NOTES.md) for details)
10-
11-
2017/07/29 - Updates for Jul/2017 Shell
12-
13-
2017/11/16 - Updates for v1.3.4
14-
15-
2018/05/10 - Updates for 1.4
162

173
# Table of Contents:
184

@@ -89,7 +75,7 @@ This document specifies the hardware interface and functional behavior between t
8975
This specification applies to Xilinx Virtex Ultrascale Plus platform available on EC2 F1, each update of the Shell
9076
is tagged with a revision number. Note while AWS tries to keep the revision constant, sometimes it is necessary to update the revision due to discovered issues or added functionality. The HDK release includes the latest Shell version under `/hdk/common/shell_latest`
9177

92-
Starting from 1.4, The shell is reconfigurable, allowing, in most cases, developers to select which shell version to create the AFI with. Going forward, new shell versions will NOT require updated CL implementation and regenerating the AFI (still a requirement with 1.4 shell.)
78+
Starting from F1.X.1.4, The shell is reconfigurable, allowing, in most cases, developers to select which shell version to create the AFI with. Going forward, new shell versions will NOT require updated CL implementation and regenerating the AFI (still a requirement with F1.X.1.4 shell.)
9379

9480

9581
<a name="conventions"></a>
@@ -224,7 +210,7 @@ These parameters are used to control which DDR controllers are impemented in the
224210

225211
### DRAM Content Preservation between AFI Loads
226212

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.
213+
Shell version F1.X.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.
228214
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.
229215

230216
<a name="dma"></a>

hdk/docs/AWS_Shell_RELEASE_NOTES.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# AWS Shell Release Notes
22

3-
# v04261818
3+
# F1 XDMA Shell - F1.X.1.4(v04261818)
44
* Fixed AXI-L Interface Ordering. Read requests on the AXI-L interfaces (BAR1, OCL, SDA) will not pass previous write requests.
55
* Increased XDMA PCIS interface timeout to 5 seconds
66
* Clock group A supports synchronous clocks within the group (default is clocks are synchronous)

hdk/docs/AWS_Shell_V1.4_Migration_Guidelines.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
# Shell v1.4 Migration Document
1+
# Shell F1.X.1.4 Migration Document
22

33

4-
This document describes the changes required when migrating your design from shell v1.3 to shell v1.4.
4+
This document describes the changes required when migrating your design from shell F1.X.1.3 to shell F1.X.1.4.
55
The HDK build scripts have changed to reflect the new v1.4 shell’s floorplan and newer Vivado tools. It’s strongly recommended users move to these scripts. Users who have already customized v1.3 scripts should diff those with the v1.4 scripts and be sure to include all new parameters that have been added to v1.4 scripts.
66

77
1. Upgrade Vivado Tools to version 2019.1 or later. Needs [FPGA DEVELOPER AMI 1.4 or later](../../README.md#fpga-developer-ami)
88

99
2. The hierarchy for CL & SH modules have changed. Now they are instantiated in "WRAPPER_INST" Module.
1010
The paths in your Build scripts, constraints & verification components have to be updated.
1111

12-
| v1.3 Shell | v1.4 Shell |
12+
| F1.X.1.3 Shell | F1.X.1.4 Shell |
1313
|------------|------------|
1414
| CL/blkA/sublockB/componentC/celld/signalX | WRAPPER_INST/CL/blkA/sublockB/componentC/celld/signalX |
1515
| SH/blkA/sublockB/componentC/celld/signalX | WRAPPER_INST/SH/blkA/sublockB/componentC/celld/signalX |
@@ -34,13 +34,13 @@ NOTE: Only INCR burst mode is supported on AXI-4 buses between CL/Shell interfac
3434
7. [ILA cores](../common/shell_v04261818/design/ip/cl_debug_bridge) need to be upgraded for 2017.4 or later
3535
Please refer to the [cl_dram_dma](../cl/examples/cl_dram_dma/design) example for ILA hookup on PCIS interface.
3636

37-
8. Please use below information to update CL pblock constraints to optimize your design in Shel v1.4.
38-
- Shell V1.4 is slightly larger than Shell v1.3. CL floorplan may need to be tweaked to account for the larger Shell V1.4.
37+
8. Please use below information to update CL pblock constraints to optimize your design in Shell F1.X.1.4.
38+
- Shell F1.X.1.4 is slightly larger than Shell F1.X.1.3. CL floorplan may need to be tweaked to account for the larger shell.
3939
Please review pblock constriants of CL for conflicting regions.
40-
- Following are the interface placement changes between Shell v1.3 & v1.4
40+
- Following are the interface placement changes between Shell F1.X.1.3 & F1.X.1.4
4141

4242

43-
| INTERFACE | Shell v1.3 SLR | SHELL v1.4 SLR |
43+
| INTERFACE | Shell F1.X.1.3 SLR | SHELL F1.X.1.4 SLR |
4444
|-----------|---------------|---------------|
4545
| CL_SH_DDR |MID/BOTTOM SLR | MID SLR |
4646
| BAR1 | MID SLR | MID SLR |

hdk/docs/data_retention.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ Workloads that require multiple AFIs to process a data set can take advantage of
66

77
For an AFI to support data retention, the following requirements must be met:
88

9-
1. The AFI must be built with shell version 1.4 or higher.
10-
2. The AFI must be built with the version of `sh_ddr.sv` shipped with 1.4 or higher.
9+
1. The AFI must be built with shell version F1.X.1.4 or higher.
10+
2. The AFI must be built with the version of `sh_ddr.sv` shipped with Dev Kit 1.4.0 or higher.
1111
3. The AFI must use all four DDR controllers. (All of `DDR_A_PRESENT`, `DDR_B_PRESENT`, `DDR_D_PRESENT` must be set. DDRC is part of the shell and is always present.)
1212

1313
To use data retention across AFI loads, the following conditions must be met:

0 commit comments

Comments
 (0)