给FPGA新手的保姆级教程:用Quartus II 13.0和ModelSim-Altera点亮第一个Verilog HDL工程
给FPGA新手的保姆级教程:用Quartus II 13.0和ModelSim-Altera点亮第一个Verilog HDL工程
第一次接触FPGA开发,面对复杂的工具链和陌生的硬件描述语言,难免会感到无从下手。本文将带你从零开始,完成第一个Verilog HDL工程的创建、编码、仿真全流程,并深入解释每个步骤背后的设计逻辑,帮你避开新手常踩的坑。
1. 环境准备与项目结构规划
在开始编码之前,合理的项目结构规划能大幅提升后续开发效率。与软件开发不同,FPGA项目涉及设计文件、工程配置、仿真脚本和文档等多类资源,混放在同一目录下会导致管理混乱。
推荐采用以下目录结构(以and_gate项目为例):
and_gate/ ├── doc/ # 存放设计文档、波形截图等 ├── prj/ # Quartus工程文件(.qpf) ├── sim/ # ModelSim仿真脚本及波形文件 └── src/ # Verilog源代码(.v)为什么需要手动分类?Quartus II不会自动归类不同文件类型,而仿真工具生成的临时文件可能多达数百个。提前建立分类目录可以:
- 避免工程文件污染源代码
- 方便版本控制(如Git)忽略临时文件
- 团队协作时快速定位资源
重要提示:所有路径必须使用英文命名,避免中文或特殊字符。Quartus对非ASCII字符路径的支持不稳定,可能导致工程无法正常加载。
2. 创建Quartus II工程
启动Quartus II 13.0后,通过File > New Project Wizard进入工程创建流程:
2.1 基础配置
- 工程路径:选择之前创建的
prj目录 - 工程名称:建议与顶层模块名一致(本例用
and_gate) - 顶层实体名:保持与工程名相同(Verilog中的
module名)
2.2 器件选择
对于Cyclone IV E系列开发板(如ZX-1),关键参数如下:
| 参数项 | 推荐值 | 说明 |
|---|---|---|
| Family | Cyclone IV E | 芯片系列 |
| Device | EP4CE6E22C8 | 具体型号(根据板卡) |
| Package | FBGA | 封装类型 |
| Pin count | 144 | 引脚数量 |
| Speed grade | 8 | 速度等级 |
若不确定器件型号,可查看开发板丝印或参考厂商文档。选错型号会导致后续引脚分配失败。
2.3 仿真工具设置
在EDA Tool Settings页面配置:
Tool Name: ModelSim-Altera Format: Verilog HDL这一步决定了后续能否直接调用ModelSim进行仿真。如果未正确设置,需要手动编写do文件启动仿真。
3. 编写第一个Verilog模块
在src目录下新建and_gate.v文件,输入以下代码:
module and_gate( input a, input b, output y ); assign y = a & b; endmodule代码解析:
module定义了一个名为and_gate的硬件模块input/output声明端口方向assign持续赋值语句实现与门逻辑
保存后需将其设置为顶层实体:
- 在Project Navigator中右键文件
- 选择
Set as Top-Level Entity
4. 功能仿真验证
4.1 创建测试平台
在ModelSim中新建testbench.v并保存到sim目录:
`timescale 1ns/1ps module tb_and_gate; reg a, b; wire y; and_gate uut (.*); // 实例化被测模块 initial begin a = 0; b = 0; #10 a = 1; #10 b = 1; #10 a = 0; #10 $finish; end endmodule4.2 运行仿真
通过Quartus调用ModelSim:
- 点击
Tools > Run Simulation Tool > RTL Simulation - 在ModelSim控制台输入:
vlib work vlog ../src/and_gate.v vsim tb_and_gate add wave * run 50ns预期波形应显示输入ab变化时,输出y符合与门真值表:
| a | b | y |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
5. 常见问题排查
5.1 仿真无法启动
- 症状:点击RTL Simulation无反应
- 检查:
Tools > Options > General > EDA Tool Options路径是否正确 - 解决方案:手动指定ModelSim-Altera安装路径(通常为
.../altera/13.0/modelsim_ase/win32aloem)
5.2 综合警告
- 典型警告:
Warning: No clocks defined in design - 原因:纯组合逻辑电路不需要时钟
- 处理:可暂时忽略,时序电路需正确定义时钟域
5.3 引脚分配错误
- 症状:程序下载后硬件无反应
- 验证步骤:
- 通过
Assignments > Pin Planner确认引脚号 - 核对开发板原理图
- 检查
Assignment Editor中的I/O标准(如LVCMOS3.3V)
- 通过
