Verilog中repeat的用法

这篇具有很好参考价值的文章主要介绍了Verilog中repeat的用法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        repeat 循环语句执行指定循环数,如果循环计数表达式的值不确定,即为 x 或z 时,那么循环次数按 0 处理。repeat 循环语句的语法为:

repeat(循环次数表达式)
        begin
            语句块;
        end
        其中, “循环次数表达式”用于指定循环次数,可以是一个整数、变量或者数值表达式。如果是变量或者数值表达式,其数值只在第一次循环时得到计算,从而得以事先确定循环次数; “语句块”为重复执行的循环体。
        在可综合设计中, “循环次数表达式”必须在程序编译过程中保持不变。

Example1:
repeat (3) @(posedge clk)
		adder1<=adder1+1;

Example1中,每当到来一个时钟上升沿时,都会执行一次adder1<=adder1+1;

 Example2:
	repeat (3) @(posedge clk);
		adder1<=adder1+1;

Example2中,repeat (3) @(posedge clk);语句后有一个分号,也就是空语句,什么都不执行,当遇到3次时钟上升沿后,才会执行adder1<=adder1+1语句。

repeat用法示例1:语句块包含task语句

repeat(循环次数表达式)
        begin
            语句块;
        end
语句块可以包含task、function、for等语句,如下所示,是包含task的示例,将task任务执行10次:

`timescale 1ns / 1ps

module tb;

   reg  clk,rst,in;
   wire   out;
   
   initial 
    begin
        clk=0;
        rst=0;
        in =0;
        #100 rst=1;
    
    repeat (10)
		begin
			sim();
		end           
     end
   
   always #5 clk=~clk;

   task sim;
	begin
	
	  repeat(10)  @(posedge clk);
            in=0;
       repeat(10)  @(posedge clk);
            in=1;           
      repeat(10)  @(posedge clk);
            in=0; 
      repeat(10)  @(posedge clk);
            in=1;            
      repeat(10)  @(posedge clk);
            in=0;            
       repeat(10)  @(posedge clk);
            in=1;   	
	end
	
	endtask
 Top  inst(.clk(clk),.rst(rst),.in(in),.out(out)
    );

endmodule

repeat用法示例2:语句块包含for语句文章来源地址https://www.toymoban.com/news/detail-424794.html

`timescale 1ns / 1ps

module tb;

   reg  clk,rst,in;
   wire   out;
   
   integer i;
   initial 
    begin
        clk=0;
        rst=0;
        in =0;
        #100 rst=1;
       
    repeat (10)
		begin
			//sim();
		for (i=0;i<100;i=i+1)
			begin
				
				@(posedge clk)
					in<=~in;
				$display("the simulation time is %d\n",$time);
				
			end
		end           
    end
   
   always #5 clk=~clk;
   
   task sim;
	begin
	
	  repeat(10)  @(posedge clk);
            in=0;
       repeat(10)  @(posedge clk);
            in=1;           
      repeat(10)  @(posedge clk);
            in=0; 
      repeat(10)  @(posedge clk);
            in=1;            
      repeat(10)  @(posedge clk);
            in=0;            
       repeat(10)  @(posedge clk);
            in=1;   
	end
	
	endtask
 Top  inst(.clk(clk),.rst(rst),.in(in),.out(out)

    );

endmodule

