一、问题描述
if 语句通常创建一个 2 对 1 多路复用器,如果条件为 true,则选择一个输入,如果条件为 false,则选择另一个输入。
always @(*) begin
if (condition) begin
out = x;
end
else begin
out = y;
end
end
这等效于使用带有条件运算符的连续赋值:
assign out = condition ? (x : y);
使用if语句不当时会产生不想要的锁存器,想要if语句生成组合逻辑必须让其所有情形下都有对应的分支语句。文章来源:https://www.toymoban.com/news/detail-739994.html
构建一个 2 对 1 多路复用器,在 a 和 b 之间进行选择。选择 b 是否两者都 sel_b1 sel_b2 为 true。否则,请选择 a 。执行两次相同的操作,一次使用 assign语句,一次使用 if 过程语句。
文章来源地址https://www.toymoban.com/news/detail-739994.html
二、verilog源码
到了这里,关于hdlbits系列verilog解答(always块if语句)-31的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!