Verilog 语法系统教程
这套教程把《达芬奇 Pro 之 FPGA 开发指南》的“Verilog 语法篇”重新组织成一条适合零基础学习者的路径。它不是语法表的简单摘录,而是不断回答三个问题:这段代码描述什么电路、为什么这样写、怎样证明它写对了。

学完能做到什么
跳转到“学完能做到什么”完成本系列后,你应该能够:
- 看懂常见 Verilog-2001 模块,知道每条语句可能综合成什么硬件;
- 独立编写组合逻辑、计数器、寄存器、状态机和模块层次;
- 正确选择
wire/reg、assign/always、=/<=; - 识别位宽、符号扩展、锁存器、组合环路等高频问题;
- 为小型模块编写 testbench,通过波形和自动检查验证功能;
- 把代码按可维护的 FPGA 工程方式组织起来。
学习顺序
跳转到“学习顺序”| 顺序 | 笔记 | 学习结果 |
|---|---|---|
| 1 | 硬件思维、并行执行与模块 | 不再把 Verilog 当 C 语言 |
| 2 | 四态逻辑、位宽、进制与有符号数 | 能准确读写每一个常量 |
| 3 | wire、reg、parameter、端口与模块 | 能写出完整模块接口 |
| 4 | 运算符、表达式与位宽推导 | 能从表达式想到硬件 |
| 5 | 连续赋值与组合逻辑 | 能写 MUX、译码器和比较器 |
| 6 | 时序逻辑与阻塞/非阻塞赋值 | 能写寄存器、计数器和移位寄存器 |
| 7 | 条件、case、循环与 generate | 能描述规则、重复的硬件结构 |
| 8 | 函数、任务、编译指令与 testbench | 能进行可重复的仿真验证 |
| 9 | 状态机与模块化设计 | 能拆分并控制多步骤功能 |
| 10 | 综合项目:可配置 LED 闪烁器 | 完成 RTL、testbench 与工程规范闭环 |
推荐学习方法
跳转到“推荐学习方法”每篇按下面的循环学习,不要只阅读:
- 先看图,用一句话说出电路的数据流。
- 手写示例,不要直接复制。
- 在仿真器中修改一个条件,预测波形后再运行。
- 完成文末练习,并解释代码会生成什么硬件。
- 卡住时回到“输入、输出、状态、时钟”四个问题。
判断自己是否真的学会:不是能背出语法,而是看到 RTL 时能画出近似电路,看到电路时能写出结构清楚的 RTL。
版本边界
跳转到“版本边界”本系列以 Verilog-2001 为主,因此使用 reg、wire、always @(*)。你以后会在 SystemVerilog 中看到 logic、always_comb、always_ff 等更现代的写法;概念相通,但本系列先固定一种语法,减少初学时的混乱。