Menu Close

Verilog 中While 循环语句

while语句和for语句一样都是循环语句。一般来说,for循环是靠不断更新”表达式3″以满足终止循环条件。while是先判断表达式的条件后执行,如果表达式不满足条件,while循环甚至一次都不会得到执行。在使用时要注意终止循环表达式的编写,原因是在Verilog中不仅包含’0′, ‘1’数字值,还有’X’,’Z’值都可能影响到条件判断。while也是可综合语句,但相对for循环,while使用相对较少。在仿真程序中while使用相对更广泛些。

例1:利用while loop实现乘法器


 

仿真激励文件:


 

Modelsim仿真波形如图1:

图1

在激励文件中使用while loop

例2:利用while循环求整数平方表,在平方值大于等于1000时退出。


 

仿真结果:

Modelsim $display函数显示计算值

modelsim 波形:

图2

while loop与for loop比较

  1. for loop 由三个表达式组成(赋初值,判断,修改变量值),而while loop 仅有一个表达式。
  2. 在有限和确定循环次数的程序设计中,使用for循环比较简洁,程序更容易控制。
  3. 在循环次数不能确定时,while循环往往比for循环更好用。
  4. 都是可综合的语句

例3:自然数累加


 

testbench 仿真程序


 

图3

可见while loop不仅能在仿真程序中使用,在可综合的实体程序中应用也非常灵活,特别是在计数次数不完全确定的时候,非常有效。

 

对应视频:

Posted in FPGA, FPGA 教材教案, Verilog