Altifigence Academy
数字设计免费 · 中级

RTL 设计:数据通路与流水线

先规定数值约定和周期约定,再设计 ALU、控制器、流水线以及 ready-valid 缓冲。四个可运行的参考模型实验会检查算术边界、停顿、FIFO 和顺序,最后完成流式计算综合项目。

数据通路流水线Ready-valid 握手FIFO功能验证
我的学习

你将学到什么

  • 区分位宽、符号属性、进位和溢出的约定
  • 安排寄存器传送、FSM 控制和同步存储器的时序
  • 计算延迟、吞吐率和启动间隔
  • 正确处理 ready-valid 停顿及 FIFO 边界,避免数据丢失
  • 建立覆盖冒险和复位的记分板检查
  • 利用独立模型验证流式计算综合项目

开始之前

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

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

课程大纲

  1. 数值与算术约定
    • 将方程转化为数据通路约定概念

      在规定算术运算的同时,明确位宽、接收事件和有效结果。

    • 位宽、符号扩展与溢出概念

      用数值示例区分数值解释、扩展与位宽缩窄。

    • 实验:八位 ALU 参考模型实验

      在独立可执行程序中检查 ADD、SUB、AND、XOR、进位和借位。

    • 检查:进位与有符号溢出测验

      区分无符号解释和有符号解释下的数值边界。

  2. 寄存器传送与控制
    • 在时钟沿分析寄存器传送概念

      区分旧状态与下一状态,并追踪使能信号如何保持已存储的值。

    • 用 FSM 调度共享资源概念

      使用一个加法器累加四个数值,同时明确状态转换和采集行为。

    • 存储器请求与响应的时序约定概念

      区分同步读取、延迟后的标签和同地址冲突。

    • 检查:保持已完成的结果测验

      区分 DONE 状态下的交付与下一个请求的接收。

  3. 流水线时序与吞吐率
    • 在流水线边界存储完整事务概念

      将求和与缩放运算分级,同时保持 valid、标签和位宽对齐。

    • 延迟、吞吐率和启动间隔概念

      将单个事务的等待时间与持续完成速率分别计算。

    • 实验:追踪两级流水线与气泡实验

      根据旧状态计算下一状态,并比较输出标签、数值和时钟沿。

    • 检查:II=1 的含义测验

      避免混淆流水线级数与持续吞吐率。

  4. Ready-valid 流量控制
    • 接收事件与停顿期间的稳定性概念

      分配源端与接收端的职责,并保持停顿期间的有效载荷。

    • 设计单槽弹性寄存器概念

      接收输入到空槽,或替换同一时钟沿被取走的数据项。

    • 实验:检查 1024 种停顿模式实验

      用全部十周期 ready 模式测试保持、替换和置空。

    • 检查:停顿事务的计数测验

      区分 valid 持续时间与实际握手次数。

  5. FIFO 与冒险边界
    • FIFO 空、满与同时传送概念

      区分占用量与指针,并规定边界上的入队/出队行为。

    • 依赖、资源冒险与转发概念

      当操作需要先前结果时,比较停顿和转发。

    • 在清空和复位期间保持事务计数概念

      区分取消与交付,并使有效状态和预期队列一致。

    • 检查:满 FIFO 中的替换测验

      计算同时入队和出队时的占用量与顺序。

  6. 验证与流式计算器
    • 结合记分板与局部不变量概念

      从已接收事务检查数值、顺序、占用量和停顿稳定性。

    • 综合实验:FIFO 与两级流式计算器实验

      连接深度二的输入 FIFO、两个弹性级和记分板。

    • 测量性能并审查设计概念

      规定观察窗口、诊断停顿,并明确模型证据的范围。

    • 最终检查:无损停顿与排空测验

      结合算术、未完成事务计数和完成条件。

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