0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Verilog常用的循环语句及用途

CHANBAEK 来源:FPGA入门到精通 作者:未可知摩尔 2023-05-12 18:26 次阅读

本文主要介绍verilog常用的循环语句,循环语句的用途,主要是可以多次执行相同的代码或逻辑。

verilog的循环语句主要有:for循环、while循环、foever循环和repeat循环。

注意注意,for循环在正式FPGA设计中部分情况下可综合,其余几个循环语句均不可综合,主要用于testbench。

一、For循环

for 循环会将一段代码执行固定次数。

虽然它通常用于testbench,但也可以在可综合的 verilog 代码中使用,比如 for 循环处理verilog数组。

1、语法

for (

说明:

更新循环变量,注意只能用类似i=i+1或i=i-1。

2、代码示例

for 循环实现移位寄存器

reg [5:0] shift [0:3];
wire [5:0] init_data = 'd10;
wire [6*4-1] shift_com_w;

//将输入赋值给数组的第一个数
shift[0] <= init_data;
 
//使用for循环语句来将数组整体向左移动
for (i = 1; i < 4; i = i + 1) begin
  shift[i] <= shift[i-1];
end

//合并数组,易于输出模块
for (i = 0; i < 4; i = i + 1) begin
  assign shift_com_w[i*6+:6] = shift[i];
end

二、Forever循环

verilog 中的forever循环会创建一个连续执行的代码块,并无限循环。

forever循环只能在testbench中使用,常用于生成激励时钟信号。 注意forever循环无法被综合。

1、语法

forever begin    
// 循环执行的语句
end

3、代码示例

创建一个10Mhz的时钟

initial begin
   clk = 1'b0;
   forever begin
     #5 clk = ~clk;
   end
end

三、Repeat循环

repeat循环执行指定次数的循环代码块。 注意该语句不可综合。

1、语法

repeat (

说明: 用来确定重复循环的次数

2、代码示例

检测到上升沿,信号翻转一次。

repeat (6) begin      //重复6次
  @(posedge sig_a)    //上升沿
      sig_b = ~sig_b; //翻转
end

四、While 循环

while循环的每次迭代之前都会判断指定条件是否满足,如果为真,就执行条件内的循环代码块; 否则,就不会执行。 注意该语句不可综合。

1、语法

while

说明: 循环执行条件。

2、代码示例

创建一个从 0 到 3 的integer型变量,然后在循环的每次迭代中打印这个变量的值。

integer i;

while (i < 4) begin
  $display("i = %0d", i);
  i = i + 1;
end
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1629

    文章

    21736

    浏览量

    603227
  • FPGA设计
    +关注

    关注

    9

    文章

    428

    浏览量

    26514
  • Verilog
    +关注

    关注

    28

    文章

    1351

    浏览量

    110091
  • 代码
    +关注

    关注

    30

    文章

    4787

    浏览量

    68587
  • 变量
    +关注

    关注

    0

    文章

    613

    浏览量

    28365
收藏 人收藏

    评论

    相关推荐

    verilog中generate语句的用法分享

    ,使用生成语句能大大简化程序的编写过程。Verilog-2001添加了generate循环,允许产生module和primitive的多个实例化,generate语句的最主要功能就是对
    发表于 12-23 16:59

    verilog是什么_verilog用途和特征是什么

    本文首先介绍了verilog的概念和发展历史,其次介绍了verilog的特征与Verilog的逻辑门级描述,最后介绍了Verilog晶体管级描述与v
    发表于 05-14 14:22 4.5w次阅读
    <b class='flag-5'>verilog</b>是什么_<b class='flag-5'>verilog</b>的<b class='flag-5'>用途</b>和特征是什么

    Java的循环语句的详细资料说明

    本文档的主要内容详细介绍的是Java的循环语句的详细资料说明包括了:1、while循环语句,2、do…while循环
    发表于 03-22 08:00 0次下载
    Java的<b class='flag-5'>循环</b><b class='flag-5'>语句</b>的详细资料说明

    Verilog可综合的循环语句

    Verilog中提供了四种循环语句,可用于控制语句的执行次数,分别为:for,while,repeat,forever。其中,for,while,repeat是可综合的,但
    发表于 10-13 12:23 2w次阅读

    Verilog教程之Verilog HDL程序设计语句和描述方式

    本文档的主要内容详细介绍的是Verilog教程之Verilog HDL程序设计语句和描述方式。
    发表于 12-09 11:24 47次下载
    <b class='flag-5'>Verilog</b>教程之<b class='flag-5'>Verilog</b> HDL程序设计<b class='flag-5'>语句</b>和描述方式

    verilog中的initial语句说明

    解释verilog HDL中的initial语句的用法。
    发表于 05-31 09:11 0次下载

    简述Verilog HDL中阻塞语句和非阻塞语句的区别

      在Verilog中有两种类型的赋值语句:阻塞赋值语句(“=”)和非阻塞赋值语句(“=”)。正确地使用这两种赋值语句对于
    的头像 发表于 12-02 18:24 6215次阅读
    简述<b class='flag-5'>Verilog</b> HDL中阻塞<b class='flag-5'>语句</b>和非阻塞<b class='flag-5'>语句</b>的区别

    Verilog逻辑设计中的循环语句和运算符

    “ 本文主要分享了在Verilog设计过程中一些经验与知识点,主要包括循环语句(forever、repeat、while和for)、运算符。”
    的头像 发表于 03-15 11:41 5221次阅读

    什么是python break语句-终止循环

    循环的过程中如果要退出循环,我们可以用break语句和continue语句
    的头像 发表于 02-23 11:17 2513次阅读

    Verilog循环语句简介

    在这篇文章中,我们讨论了可以在verilog中使用的不同类型的循环 - for循环,while循环,forever循环和repeat
    的头像 发表于 04-15 09:19 3197次阅读

    Verilog中的If语句和case语句介绍

    我们在上一篇文章中已经看到了如何使用程序块(例如 always 块来编写按顺序执行的 verilog 代码。 我们还可以在程序块中使用许多语句来控制在我们的verilog设计中信号赋值的方式
    的头像 发表于 05-11 15:37 4544次阅读
    <b class='flag-5'>Verilog</b>中的If<b class='flag-5'>语句</b>和case<b class='flag-5'>语句</b>介绍

    Python的循环语句介绍

    哈喽大家好,我是知道。今天带大家了解下Python的循环语句 定义循环语句允许我们执行一个语句语句
    的头像 发表于 05-11 17:39 902次阅读

    详解Verilog赋值语句、块语句、条件语句

    不可综合语句常用在测试文件中,未注明的语句均是可综合的
    的头像 发表于 07-02 10:47 7339次阅读
    详解<b class='flag-5'>Verilog</b>赋值<b class='flag-5'>语句</b>、块<b class='flag-5'>语句</b>、条件<b class='flag-5'>语句</b>

    条件语句/循环语句simulink的实现方法(一)

    条件语句循环语句是计算机编程中常用的两种控制结构
    的头像 发表于 07-21 16:48 1.1w次阅读
    条件<b class='flag-5'>语句</b>/<b class='flag-5'>循环</b><b class='flag-5'>语句</b>simulink的实现方法(一)

    verilog中for循环是串行执行还是并行执行

    的for循环也是并行执行的。 Verilog中的for循环可以用来实现重复的操作,例如在一个时钟周期中对多个威廉希尔官方网站 进行操作。在循环内部,多个语句
    的头像 发表于 02-22 16:06 2924次阅读