Verilog语言中的一道课后习题不是很清楚

根据SEL列与OP列的对应关系,在模块的空括号中填入相应的值。
SEL:OP
000:1
001:3 casex(SEL)
010:1 3'b( ): OP=3;
011:3 3'b( ): OP=1;
100:0 3'b( ): OP=0;
101:3 endcase
110:0
111:3
标准答案为啥是
casex(SEL)
3'bXX1: OP=3;
3'b0X0: OP=1;
3'b1X0: OP=0;
endcase

答案:
casex(SEL)
3'b xx1 : OP=3;
3'b 0x0: OP=1;
3'b 1x0: OP=0;
endcase
你首先看OP=3的SEL ,SEL[2]=1或者0 ;SEL[1]=1或者0 SEL[0]=1条件下得到; 所以SEL[2],SEL[1]都是don't care bit 其表示符号位X,SEL[0]=1
同理 对于OP=1的SEL ,在SEL[2]只能等于0 ;SEL[1]=1或者0,SEL[0]=0下得到 所以SEL[2]=0,SEL[1]是don't care bit 其表示符号位X,SEL[0]=0
对于OP=0的SEL ,一样的 ; 在SEL[2]只能等于1 ;SEL[1]=1或者0,SEL[0]=0下得到 所以SEL[2]=1,SEL[1]是don't care bit 其表示符号位X,SEL[0]=0
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-03-20
找规律,比如SEL在三种情况(001,011,111)下,OP=3,也就是SEL=XX1时,OP=3,其中X=0或1
第2个回答  2014-03-20
我觉得你把x展开成0或者1然后搞成很多个状态也没什么不可以,真正做设计是不会把x态当状态的
相似回答