case、casex、casez的区别
一、case、casex、casez的区别
下表给出case、casex、casez的真值表:
在这里插入图片描述
在case语句中,敏感表达式中与各项值之间的比较是一种全等比较,每一位都相同才认为匹配。
在casez语句中,如果分支表达式某些位的值为高阻z,那么对这些位的比较就会忽略,不予考虑,而只关注其他位的比较结果。
在casex语句中,则把这种处理方式进一步扩展到对x的处理,即如果比较双方有一方的某些位的值是z或x,那么这些位的比较就不予考虑。
二、case/casez/casex 在simulation/synthesis的区别
有的网上说casex和casez属于不可综合语句,这是针对一般电路不会出现x状态来说的,但是综合工具并不会对x,z认识这个状态,所以综合出来的电路是一样的。
使用过程中许需要注意的问题:
1)一般经常使用到的是casez语句,最好少用casex
2)case/casez/casex其实都是可综合的
3)在电路中,可以用?来表示无关值的z
4)case的描述,匹配都是从上到下进行的
仿真的不同
1)对于case
case (sel) 2'b00: y = a; 2'b01: y = b; 2'bx0: y = c; 2'b1x: y = d; 2'bz0: y = e; 2'b1?: y = f; default : y = g;
endcase
2)对于casez
casez (sel) 2'b00: y = a; 2'b01: y = b; 2'bx0: y = c; 2'b1x: y = d; 2'bz0: y = e; 2'b1?: y = f; default: y = g;
endcase
3)对于casex
casex (sel) 2'b00 : y = a; 2'b01 : y = b; 2'bx0 : y = c; 2'b1x : y = d; 2'bz0 : y = e; 2'b1? : y = f; default : y = g;
endcase
=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecase
case、casex、casez的区别
一、case、casex、casez的区别
下表给出case、casex、casez的真值表:
在这里插入图片描述
在case语句中,敏感表达式中与各项值之间的比较是一种全等比较,每一位都相同才认为匹配。
在casez语句中,如果分支表达式某些位的值为高阻z,那么对这些位的比较就会忽略,不予考虑,而只关注其他位的比较结果。
在casex语句中,则把这种处理方式进一步扩展到对x的处理,即如果比较双方有一方的某些位的值是z或x,那么这些位的比较就不予考虑。
二、case/casez/casex 在simulation/synthesis的区别
有的网上说casex和casez属于不可综合语句,这是针对一般电路不会出现x状态来说的,但是综合工具并不会对x,z认识这个状态,所以综合出来的电路是一样的。
使用过程中许需要注意的问题:
1)一般经常使用到的是casez语句,最好少用casex
2)case/casez/casex其实都是可综合的
3)在电路中,可以用?来表示无关值的z
4)case的描述,匹配都是从上到下进行的
仿真的不同
1)对于case
case (sel) 2'b00: y = a; 2'b01: y = b; 2'bx0: y = c; 2'b1x: y = d; 2'bz0: y = e; 2'b1?: y = f; default : y = g;
endcase
2)对于casez
casez (sel) 2'b00: y = a; 2'b01: y = b; 2'bx0: y = c; 2'b1x: y = d; 2'bz0: y = e; 2'b1?: y = f; default: y = g;
endcase
3)对于casex
casex (sel) 2'b00 : y = a; 2'b01 : y = b; 2'bx0 : y = c; 2'b1x : y = d; 2'bz0 : y = e; 2'b1? : y = f; default : y = g;
endcase
=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecase