Verilog中的运算符及其相关基础知识
⼀、基本运算符
1.算术运算符:加(+)减( -)乘(*)除(/)取模(%)求幂(**)。
(1)%是取模运算符:a % b 按照a 和 b中的长度长的补齐。两个参数都为有符号数结果为有符号数,否则为⽆符号数;
(2)**是求幂运算符:a**b表⽰a的b次⽅,即a表⽰底数,b表⽰指数;
(3)除法只能取整数;
2.关系运算符:⼤于(>)⼩于(<)⼩于等于(<=)⼤于等于(>=)⽐较表达式的逻辑是否相等(==)⽐较表达式的逻辑是否不相等(!=)按位⽐较表达式的逻辑是否相等(===)按位⽐较表达式的逻辑是否不相等(!==)
3.逻辑运算符:逻辑⾮(!)逻辑与(&&)逻辑或(||)
4.位运算符:按位⾮(~)按位与(&)按位或(|)异或(^)同或(~^)
(1)异或(^)举例:0+0=0 1+0=1 1+1=0
(2)同或(~^)举例:0+0=1 1+0=0 1+1=1
5.归约运算符:归约与(&)归约与⾮(~&)归约或(|)归约或⾮(~|)归约异或(~^)
注意:归约运算符的操作数只有⼀个,并只产⽣⼀位结果:举例a=0101,则&a=0(a中的所有位进⾏与操作); |a=1(a中的所有位进⾏或操作);
6.条件操作符(C语⾔中的三⽬运算符):a ? b :c 该式中a为条件表达式,b和c为待选的执⾏表达式:如果a为真,则选择执⾏b,否则执⾏c;
7.移位运算符:逻辑左移(<<)逻辑右移(>>)算术左移(<<<)算术右移(>>>)
(1)逻辑左移和算术左移相同,都是在最低位补0,忽略操作数的符号;
(2)逻辑右移在最⾼位补0,忽略操作数的符号;算术右移对于有符号数,⾼位补充值和符号位相同,对于⽆符号数,⾼位补0;
三目条件运算符?:的含义8.拼接运算符:{a,b} 把位于⼤括号“{ }”中的两个及以上⽤“,”分隔的⼩表达式连接在⼀起,形成⼀个⼤表达式
9.赋值运算符:阻塞型(=):常⽤于组合逻辑电路和时序逻辑电路⾮阻塞型(<=):常⽤于时序逻辑电路
注意:同⼀module中不能同时出现这两种赋值运算符;
10.特殊运算符:
(1)a+:b为⽚选,即从a开始到a+b的位(举例:reg q [2+:5]类似于reg q [6:2])
⼆、运算符的优先级:
三、逻辑符号和逻辑图形符号
四、基础知识
1.电平状态:⾼电平(1)低电平(0)未知电平(X)⾼阻态(Z)
(1)⾼阻态是⼀个数字电路⾥常见的术语,指的是电路的⼀种输出状态,既不是⾼电平也不是低电平,如果⾼阻态再输⼊下⼀级电路的
话,对下级电路⽆任何影响,和没接⼀样,如果⽤万⽤表测的话有可能是⾼电平也有可能是低电平,随它后⾯接的东西定的.
2.进制:⼆进制(b)⼋进制(o)⼗进制(d)⼗六进制(h)
举例:4’hf:表⽰4位⼗六进制的f,即1111. 4‘b1010:表⽰4位⼆进制的1010,即1010.
3.独热码:One-Hot编码,⼜称为⼀位有效编码,主要是采⽤n位状态寄存器来n个状态进⾏编码,每个状态都由他独⽴的寄存器位,并且在任意时候只有⼀位有效。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论