请教verilog的语句解析.assign a= (b=1)?(c && d) 1'b1:1'b0:1'b0;这两个问号是如何对应给a赋值的?

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/28 01:01:59

请教verilog的语句解析.assign a= (b=1)?(c && d) 1'b1:1'b0:1'b0;这两个问号是如何对应给a赋值的?
请教verilog的语句解析.assign a= (b=1)?(c && d) 1'b1:1'b0:1'b0;
这两个问号是如何对应给a赋值的?

请教verilog的语句解析.assign a= (b=1)?(c && d) 1'b1:1'b0:1'b0;这两个问号是如何对应给a赋值的?
写的代码风格不好,致使别人很难理解,如果加上括号就好理解了.
assign a= (b=1)?((c && d) 1'b1:1'b0) :1'b0; 我在后面加上括号
先判断b的值,不过我认为verilog中的等于应该是==而不是=吧,也可以直接写(b),
1.如果b等于0,则a的值就是0,不管你的cd是多少.
2.如果b=1,则进入我加的括号里面的那个问号判断,这时候再判断c&&d的值,如果是1,a=1,如果是0,a=0
所以我们可以给出真值表 tab
b 0 1 1 1 1
c x 1 0 0 1
d x 1 0 1 0
a 0 1 0 0 0

1111