verilog的问题

来源:百度知道 编辑:UC知道 时间:2024/06/06 09:19:44
verilog 数字系统设计教程第八章的问题

我看的是夏宇闻的第二版,第八章有些问题不明白,特向大虾们请教!!
第十题:
在下一个程序段中,当ADDRESS的值等于5`b0X000时,问casex执行完后A和B的值是多少。
A=0;
B=0;
casex(ADDRESS)
5`b00???:A=1;
5`b01???:B=1;
5`b10?00,5`b11?00:
begin
A=1;
B=1;
end
endcase
标准答案是A=1,B=0可是我怎么都想不明白为什么。casex的功能不就是不考虑x和z的位吗?那为什么第一种情况可以,第二种情况就不可以了呢?

case语句看起来是并行的,执行一个就跳出,其实展开后是按照if esle if else。。。来做了的,就是如果满足好几个条件,他会按照顺序一个一个进行比较,符合便执行,于是跳出。
所以第一个就符合,执行完后就不会走第二个了。但描述电路的时候,case里面必须是互斥的,这个只是给你们练练手的。
谢谢,有问题在练习