02HDL 的角色
本站不教语法Verilog / VHDL / SystemVerilog 的具体方言、仿真器开关、综合属性,408 不考,本页也不列。
硬件描述语言用来描述组合云和寄存器,不是在「你正在设计的那颗 CPU」上跑的普通软件。仿真器按时间推进信号;综合器把可综合子集映射成门与触发器。同一种 HDL 可以描述单周期/多周期/流水线,但三者结构与控制不同——多周期需 FSM 与资源复用,流水线需级间寄存器、冒险检测与转发/冲刷。
课设用 HDL 画通路时,对错仍看:写使能何时有效、转发路径接没接、load-use 有没有插入气泡。不要把「代码能仿真」当成「时序已满足」。
03单周期 / 多周期 / 流水线
同一教学 ISA(本书常见版用 MIPS 子集;后版可换 RISC-V / ARM)三种落法。比较要用墙上时间(时钟 × 拍数),不要只比拍数。
单周期
取指、译码、执行、访存、写回塞进一个长时钟。硬件基本不在指令内部复用。时钟下界是最长组合路径,不是「越短越好的主频口号」。
多周期
把阶段拆到若干时钟,ALU 与存储器可以跨拍复用。控制器常是 FSM。此处「指令周期 ≠ 时钟周期」。硬布线在单周期里多是组合译码,经传播延迟后在本周期有效窗口内稳定;微程序则是一条机器指令对应一串微指令,逐条取控存——不要写成「只是多访问一次控存所以慢」。
流水线
IF / ID / EX / MEM / WB 重叠。转发消解部分 RAW;load-use 仍要停顿。经典按序五级中 WAR/WAW 不出现,因为按序发射/完成、读在 ID、写在 WB。加速比不等于级数。乱序执行会让 WAR/WAW 重新成为问题,那是 姚永斌 / CAQA 的超纲层,不能回写改掉五级结论。
单周期·长钟→多周期·FSM→五级重叠
与 COD 分工:COD 回答「为什么要流水、三类冒险是什么」;Harris 回答「PCWrite / MemToReg / ALUSrc 这些选择信号接哪根线」。两本不要互相替代。
章末自测
最长组合路径(加上建立时间等约束)。不是「一条指令对应一个很短的时钟」,也不是机器周期、指令周期三个词随便换。
不等于。要用墙上时间比:时钟×拍数,填满与停顿都进分母。全书与 COD 口径相同。
不能。HDL 描述硬件;408 不考方言。对错看通路与控制时序,不看仿真器绿勾。