If statement Verilog:if-without-else-inside-clocked-always块创建寄存器保持路径
我最近遇到了这种结构的Verilog代码:If statement Verilog:if-without-else-inside-clocked-always块创建寄存器保持路径,if-statement,verilog,If Statement,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规范
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规范中对always块的定义或定义此行为的if语句中找不到任何内容。如果没有else分支,当不满足任何条件时,flop_a将不受always块的影响,因此它将保留其旧值。
如果使用flop_a添加else分支,则这是完全相同的行为