library/scripts/adi_xilinx_device_info_enc.tcl: Add xcau (Artix UltraScale+) family#2047
Conversation
|
According to this list: https://docs.amd.com/v/u/en-US/ultrascale-plus-fpga-product-selection-guide the ultrascale+ models, assuming we are considering only the xc (xilinx commercial) models, will always something like xc<some_possible_part_version><some_letter_to_represent_device>u (see last page). With that, I would suggest: ^xc\d*[vkaz]u
What do you think? That would substitute the following regex: ^xczu {set series_name ultrascale+} |
|
Thanks for looking at this, @caosjr, makes sense to consolidate vs. add another line to the switch. One concern with For the But for
Since the first matching regex wins, the Changing to two lines for clarity: ^xc(zu|au) {set series_name ultrascale+} ;# no non-plus variant
^xc\d*[vk]u\S*p {set series_name ultrascale+} ;# "+" requires trailing pCould also go with a single line for brevity, but it seems more confusing: ^xc(zu|au|\d*[vk]u\S*p) {set series_name ultrascale+}What do you think about pushing the 2-line version? |
|
@CodeWarrior1241, I prefer the 2-line version due to its clarity. |
…Scale+) family
Consolidates the FPGA_TECHNOLOGY ultrascale+ switch in adi_device_spec:
^xc(zu|au) {set series_name ultrascale+}
^xc\d*[vk]u\S*p {set series_name ultrascale+}
The first line covers Zynq UltraScale+ and adds Artix UltraScale+ (e.g.
xcau15p) — neither family has a non-plus variant, so no trailing 'p'
constraint is required. The second line generalizes the previous
^xcvu.?.p entry: the trailing 'p' is the sole discriminator between
UltraScale+ and plain UltraScale for Virtex/Kintex, and \d*[vk]u\S*p
additionally covers Kintex UltraScale+ parts (e.g. xcku3p, xcku5p) that
the prior fixed-width regex missed.
Without the xcau entry, Artix UltraScale+ parts were matched by the more
general '^xc.u' branch that follows and silently misclassified as plain
'ultrascale'. The returned FPGA_TECHNOLOGY then drives downstream IP
configuration (e.g. IDELAY primitive selection in axi_ad9361), and the
resulting attribute combination is rejected by Vivado's bitgen DRC
stage, which refuses to generate a bitfile for the design.
Tested on xcau15p-ffvb676-2-e (AUBoard-15P Development Kit) with an
axi_ad9361-based reference design: bitgen completes and the bitstream
runs on hardware.
Signed-off-by: CodeWarrior1241 <vadimv@ieee.org>
9da4f0a to
2069f56
Compare
|
I amended the PR to be the two-line option. |
|
Hello, Was wondering if there was any update on this? Thanks! |
PR Description
Adds the
^xcauregex prefix to theFPGA_TECHNOLOGYpart-family switch inadi_device_spec, mapping Artix UltraScale+ parts (e.g.xcau15p) toseries_name 'ultrascale+', alongside the existingxczu/xcvu/xck26ultrascale+ entries.
Motivation
Without this entry,
xcauparts are matched by the more general^xc.ubranch that follows in the same switch and are silently misclassified as
plain
ultrascale. The returnedFPGA_TECHNOLOGYthen drives downstreamIP configuration — for example, IDELAY primitive selection in
axi_ad9361—and the resulting attribute combination is rejected by Vivado's bitgen DRC
stage, which refuses to generate a bitfile for the design.
This change is consistent in shape and intent with prior single-line
additions to the same switch (e.g. K26 in 7112fbc, Versal in 4d12c4d,
VCU128 regex change in 9d94f21).
Test
Tested on
xcau15p-ffvb676-2-eon the AUBoard-15P Development Kit,building an
axi_ad9361-based reference design: with this change,adi_device_specreturnsultrascale+, downstream IP picks the correctprimitive variants, and bitgen completes successfully and the bitstream
runs on hardware.
PR Type
PR Checklist