我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Verilog语言的循环语句怎么使用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Verilog语言的循环语句怎么使用

这篇文章主要介绍“Verilog语言的循环语句怎么使用”,在日常操作中,相信很多人在Verilog语言的循环语句怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Verilog语言的循环语句怎么使用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

关键词:while, for, repeat, forever

Verilog 循环语句有 4 种类型,分别是 while,for,repeat,和 forever 循环。循环语句只能在 always 或 initial 块中使用,但可以包含延迟表达式。

while 循环

while 循环语法格式如下:

while (condition) begin    …end

while 循环中止条件为 condition 为假。

如果开始执行到 while 循环时 condition 已经为假,那么循环语句一次也不会执行。

当然,执行语句只有一条时,关键字 begin 与 end 可以省略。

下面代码执行时,counter 执行了 11 次。

`timescale 1ns/1ns module test ;     reg [3:0]    counter ;    initial begin        counter = 'b0 ;        while (counter<=10) begin            #10 ;            counter = counter + 1'b1 ;        end    end    //stop the simulation    always begin        #10 ;  if ($time >= 1000) $finish ;    end endmodule

for 循环

for 循环语法格式如下:

for(initial_assignment; condition ; step_assignment)  begin    …end

initial_assignment 为初始条件。

condition 为终止条件,condition 为假时,立即跳出循环。

step_assignment 为改变控制变量的过程赋值语句,通常为增加或减少循环变量计数。

一般来说,因为初始条件和自加操作等过程都已经包含在 for 循环中,所以 for 循环写法比 while 更为紧凑,但也不是所有的情况下都能使用 for 循环来代替 while 循环。

下面 for 循环的例子,实现了与 while 循环中例子一样的效果。需要注意的是,i = i + 1 不能像 C 语言那样写成 i++ 的形式,i = i -1 也不能写成 i -- 的形式。

// for 循环语句integer      i ;reg [3:0]    counter2 ;initial begin    counter2 = 'b0 ;    for (i=0; i<=10; i=i+1) begin        #10 ;        counter2 = counter2 + 1'b1 ;    endend

repeat 循环

repeat 循环语法格式如下:

repeat (loop_times) begin    …end

repeat 的功能是执行固定次数的循环,它不能像 while 循环那样用一个逻辑表达式来确定循环是否继续执行。repeat 循环的次数必须是一个常量、变量或信号。如果循环次数是变量信号,则循环次数是开始执行 repeat 循环时变量信号的值。即便执行期间,循环次数代表的变量信号值发生了变化,repeat 执行次数也不会改变。

下面 repeat 循环例子,实现了与 while 循环中的例子一样的效果。

// repeat 循环语句reg [3:0]    counter3 ;initial begin    counter3 = 'b0 ;    repeat (11) begin  //重复11次        #10 ;        counter3 = counter3 + 1'b1 ;    endend

下面 repeat 循环例子,实现了连续存储 8 个数据的功能:

always @(posedge clk or negedge rstn) begin    j = 0  ;    if (!rstn) begin        repeat (8) begin            buffer[j]   <= 'b0 ;      //没有延迟的赋值,即同时赋值为0            j = j + 1 ;        end    end    else if (enable) begin        repeat (8) begin            @(posedge clk) buffer[j]    <= counter3 ;       //在下一个clk的上升沿赋值            j = j + 1 ;        end     endend

真结果如下图。

由图可知,rstn 拉高时,buffer 的 8 个向量同时赋值为 0。

第二个时钟周期后,buffer 依次被 counter3 赋值,实现了连续存储 8 个数据的功能。

Verilog语言的循环语句怎么使用

forever 循环

forever 循环语法格式如下:

forever begin    …end

forever 语句表示永久循环,不包含任何条件表达式,一旦执行便无限的执行下去,系统函数 $finish 可退出 forever。

forever 相当于 while(1) 。

通常,forever 循环是和时序控制结构配合使用的。

例如,使用 forever 语句产生一个时钟:

reg          clk ;initial begin    clk       = 0 ;    forever begin        clk = ~clk ;        #5 ;    endend

例如,使用 forever 语句实现一个时钟边沿控制的寄存器间数据传输功能:

reg    clk ;reg    data_in, data_temp ;initial begin    forever @(posedge clk)      data_temp = data_in ;end

到此,关于“Verilog语言的循环语句怎么使用”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Verilog语言的循环语句怎么使用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Verilog语言的循环语句怎么使用

这篇文章主要介绍“Verilog语言的循环语句怎么使用”,在日常操作中,相信很多人在Verilog语言的循环语句怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Verilog语言的循环语句怎么使用”的疑
2023-07-06

Verilog语言的循环语句示例详解

这篇文章主要为大家介绍了Verilog语言的循环语句示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-05-15

C语言while循环语句怎么使用

while循环语句在C语言中的使用方式如下:1. 基本语法:```while (条件表达式) {循环体语句;}```其中,条件表达式为一个布尔表达式,当条件表达式的值为真时,执行循环体语句;当条件表达式的值为假时,退出循环。2. 示例:``
2023-08-18

Go语言的循环语句如何使用

这篇文章主要介绍“Go语言的循环语句如何使用”,在日常操作中,相信很多人在Go语言的循环语句如何使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Go语言的循环语句如何使用”的疑惑有所帮助!接下来,请跟着小编
2023-06-30

Go语言中for循环语句怎么用

这篇文章主要介绍了Go语言中for循环语句怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。概述for循环是一个循环控制结构,可以执行指定次数的循环语法第一种for {}
2023-06-25

java循环语句怎么使用

这篇文章主要介绍“java循环语句怎么使用”,在日常操作中,相信很多人在java循环语句怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”java循环语句怎么使用”的疑惑有所帮助!接下来,请跟着小编一起来
2023-06-29

sql循环语句怎么使用

sql循环语句可重复执行代码,直到条件满足。常用的循环包括:while循环:条件为真时重复执行。repeat循环:先执行代码,条件为假时重复。SQL 循环语句的用法循环语句在 SQL 中用于重复执行一段代码,直到满足特定条件。常用的 SQ
sql循环语句怎么使用
2024-05-30

python循环语句怎么使用

python 循环语句可用于重复执行代码块,直到满足特定条件,其类型包括:for 循环:用于遍历序列中的每个元素。while 循环:只要满足条件就重复执行代码块。break 和 continue:分别用于立即退出循环和跳过当前循环迭代。Py
python循环语句怎么使用
2024-05-22

怎么使用Python的While循环语句

本篇内容主要讲解“怎么使用Python的While循环语句”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用Python的While循环语句”吧!1. while循环语句作用:实现特定代码重
2023-06-02

sql for循环语句怎么使用

在SQL中,通常不直接支持循环语句。SQL是用于处理关系型数据库的查询语言,其主要用于选择、插入、更新和删除数据。然而,有些数据库管理系统提供了扩展功能,允许在SQL中使用循环。以下是一些常见的方法:使用游标(Cursor):游标是一个指
sql for循环语句怎么使用
2024-04-09

oracle循环insert语句怎么使用

在Oracle数据库中,可以使用循环结构来执行多次INSERT语句。下面是一个简单的示例,演示如何使用循环插入数据到表中:DECLAREi NUMBER;BEGINFOR i IN 1..10 LOOPINSERT INTO your_
oracle循环insert语句怎么使用
2024-04-22

mysql while循环语句怎么使用

在MySQL中,可以使用WHILE循环语句来重复执行一段代码,直到指定的条件不满足为止。WHILE循环的基本语法如下:WHILE condition DOstatements;END WHILE;其中,condition是一个逻辑表达
mysql while循环语句怎么使用
2024-04-09

C#中怎么使用条件语句和循环语句

在C#中,条件语句一般使用if语句来实现,循环语句一般使用for循环、while循环、do-while循环等来实现。以下是一些示例:使用if语句实现条件语句:int num = 10;if (num > 0){Console.WriteL
C#中怎么使用条件语句和循环语句
2024-03-06

sql循环语句怎么用

sql中的循环语句(while循环)允许开发者重复执行操作,用于遍历数据集并执行操作,类似于编程语言中的for循环。其用法步骤为:创建游标,打开游标,使用循环语句遍历,执行操作,最后关闭游标。SQL 循环语句简介在 SQL 中,循环语句允
sql循环语句怎么用
2024-06-12

怎么深入了解c语言的循环语句

怎么深入了解c语言的循环语句,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。C语言循环语句大多数人都希望自己是体格强健,天资聪慧,多才多艺的人。虽然有时事与愿违,但至少我们用
2023-06-22

Shell循环语句及中断语句的使用

目录for循环语句例题1:批量添加用户例题2:根据IP地址检查主机状态while循环语句例题1javascript 猜价格游戏例题二:批量添加用户until循环语句例题:计算1~50的值中断(break和continue)①break②co
2023-05-12

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录