FPGA, SoC, And CPLD Boards And Kits
FPGA Evaluation and Development Kits
6101 Discussions

Agilex™ 5 FPGA E-Series 065B Modular Dev Kit PCIe design does not build after tool version upgrade

SteveMellor
Novice
166 Views

The dev kit design examples are available here:

https://www.intel.com/content/www/us/en/content-details/826413/agilex-5-fpga-e-series-065b-modular-development-kit-v24-1-or-higher.html

The current design examples download as this zip file.

agilex5e_modular_es_a5ed065bb32ae6sr0_qii24.1b115_v1.0.zip

They are designed for the 2024.1 tool flow. There are two mistakes in the PCIe design example.

  1. The QSF file examples\pcie_ed\pcie_ed\pcie_ed.qsf is missing the following assignment
    1. set_global_assignment -name DEVICE_INITIALIZATION_CLOCK OSC_CLK_1_125MHZ
  2. The SDC file examples\pcie_ed\pcie_ed\sm_pciess_ed.sdc.terp on line 14 ends with a '-group' option with no target specified. This final '-group' text needs to be removed

Building the design in a later tool version without upgrading the IP works. Upgrading the IP results in errors. 

 

Error(22412): The design requires at least 914 elements of type IO_PAD but the device has only 721.
Info(22413): IP pcie_ed pcie_ed requires elements of this type.
Info(22414): Node: I/O pad pio0_tx_pio_tdata[0].
Info(22414): Node: I/O pad pio0_tx_pio_tdata[1].
Info(22414): Node: I/O pad pio0_tx_pio_tdata[2].
Info(22414): Node: I/O pad pio0_tx_pio_tdata[3].
Info(22414): Node: I/O pad pio0_tx_pio_tdata[4].
Info(22414): Node: I/O pad pio0_tx_pio_tdata[5].
Info(22414): Node: I/O pad pio0_tx_pio_tdata[6].
Info(22414): Node: I/O pad pio0_tx_pio_tdata[7].
Info(22414): Node: I/O pad pio0_tx_pio_tdata[8].
Info(22414): Node: I/O pad pio0_tx_pio_tdata[9].
Info(22411): 904 others not shown. Set DRC_DETAIL_MESSAGE_LIMIT to change the number of nodes shown here.

Labels (1)
0 Kudos
1 Solution
SteveMellor
Novice
160 Views

Upgrading the IP regenerates all of the QSYS and RTL files for the IP. It seems the example design was created by editing of RTL files generated by the tools. The edits are overwritten when the IP is regenerated. The edits need to be restored to the top level of the design:

examples\pcie_ed\pcie_ed_24p1\pcie_ed\synth\pcie_ed.v

 

The edits can be restored by copying the original file from the example over the regenerated file. One module will have changed name when regenerated though and this name needs to be corrected in the pcie_ed.v file. Find the module pcie_ed_altera_mm_interconnect_1920_4uhoqna in the pcie_ed.v file. This module name needs to match the new name. The correct name to use can be found in the RTL file name in this directory:

examples\pcie_ed\pcie_ed\pcie_ed\altera_mm_interconnect_1920\synth

 

The new file name changes the last few characters e.g.  pcie_ed_altera_mm_interconnect_1920_k23lfcq

View solution in original post

0 Kudos
1 Reply
SteveMellor
Novice
161 Views

Upgrading the IP regenerates all of the QSYS and RTL files for the IP. It seems the example design was created by editing of RTL files generated by the tools. The edits are overwritten when the IP is regenerated. The edits need to be restored to the top level of the design:

examples\pcie_ed\pcie_ed_24p1\pcie_ed\synth\pcie_ed.v

 

The edits can be restored by copying the original file from the example over the regenerated file. One module will have changed name when regenerated though and this name needs to be corrected in the pcie_ed.v file. Find the module pcie_ed_altera_mm_interconnect_1920_4uhoqna in the pcie_ed.v file. This module name needs to match the new name. The correct name to use can be found in the RTL file name in this directory:

examples\pcie_ed\pcie_ed\pcie_ed\altera_mm_interconnect_1920\synth

 

The new file name changes the last few characters e.g.  pcie_ed_altera_mm_interconnect_1920_k23lfcq

0 Kudos
Reply