Altifigence Academy
数字设计免费 · 基础

RTL 设计基础

用 SystemVerilog 表达数字逻辑电路。学习类型、位宽、符号、组合与时序逻辑、模块、参数及 generate,再用独立测试平台验证边界和失败情况。最后连接周期脉冲与累加器,完成可复现的运行记录。

SystemVerilog模块设计测试平台
我的学习

你将学到什么

  • 明确每个信号的位宽、符号、驱动源、有效时刻和复位值。
  • 分别编写完整的组合赋值与时钟状态更新。
  • 用参数和 generate 构建静态结构并验证边界配置。
  • 用具名端口连接和函数组合模块。
  • 编写无竞争的激励和独立参考模型。
  • 区分编译、仿真、综合与 DDS 运行的证据。

开始之前

浏览器练习使用教学模型,不会编译或运行 HDL。如需单独运行提供的源代码,请遵循适用于您操作系统的 Digital Design Studio 指南,并在操作要求时登录。

安装与首次启动 ↗ · 下载 ↗

课程大纲

  1. RTL 与模块契约
    • RTL:描述并发工作的电路概念

      区分软件执行顺序与硬件并行结构,明确当前状态、下一状态和观察时刻。

    • 信号与端口:位宽、方向和时间的约定概念

      阅读接口约定,区分组合输出与状态输出的验证标准。

    • 模块、端口与实例:把连接当作契约概念

      用具名连接组合模块,检查单一驱动源与层次边界。

    • 理解检查:组合输出与保存输出测验

      区分输入变化时刻与寄存器观察时刻。

  2. 类型、位宽、符号与表达式
    • logic、wire、X/Z 与明确的位宽概念

      区分类型声明与存储器件,检查常量、比较、扩展和未知值。

    • 向量索引、位顺序与符号概念

      区分位编号、串行传输顺序与算术解释,阅读数据通路。

    • 切片、拼接和重复运算的位宽概念

      计算拼接信号的总位宽与数值保留条件,构建数据通路。

    • 二进制补码、符号扩展与溢出概念

      用公式与反例区分位串的 signed 解释及加法溢出条件。

    • 理解检查:范围与显式扩展测验

      同时检查加法器输入和输出位宽。

  3. 完整的组合 RTL 与验证
    • 组合 RTL 与完整赋值概念

      用条件运算符与 always_comb 表达同一函数,找出导致锁存器的遗漏赋值。

    • 编码器与优先级:从多个请求中选择一个概念

      区分独热编码器的输入假设,以及优先编码器的 valid 与选择结果。

    • MUX 验证:穷举检查与属性概念

      分别检查组合输入覆盖率与存储行为,并最小化反例。

    • 设计检查:选择电路的等价性与观察时刻测验

      区分仅用真值表即可完成的验证,与必须观察时钟的验证。

  4. 状态、赋值与复位优先级
    • 触发器、enable 与控制优先级概念

      用下一状态表达式定义保持、装载与复位,避免无意的时钟门控。

    • 非阻塞赋值与同时状态更新概念

      区分旧值与下一值,准确解读流水线及计数器 RTL。

    • 模计数器、饱和计数器与结束脉冲概念

      设计最大值处理方式,以及终值计数信号的精确周期。

    • 实验:计数器复位、回绕与不变式验证实验

      将每个上升沿的状态与参考模型对照,区分初值、复位和位宽的影响。

    • 设计检查:位宽、优先级与回绕边界测验

      依据给定的状态转移规格,判断边界值与同时到达的控制输入。

  5. 参数与静态结构生成
    • parameter、localparam、$clog2 与边界配置概念

      区分运行时输入和静态配置,设计 N=1 与非二次幂计数器的位宽和终止行为。

    • generate:用循环构建静态电路概念

      用 genvar 与 generate-if 生成具名结构,检查总线 lane 布局。

    • function automatic 与表达式复用概念

      编写不消耗时间的函数,检查返回值位宽、符号与参考模型独立性。

    • 理解检查:N=1 与位宽测验

      区分最小存储位宽与实际有效状态数。

  6. 测试平台与独立验证
    • 波形采样时刻与因果关系概念

      区分组合稳定、时钟捕获与事件顺序,正确阅读波形。

    • 实验:会自行报告失败的测试平台实验

      分开 DUT、激励、参考模型和判定,在无竞争的观察时刻检查 reset、enable 与回绕。

    • 验证计划、覆盖率与独立参考模型概念

      区分测试通过与规格满足,将边界、交叉条件及最小反例纳入验证计划。

    • 计数器调试与最小反例概念

      设计简短测试,区分复位、enable 与回绕边界错误。

    • 理解检查:参考模型与竞争测验

      选择独立期望值及边沿更新后的检查时间。

  7. 模块连接与综合实验
    • 状态机:分离状态、转移与输出概念

      从规格表编写 FSM,比较 Moore、Mealy 输出、非法状态与请求策略。

    • 综合设计:检测可重叠的 101 模式概念

      在同一设计中应用状态最小化、输入有效性、寄存输出与独立参考验证。

    • Ready/valid 与单槽弹性缓冲区概念

      设计可暂停数据通路中无丢失、无重复的传输条件与同时输入输出。

    • 乘加流水线与数据对齐概念

      按寄存器边界划分运算,使数据、valid 与辅助操作数属于同一事务。

    • 综合实验:连接周期脉冲与使能累加器实验

      明确用旧值实现模块间传递,比较停顿、连续脉冲和同时复位。

  8. 工具诊断与结果范围
    • Setup、hold 与时序预算概念

      区分最大与最小路径延迟,计算独立于时钟频率的 hold 条件。

    • 时钟域边界与亚稳态概念

      理解两级同步器的适用范围,区分单比特、短脉冲与多比特传输。

    • 编译、lint 与综合:诊断能证明什么概念

      固定源码列表、top 和语言模式,区分语法、位宽、锁存器诊断与功能验证。

    • 运行记录与 DDS 实践衔接概念

      整理源码、输入、期望、失败条件和工具版本,提交可复现实验。

    • 最终检查:功能通过与运行证据测验

      区分本地工具结果和 DDS 免费实践验收。

你的选择适用于此浏览器,可随时在页脚更改。