verilog运算符及表达式
基本运算符:+ - * / %位运算符:~ & | ^ ^~
逻辑运算符:&& || !
关系运算符:< > <= >=
等式运算符:== != (不管x、z,结果可能是不定值)
=== !==(对参数的x、z都进行比较)
移位运算符:<< >>
位拼接运算符:{ },将几个信号拼接起来,例如{a,b,w,3'b100}
缩减运算符:C =&B;C =|B;C =^B;
优先级别:和c语言差不多,加括号
赋值语句:
1)非阻塞赋值方式(b <= a)
a.块结束才完成赋值
b.b的值不是立刻就改变的
c.在可综合的模块中常用
2)阻塞赋值方式(b = a)
a.赋值语句执行完成后,块才结束
b.b的值在赋值语句执行后立刻改变
c.可能会产生意想不到的结果
简单理解:
非阻塞赋值用了多个触发器,每次时钟到达,所有触发器都触发一次
阻塞赋值连到同一个触发器上,时钟到达,导致所有寄存器被赋值
————————————————
verilog运算符及表达式
页:
[1]