Why do I unexpectedly observe intermittent DDM Errors?
Description Beginning January 10, 2026, executing commands in the terminal or GUI of Quartus® Prime Pro Edition software, Quartus Embedded Edition software or select standalone tools may cause the software or tool to crash with an error similar to the crash signature shown below. This error affects: Quartus Prime Pro Software versions v23.3 through v25.3.1 Standalone Quartus Prime Pro Programmer v23.3 through v25.3.1 Standalone Quartus Prime Pro Embedded Edition v25.3 and v25.3.1 Standalone Quartus Prime Pro Power Thermal Analyzer v25.3 through v25.3.1 This issue is not observed in Quartus Prime Pro Edition versions 23.2 or prior or Quartus Prime Standard Edition. Crash Signature: Error (22912): Unhandled exception: Fatal Error: Assertion failed tools/cpp/ddm/ddm_assessor.cpp:53: DDM_T::verify_token(token) : Cannot identify the client from function assertion_error in tools/cpp/ddm_report/ddm_report_msg.cpp@465 *** Fatal Error: Program termination requested *** *** Below is the stack trace at the time the error occurred. *** The lines beginning "Err Handler" represent frames relating *** to generating this report. *** The point at which the error occurred is somewhere after these lines. *** There may be a few frames representing standard/library code *** before the Quartus frames begin. *** The search for the error should begin with the Quartus frames. *** Unwinder: libunwind *** Stack depth: 15 Quartus 0x24e67: err_terminator() + 0x1bc (ccl_err) Quartus 0xb036a: __cxxabiv1::__terminate(void (*)()) + 0xa (stdc++) Quartus 0xb03d5: (stdc++) Quartus 0xb0628: (stdc++) Quartus 0x1680d: void ddm_throw<DDM_RUNTIME_ERROR>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) + 0x26d (ddm_report) Quartus 0x13fae: DDM_REPORT::DDM_ASSERTION_HANDLER::assertion_error(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) const + 0xde (ddm_report) Quartus 0x12a52: DDM_REPORT::ASSERTION_HANDLER::error(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) + 0x72 (ddm_report) Quartus 0x13e64: DDM_REPORT::detail::assert_at_line(char const*, char const*, int, char const*, ...) + 0x1b4 (ddm_report) Quartus 0x205fb0: ddm_set_lassessor(DDM_T_ASSESSOR*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) + 0x60 (ddm) Quartus 0xf4445: DMS_MANAGER::DMS_MANAGER() + 0x5c5 (dni_dms) Quartus 0xf45b2: DMS_MANAGER::get() + 0x7a (dni_dms) Quartus 0xf6db4: _GLOBAL__sub_I_dms_manager.cpp + 0x58 (dni_dms) Quartus 0x647e: (ld-linux-x86-64) Quartus 0x6568: (ld-linux-x86-64) Quartus 0x202ca: (ld-linux-x86-64) Resolution To work around this problem: For Windows machines Download and unzip the Quartus Prime Pro version zip file that matches your Quartus Prime Pro version from this KDB. Double click on the executable ending in “windows.exe”. When the GUI pops up, press Next. Note that the GUI may look slightly different depending on the version of Quartus you are using. Accept the license agreement Specify the directory where the patch needs to be applied which may be a different location than Quartus install if you have standalone tools in a different directory from your Quartus Prime Pro software installation. Keep “Allow Patch to be uninstalled” selected. Select the software in which to install the patch: The patch will install in the directory of the software or tool you have selected. You will see an uninstall directory for the patch in your software or tool folder where patch is installed; it will contain an executable to uninstall the patch if required for any reason. To confirm patch is installed, you can run quartus_sh -v or corresponding version command for your tool via command line. Alternatively, you can Open Quartus in the GUI and select Help → About Quartus Prime in the main menu. If you are opening up a standalone tool you will navigate to Help-> About <tool_name>. For the Command Line Implementation of the patch in Windows, use the following command: <patch_filename.exe> --mode unattended --installdir <your_install_directory> --accept_eula 1 --patch_to [quartus|qprogrammer|qemb|pta] # An example to patch Quartus Prime Pro Edition Software v25.3: quartus-25.3-0.27-windows.exe --mode unattended --installdir /tmp/altera_pro/25.3 --accept_eula 1 # An example to patch the Standalone Programmer for Quartus Prime Pro Software v25.3: quartus-25.3-0.27-windows.exe --mode unattended --installdir /tmp/altera_pro/25.3 --accept_eula 1 --patch_to qprogrammer For Linux machines: Download and unzip the Quartus Prime Pro version zip file that matches your Quartus Prime Pro version from this KDB. Ensure you run chmod +x on the file ending with linux.run. Run in the command line: ./<installation_patch_run_file>. When GUI pops up, press Next. Note that the GUI may look slightly different depending on the version of Quartus you are using. Accept the license agreement Specify the directory where the patch needs to be applied which may be a different location than Quartus install if you have standalone tools in a different directory from your Quartus Prime Pro software installation. Keep “Allow Patch to be uninstalled” selected. Select the software in which to install the patch: The patch will install in the directory of the software or tool you have selected. You will see an uninstall directory for the patch in your software or tool folder where patch installed; it will contain an executable to uninstall the patch if required for any reason. To confirm patch is installed, you can run ./quartus_sh -v or corresponding version command for your tool via command line. Alternatively, you can Open Quartus in the GUI and select Help → About Quartus Prime in the main menu. If you are opening up a standalone tool you will navigate to Help-> About <tool_name>. For the Command Line Implementation of the patch in Linux, use the following command: ./<patch_filename.run> --mode unattended --installdir <your_install_directory> --accept_eula 1 --patch_to [quartus|qprogrammer|qemb|pta] # An example to patch Quartus Prime Pro Edition v25.3: ./quartus-25.3-0.27-linux.run --mode unattended --installdir /tmp/altera_pro/25.3 --accept_eula 1 # An example to patch the Standalone Programmer for Quartus Prime Pro Software v25.3: ./quartus-25.3-0.27-linux.run --mode unattended --installdir /tmp/altera_pro/25.3 --accept_eula 1 --patch_to qprogrammer This problem has been fixed in Quartus® Prime Pro Edition Software version 26.1. The below table lists the patches that are available and the associated patch number. The patch zip files are attached to the KDB below: Quartus Prime Pro Edition Version Patch Number 23.3 0.52 23.4 0.70 23.4.1 1.01 24.1 0.52 24.2 0.64 24.3 0.35 24.3.1 1.29 25.1 0.36 25.1.1 1.31 25.3 0.27 25.3.1 1.0211KViews5likes0CommentsWhy does my Quartus® Prime Installation fail with certificate error: SSL certificate problem: unable to get local issuer certificate (curlcode 60)?
Description Due to a problem in the Quartus® Prime Installer Software, you might see the error message shown below when you click Download & Install. This happens because the certificate bundled with the Quartus® Prime Installer Software is no longer accepted by the Altera® Content Delivery Network (CDN). As a result, secure downloads initiated during the installation process cannot be verified using the outdated certificate. The issue impacts the Installer for the following versions of Quartus software: Operating System Quartus Prime Pro Installer Version(s) Quartus Std/Lite Installer Version(s) Microsoft Windows* 23.3 to 25.3.1 23.1std to 25.1std Linux* 23.3 to 23.4 23.1std The KDB workaround provided below applies to the following versions of Quartus software: Quartus Prime Pro Installer Version(s) Quartus Std/Lite Installer Version(s) KDB workaround applies to 24.3 to 25.3.1 24.1std to 25.1std Note that for all other affected versions not covered by the KDB, you cannot use the installer workaround and must download Quartus software package files individually without using the installer. Separate packages can be found in the Individual Files tab of the Quartus Software Download pages. Resolution To work around this problem, follow these steps: 1. Download and unzip the cacert.zip, which contains the cacert.pem certificate file. 2. Specify the new certificate using one of the following methods: i) Command Line Interface (CLI): Open a command prompt or terminal and run the installer with the--cacert option, pointing to the new certificate file. Windows*: qinst_<version>.exe -sp"--cacert <full path to cacert.pem>" Linux*: qinst_<version>.run -- --cacert <full path to cacert.pem> ii) Graphical User Interface (GUI): - Open the Quartus® Prime Installer, navigate to Settings, locate the CA Certificate Path, and specify the full path to the cacert.pem certificate file. - Then, click Apply > OK. This problem is scheduled to be resolved in a future release of the Quartus® Prime Installer Software.6.8KViews0likes0CommentsWhy does the Quartus® Prime Pro Edition Programmer program pof file to DK-DEV-AGI027RBES unsuccessfully when following the R-Tile FPGA IP for Compute Express Link* (CXL*) Design Example User Guide?
Description Due to a problem in the R-Tile FPGA IP for Compute Express Link* (CXL*) Design Example User Guide, version 1.10.0, you might observe pof programming failure on DK-DEV-AGI027RBES when following the chapter "C. Programming the Agilex™ 7 FPGA Development Kit with an External USB Blaster II", the description for the programming steps of DK-DEV-AGI027R1BES and DK-DEV-AGI027RBES is not separate and clear enough. Resolution To work around this problem, refer to the following instructions: 1. The programming steps for DK-DEV-AGI027R1BES: Connect an external USB blaster II into the J10- External JTAG header. Set the switch SW5.3 to ON (for the first time). Open the Quartus® Prime Pro Edition Software programmer tool. Click the Hardware Setup, and select USB Blaster II. Set the Hardware Frequency to 16000000Hz and uncheck the Auto-adjust frequency at chain scanning box. Click Close. Click Auto Detect and select MAX® 10 device, click OK. Right-click on the MAX® 10 device, and select Edit -> Change File. Select the MAX® 10 SOF file image: max10_bmc_avstx8_test.sof and click Open. Check the Program/Configure box and click Start to start the programming operation. When the operation is 100% successfully completed, click Auto Detect. Click Yes on pop-up windows. Right click on the QSPI_2Gb device, select Edit -> Change File. Select the POF file image: file.pof and click Open. Check Program/Configure box of QSPI_2Gb, P1, OPTION_BITS and click Start to start the programming operation. When the operation is 100% successfully completed, close the programmer window, shut down the platform (Pressing the on-off button on your server instead of typing “poweroff” in command window), set SW5.3 to OFF, disconnect USB Blaster II and boot the platform again. Type “lspci -vt ” in the command window, 0ddb device should be found. 2. The programming steps for DK-DEV-AGI027RBES: Plug in the USB cable to the USB port J8 (when using J10, DIPSWITCH SW5.3 (DK-DEV-AGI027RES and DK-DEV-AGI027R1BES) and SW8.3 (DK-DEV-AGI027RB and DK-DEV-AGI027-RA) should be off). Set the DIPSWITCH SW2 to [on:off:off:X] (the 4th bit is don't care). You can follow this combination which has been verified on the hardware: SW1=ON/Off/Off/Off; SW2=ON/Off/Off/Off; SW3=Off/ON/ON/Off; SW4=Off/Off/ON/Off; SW5=Off/Off/Off/Off; SW8=Off/Off/Off/Off Open the Quartus® Prime Pro Edition Software programmer tool. Click the Hardware Setup, and select USB Blaster II. Set the Hardware Frequency to 16000000Hz and uncheck the Auto-adjust frequency at chain scanning box. Click Close. Click Auto Detect to scan the JTAG devices. If the JTAG chain can not be detected, try setting SW4:3 to OFF. If a device called 1_BIT_TAP appears between AGIB027R29AR0 and VTAP10, ignore it and continue to the next step. Right click the VTAP10 device, Edit > Change Device, change it to MAX 10 > 10M50DAF256. Right click the 10M50DAF256 device, Edit > Attach Flash Device, select Quad SPI Flash Memory QSPI_2Gb. In the Programmer page, click QSPI_2Gb > Change File to select the .pof file. Start the Programmer. When the operation is 100% successfully completed, close the programmer window, and shut down the platform (Pressing the on-off button on your server instead of typing “poweroff” in the command window), if SW4:3 was OFF before, set it to ON, disconnect USB Blaster II and boot the platform again. Type “lspci -vt ” in the command window, 0ddb device should be found.493Views0likes0CommentsSEVERE: An error occurred while running script "::emif_cal_dbg::odt_cal::run_odt_cal_callback
Description Due to a problem in the Intel® Quartus® Prime Pro Edition Software version 20.2, you may see a similar error to the one shown below when a calibration failure occurs in the Intel Stratix® 10 EMIF Unified Calibration Debug Toolkit or the Intel Agilex® 3 FPGA EMIF Debug Toolkit. SEVERE: An error occurred while running script"::emif_cal_dbg::odt_cal::run_odt_cal_callback ": ed_synth_inst: key "65542" not known in dictionary while executing "dict get $dictionary $key" (procedure "::emif_cal_dbg::util::family_expert::get_dict_elem" line 3) invoked from within "::emif_cal_dbg::util::family_expert::get_dict_elem cal_stage [expr $val]" Resolution This example error message displays an error code “65542” when a calibration failure occurs and is not reported by the EMIF Toolkit. For the Intel® Stratix® 10 EMIF Unified Calibration Debug Toolkit, below is a list of the calibration stages and associated error codes that are not reported. Calibration Stage Error Code WRITE_LEVEL_EDGE 65541 WRITE_LEVEL_CLOCK 131077 WRITE_DESKEW_DM_CENTER 65542 MARGINING_DQ 65547 MARGINING_DM 131083 For the Intel Agilex® 3 FPGA EMIF Debug Toolkit, below is a list of the calibration stages and associated error codes that are not reported. Calibration Stage Error Code WRITE_LEVEL_EDGE: 65541 WRITE_LEVEL_CLOCK: 131077 WRITE_DESKEW_DM_CENTER: 65542 READ_DESKEW_DBI_CENTER: 65540473Views0likes0CommentsWhy does Linux report "DMA engine initialization failed" error when EMAC uses GMII interface?
Description When supporting GMII interface for HPS EMAC, there are three clocks exported to FPGA: emac_tx_clk_i(input), emac_rx_clk_i(input), emac_gtx_clk(output) The Linux would report below error if the emac_tx_clk_i clock is not connected correctly: ...... [ 4.291414] socfpga-dwmac ff802000.ethernet: Failed to reset the dma [ 4.297785] socfpga-dwmac ff802000.ethernet eth1: stmmac_hw_setup: DMA engine initialization failed [ 4.306806] socfpga-dwmac ff802000.ethernet eth1: stmmac_open: Hw setup failed ...... Resolution Besides connecting the emac_rx_clk_i(125MHz) for GMII, the emac_tx_clk_i also needs to be connected correctly (2.5MHz or 25MHz), although it is not used in GMII mode. The emac_tx_clk_i requirement information has been added in the HPS document beginning with version 21.2.369Views0likes0CommentsWhy does compilation failure happen when adding assignments of TX equalization to the F-Tile FGT channel for Intel Agilex® 7 FPGA?
Description Due to a problem in the Intel® Quartus® Prime Pro Edition software version 22.2 or 22.3, a compilation error may occur during Logic Generation with some valid assignments of TX equalization combinations on the F-Tile FGT channel. Error example: Error(21842): Support logic cannot be generated because IP components used in the design have conflicting settings Error(21843): Conflict 0 ---------------------------------------------------------------- Error(21843): Rule: gdra_ip758fluxtop::ux3_txeq_main_tap_relationship_rule @ gdr.z1577a.u_ux_quad_2.flux_top Error(21843): {(gdr.z1577a.u_ux_quad_2.flux_top.ux3_txeq_main_tap -> IP_INST[0].hw_ip_top|dut|eth_f_0|hip_inst|per_xcvr[0].x_bb_f_ux|x_bb_f_ux_tx.txeq_main_tap)+(gdr.z1577a.u_ux_quad_2.flux_top.ux3_txeq_post_tap_1 -> IP_INST[0].hw_ip_top|dut|eth_f_0|hip_inst|per_xcvr[0].x_bb_f_ux|x_bb_f_ux_tx.txeq_post_tap_1)+(gdr.z1577a.u_ux_quad_2.flux_top.ux3_txeq_pre_tap_1 -> IP_INST[0].hw_ip_top|dut|eth_f_0|hip_inst|per_xcvr[0].x_bb_f_ux|x_bb_f_ux_tx.txeq_pre_tap_1)+gdr.z1577a.u_ux_quad_2.flux_top.ux3_txeq_pre_tap_2<=32'd47} || gdr.z1577a.u_ux_quad_2.flux_top.ux3_powerdown_mode == TRUE Error(21843): Rule: gdra_ip758fluxtop::ux3_txeq_pre_tap_1_range_rule @ gdr.z1577a.u_ux_quad_2.flux_top Error(21843): gdr.z1577a.u_ux_quad_2.flux_top.ux3_powerdown_mode == FALSE || (gdr.z1577a.u_ux_quad_2.flux_top.ux3_txeq_pre_tap_1 -> IP_INST[0].hw_ip_top|dut|eth_f_0|hip_inst|per_xcvr[0].x_bb_f_ux|x_bb_f_ux_tx.txeq_pre_tap_1) == 0 Error(21843): Input variables: Error(21843): user.bb_f_ux_tx[0] -> IP_INST[0].hw_ip_top|dut|eth_f_0|hip_inst|per_xcvr[0].x_bb_f_ux|x_bb_f_ux_tx Error(21843): is_used == TRUE Error(21843): location == UX11 Error(21843): txeq_main_tap == 40 Error(21843): txeq_post_tap_1 == 13 Error(21843): txeq_pre_tap_1 == 1 Error: Design cannot be programmed onto available F-Tiles because given location constraints are conflicting, or because the design requires more resources compared to what is available on current device Error: Quartus Prime Logic Generation Tool was unsuccessful. 14 errors, 0 warnings Error: Peak virtual memory: 12882 megabytes Error: Processing ended: Fri Sep 30 11:22:52 2022 Error: Elapsed time: 00:01:49 Error: System process ID: 25039 Resolution To work around this problem in the Intel® Quartus® Prime Pro Edition Software version 22.2 or 22.3, follow the steps below: 1. Check the TX equalization setting in F-Tile TX Equalizer Tool 2. Write equalization value to lane register offset 0x47830 This problem has been fixed in the Intel® Quartus® Prime Pro Edition Software version 23.1.365Views0likes0CommentsCan I route the Agilex™ 7 FPGA F-Series device out_refclk_fgt_[i] signal of the F-Tile Reference and System PLL Clocks FPGA IP to the FPGA core logic?
Description No, you cannot route the Agilex™ 7 FPGA F-Series device out_refclk_fgt_[i] signal of the F-Tile Reference and System PLL Clocks FPGA IP to the FPGA core logic. Due to a problem in the Quartus® Prime Pro Edition Software version 24.3 and earlier, Quartus® Prime software will incorrectly compile designs that route the F-Tile Reference and System PLL Clocks FPGA IP out_refclk_fgt_[i] signal to the FPGA core logic. This signal is not intended for this purpose. Resolution To connect an Agilex™ 7 FPGA F-Series device reference clock to the FPGA core logic, you must use the out_coreclk_[i] port of the F-Tile Reference and System PLL Clocks FPGA IP. This problem will be fixed in a future version of the Quartus® Prime Pro Edition Software.320Views0likes0CommentsWhy does the HPS F2H interface give RDATA values without any read request (ARVALID) in the Agilex™ 7 FPGA devices?
Description Due to a problem in the Quartus® Prime Pro Edition Software version 24.1 and earlier, the HPS F2H interface in the Agilex™ 7 FPGA occasionally outputs RDATA values without the presence of a read request signal (ARVALID) for designs targeting the Agilex™ 7 FPGA device. Resolution A patch is available to fix this problem for the Quartus® Prime Pro Edition Software version 24.1. Download and install Patch 0.24 from the appropriate link below. Quartus® Prime Pro Edition Software v24.1 Patch 0.24 for Windows (.exe) Quartus® Prime Pro Edition Software v24.1 Patch 0.24 for Linux (.run) Readme for Quartus® Prime Pro Edition Software v24.1 Patch 0.24 (.txt) This problem is fixed beginning with the Quartus® Prime Pro Software version 24.2.298Views0likes0CommentsWhy don’t I get a programming file when I compile with the Quartus® Prime Pro Edition software version 25.1.1?
Description Beginning with version 25.1.1 of the Quartus® Prime Pro Edition software, pin location assignments and I/O standard assignments are required for a programming file to be generated. If these required assignments are missing, no programming file is generated. You must add the required assignments and recompile your design to generate a programming file. If you do not want to generate a programming file, you may ignore this behavior change. To determine whether your design is missing pin location or I/O standard assignments, review your compilation messages. If either of the following messages was generated during your compile, your design is missing pin location or I/O standard assignments that are required to generate a programming file: Critical Warning: Some pins have incomplete I/O assignments. Refer to the I/O Assignment Warnings report for details Critical Warning: No exact pin location assignment(s) for <number> pins of <number> total pins. For the list of pins, please refer to the I/O Assignment Warnings table in the fitter report Resolution Review the I/O Assignment Warnings report, found in the Place sub-section of the Fitter section of the compilation report. Alternately, review the <revision>.fit.plan.rpt report file. For any pins in the I/O Assignment Warnings report that are reported as “Missing location assignment” or “Missing I/O standard,” add the appropriate location or I/O standard assignment. For help making these assignments, refer to Assigning I/O Pins After adding any required assignments, recompile the design to generate a programming file. This change applies to all device families supported by the Quartus® Prime Pro Edition software, beginning in version 25.1.1. Missing pin location or I/O standard assignments are reported as a critical warning, not an error. If you script the compilation of projects, the exit code of the compilation process still indicates success even if pin location or I/O standard assignments are missing, because missing pin location or I/O assignments are reported as a critical warning, not an error.283Views0likes0CommentsWhy do I see errors like wsl dos2unix create-this-app;./create-this-app --no-make or make: command not found when running Nios® II Software Build Tools for Eclipse on Windows?
Description These problems might be seen in the Quartus® Prime Standard Edition Software version 21.1 when using the Nios® II Software Build Tools for Eclipse in Windows operating system (OS) to build the Nios II processor software. This is due to incorrect WSLENV variables set due to a problem in the Eclipse executables. The following errors might be seen when building the Nios II processor software using Windows Subsystem for Linux (WSL): wsl dos2unix create-this-app;./create-this-app --no-make This error may be prompted when launching the Nios® II Software Build Tools for Eclipse from Windows menu. make: command not found This error may be prompted when launching the Nios® II Software Build Tools for Eclipse from the Nios® II Command Shell. Resolution To work around this problem, download and install the patch for the Quartus® Prime Standard Edition Software v21.1. Download and install Patch for version 21.1 from the appropriate link below. Download the version 21.1 Update for Windows (.exe) Download the Readme for the Quartus® Prime Standard Edition software version 21.1 Update (.txt)259Views0likes0Comments