到了这里,关于Verilog中repeat的用法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ASIC-WORLD Verilog(9)循环语句

            在自己准备写一些简单的verilog教程之前,参考了许多资料----Asic-World网站的这套verilog教程即是其一。这套教程写得极好,奈何没有中文,在下只好斗胆翻译过来(加了自己的理解)分享给大家。         这是网站原文:Verilog Tutorial         这是系列导航:

    2024年02月04日
    浏览(38)
  • 【初始C语言】分支语句和循环语句和转向语句的用法,文章末尾还有精品小礼物噢。

     夜里醒来,听雨滴 打在窗台雨搭上,更细密的一阵雨 落在窗外小树林里 雨落在更远的地方,落在另一场雨中 绵密的一片雨声 从芭蕉的昏暗 词林升起。一场夜雨紧邻古代 在巴山秋池,无需梦 无需修剪火焰,听雨 是一个人靠近古人的地方 而今晚是另一个夜晚 时间稀落,听

    2024年02月05日
    浏览(60)
  • mapper.xml中循环执行多条语句时报错,但是单独拿SQL到数据库却可以执行

    我是批量修改数据,用foreach标签包住update语句,报错信息如下: 最后解决,在数据源配置中添加参数:

    2024年02月12日
    浏览(42)
  • Pytorch中的repeat以及repeat_interleave用法

    repeat和repeat_interleave都是pytorch中用来复制的两种方法,但是二者略有不同,如下所示。 torch.tensor().repeat()里面假设里面有3个参数,即3,2,1,如下所示: 用repeat时,应当从后往前看,即先复制最后一维,依次向前。 ①最后一个数字为1,复制一次,还是[1,2,3]. ②倒数第二个数

    2023年04月12日
    浏览(40)
  • 笔记68:Pytorch中repeat函数的用法

    repeat 相当于一个broadcasting的机制 repeat(*sizes) 沿着指定的维度重复tensor。不同与expand(),本函数复制的是tensor中的数据。 转自:pytorch repeat的用法-CSDN博客

    2024年02月05日
    浏览(35)
  • Pytorch:torch.repeat_interleave()用法详解

    torch.repeat_interleave() 是 PyTorch 中的一个函数,用于 按指定的方式重复张量中的元素 。 以下是该函数的详细说明: torch.repeat_interleave() 的原理是将 输入张量中的每个元素 重复 指定的次数 ,并将这些重复的元素拼接成一个新的张量。 input: 输入的张量。 repeats: 用于指定每个元

    2024年01月16日
    浏览(39)
  • 十九、MySQL 循环结构之LOOP、WHILE、REPEAT、LEAVE、ITERATE 详解

    LOOP 循环语句用来重复执行某些语句。LOOP 内的语句一直重复执行直到循环被退出(使用 LEAVE 子句),跳出循环过程。LOOP 语句的基本格式如下: 举例1:使用 LOOP 语句进行循环操作,id值小于10时将重复执行循环过程。 举例2:应用LOOP语句求前100项的和。首先定义变量i和s,分

    2024年02月04日
    浏览(62)
  • 【C语言趣味教程】(11) 循环语句Ⅰ:while 循环 | 循环的类型 | 流程图基础 | 循环的定义 | 死循环 | while 循环嵌套 | break 语句 | continue 语句

        🔗 《C语言趣味教程》👈 猛戳订阅!!! \\\"我们先来思考一个富有哲学性的问题,人类的本质是什么?我们知道,人类的本质就是复读机!那复读机的本质又是什么?复读机的本质就是循环!本章的主题就是循环,我们来好好研究研究,还是和上一章一样,我们先介绍

    2024年02月03日
    浏览(56)
  • [Python入门]Python中的循环语句(for循环语句)

    一、for 循环简介 循环就是重复做某件事,for循环是python提供第二种循环机制(第一种是while循环),理论上for循环能做的事情,while循环都可以做。 for 的语句格式如下: for  变量   in   循环序列:         【循环体】 注:通过 for 循环依次将 循环序列 中的数据取出赋

    2024年04月11日
    浏览(104)
  • 【python】Python基础语法详细教程以及案例教学之 while循环语句、while语句嵌套应用、for循环语句、for语句嵌套应用、循环中断

    目录  前言 一、while循环的基础语法  1)什么是while语句?  2)如何具体实现while语句? 二、while循环的基础案例 1)案例一:  2)案例二: 三、while循环的嵌套应用 1)学习目标: 2)什么是while循环的嵌套 3)如何实现while嵌套? 四、while循环的嵌套案例 1)学习目标 2)补充

    2024年01月25日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包