资源描述:
《Verilog表达式和语句》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Verilog表达式和语句目录一运算符及表达式二语句目录壹运算符及表达式1、基本的算数运算符2、赋值运算符3、关系运算符4、逻辑运算符5、位运算符6、等式运算符7、移位运算符8、位拼接运算符9、优先级别一运算符(1)算数运算符:+、-、x、/、%(2)赋值运算符:=、<=(3)关系运算符:>、<、>=、<=(4)逻辑运算符:&&、
2、
3、、!(5)条件运算符:?:(6)位运算符:&、
4、、~、^、^~(7)移位运算符:<<、>>(8)拼接运算符:{}(9)其他。1、基本的算数运算符(二进制运算符)(1)+(加法运算符,正值运算符,如rega+regb,+3)
5、(2)-(减法运算符,负值运算符,如rega-2,-3)(3)x(乘法运算符,如rega*3)(4)/(除法运算符,如5/3)在进行整数除法运算时,结果值略去小数部分,只取整数部分。(5)%(模运算符,或者求余运算符,如7%3值为1)结果的符号位采用模运算式里第一个操作数的符号位,如:10%3,-10%3,10%-32、赋值运算符(1)非阻塞赋值方式(如b<=a)特点:1、所赋变量值不能立即为下面语句所用;2、块结束后才完成赋值操作,所赋的变量是上一次赋值得到的;3、编写可综合的时序逻辑模块,这是最常用的赋值。例1always@(posedgeclk)
6、beginb<=a;c<=b;end(2)阻塞赋值方式(如b=a)特点:1、赋值语句执行完后,块才结束;2、赋值语句执行后,变量值立即改变;3、用在时序逻辑中,会产生意想不到的结果。例2always@(posedgeclk)beginb=a;c=b;endDCLKQclkabc3、关系运算符(1)ab(3)a<=b(4)a>=b在进行关系运算时,如果声明关系为假(flase),返回值为0;如果声明关系为真(true),则返回值为1;如果某个操作数不定,则关系模糊,返回值为不定值。4、逻辑运算符(1)&&逻辑与;(2)
7、
8、逻辑或;(3)!逻
9、辑非;“&&”和“
10、
11、”是双目运算符,“!”是单目运算符ab!a!ba&&ba
12、
13、b真真假假真真真假假真假真假真真假假真假假真真假假5、位运算符(1)~按位取反,单目,如a='b1010;(2)&按位取与,将两个操作数相应位进行与运算。(3)
14、按位取或,将两个操作数相应位进行或运算。(4)^按位异或,也称XOR运算符,将两个操作数相应位进行异或运算。(5)^~按位同或,将两个操作数先进行相应位异或运算在进行非运算。两个不同长度的数据进行位运算,系统会自动地将两者按右端对齐,位数少的操作数会在相应的高位用0填满,再进行位操作。~结果1001xx
15、01x0
16、01x1111xx1x^01x001x110xxxxx^~01x010x101xxxxx&01x0000101xx0xx6、等式运算符(1)==等于(2)!=不等于又称逻辑等式运算符,结果由两个操作数的值决定。操作数中可能为不定值x和高阻态z,结果可能为不定值x。==01xz010xx101xxxxxxxzxxxx(3)===等于(4)!==不等于case等式运算符,常用于case表达式的判别。对操作数进行比较时对某些位的不定值和高阻态也进行比较,两个操作数必须完全一致时,结果才是1,否则为0。===01xz0100010100x0010z00017、
17、移位运算符(1)<<左移位(2)>>右移位使用方法:a<>n,a代表进行移位的操作数,n代表要移几位。用0来填补移出的空位。例:4'b1001<<1=5'b10010;4'b1001>>2=4'b0010;8、位拼接运算符位拼接运算符{},用这个运算符可以把两个或多个信号的某些位拼接起来进行运算操作,使用方法:{信号1的某几位,信号2的某几位,……,信号n的某几位}例:{a,b[3:0],w,3'b101},可以写成{a,b[3],b[2],b[1],b[0],w,1'b1,1'b0,1'b1}在位拼接表达式中不允许存在没有指明位数的信号。例
18、:重复,{4{w}}等同于{w,w,w,w}嵌套,{b,{3{a,b}}}等同于{b,a,b,a,b,a,b}9、优先级别优先级别!~*/%+-<<>><<=>>===!====!==&^^~
19、&&
20、
21、?:最高优先级别最低优先级别贰语句1、条件语句(if_else)2、case语句3、循环语句4、块语句5、过程块1、条件语句(if_else)(1)if(表达式)语句。例如:if(a
22、根据判定的结果决定执行给出的两种操作之一。(3)if(表达式1)语句1;elseif(表达式2