Skip to content

Commit f063204

Browse files
authored
Release v1.4.19 (#515)
* Bug Fix release to fix CDC path in flop_ccf.sv * Updated Errata with details
1 parent 4750aac commit f063204

File tree

4 files changed

+119
-147
lines changed

4 files changed

+119
-147
lines changed

ERRATA.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,22 @@
1010
* Combinatorial loops in CL designs are not supported.
1111
* 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.
1212

13+
### flop_ccf.sv bug
14+
15+
We have identified a bug in the `flop_ccf.sv` module that can potentially impact timing closure of designs.
16+
The module is instantiated in `sh_ddr.sv` and inadvertently introduces a timing path on the reset logic.
17+
Although there is no functional impact, it may increase Vivado tool’s effort in timing closure of design.
18+
There should be no functional impact from this bug if your design has already met timing.
19+
This bug is fixed in aws-fpga release v1.4.19
20+
21+
Q: Which designs does this bug affect?
22+
A: This bug only affects designs that instantiate the sh_ddr module.
23+
24+
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.
26+
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) &
27+
[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)
28+
1329
### Xilinx Design Advisory for UltraScale/UltraScale+ DDR4/DDR3 IP - Memory IP Timing Exceptions (AR# 73068)
1430
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.
1531

hdk/common/shell_v04261818/design/sh_ddr/sim/flop_ccf.sv

Lines changed: 55 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -12,102 +12,81 @@
1212
// an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, express or
1313
// implied. See the License for the specific language governing permissions and
1414
// limitations under the License.
15+
1516
`pragma protect begin_protected
1617
`pragma protect version = 1
1718
`pragma protect encrypt_agent = "XILINX"
1819
`pragma protect encrypt_agent_info = "Xilinx Encryption Tool 2015"
1920
`pragma protect key_keyowner = "Xilinx", key_keyname = "xilinxt_2017_05", key_method = "rsa"
2021
`pragma protect encoding = (enctype = "BASE64", line_length = 76, bytes = 256)
2122
`pragma protect key_block
22-
Gx87JJBq2wxinn9UItpQzN93HPLB8MXXRKbK2CAcry5T6/hygofNhn0nTz8ku1A9Smgpz1ZBqqh8
23-
d5fTq8q5EbV+vCYF4XbOLJbkKwPvlPti6G/rSq39Yv7ihbn29rWoxt1ugG2RQPORLjS//jSBcw69
24-
GlUGKbBv5thTKKp/aQI5oU4JFnHfdFXhS0JED0VtsXlsn0Ivr1+Fu9Yur3VR485qe+AqSA/BD4Ew
25-
f1YuTokSI/H8lzu0Iq127Yr4jHecngdKDO5t8OwJKINWE5avC68LIu8vJc591iGVE2Ml+PaOU2F+
26-
QG5G9QAwPHOY5ZjAEmv+DrzkOFs8r+RX45TTfA==
23+
Xj78u+crC0DVwcb6TXHWKv4w0HzS32NHDZyGOH8cqWQOwvNROgoHijIoIBayPYeih9IOmLmoI4It
24+
LVnXCSxJ2/DeOebRH1OEKZPeHqNW9rI6qdksXtBr+yibD1ivz6p4tDLUi9RQCSl1szINoo3EECxV
25+
i9UBB174TeK1yKcv45fFdqDMXJJi+8aj6V5pQEQvV+UIZxIeqygK+lAul2b0nscPEqV+H3xfjEW9
26+
u+9IIhD7n51Hw6bwWqYYKjJze4vqm0voTAfPB1GkczbxuzElLZecvIu/uRBq4eJrMv/VIPiQ1mfK
27+
J60fdHXRBXaofmt+drl1gB3bV99DQPzBpt3xrw==
2728

2829
`pragma protect key_keyowner = "Synopsys", key_keyname = "SNPS-VCS-RSA-1", key_method = "rsa"
2930
`pragma protect encoding = (enctype = "BASE64", line_length = 76, bytes = 128)
3031
`pragma protect key_block
31-
AwmKLh7GAjEZj+X1S2vn1XsMx45y0UlPh25jZ4rrLl+ekbxc887qrj6zFFFnRXPJ0+f+v0yGLECx
32-
0DjZCLhX64zRnxOihgh60D9CGb6FEcdaDpZQRi2X1x3l2TAklS67VequDiyt9s9zvXQKOtVKzt3L
33-
zg0GGaerc68UEwdtnAc=
32+
na2HRJ8to9+QolGwJXsQPBynVTAM6r0OFOXwAknXLKC/+essXWwY7Pn2Fnj0/cUC9HddU5PRr+Nn
33+
KCpVJYCMLnmWH60kztZsSj2RYgCq39FpKfwUzTSRztH3CT7g6rBmzSVQMr7JpSZ3ZugN/uHjY1u/
34+
irEUyx7b98ZXrwTn8kM=
3435

