翻译Verilog中的条件运算符



我刚开始使用verilog,在我正在研究的一个项目中遇到了这段代码。即使在查找运算符的含义后,我也很难理解它。

assign sec_next = (clr || sec_reg == divisor && (state_reg == on)) ? 4'b0 : (state_reg == on) ? sec_reg + 1 : sec_reg;

有人能把它翻译成if else语句吗?这样我就能理解了?

always@* begin
if(clr || (sec_reg == divisor)&&(state_reg == on))
sec_next = 4'b0;
else if((state_reg == on))
sec_next = sec_reg + 1;
else  sec_next = sec_reg;
end

希望这能消除你的疑虑!!了解verilog中的三元运算符。

最新更新