8.1.1.1 取指与译码 8.1.1.1 取指与译码:当PC跳转错了一拍,整个流水线就在沉默中崩塌 你有没有见过这样的场景? 凌晨两点,FPGA原型验证平台上的RISC-V核突然卡死——不是崩溃,不是报错,而是像被按下了暂停键:指令计数器( )停在某个地址不动了, 输出全零, 信号持续拉低,而上游的指令缓存明明还在稳定供数。你抓着逻辑分析仪探针,在波形里翻了三遍时序,发现一个微小却致命的事实:取指阶段的PC更新发生在时钟上升沿,但译码阶段的指令寄存器采样却发生在同一周期的下降沿——而这两者之间,恰好隔着一个未被显式建模的组合路径延迟。 这不是教科书里的“理想流水线”,这是真实世界里,工程师用示波器和ILA(Integrated Logic Analyzer)一帧一帧抠出来的血泪现场。