3536
`pragma protect key_keyowner = "Mentor Graphics Corporation", key_keyname = "MGC-VERIF-SIM-RSA-1", key_method = "rsa"
3637
`pragma protect encoding = (enctype = "BASE64", line_length = 76, bytes = 128)
3738
`pragma protect key_block
38-
arLDZk59TdmVAXn3Mr8ipwpe/j8p5isVfGTKmR9YJHIXzHsrbJleL2ddqfYo1nQJfNuwskCujTop
39-
/swyavGJNNAbTU6gBMHlvzFIFKwm6UCQ/rDAsbf44iSoyKG0Vq+Il6/TAWb4kneCjay91czYorhR
40-
zMLZl4cYdnA3tx3vD3E=
39+
IWNkpf/IPFwtENrGYBNqA/+hgSM9cVrSRlzNRD/WDjKwqHQ5adCkXIAY6LIdXDXNT72c6Pe19W5x
40+
QvEQRnviKVQShk4XMXHT/WMuUJe46A66FABcO5BDGBn1TFH+KP9denQXGjN6kYYCiQ/tXSyWXehj
41+
b0d3ucAWNDJtkiEGaG8=
4142

4243
`pragma protect key_keyowner = "Cadence Design Systems.", key_keyname = "cds_rsa_key", key_method = "rsa"
4344
`pragma protect encoding = (enctype = "BASE64", line_length = 76, bytes = 64)
4445
`pragma protect key_block
45-
j4iKvHFemFVbUFisf4iaF7vWn2BBUxfe1lj1KXguyRwvwHfhGUZM4nFjgzJeAbgOo9ZkuXNAX277
46-
Sml3zdNWCQ==
46+
JnK9rXuV3P5G9YUNo3fU8uKlaqn/8z7mHKg8UXtvOxeQYxCVTd7U9Z3e0jvI7tGp0FBigYHEdLDl
47+
EWo+C5vS/Q==
4748

