Verilog:如果时钟内没有其他内容,则始终阻止创建寄存器保持路径



我最近遇到了这种结构的Verilog代码:


reg flop_a;
always @(posedge clk) begin
if (reset)
flop_a <= 1'b0;
else if (some_condition)
flop_a <= new_value;
end

我会显式编码寄存器的保持路径,但省略"else"条件并暗示保持路径似乎也有效。

为什么这(安全(有效?我在 verilog IEEE 规范对始终块的定义或定义此行为的 if 语句中找不到任何内容。

如果没有else分支,当不满足任何条件时,flop_a不会受到always块的影响,因此它将保持其旧值。 如果添加带有flop_a <= flop_a;else分支,则这是完全相同的行为

最新更新