Featured Content
Forum Widgets
Recent Discussions
localparam and parameter values in Synthesis report
I am writing a parameterized Verilog module. In the module I calculate some localparam values using the parameter valued passed. Please seed the code below for example. I want to know the values calculated for localparam during synthesis. But I cannot find that information in reports shown in the Quartus Prime software. I am using Quartus Prime Lite edition. Where can I find that information? module Counter #(CLOCK_FREQUENCY=25000000,TIME=1000000)( input Clk, input Start, output reg End ); localparam megs = (CLOCK_FREQUENCY/1000000)*TIME;"Avalon I2C (Master) IP" is missing from IP Catalog on some 26.1 installations
Our group of Quartus users has encountered some scenarios where the "Avalon I2C (Master) IP" is missing from the IP Catalog of Quartus 26.1 on Windows machines. It is working well on other Windows machines and Linux machines in the same network. A Windows machine missing the IP: A Linux machine where it works; Installing Patch 0.11 did not solve the issue. All relevant environment variables seem to be equal on both working and non-working machines. Any ideas?69Views0likes2CommentsMAX10 ADC - getting it to simulate in Modelsim
Hi, I'm setting up a new project - actually a rework of a 7 year old project were we had massive tools problems with the ADC, some of which I think were specific to Quartus 17. I have regenerated the ADC IP in Quartus 18.1. I have manually created the simulation in Modelsim 10.5b. I have added all the ADC files I can find to the Modelsim project, as shown in the attached screenshot. When I run the simulation, all the ADC outputs are floating. Any clues as to what I am going wrong, please? I tried running the msim_setup.tcl from the Modelsim command line, but this made no difference. Searching this forum, I wonder if it has something to do with fiftyfivenm_adcblock_primitive_wrapper.v, but the solution eludes me, since I have compiled this. Attached: screenshot of my modelsim project, the generated IP code, and my vhdl which instantiates the ADC. Thanks, Rob105Views0likes8CommentsPossible Quartus 24.1 bug?
Here is the code: interface myif #( parameter int W = 1 )(); typedef struct packed { logic [W-1:0] x; } MYSTRUCT; MYSTRUCT s; modport src ( output s ); modport dst ( input s ); endinterface module top; myif #( .w( 5 ) ) test_if(); test test_module ( .foo( test_if ) ); endmodule module test ( myif.dst foo ); typedef foo.MYSTRUCT MYSTRUCT_COPY; $info( "%0d %0d", $bits( foo.MYSTRUCT ), $bits( MYSTRUCT_COPY ) ); MYSTRUCT_COPY q; assign q = foo.s; endmodule Surprisingly, the info message will print "5 1" instead of "5 5". And for the assign Quartus will complain that it had to crop the 5 bit wide foo.s to match the 1 bit wide q. When processing the typedef, Quartus uses the interface definition's default W value instead of the actual value of the actual interface port. I believe that, according to the standard, that is not the expected behaviour.45Views0likes3CommentsQPP 26.1.0 Tools->Generate Simulator Setup Script produces no output
Hello, I have a relatively simple Agilex 3 QPP 26.1.0 project with four IPs on Win 11. Today after adding the latest IP block, running Tools->Generate Simulator Setup Script produces no output when executing the command. I can see from the Quartus log that "--spd" is not passed, and I believe this is the problem. If I run ip-sim-script in the Quartus command line and include the "--spd" option, the correct sim folders and files are produced. I do not see this same problem when working with the same project on Ubuntu Linux. What would cause "--spd" not to be passed? Note that the *.spd files do exist. Thank you.154Views0likes17CommentsKnow-How: Licensing Guide
#sharing #debug #altera #alldevices #license Disclaimer: This article is provided as-is for educational purposes only, without warranty of any kind. Use the information at your own risk. Always verify implementations in your specific environment and consult official Altera documentation for production deployments. Introduction Licensing issues are one of the most common reasons FPGA tools fail to start. The good news is that most problems are configuration related and can be fixed quickly by following a simple, step-by-step approach. Sections 1: Start with the Error Message (Most Important!) Always look at the first licensing error message shown by the tool. This is usually the real issue. Any errors that appear later are usually caused by the first problem. Here’s are common error messages and what they usually mean: Invalid hostid → License does not match your machine ID Cannot find license file → Invalid or missing license path Unable to checkout a license → License not found, in use, or server issue 300: License version is outside the range of the contract → license file generated with blank FLEXlm error: Vendor daemon version is too old → daemon used mismatch or too old Cannot checkout uncounted license in Windows Terminal Services → Questa does not support remote desktop. Most common errors already have known fixes. Try searching the error message or key issue at: Altera Knowledge Base: https://community.altera.com/category/top/kb/knowledge-base Altera Community Forums: https://community.altera.com/category/forums For floating licenses, you can also check the FlexNet error code list: Error Code Descriptions Don’t try to fix everything at once. Fix the first error, then retry. In many cases, the rest will disappear automatically. 2: Check Your License (.dat) File Open the .dat license file using a text editor (for example, Notepad) and verify the following. i. Machine ID (NIC / HOST ID) The license is locked to a specific machine ID. Example in the license file: # Primary Machine ID-NIC ID 12AB34C56EF7 If the Host ID doesn’t match your machine ID, the license will not work. Helpful Tips 1: ----------------------------------------------------- START ----------------------------------------------------- Quartus software can automatically detect the Machine ID. To view this, go to Tools → License Setup, then check Local System Information and select one of the detected NIC IDs. ------------------------------------------------------ END ------------------------------------------------------ ii. License Type Licenses are set up differently, so confirm which type you have.Look for one of these lines: # Fixed Node License → Nodelocked license # Floating Server License → Floating license Nodelocked: Locked to one machine Floating: Served from a license server and shared Make sure you’re following the setup steps that match your license type. iii. Product License Summary Find the Product License Summary section and confirm it lists the tools/IP you’re planning to use. Examples: Quartus® Prime Software (Standard / Pro) Questa® FPGA Starter Edition (SWQUESTA) If a tool or IP is not listed here, it won’t be able to check out a license—even if the license file setup successfully. iv. License Expiration & Maintenance Licenses can look similar but behave very differently. We have: a. Perpetual License Has a Maintenance Expiration date You can use tool versions released before that date Example shown in license file: # Maintenance Expiration of 2026.06 # No license expiration date b. NonPerpetualLicense Has a hard expiration date License stops working after this date Example shown in license file: # License Expires 20Jun2026 Always doublecheck the license expiration & maintenance date before moving on. 3. Verify Environment Variables The tools use environment variables to find the license. If these are wrong, the tools may not find your license—or may use an old license file. Common environment variables: Different tools use different environment variables to locate the license. LM_LICENSE_FILE → Quartus® Prime SALT_LICENSE_SERVER → Questa* FPGA Edition Depending on the license type, they should point to: Nodelocked license: Full path to the .dat file Floating license: port@hostname Examples: LM_LICENSE_FILE=C:\licenses\license.dat LM_LICENSE_FILE=25000@licenseserver Next verify the environment variable. Open Command Prompt and run: echo %LM_LICENSE_FILE% If nothing is printed, the environment variable is either not set or the changes have not taken effect. If it is the latter, close and reopen the command prompt after making the changes. If the variable points to an incorrect location, update it accordingly. Note that outdated or incorrect environment variables are a very common source of issues. Helpful Tips 2: ----------------------------------------------------- START ----------------------------------------------------- There is a quick way to set using command line. Open Command Prompt and run: Windows: setx LM_LICENSE_FILE <path_to_license_file> Linux: setenv LM_LICENSE_FILE "<path_to_license_file>" ------------------------------------------------------ END ------------------------------------------------------ 4. Check the License Server (Floating Licenses Only) If you’re using a floating license, verify the server. On the client machine: Server hostname resolves correctly Network is working Firewall is not blocking the license port On the license server: License server process is running Vendor daemon is running Server log shows no fatal errors Licenses are available (not all checked out) If the server isn’t running properly, clients won’t be able to get licenses. 5. Scenario / Walkthrough i) Floating License Setup Walkthrough A floating license setup walkthrough (Know-How: Set Up a Floating License) is available to guide you through the complete process of configuring a floating license. Know-How: Set Up a Floating License (Step-by‑Step Walkthrough) | Altera Community - 352000 ii) Manual License File Download (License Email Not Received) If you generate a license but do not receive the license email within 5 minutes, you can manually download the license file using the steps below: Log in to SSLC. Navigate to Computers and License Files. Click the Primary Computer ID. Go to the ENTITLEMENTS tab. Select the relevant license (for example, LR‑****). Click the license file link to download the license file. Example shown below: iii) SSLC Access Denied Error Resolution If you encounter the message below when attempting to sign in to SSLC, please refer to the community thread linked below for the solution: Message:“You do not currently have access to this site. Please follow the instructions on the help page to request access.” Self service license server doesn't work | Altera Community - 352404 iv) Changing License Type (Fixed ↔ Floating) To change an existing license type: Log in to SSLC. Navigate to Computers and License Files. Navigate to the license file and click Edit in the drop-down menu. Change the License Type to FIXED or FLOAT, click Save. Now you can generate the license file with the Existing Computer. For your reference, this error occurs when you attempt to create a computer with the same NIC ID. You cannot create two computers with the same NIC ID, even with different license types. *Additionally, changing the license type will use up one rehost count. If all 3 rehost count have been used up, you can not change the license type for the specific computer anymore. Conclusion Licensing issues are almost always setup or configuration problems. Following this guide step-by-step starting with the error message will resolve most issues. If you’re still stuck after trying all the steps, feel free to post your issue on the Altera Community Forum (https://community.altera.com/category/forums) for help. When posting, please try to include the following: i. Error Details The exact licensing error message, copied as is If there are multiple errors, include the first one shown ii. Tool Information Product name (example: Quartus/Questa) Tool version (example: Quartus Pro 25.3/ Questa Altera FPGA Edition 2025.2) Operating system (Windows or Linux, version if known) iii. License Information License type: Nodelocked (fixed)/ Floating (network) Purchased / Evaluation license If possible, a copy of the license file (.dat) iv. What You’ve Already Tried Steps you have already checked or attempted Any workaround that partially worked The more complete your post, the faster the community (and Altera support staff) can help. Additional Altera Support Webpages For further information related to licensing, you may check out Altera Licensing Webpages for the wholesome experiences to get your FPGA licensing product setup and running with minimal hassle: FPGA Licensing Support Center Quartus® Prime Software Licensing Questions and Answers Additionally, we have FPGA Software Download and Installation Support webpage: FPGA Software Download and Installation Support Self Service Licensing Center (SSLC) Issues For issue related to the SSLC, please contact Customer Service if you encounter any of the following: Can’t find a product in SSLC Errors when generating a license file Errors when renewing a license file Unable to generate a companion or temporary license Unable to update license users or delegate administrators Need to transfer license ownership between accounts Contact Altera Customer Service here: https://licensing.altera.com/sslc/s/contact-customer-service For account login issue, please mail to: [email protected] License Purchase Inquiries For purchasing licenses, pricing questions, or commercial inquiries, please contact an Altera Authorized Distributor: https://www.altera.com/contact487Views0likes0CommentsQuartus 26.1 type inheritance bug.
An interface defines a parametrised type. A module instantiates the interface with a certain parameter value. Thet interface is connected to a module port of an instantiated module. That module, in turn, extracts the (already parametrised) type from its module port. It then contains a nested module, which inherits every type definition from the enclosing scope. And it all works, if the enclosing scope explicitly defines the types. But if the type is the one that has been extracted from the module port interface, then the plot thickens. Apparently, the nested module knows the size of the type it inherited, but does not know its structure members. And only if the inherited type was extracted from an interface. Attached is a project archive, containing a demo SV file and the settings. Not much is set (read: nothing but the chip type), as the code does not pass the compilation phase, but anyway. The demo code is really short, just 1 SV file, maybe 50 actual code lines, plus lots of comments.Solved133Views0likes12CommentsSOLVED: BSP Editor NullPointerException on Debian 13 Linux
SOLVED: BSP Editor "New BSP" menu command is grayed out, so can't make any new BSP's, and opening any existing one from another computer throws: SEVERE: Available BSP type values for the --type argument are: [] SEVERE: BSP type "hal2" unknown. SEVERE: NullPointerException Based on other forum posts with a similar error, it seems like this is because the BSP Editor couldn't locate some of its own files. That seems likely here too since this is the first time it's used on this computer. But there's no problematic install path etc since I used the default. THERE ARE NO SPACES IN THE INSTALL PATH NOR THE PROJECT PATH. Everything else is working already for the Max 10: I can generate with Platform Designer, synthesize with Quartus, program SRAM with SignalTap, debug Nios V with RiscFree. Details are: Quartus Prime Lite 25.1std.0 Build 1129 10/21/2025 SC Lite Patches: None OS: Debian 13. This is what Ubuntu is based on, so it's very similar. And like I said everything else already works. USB came online already, not too hard. All it took was the Altera udev rules file 92 as usual, and the correct LD_LIBRARY_PATH so jtagd could find its own shared libs. Installed quartus into regular user account, not whole system, not as root. This is offered as an option in the installer if I recall correctly. Install path is the installer's default: /home/myuser/altera_lite/25.1std The project files are irrelevant here, since BSP Editor is already off-track as soon as it launches. "New BSP" is grayed out. SOLVED: BSP Editor is unable to find its own files without Altera's environment vars, which are provided when running inside niosv-shell. That's nonsensical to me, since any brain-dead program off the street can detect where its own binary loaded from, on any OS, and walk up the path from there to find the rest of its files, as a default if no env vars were provided. That's the first line of every binary or Tcl script I've ever written. Quartus main GUI seems to do it exactly that way. Anyone else struggling with this inexplicable rough edge should make sure your desktop's launcher icon invokes niosv-shell first, like this: altera_lite/25.1std/niosv/bin/niosv-shell --run altera_lite/25.1std/niosv/bin/niosv-bsp-editor To Altera: if you're struggling to maintain or improve your software because it relies on Tcl, contact me through my forum account. I could clean up a whole mess of rough edges like this one, and some other much-needed improvements.7Views0likes0CommentsStarting Quartus GUI fails in docker version
Hi, Recently I found out Quartus is available for docker. I started to test and compile process worked well on an existing design with 25.1 Standard Edition on both native SUSE Linux and WSL (SUSE as well). But when I wanted to start the GUI, I got back the following error (in both cases): /mnt/c/Windows/system32> docker run --net=host alterafpga/quartus-std:25.1std-all quartus *** Fatal Error: Segment Violation at (nil) Module: quartus Stack Trace: 0x289a2: abort + 0x182 (c.so.6) 0xae55a: QtPrivate::lcNativeInterface() [clone .cold] (Qt6Core.so.6) 0xaedc4: QMessageLogger::warning(char const*, ...) const (Qt6Core.so.6) 0xf9dc2: QGuiApplication::restoreOverrideCursor() [clone .cold] (Qt6Gui.so.6) 0x18e5a1: QGuiApplicationPrivate::createPlatformIntegration() + 0x641 (Qt6Gui.so.6) 0x18ef00: QGuiApplicationPrivate::createEventDispatcher() + 0x30 (Qt6Gui.so.6) 0x1461f5: QCoreApplicationPrivate::init() + 0xbe5 (Qt6Core.so.6) 0x1921b3: QGuiApplicationPrivate::init() + 0x33 (Qt6Gui.so.6) 0x18bc59: QApplicationPrivate::init() + 0x9 (Qt6Widgets.so.6) 0xb3899: AFCQ_APP::AFCQ_APP(int&, char**) + 0x13 (gcl_afcq) 0x6863a: QUI_APP::QUI_APP(int&, char**) + 0x1e (sys_qui) 0x14fb9: QGQ_APP::QGQ_APP(int&, char**) + 0x9 (sys_qgq) 0x38b8: qgq_main(int, char const**) + 0x48 (quartus) 0x3e540: msg_main_thread(void*) + 0x10 (ccl_msg) 0x5c1c: thr_final_wrapper + 0xc (ccl_thr) 0x3e60a: msg_thread_wrapper(void* (*)(void*), void*) + 0x6e (ccl_msg) 0xc046: mem_thread_wrapper(void* (*)(void*), void*) + 0x96 (ccl_mem) 0x9188: err_thread_wrapper(void* (*)(void*), void*) + 0x27 (ccl_err) 0x5c5f: thr_thread_wrapper + 0x15 (ccl_thr) 0x4050a: msg_exe_main(int, char const**, int (*)(int, char const**)) + 0xa8 (ccl_msg) 0x39d5: main + 0x26 (quartus) 0x2a28b: __libc_start_main + 0x8b (c.so.6) 0x37aa: _start + 0x2a (quartus) End-trace Is this a compatibility issue with my Linux version? Or do I make something wrong? Best regards, Istvan22Views0likes2CommentsQuesta-ModelSim UI scaling problems in Linux
Hello Has anybody been able to solve the issue of UI of Questa not scaling correctly on linux with wayland? I am using Ubuntu 26.04 with wayland and UI is just tiny, icons, are so small i cannot read any text. When opening a new project, file explorer is also tiny. Fonts i could change in the config file but icons, menus and everything else is just extremely small. Problem is even worse on high resolution displays. Regards, Haris52Views0likes2Comments