近日进行VHDL和verilog混合编程,发现其间if判断条件的一点小区别,归纳如下:

VHDL:if 内容如果是signal类型如signal a,只能写成if(a = '0'),不能写成if(not a)的形式,否则报错“Error type of identifier "a" does not agree with its usage as boolean type”,可见,如果是boolean类型就能if(not a)了。

verilog:if内容不论是什么类型,比如reg 或者wire ,都可以写成if(!a)、if(a==1'b0)、if(~a)中的任何一种形式。

注:上文为本人编写逻辑时的一点经验总结,不对之处多多指正。