I currently have a Altera Cyclone IV FPGA development board and since it is winter break, I decided to code some SystemVerilog modules on it to refresh my RTL design skill.

Install Quartus Prime Lite

First we need to install the Quartus Prime Lite, which is a free to use FPGA IDE from Intel that support Cyclone IV and V. To install it on Linux, simply unzip the downloaded compressed file and run ./setup.sh in the folder and follow the instructions.

Creating a project

To create a project, click File->New Project Wizard and select the project folder along with the top-level design name. The prompt will then ask for whether create an empty project or from some templates. After the template, you will need to select the chip on your development board. Make sure to double check for the chip name and any postfix.

Then, for the EDA Tool Settings, select Questa Intel FPGA for the Simulation tool, which will enable us to run timing simulation on our design, and hit next until the wizard finishes.

To set the testbench file for the top-level module, go to Assignments->Settings->EDA Tool Settings->Simulation and specify the testbench file in the NativeLink Settings. The simulation tool will be able to recognize the testbench and initiate tests.

Missing license for simulation

When I tried to simulate my SystemVerilog code, I encountered the following error:

Error: Error: Can't launch Questa Intel FPGA Simulation software -- make sure the software is properly installed and the environment variable LM_LICENSE_FILE or MGLS_LICENSE_FILE points to the correct license file.

It looks like although the during the installation the script states you do not need a license for QuestaSim intel FPGA starter edition, you will still need to obtain a free one-year license from the intel Self Service Licensing Center per Questa-Intel FPGA Edition Software page. You can renew the license in SSLC annually for future use.

After downloading the license file to your workstation, you can add a line at your .bashrc to be able to launch Quartus from commandline recognizing the license file.