4849
`pragma protect data_method = "AES128-CBC"
49-
`pragma protect encoding = (enctype = "BASE64", line_length = 76, bytes = 3504)
50+
`pragma protect encoding = (enctype = "BASE64", line_length = 76, bytes = 2256)
5051
`pragma protect data_block
51-
FJ67Mmr3HmhMIddkBsTH00xBnJrbTASh9PQTiFaeP+Mr9KpYnJIhHFWctxvXhYWo6YP35Tu52jvc
52-
BeSJKC23ZVvDEmsNvStPAd10WFJLihjiYW7G73CByArb/ZIbMr3K/zBs2dmPVvE+RW0EOCj4WLZK
53-
5933+hWLuhtKJ78PiMH3otDfBc3rf8V9/MWZPnoM/Alb+07uVh+0f9q+qVIWTteVJ6viHghPOzw/
54-
lA36CR+KSDWCMN4OCxYoRD1fsWq+8VvTZJ+6vZsAiYiuFCoT1b62f7yrsb8etUhNxKlTQ3D5jxdT
55-
k2rVDeoUl18q5ub/Obo6iO1wOJRQZcf68vjdO57QzudIqWFyEQNIy5vWroRXkyCX1otbkMlQF9vt
56-
Vehno5psrDWvJVu4lgt38ORl2ixBUav/8gCp62/HY21nfq5bTR23JVU28ogaVBF4d1U+aErNfbVM
57-
sbX1QAsDhBGhD0rs7Eak368EKn6WsqqM9AP8M1/laBhdk4oIDunEjfMKwm8ywtAKNaaXL/+cWAmn
58-
zMsE24BUDx4Zo/swJIV5DafJf+t8wqrlMV2G1tidYSMSrleUfaNBz3NsKgJ4UdF8j1HHwloejiQv
59-
Fs21MuevSYAQUz8PhkQtxpHecTgWhMvV3LDAM1BAAii4JXQOEamH0KLVSK8DLwewBlm4ybk1EvwZ
60-
kHlYcyoaIz3fg0dCI0BahMj6gzC0O7QN6Ox/pkAGY/95URZ+kZlrVg0xG2KZHbC6BMbTYKFOEotq
61-
NbKP+on4yI0pUt2T7wAmYfmBltJYm69gHTKQK7m+tOwkgtzzOymdJCSSq33+xC4PRkDXmQlbTPh0
62-
URyU+dyDiVIddTL3n/6mtMEJH9rXas9TxYeY7TIQg/6ONhHCGnWwKwYffNXG5d2Weu4WZ2ESf5zx
63-
k0uhmI4pLmJJk88gkaC0Opv2M4b5OjpSKr/WoD2tholPQe7lPfrMEBb4ETb+yuT7JHDh2oafpHRq
64-
05pBEYK7Vo3Q1uOg4CRi4BPD4QLeMRx/pzxRIQqLKktl9iAoRoWN2DoUKe885zZkvaLLEJxYU1KC
65-
oZg4eGm9uOHwQrgBkaqg+6tpypXxOE5/xw1O0MiUHt2JgBnr5/RKLLMjaNbwjz1LLD8y3NtkkJXc
66-
Iz3U0H/3iFFDx5aLy90O7B96+QNkhGU0JbBZimjHKECEPKuVimykASmJvWHPWytc9AGx7BNUIVHT
67-
rabXhvBi5MzSTYd2hnmWSvTs1lhHozlC/tqWrnZZ+cdEdhhoQf3vnytE0CgQ0bKwp0bap+HyGS8W
68-
wQXMkRWHMs89hCJk4DfscldpvgoQfOe0A/kLkgimRIRPL8N0KnOrtMCOdrT+Udu9D9b6BMMneK+D
69-
6ZEba4LJ+dyTIsOw9wBbxE+Q9EynvvmhMeBAWvPfyqjNNEur0DaTvyM5ZsXnaPFHTQQ9Dh209UGG
70-
eULGseNthcdxo96Gg8JrtUsStJgBpDR+wHSDwnfzU/LUKBAPtjz+Yr6qIDW69Cas5kPNdL+iefsO
71-
xqRkl4OtxejziTWiZ9NL2E25qxc+L+9nnRlqbv2zVrKyzf1jC5ZaXvuxJSYapjLjL/tAJIy4zyo0
72-
Riwn6Xmgc19cI6JlynIErAgRjvD7S0n1cfJCI7c9yW+V1gtSvYP5tZu9pat+70hsom8ZS+Dnndkp
73-
/Pfktuo5IEvgsTzHo1EUujs3X0KRtY1RRe20pOq5fU0ALEB9Jpl0diBSZa2mqskbuqIktaCDY+b0
74-
xaYcH/W+ZLaoBEvdJTVWOkOonlxkrIXVVTd60PkKsVTwSE1uBdppPxXfXiQfXYMvTfa4kLZGsiYb
75-
sGb3RynkyLUEH42dwFSOAN+EE6uGN7auYpm3GO9xF2P/0CWmizOXwlUWl46vkSX5Ip8Y/U0BA8wT
76-
7KgAG7/8q8MtRCi+KjmxXs8nrlN8WcxPbbnbcvGkAji1giCM6pbwO73KcdnouqF9pxbjLdENYPMO
77-
uwQ5iWSrBbsqO7OCXEpu0wN8tUPmnL48DPNj5PfqmnU/skaeJJvVVkKHEucO7Ui77/J4N77yvAba
78-
sQzhaSmXYOwZwtp5tg4mYNds7+/NLorQX2VkbHoNrM4+mYP9bxbPq/mFNsRFASmz5axzQ0Us7W0l
79-
fvpWHAC1rbuATPFOqCpTVGDsj0mZUJSJKyLmoLT3rlq01esoPrChI++2MzPjGI487fCN6GobxuiM
80-
mrI1CxBXOq5AR2aRX5jmu5mq/mHEiu3RXGGRLDCsihr4W+Ci6RUK2yp4G7wL/BoGgWBdpAPHGVfb
81-
0O6KFkKTAZAfnozEdWNi/y3rNtCHnkxf3HgkI26VpwVvRbrEwZE+UxWqMZ09tqQoNc2rJHTgPRMt
82-
Xb5op09CYJjUSufXNNqK1vgjEkAud1WW4ZitcoxGBD8qonYcn9OmH9w1RMQIpmVNcyv3vOKBPqcT
83-
mc8mDUm5CAljnIG2P68C+d/TSW09lDiyuJg2ltfvstfXJxLGjnwB+uK7ffWsNU4USbskdZ8DCk10
84-
Ncp26r7oeT+e39aaSiyXEUooPwpcQvc747NTwjwQ+u4UHzPycXqvf9uEqt5Z61C+HoT+UaZMRSPC
85-
kyS8ALkp08C/ZAkO66NbHfm6ZsP+zAqg0gvZIFssJqrUNTDgUEzgD38qW5/EDgO/3rfkCfrtqetu
86-
FXvjuwWggNclm/slRdo/Vgc/43aMEGzdQOArn1rsiXZYXKfDQppCDN+ZbWFmbdupfVZ8Bfyi80Yq
87-
nUt8EkWXlIKZve3JBeWsjxX8/Cg8oWVnoCQFk1gwjEgtCFyGGQbNYXz4dqlEEn/7bm3ZbxtFhvLK
88-
5QyTW8c1fpQnKOktpsxeM7WDAy3HwGCUU+pnvUYoy3nMjtdJDyFt7gQmwFl6rbG3M0oZLl//nxzM
89-
jC70+glMQfg7UTYn4Q5nwwd/qQsNsBZvdNnY50+ROeUqrN5x1Pq1mSEfhuaGIUO5M8EbHaJQemfz
90-
PLgGq/uhYOMJj1a7mpgl8A6nN6thqg4CaQ0xLsnUeG1vFt/zXOESlSSmmuyc8T2wNb09Y056VEF/
91-
1eqHCEtoowtc0w+PE0xJDnhuUYTQX9jNw8cg1LKcYjFSbW38g9YpbuFQIsAfDlOkJlx0ghk4oxiH
92-
HY/Mj9vp8+D8UwBPiYSX2vXhsYHHnlILHsmoq/D8iYluwvAZXYl3E2kkDy3u+lcYDwbMEbUI3t+n
93-
kamqF4DwZCOGV8EOudEEapoxy0RWwKkAqA7Z6NkWbQeLCH4cWlQeVwohf2NYwPAB2BD+yT15V1yp
94-
Xkp1lWWFkyPYPrAasx8+y9yWiYzDttYDy9JQVup1CAtfF1WUZEqkvCASvaUlzUo3YPHPeb8RaOLb
95-
gYHaKKEa4msrAnqZFVRU/lMQt812K+AZeduVegT2ZAimYb0I0y5NJdH4dmjdK2M/DMpKz5r1zu2W
96-
93JQh2WD9olnqulI8iCGY4gvPYGFXoDBMkMzhS+WLdYzi7sdcmATZNpCFETZ3fRE134oJ073NBU1
97-
BwpKU/T2vWAYc8/B03IPJ7ZEYu/Cu+d21AS5guiBC1Tl69yiZMpmGpwuS3QvVFjccYcMloEwHBOv
98-
1WbTXGfPLoBL/2dXk1KttTJ54esf659KbV/qtRxWJe+bCG3SEqwp9MCfAc+fwRBNTC7zXAeKhi7j
99-
G25EWYOeA260x98i2c6dMq61if6CYcm2wM/wwMviczqTJ9yPZu6fmQOxMHFsak1lAhR1W/Yv+4SJ
100-
1CKh1KjZXybK1gdKyl1lEgxuT/2Dj36gqQsz0hk3vff4KZUElPqxf3b/ZLtMy43ecEjce/ANkhlt
101-
T+XD8JjJs3LeBgds4MFT2H6NW4iXAF/jKiF3unt0y78wveqLlAO3/DhTA+6RgSJw0AWwQ8SRBE/2
102-
y9Gx8Jp0RkEsYtMXYi6xqLJGhnEZ2XuXrYpQgtiEGKWvTt3ozkTjdSSvzv9KSPNOi3841SOHM9mb
103-
4CHNGC1slIWFqLhWSkQ+Bu5lz1S2tMKPg+r/zB1wxeZp/agwBKRVjnjivRSuVjhkVIO4lvzyqWQn
104-
iNuWtGxUY1XZ9XdczHcgV4q0EBqQqrKl5fnKDiygjpkSydd/FgOXpfTP6/K8/T0/LaGbXMruaFU8
105-
FZsSvbTlO8VVTWKvjRCFYzarfudR8ZLl//PjVY338Bws2tn7y/ON2i66PCXJYN/cAFZeiUd2ruav
106-
w2y4rBoOdgCY1zdEa8DAZhbZQqRVV/d6VAaENKOQgng3R0lapThjGdDSs0Ul55//+MnHvcEvMkNl
107-
RF8Bqah3ihm6ZjmiTjf1+3cpBX5BGPNuNXxumgvpbP8UCD+siEXDSx9N3eTiV9001FOoHGumhD4n
108-
yBIVhSdCHQHTVUvZP0Kl4HUpsrDklGGpgxD/mYsOXkoaa6WQ7evcpy+BjPVdlnjfVywmhB560qzC
109-
RCuwvISfZdlMZDmXQwC3d84GKcr3e3KfDn1Zb6CEe24Si2d/ajXovoyTw7SorXlc+HldFC8CMBEE
110-
gNdoOfydLgStzTSbF4WaOqs8MY+nJ0JKNX90D2ExqTnOtRc446mLS0xffKtvkeQ/1JFSIUygcoyA
111-
Jx/JKaQ1oPzM8FDQHRjvBpI20HyLN4MECCCH+pZJS1vjHRpTX2nzOj8IXkJFhu0iNkghe7FhILtl
112-
xnj6yYfW8s60p2phlylD6Evbtabmhhi17V2S
52+
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
11392
`pragma protect end_protected

0 commit comments

Comments
 (0)