69,Verilog-2005标准篇:循环语句

Verilog中的循环语句有四种类型。这些语句提供了一种控制语句零次、一次或多次执行的方法。

forever 

持续执行语句。

repeat 

以固定次数执行语句。如果表达式expression的评估结果为未知或高阻抗,则应将其视为零,不执行任何语句。

while

执行一条语句,直到表达式expression的结果变为false。如果表达式一开始为false,则该语句根本不会被执行。

for

通过以下三个步骤控制相关语句的执行:

a) 执行赋值,通常用于初始化一个变量,以控制循环执行的次数。

b) 评估表达式expression。如果结果为false,则退出 for 循环。如果结果不为false,for 循环应执行其相关语句,然后执行步骤 c)。如果表达式求值为未知值或高阻抗值,则应将其视为零。

c) 执行通常用于修改循环控制变量值的赋值,然后重复步骤 b)。

下表1显示了各种循环语句的语法:

下面咱们举例说明循环的用法:

例 1- repeat语句:在下面的repeat循环示例中,加法运算符和移位运算符实现了乘法运算:

parameter  size = 8, longsize = 16;

reg  [size:1] opa, opb;

reg  [longsize:1] result;

begin  : mult

 reg  [longsize:1] shift_opa, shift_opb;

 shift_opa = opa;

 shift_opb = opb;

 result = 0;

 repeat  (size)  begin

  if (shift_opb[1])

    result = result + shift_opa;

  shift_opa = shift_opa << 1;

  shift_opb = shift_opb >> 1;

end

end

示例 2- while语句:下面的示例计算 rega 中逻辑为1值的个数:

例3-For 语句:for语句实现的结果与下面基于 while 循环的伪代码相同:

for循环只用两行代码就实现了while这一逻辑:

点赞加关注博主(ID:FPGA小飞)的博文,咱们一起系统学习verilog最终标准IEEE Std 1364-2005吧!

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值