for循环执行次数_Verilog语法之九:循环语句

本文首发于微信公众号“花蚂蚁”,想要学习FPGA及Verilog的同学可以关注一下。

在Verilog HDL中存在着四种类型的循环语句,用来控制执行语句的执行次数。

1) forever 连续的执行语句。

2) repeat 连续执行一条语句 n 次。

3) while 执行一条语句直到某个条件不满足。如果一开始条件即不满足(为假),则语句一次也不能被执行。

4) for通过以下三个步骤来决定语句的循环执行。

  • a) 先给控制循环次数的变量赋初值。
  • b) 判定控制循环的表达式的值,如为假则跳出循环语句,如为真则执行指定的语句后,转到第三步。
  • c) 执行一条赋值语句来修正控制循环变量次数的变量的值,然后返回第二步。

下面对各种循环语句详细的进行介绍。

1.forever语句

forever语句的格式如下:

forever 

forever循环语句常用于产生周期性的波形,用来作为仿真测试信号。它与always语句不同处在于不能独立写在程序中,而必须写在initial块中。

2.repeat语句

repeat语句的格式如下:

repeat

在repeat语句中,其表达式通常为常量表达式。

下面的例子中使用repeat循环语句及加法和移位操作来实现一个乘法器。

parameter 

3.while语句

while语句的格式如下:

while

或用如下格式:

while

下面举一个while语句的例子,该例子用while循环语句对rega这个八位二进制数中值为1的位进行计数。

begin

4.for语句

for语句的一般形式为:

for

它的执行过程如下:

1) 先求解表达式1;

2) 求解表达式2,若其值为真(非0),则执行for语句中指定的内嵌语句,然后执行下面的第3步。若为假(0),则结束循环,转到第5步。

3) 若表达式为真,在执行指定的语句后,求解表达式3。

4) 转回上面的第2步骤继续执行。

5) 执行for语句下面的语句。

for语句最简单的应用形式是很易理解的,其形式如下:

for

for循环语句实际上相当于采用while循环语句建立以下的循环结构:

begin
    

这样对于需要8条语句才能完成的一个循环控制,for循环语句只需两条即可。

下面分别举两个使用for循环语句的例子。例1用for语句来初始化memory。例2则用for循环语句来实现前面用repeat语句实现的乘法器。

[例1]:

begin

[例2]:

parameter 

在for语句中,循环变量增值表达式可以不必是一般的常规加法或减法表达式。下面是对rega这个八位二进制数中值为1的位进行计数的另一种方法。见下例:

begin

目前:四种循环语句中,综合工具只支持for循环语句

本文首发于微信公众号“花蚂蚁”,想要学习FPGA及Verilog的同学可以关注一下。

6345e0ef6f3d767f6e1e9784503edb5b.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值