【发布时间】:2014-04-07 09:21:03
【问题描述】:
我正在用 VHDL 编写一个简单的 MIPS 架构(仅支持 R 型和 lw/sw 指令)。
我目前在上升沿为每个流水线寄存器计时。但是,我很难决定是在上升沿还是下降沿为寄存器文件、数据存储器和程序计数器计时。
网上查了下,大家一致认为是下降沿写入寄存器文件。但是,在数据存储器方面并不是那么一致:有人说在上升沿触发写入数据存储器,有人说在下降沿,所以我在这里有点困惑,需要一些解释。
哦,我还提到了程序计数器,因为 1 个网站说使用下降沿;对于为什么必须在下降沿为 PC 计时的问题也很困惑。 如果有人感兴趣,那 1 个网站就是这个:https://ls12-www.cs.tu-dortmund.de/daes/en/lehre/downloads/ravi/documentation/pipeline.html
非常感谢。
【问题讨论】:
-
目标技术是什么; FPGA还是ASIC?对整个设计使用相同的时钟使一般设计和时序分析 (STA) 更加容易,因此应该有充分的理由同时使用上升沿和下降沿。您是否有充分的理由,或者这个想法仅基于使用下降沿的寄存器文件的一些示例?
-
目标技术是FPGA。这里引用了我确信对寄存器文件使用下降沿的原因:“一个周期中的寄存器文件写入发生在同一个周期中读取寄存器文件之前。这可以通过在下降沿写入寄存器文件来完成(而不是每个时钟周期的上升沿)。从同一寄存器读取的寄存器文件将在下一个上升沿将其值同步到 ID/EX 流水线寄存器中,确保将刚刚写入的值传递给 EX阶段。”
标签: architecture mips vhdl clock ram