Verilog 时序逻辑中的传播延迟

Verilog 时序逻辑中的传播延迟,verilog,Verilog,我正在构建一个流水线处理器,似乎顺序逻辑正在我的PC中创建一个1周期的延迟,从PCFetch中的值得到更新。我的verilog代码如下 always@(posedge clk) begin if(rst) PC <= 0; else PC <= PCFetch; end 始终@(posedge clk) 开始 如果(rst) PC在顺序逻辑中总是会有传播延迟。顺序逻辑是指在两个触发器之间传播的逻辑。信号在两个触发器之间传播的最快时间为1个时钟周期 如果

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

always@(posedge clk)
begin
   if(rst)
     PC <= 0;
   else
    PC <= PCFetch;
end
始终@(posedge clk)
开始
如果(rst)

PC在顺序逻辑中总是会有传播延迟。顺序逻辑是指在两个触发器之间传播的逻辑。信号在两个触发器之间传播的最快时间为1个时钟周期

如果你不想使用顺序逻辑,你可以使用组合逻辑。对于上面的示例,它如下所示:

assign PC = PCFetch;

这将不会在一个始终块中

我使用了分配PC=rst?16'b0:PCFetch;这应该和我的顺序块right/@kype的逻辑相同,你真的应该重置你的PCFetch信号,因为我假设这是你的触发器。您不需要重置组合信号。