跳转到内容
新建笔记

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。

两条路径讲的是同一套硬件概念。教程重在循序练习,本组笔记重在现代写法和快速查阅,不需要重复背诵语法。

  1. 语言基础与选择语句:模块、端口、字面量、运算符、begin-end、if/case。
  2. 组合与时序 RTL:阻塞/非阻塞赋值、锁存器和常用模板。
  3. 模块、参数与 generate:结构化复用与 elaboration。
  4. 有限状态机:状态、转移、输出和安全默认值。
  5. 仿真与 Testbench:时钟、激励、自检、断言和边界覆盖。
  • 设计文件使用 .sv,明确启用 SystemVerilog。
  • 一个寄存器只在一个时序块中驱动。
  • 组合块先给默认值,再覆盖特定分支。
  • 时序块用非阻塞赋值;组合块用阻塞赋值。
  • 避免 casex、内部三态、多时钟敏感列表和无约束的异步路径。
  • lint、仿真、CDC 和时序检查都必须进入完成标准。