Quartus Prime Lite 21.1 零基础实战指南:从Verilog编码到RTL仿真的完整工作流
第一次打开Quartus Prime Lite时,满屏的菜单栏和复杂的选项确实容易让人望而生畏。作为FPGA开发的标准工具链,它其实隐藏着一套清晰的逻辑——只要掌握几个关键节点,就能像搭积木一样完成从代码到仿真的全流程。本文将用一个最简单的与门电路作为案例,带你完整走通这个闭环。
1. 工程创建与环境配置
启动Quartus Prime Lite后,首先需要建立工程容器。不同于普通编程IDE,FPGA开发需要预先声明目标器件型号和仿真工具链。点击菜单栏的File > New Project Wizard,会看到六个配置步骤:
目录设置:建议为每个工程创建独立文件夹,路径不要包含中文或空格。例如:
D:/FPGA_Projects/and_gate项目命名:工程名称建议与顶层模块名保持一致(后续Verilog中的module名称)。例如我们即将创建的与门模块,可以命名为
and_gate。添加已有文件:初次创建保持空白即可,直接点击Next。
器件选择:这是关键步骤,需要根据实际开发板选择:
- Cyclone IV E系列适合入门(如EP4CE6E22C8N)
- 可通过Filters快速筛选封装(Package)和引脚数(Pin count)
EDA工具设置:在Simulation栏选择:
Tool name: ModelSim-Altera Format: Verilog HDL
注意:如果找不到ModelSim-Altera选项,可能需要单独安装Intel FPGA版本的ModelSim并配置环境变量。
完成所有步骤后,可以在Project Navigator中看到工程结构。此时虽然还没有任何设计文件,但已经建立了完整的编译环境框架。
2. Verilog模块开发实战
右击项目名称选择New > Verilog HDL File,我们将创建一个2输入与门模块。以下是完整的代码示例:
module and_gate( input wire a, input wire b, output wire y ); assign y = a & b; endmodule保存文件时需特别注意:
- 文件名必须与module名称一致(本例为
and_gate.v) - 建议存放在工程目录下的
src子文件夹中
编译前需要设置顶层模块:在Project > Set as Top-Level Entity中选择我们的and_gate模块。点击工具栏的蓝色三角形开始编译,在Tasks窗口会显示以下流程:
- Analysis & Synthesis
- Fitter (Place & Route)
- Assembler
- Timing Analyzer
如果看到绿色的Full Compilation was successful提示,说明代码语法和基本逻辑都通过了验证。
3. 电路可视化与RTL分析
Quartus提供强大的电路可视化工具。编译成功后,通过Tools > Netlist Viewers > RTL Viewer可以查看综合后的电路结构。对于我们的与门模块,应该能看到如下元件连接:
| 元件类型 | 输入端口 | 输出端口 |
|---|---|---|
| 输入引脚 | a | - |
| 输入引脚 | b | - |
| AND门 | a, b | y |
| 输出引脚 | - | y |
在RTL视图中右键选择Show Fan-In Nets可以查看信号传播路径。这个简单的例子已经验证了代码被正确综合为数字电路。
4. ModelSim功能仿真全流程
仿真环节是验证逻辑功能的关键步骤。首先需要创建Testbench模板:
- 通过
Processing > Start > Start Test Bench Template Writer生成模板文件 - 在工程目录的
simulation/modelsim文件夹中找到生成的and_gate.vt文件
用以下代码替换模板中的注释部分:
initial begin a = 0; b = 0; #10 a = 1; #10 b = 1; #10 a = 0; #10 $stop; end接下来配置仿真设置:
- 进入
Assignments > Settings > Simulation - 在
Test Benches中添加新条目 - 填写:
- Test bench name: and_gate_tb
- Top level module: and_gate_tb
- 指定刚才编辑的.vt文件路径
最后通过Tools > Run Simulation Tool > RTL Simulation启动ModelSim。在Wave窗口可以看到信号波形变化,通过以下时间点验证与门逻辑:
| 时间(ns) | a | b | y |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 10 | 1 | 0 | 0 |
| 20 | 1 | 1 | 1 |
| 30 | 0 | 1 | 0 |
5. 常见问题排查指南
新手常会遇到几个典型问题:
编译错误:
- 错误:"Cannot find top-level entity"
- 解决方法:确认已通过
Project > Set as Top-Level Entity设置顶层模块
- 解决方法:确认已通过
- 警告:"Following 2 pins have nothing connected"
- 解决方法:在Pin Planner中分配未连接的引脚
仿真失败:
- 现象:ModelSim启动后立即关闭
- 检查路径是否包含中文或特殊字符
- 确认Quartus和ModelSim版本兼容
- 现象:波形无变化
- 检查Testbench中是否添加了
$stop或$finish
- 检查Testbench中是否添加了
性能优化技巧:
- 在
Assignments > Settings > Compiler Settings中开启Optimization Mode为Balanced - 对于复杂设计,可以启用
Parallel Synthesis加速编译
6. 工程管理与版本控制
建议建立规范的目录结构以便长期维护:
and_gate/ ├── doc/ # 设计文档 ├── src/ # 源代码 ├── simulation/ # 仿真文件 ├── output/ # 编译输出 └── quartus/ # 工程文件每次修改前,可以通过Project > Archive Project创建工程快照。对于团队协作,推荐将src和simulation目录纳入Git版本控制,但需要排除生成的中间文件。