一、前言
欢迎小伙伴们的到来!!!
简单来说,Verilog的语法和c语言很像的,它是在c语言的基础上形成的硬件描述语言。
在c语言中,我们有运算符,所以同理,在verilog我们也有运算符,它像语言的基本骨架,构成语言的基本运算方式。
二、优先级
Verilog的运算符和C语言的基本相同,与C语言一样,不同的运算符其各自的运算优先级也是不一样的。
可综合性问题:
(1)逻辑运算符、逐位运算符、移位运算符是可综合的,都被综合成逻辑运算。
(2)运算符+、一、*、<、<=、>、>=、==和!一都是可综合的,被分别综合成加法
器、减法器、乘法器和比较器。
(3)运算符/和%一般是不可综合的,只有当能用移位寄存器来表示运算时才是可综合的。而常量的/ 和%运算是可综合,但结果只能用二进制数表示。其他运算符均不能被任何工具所综合。
三、易错点对比
1.位运算符和逻辑运算符
逻辑运算符的&&:相当于对各自先本身进行位于,然后在对两者进行与运算;
位运算符的&:相当于对两者的位单独看,一起相与。
2. == 与 ===
对比图:
对===来说:只有0和1,相同就是1;不同就是0;
对==来说,有x,有z就是x;其他相同就是1,不同就是0
此外,在比较 === 时,还要注意,其比较时,位也要相同:
例: a=4‘b0011 b=4'b11
a === b 是0,不是1。