IC验证学霸笔记2——Verilog基本语法之运算符(三)

运算符分类


算术运算符:

进行整数除法时,结果值略去小数部分,只取整数部分
%为求模运算符,要求%两侧均为整型数据
求模运算结果值的符号位取第一个操作数的符号位
例: -11%3   结果为-2
进行算术运算时,若某操作数为不定值x,则整个结果也为x
逻辑运算符:
逻辑运算符把它的操作数当成布尔变量
非零的操作数被认为是真(1’b1);
被认为是假(1’b0);
不确定的操作数如4‘bxx00,被认为是不确定的(可能为零,也可能是非零);但4‘bxx11,被认为是真
进行逻辑运算后的结果为布尔值(1或0)

&&和||的优先级除高于条件运算符外,低于关系运算符,等式运算符等几乎所有运算符

逻辑非!优先级最高

例:(a>b)&&(b>c)    可简写为:a>b && b>c

       (a==b)||(x==y)    可简写为:a==b || x==y 

       (!a) || (a>b)         可简写为: !a || a>b

建议采用带括号形式

位运算符:

运算结果为1位的逻辑值1或0或x.关系运算时,若关系为真,则返回值为1;若关系为假,则返回值为0;若某操作数为不定值x,则返回值为x。
所有关系运算符优先级别相同。
关系运算符的优先级别低于算术运算符。

例:a<size -1      等同于:a<(size -1)

等式运算符:

运算结果为1位的逻辑值1或0或x.
等于运算符(==)和全等运算符(===)的区别:
使用等式运算符时两个操作数必须逐位相等,结果才为1;若某些位为x或z,则结果为x;
使用全等运算符时,若两个操作数的相应位完全一致(如同是1,0,x,z)则结果为1;否则为0.
所有的等式运算符优先级别相同
===和!==运算符常用于case表达式的判别,又称为"case等式运算符".
对单个操作数进行递推运算,即先将操作数的最低位于第二位进行与,或,非运算,再将运算结果与第三位进行相同运算,一次类推直至高位。

最后运算结果缩减为1位二进制数

例:reg[3:0] a;

        b =|a;     //等效于b=((a[0] | a[1]) |a(2)) | a[3]

移位运算符(单目)

A >>n   或A<< n

将操作数右移或左移n位,同时用n个0填补移出的空位

左移会扩充位数,右移位数不变,但数据会丢失

条件运算符(三目)

信号 = 条件?表达式1:表达式2

当条件为真,信号取表达式1的值,条件为假,则取表达式2的值

位拼接运算符

运算符号{ },用于将两个或多个信号的某些位拼接起来,表示一个整体信号。

{信号1,信号2}

算术运算符
用重复法简化表达式,如:{4{w}} //等同于{w,w,w,w}

还可用嵌套方法简化书写,如{b,{3{a,b}} //{b,a,b,a,b,a}

在为拼接表达式中,不允许存在没有指明位数的信号,必须指明信号的位数;若未指明,则默认为32位的二进制数;

如{1,0}=64’h00000001_00000000,  不是2‘b10

注:优秀验证学员随堂笔记,已经征求到学生的同意,会持续给牛友们分享!
大家看完记得 一键三连!多多支持


#不去互联网还可以去硬件行业##芯片设计工程师##芯片IC验证工程师##你为什么选择硬件行业##做项目#
全部评论
谢谢分享的基本运算符的用法
点赞 回复 分享
发布于 2022-08-04 13:53

相关推荐

11-03 18:50
门头沟学院 Java
迷茫的大四🐶:问就是马上到,一周五天,6个月以上,全国可飞
点赞 评论 收藏
分享
评论
1
3
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务