verilog中的case语句
时间:10-02
整理:3721RD
点击:
在设计中,尤其是译码器设计,会有些无关项,对于无关项如何表示?
case(inst)
5'b1? : ;
5'b000?0 : ;
default : ;
endcase
如果在verilog中使用?代替无关项,使用modelsim仿真时,并不会对无关项处理,如果改成casez,倒是可以,不知道对于casez语句,dc等综合工具会如何处理?
casez(inst)
5'b1? : ;
5'b000?0 : ;
default : ;
endcase
case(inst)
5'b1? : ;
5'b000?0 : ;
default : ;
endcase
如果在verilog中使用?代替无关项,使用modelsim仿真时,并不会对无关项处理,如果改成casez,倒是可以,不知道对于casez语句,dc等综合工具会如何处理?
casez(inst)
5'b1? : ;
5'b000?0 : ;
default : ;
endcase
怎么没人回答呀
这个要求只能用casex了。这里有个独门秘籍:按如下写法处理,则不怕casex影响不定态传播(即不对验证、综合带来压力):
case(&inst)
1'bx: output = 'bx; //X-Propagation
default: casex(inst)
5'b1xxxx : output = ;
5'b000x0 : output = ;
default : output = ;
endcase
endcase
普通的case是个四态比较,里面的x就是不定态,而不是无关项(Wildcard)。
还是不太理解 ,期待指教!
