顺序逻辑中的传播延迟

时间:2013-11-14 12:01:04

标签: verilog

我正在建立一个流水线处理器,似乎顺序逻辑在我的PC中创建一个1周期的延迟,从PCFetch中的值更新。我的verilog代码如下

always@(posedge clk)
begin
   if(rst)
     PC <= 0;
   else
    PC <= PCFetch;
end

PCFetch是另一个实例化模块的输出。因此,假设时钟周期X,PCfetch更新为0002.然而,PC的更新仅在时钟周期x + 1发生。我听说这是由于顺序逻辑导致的传播延迟。有没有办法解决它。

1 个答案:

答案 0 :(得分:0)

您总是会在顺序逻辑中出现传播延迟。顺序逻辑意味着在两个触发器之间传播的逻辑。信号传播的最快时间是两个触发器之间的1个时钟周期。

如果您不想使用顺序逻辑,则可以使用组合(组合)逻辑。对于上面的例子,它看起来像这样:

assign PC = PCFetch;

这不会一直存在。