本文主要是介绍FPGA开发:条件语句 × 循环语句,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
条件语句
if_else语句
if_else语句,用来判断是否满足所给定的条件,根据判断的结果(真或假)决定执行给出的两种操作之一。
if(表达式)语句;
例如:
if(a>b) out1=int1;
if(表达式)
语句1;
else
语句2;
例如:
if(a>b)out1=int1; elseout1=int2;
if(表达式1) 语句1;
else if(表达式2) 语句2;
else if(表达式3) 语句3;
……
else if(表达式n) 语句n;
else 语句m;
【注意】条件语句必须在过程块中使用,所谓过程块是指initial和always语句所引导的执行语句集合。除了这两种块语句引导的begin end块中可以编写条件语句外,模块中其他地方都不能编写。
【注意】表达式为0、x、z时均视为假。
case语句
case语句是一种多分支选择语句,有如下3种格式:
- case(表达式) <case分支项> endcase
- casex(表达式) <case分支项> endcase
- casez(表达式) <case分支项> endcase
分支项如下:
分支表达式1: 语句1;分支表达式2: 语句2;……默认项(default项): 语句;
【注意】所有表达式位宽必须相同,常犯错误:用'bx,'bz代替n'bx,n'bz,因为x、z的默认宽度是机器的字节宽度(通常32位)。
【注意】对于casez,不考虑高阻值z的比较过程,默认其与任何表达式比较后均为真。对于casex,不考虑z和x,默认其与任何表达式比较后均为真。
循环语句
forever语句
即连续执行语句,格式如下:
格式1:
forevr 语句;格式2:
foreverbegin多条语句;end
【注意】其必须写在initial语句中。
repeat语句
连续执行一条语句n次,格式如下:
格式1:
repeat(表达式) 语句;格式2:
repeat(表达式)begin多条语句;end
while语句
执行某一条语句直到某个条件不满足。如果一开始就不满足条件,则语句一次也不会被执行。格式如下:
格式1:
while(表达式) 语句;格式2:
while(表达式)begin多条语句;end
for语句
for(表达式1;表达式2;表达式3)语句;
与C语言中的for循环语句一样,通过以下三个步骤决定语句的循环执行:
- 1、先给控制循环次数的变量赋初值。
- 2、判定控制循环的表达式的值,如为假,则跳出循环语句;如为真,则执行指定的语句后,转到第3步。
- 3、执行一条语句赋值语句来修正控制循环变量次数的变量值,然后返回第二步。
【注意】Verilog HDL中的四种循环,只有for循环能够用于综合电路,其余三种只能用来写TestBench仿真激励文件,综合电路使用更多的还是如下循环结构。
generatefor(表达式1 ; 表达式2 ; 表达式3)begin : 块名循环语句;end
endgenerate
这篇关于FPGA开发:条件语句 × 循环语句的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!