verilog中case条件的表述问题

1. case条件的描述,统一使用二进制表示,不要用十进制或者十六进制,避免出现问题

在case的分支中,分支条件之间用逗号。

分支条件使用十进制的这种写法不能识别,会出错,

case({a,b})

6d'1_1: begin

             end

6d'1_2: begin

             end


要用二进制写法才可以

6b'001_001: begin

             end

6b'001_010: begin

             end

2. verilog中的default应该赋什么样的值

这部分是转载来的

Q:在状态机的case语句中,最后要加上默认项default,可是我看到有的书上写的是一个确定的状态,有的则是不定态xxx,到底应该写那个啊?求助!

A1:取决于case条件是否完备啦
如果你的case条件已经完备,那default不写也无所谓呀,一定要写的话,随便赋值都可以
如果case条件不完备,default肯定不能写xxx,应该给一个确定的值。

A2:仿真时写XXX,便于发现错误!综合时写复位态,便于软件综合!

 

注:写case的时候 千万要写 default,即使你条件写满了 也要写default,避免产生latch
coding rule 是很死的东西,要遵守,就像遵守法律一样
可参考 huawei coding rule



你可能感兴趣的:(FPGA/Verilog)