Verilog 与 SystemVerilog RTL
语言定位
跳转到“语言定位”Verilog/SystemVerilog 是硬件描述语言。可综合 RTL 的目标是描述寄存器、组合逻辑及其连接,不是描述 CPU 上逐句执行的软件。
本组笔记使用 SystemVerilog 的 logic、always_comb 和 always_ff 表达设计意图;若工程只能使用 Verilog-2001,可分别使用 reg/wire、always @(*) 和 always @(posedge clk)。
选择学习路径
跳转到“选择学习路径”- 第一次学习 HDL:按 Verilog-2001 图解教程 的 10 章顺序完成练习,再回到本组笔记迁移到 SystemVerilog。
- 已能阅读 RTL:直接使用下面的 SystemVerilog 主题页,重点掌握工程约束、可复用结构和验证规则。
- 需要准确理解 Verilog-2005 语义:阅读 IEEE 1364-2005 Verilog 学习导读,再用 IEEE 1364-2005 参考地图 定位原标准的 Clause、图、表和 Syntax Box。
两条路径讲的是同一套硬件概念。教程重在循序练习,本组笔记重在现代写法和快速查阅,不需要重复背诵语法。
SystemVerilog 主题顺序
跳转到“SystemVerilog 主题顺序”- 语言基础与选择语句:模块、端口、字面量、运算符、
begin-end、if/case。 - 组合与时序 RTL:阻塞/非阻塞赋值、锁存器和常用模板。
- 模块、参数与 generate:结构化复用与 elaboration。
- 有限状态机:状态、转移、输出和安全默认值。
- 仿真与 Testbench:时钟、激励、自检、断言和边界覆盖。
推荐工程约定
跳转到“推荐工程约定”- 设计文件使用
.sv,明确启用 SystemVerilog。 - 一个寄存器只在一个时序块中驱动。
- 组合块先给默认值,再覆盖特定分支。
- 时序块用非阻塞赋值;组合块用阻塞赋值。
- 避免
casex、内部三态、多时钟敏感列表和无约束的异步路径。 - lint、仿真、CDC 和时序检查都必须进入完成标准。