RTL 设计基础
用 SystemVerilog 表达数字逻辑电路。学习类型、位宽、符号、组合与时序逻辑、模块、参数及 generate,再用独立测试平台验证边界和失败情况。最后连接周期脉冲与累加器,完成可复现的运行记录。
你将学到什么
- 明确每个信号的位宽、符号、驱动源、有效时刻和复位值。
- 分别编写完整的组合赋值与时钟状态更新。
- 用参数和 generate 构建静态结构并验证边界配置。
- 用具名端口连接和函数组合模块。
- 编写无竞争的激励和独立参考模型。
- 区分编译、仿真、综合与 DDS 运行的证据。
开始之前
浏览器练习使用教学模型,不会编译或运行 HDL。如需单独运行提供的源代码,请遵循适用于您操作系统的 Digital Design Studio 指南,并在操作要求时登录。
安装与首次启动 ↗ · 下载 ↗课程大纲
- RTL 与模块契约
- RTL:描述并发工作的电路概念
区分软件执行顺序与硬件并行结构,明确当前状态、下一状态和观察时刻。
- 信号与端口:位宽、方向和时间的约定概念
阅读接口约定,区分组合输出与状态输出的验证标准。
- 模块、端口与实例:把连接当作契约概念
用具名连接组合模块,检查单一驱动源与层次边界。
- 理解检查:组合输出与保存输出测验
区分输入变化时刻与寄存器观察时刻。
- 类型、位宽、符号与表达式
- logic、wire、X/Z 与明确的位宽概念
区分类型声明与存储器件,检查常量、比较、扩展和未知值。
- 向量索引、位顺序与符号概念
区分位编号、串行传输顺序与算术解释,阅读数据通路。
- 切片、拼接和重复运算的位宽概念
计算拼接信号的总位宽与数值保留条件,构建数据通路。
- 二进制补码、符号扩展与溢出概念
用公式与反例区分位串的 signed 解释及加法溢出条件。
- 理解检查:范围与显式扩展测验
同时检查加法器输入和输出位宽。
- 完整的组合 RTL 与验证
- 组合 RTL 与完整赋值概念
用条件运算符与 always_comb 表达同一函数,找出导致锁存器的遗漏赋值。
- 编码器与优先级:从多个请求中选择一个概念
区分独热编码器的输入假设,以及优先编码器的 valid 与选择结果。
- MUX 验证:穷举检查与属性概念
分别检查组合输入覆盖率与存储行为,并最小化反例。
- 设计检查:选择电路的等价性与观察时刻测验
区分仅用真值表即可完成的验证,与必须观察时钟的验证。
- 状态、赋值与复位优先级
- 触发器、enable 与控制优先级概念
用下一状态表达式定义保持、装载与复位,避免无意的时钟门控。
- 非阻塞赋值与同时状态更新概念
区分旧值与下一值,准确解读流水线及计数器 RTL。
- 模计数器、饱和计数器与结束脉冲概念
设计最大值处理方式,以及终值计数信号的精确周期。
- 实验:计数器复位、回绕与不变式验证实验
将每个上升沿的状态与参考模型对照,区分初值、复位和位宽的影响。
- 设计检查:位宽、优先级与回绕边界测验
依据给定的状态转移规格,判断边界值与同时到达的控制输入。
- 参数与静态结构生成
- parameter、localparam、$clog2 与边界配置概念
区分运行时输入和静态配置,设计 N=1 与非二次幂计数器的位宽和终止行为。
- generate:用循环构建静态电路概念
用 genvar 与 generate-if 生成具名结构,检查总线 lane 布局。
- function automatic 与表达式复用概念
编写不消耗时间的函数,检查返回值位宽、符号与参考模型独立性。
- 理解检查:N=1 与位宽测验
区分最小存储位宽与实际有效状态数。
- 测试平台与独立验证
- 波形采样时刻与因果关系概念
区分组合稳定、时钟捕获与事件顺序,正确阅读波形。
- 实验:会自行报告失败的测试平台实验
分开 DUT、激励、参考模型和判定,在无竞争的观察时刻检查 reset、enable 与回绕。
- 验证计划、覆盖率与独立参考模型概念
区分测试通过与规格满足,将边界、交叉条件及最小反例纳入验证计划。
- 计数器调试与最小反例概念
设计简短测试,区分复位、enable 与回绕边界错误。
- 理解检查:参考模型与竞争测验
选择独立期望值及边沿更新后的检查时间。
- 模块连接与综合实验
- 状态机:分离状态、转移与输出概念
从规格表编写 FSM,比较 Moore、Mealy 输出、非法状态与请求策略。
- 综合设计:检测可重叠的 101 模式概念
在同一设计中应用状态最小化、输入有效性、寄存输出与独立参考验证。
- Ready/valid 与单槽弹性缓冲区概念
设计可暂停数据通路中无丢失、无重复的传输条件与同时输入输出。
- 乘加流水线与数据对齐概念
按寄存器边界划分运算,使数据、valid 与辅助操作数属于同一事务。
- 综合实验:连接周期脉冲与使能累加器实验
明确用旧值实现模块间传递,比较停顿、连续脉冲和同时复位。
- 工具诊断与结果范围
- Setup、hold 与时序预算概念
区分最大与最小路径延迟,计算独立于时钟频率的 hold 条件。
- 时钟域边界与亚稳态概念
理解两级同步器的适用范围,区分单比特、短脉冲与多比特传输。
- 编译、lint 与综合:诊断能证明什么概念
固定源码列表、top 和语言模式,区分语法、位宽、锁存器诊断与功能验证。
- 运行记录与 DDS 实践衔接概念
整理源码、输入、期望、失败条件和工具版本,提交可复现实验。
- 最终检查:功能通过与运行证据测验
区分本地工具结果和 DDS 免费实践验收。