Verilog 时序逻辑中的传播延迟
我正在构建一个流水线处理器,似乎顺序逻辑正在我的PC中创建一个1周期的延迟,从PCFetch中的值得到更新。我的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个时钟周期 如果
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信号,因为我假设这是你的触发器。您不需要重置组合信号。