文章目录
5.1 条件语句(if_else语句)
if 语句的三种形式
- 示例↓
if(a>b)
out=int1;
- 示例↓
if(a>b)
out1=int1;
else
out1=int2;
- 示例↓
if(表达式1)
语句1;
else if(表达式1) 语句2;
else if 语句3;
else 语句n;
说明
- 条件语句必须在过程块语句中使用,过程块是指由
initial
和always
引导的begin-end
块,模块外的其他地方都不能编写。示例↓
always@(some_event)
begin
if(a>b) out1=int1;
else if(a==b) out=int2;
else out1=int3;
end
if
后边一般为逻辑表达式或关系表达式,若为0,x,z
,按F处理。若为1,按T处理。- 应当注意
if
与else
的配对关系,else
总是与它上面的最近的if
配对。如果if
与else
的数目不一样,可以用begin_end
块语句来确定配对关系。
5.2 case语句
case
语句是一种多分支选择语句,一般形式如下:
case/casez/casex(控制表达式) case(分支项) endcase
case
(分支项)的一般格式如下:
分支表达式: 语句;
默认项(default项): 语句;
说明
- 控制表达式表示为控制信号的某些位,分支表达式(常量表达式)用这些控制信号的具体状态值来表示。
default
项可有可无,一个case
语句里只能有一个default
项,case
语句可以嵌套使用。- 执行完
case
分支后的语句,则跳出case
语句结构,终止case
语句的执行。 - 只有当信号的对应位的值能明确进行比较时才能比较成功,因此要注意详细说明
case
分支表达式的值。 case
语句所有表达式值的位宽必须相等,这样控制表达式和分支表达式才能进行对应位的比较。casez
用来处理不考虑高阻值z
的比较过程,casex
语句不考虑高阻值z
和不定值。这样,在case
语句表达式进行比较时,就可以灵活地设置对信号的某些位进行比较。- 在用到
if
语句时写上