写在前面的话
说起关系运算符,真的是满心伤痕,这里有一个优先级的问题:关系运算符的优先级别低于算数运算符的优先级别。
关系运算符种类
(1) a<b a小于b
(2) a>b a大于b
(3) a<=b a小于或者等于b
(4) a>=b a大于或者等于b
关系运算符使用意义
在进行关系运算时,如果申明的关系是假的(false),则返回值是0,如果申明的关系是真的(true),则返回值是1,如果某个操作数的值不定,则关系是模糊的,返回值是不定值。
关系运算符与算数运算符优先级
所有的关系运算符都有着相同的优先级别。关系运算符的优先级别低于算数运算符的优先级别。见下例:
//表达意义相同
a<size-1
a<(size-1)
//表达意义不同
size-(1<a)
size-1<a
当表达式size-(1<a)进行运算时,关系表达式先被运算,然后返回值0或1被size减去。而表达式size-1<a进行运算时,size先被减去1,然后再同a相比。
if-else 条件分支语句
if-else 条件分支语句的作用是根据指定的判断条件是否满足来确定下一步要执行的操作。它在使用时可以采用如下三种形式:
(1)if(<条件表达式>)
语句或语句块;
在if-else 条件语句的这种使用形式中没有出现else项,这种情况下条件分支语句的执行过程是:
- 如果指定的<条件表达式>成立(也就是这个条件表达式的逻辑值为“ 1”),则执行条件分支语句内给出的“语句或语句块”,然后退出条件分支语句的执行。
- 如果<条件表达式>不成立(也就是条件的表达式的逻辑值为“0”、“x”、“z”),则不执行条件分支语句内给出的“语句或语句块”,而是直接退出条件语句的执行。
例如程序1
/**************************************************** * Engineer : 梦翼师兄 * QQ : 761664056 * The module function:if语句赋值模块 *****************************************************/ 01 module if_else_case(a,sel,rst_n,out); 02 input a;//输入a 03 input sel;//使能信号输入 04 input rst_n; 05 06 output reg out;//输出信号 07 08 always@(*) 09 begin 10 if(!rst_n) 11 out=0; 12 else 13 begin 14 if(sel==1)//当sel==1,条件表达式逻辑值为1 |