跳转到内容
新建笔记

Verilog 语法系统教程

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

从软件顺序执行转向硬件并行

完成本系列后,你应该能够:

  • 看懂常见 Verilog-2001 模块,知道每条语句可能综合成什么硬件;
  • 独立编写组合逻辑、计数器、寄存器、状态机和模块层次;
  • 正确选择 wire/reg、assign/always、=/<=;
  • 识别位宽、符号扩展、锁存器、组合环路等高频问题;
  • 为小型模块编写 testbench,通过波形和自动检查验证功能;
  • 把代码按可维护的 FPGA 工程方式组织起来。
顺序笔记学习结果
1硬件思维、并行执行与模块不再把 Verilog 当 C 语言
2四态逻辑、位宽、进制与有符号数能准确读写每一个常量
3wire、reg、parameter、端口与模块能写出完整模块接口
4运算符、表达式与位宽推导能从表达式想到硬件
5连续赋值与组合逻辑能写 MUX、译码器和比较器
6时序逻辑与阻塞/非阻塞赋值能写寄存器、计数器和移位寄存器
7条件、case、循环与 generate能描述规则、重复的硬件结构
8函数、任务、编译指令与 testbench能进行可重复的仿真验证
9状态机与模块化设计能拆分并控制多步骤功能
10综合项目:可配置 LED 闪烁器完成 RTL、testbench 与工程规范闭环

每篇按下面的循环学习,不要只阅读:

  1. 先看图,用一句话说出电路的数据流。
  2. 手写示例,不要直接复制。
  3. 在仿真器中修改一个条件,预测波形后再运行。
  4. 完成文末练习,并解释代码会生成什么硬件。
  5. 卡住时回到“输入、输出、状态、时钟”四个问题。

判断自己是否真的学会:不是能背出语法,而是看到 RTL 时能画出近似电路,看到电路时能写出结构清楚的 RTL。

本系列以 Verilog-2001 为主,因此使用 reg、wire、always @(*)。你以后会在 SystemVerilog 中看到 logic、always_comb、always_ff 等更现代的写法;概念相通,但本系列先固定一种语法,减少初学时的混乱。

开始第一篇:硬件思维、并行执行与模块