Verilog HDL Using Quartus Prime
Verilog HDL Using Quartus Prime
1. Download the Intel® Quartus® Prime Lite Edition Design Software Version 20.1.1 from the
following link
https://www.intel.com/content/www/us/en/software-kit/660907/intel-quartus-prime-lite-editio
n-design-software-version-20-1-1-for-windows.html
1 | Page
© Adnan Amin Siddiquee
Simulating Verilog HDL using Quartus Prime
1. Find the following icon on your PC and run the software by double-clicking the icon.
2. For using the Quartus Prime very first time we need to locate the directory of ModelSim Altera.
For that execute Tool → Options → EDA Tool Options and give the proper location of ModelSim
Altera and click OK. Normally the location is
C:\intelFPGA_lite\20.1\modelsim_ase\win32aloem
or
C:\intelFPGA\20.1\modelsim_ase\win32aloem
2 | Page
© Adnan Amin Siddiquee
3. The following window will pop up. Now click on the New project wizard.
3 | Page
© Adnan Amin Siddiquee
5. In the following window change the working directory of the project to your directory (e.g.
D:\150205022 VLSI-2) and give a name to the project as shown and click Next three times.
[Project name must be same as the top module]
6. After clicking Next three times the following window will pop up then choose any device family
according to Device availability and click next. Here “Cyclone-IV E” E4CE6E22C6 model is
selected.
4 | Page
© Adnan Amin Siddiquee
7. Now set the simulation tool as “ModelSim – Altera” , format as “Verilog HDL” and make sure the
“Run gate-level simulation automatically after compilation” check box is not checked in the
EDA tool settings window. After that click Next.
5 | Page
© Adnan Amin Siddiquee
9. Execute File → New. In the New window select the Verilog HDL file and click ok. The editor
window will appear.
10. In the editor window write the Verilog module of your design.
11. Now click on the compilation icon for compiling the design. In this step, the software will ask you
to save the Verilog HDL file. Save it with the identical name of the project file.
12. After successful compilation you will get the following message. Ignore the warnings.
6 | Page
© Adnan Amin Siddiquee
13. The RTL view of the Verilog module can be obtained in Quartus prime by executing Tools →
Netlist Viewers → RTL Viewer.
14. The RTL view of our design will be like the following figure.
15. Now to launch ModelSim, execute Tool→ Run Simulation Tool → RTL Simulation.
7 | Page
© Adnan Amin Siddiquee
16. The ModelSim will be launched, and the following window will open.
17. Now go to the Library window present on the left side of the ModelSim window and execute
rtl_work→ <double click on your project module name>
18. The input and output variables defined in the Verilog will appear in the Objects window.
8 | Page
© Adnan Amin Siddiquee
19. Now select all the input and output variables of the Objects window and by right-clicking on
your mouse execute Add Wave to place them in the Wave window.
20. All the input and output variables will be placed on the wave window and the wave window will
look like the following.
9 | Page
© Adnan Amin Siddiquee
21. Now apply clocks to each input variable. Right-clicking any input variable and from the
popped-up menu execute Modify → Clock.
22. The Define Clock window will appear. Set parameters as per your requirement keep in mind all
the units are in picoseconds by default.
23. After defining all the input clocks, to evaluate the outputs write run 100 ps on the Transcript of
ModelSim. Then the simulation will be performed for 100 ps.
[Give run length according to your requirement.]
Alternatively, we can run the wave output using the Run icon by typing the Run length
10 | Page
© Adnan Amin Siddiquee
24. The wave window will look like the following figure after simulation.
If you need to change the clock pulse you must reset all the clocks before changing clocks otherwise
the inputs and outputs will change after the previous run time which is not a convenient way to
represent the inputs and outputs. The command “restart” is used in the transcript for resetting all
the clocks. Alternatively, restart can be performed by executing Simulate → Restart
I. Select all the input and output variables on the clock and right-click on the mouse and
execute Radix → Binary.
11 | Page
© Adnan Amin Siddiquee
II. After changing the Radix, change the Format type similarly by selecting all input and
output variables on the wave by right-clicking on the mouse and then executing Format
→ Literal.
III. Now on the wave, binary values will be displayed which can be easily analyzed.
12 | Page
© Adnan Amin Siddiquee
To view the output for all the input combinations the run length should be equal to the maximum
period.
As all the units are in milliseconds, for easy visualization we can change the time units of the wave grid
by executing Wave → Wave Preferences → Grid & Timeline → Time units → ms.
Now the ModelSim wave window will look like the following figure.
Similarly, for femtoseconds, nanoseconds, and microseconds, we can use fs, ns, and ms respectively
13 | Page
© Adnan Amin Siddiquee