如何为以下情况创建平衡逻辑(case
)而不是优先级(if .. else
)?
我知道当我更改以下优先级逻辑时,我可以获得平衡逻辑
if(a == 2'b00) out = 1;
else if(a == 2'b01) out = 4'b0010;
else if(a == 2'b10) out = 4'b0100;
else if(a == 2'b11) out = 4'b1000;
要
case(a)
2'b00: out = 1;
2'b01: out = 2;
2'b10: out = 4;
2'b11: out = 8;
endcase
但是如果优先级逻辑是这样的话,我怎么能得到平衡逻辑?
if(a) out = 1;
else if(b) out = 4'b0010;
else if(c) out = 4'b0100;
else if(d) out = 4'b1000;
答案 0 :(得分:3)
怎么样:
case (1'b1)
a:out = 1;
b:out = 4'b0010;
c:out = 4'b0100;
d:out = 4'b1000;
endcase
有关优先权的问题,请参阅here。