Verilog常用的循环语句及用途

本文主要介绍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 // 循环执行的语句end3、代码示例创建一个10mhz的时钟
initial begin clk = 1'b0; forever begin #5 clk = ~clk; endend三、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

变频器发生短路故障的原因是什么
苹果明年或首度导入新世代MiniLED技术 由台湾LED芯片龙头晶电供货
倒装晶片贴装设备
第四届智能大会采用“云上”办会的全新模式在天津开幕
AI芯片战火蔓延 国内芯片公司开始蠢蠢欲动
Verilog常用的循环语句及用途
新能源汽车“蜂窝电池”究竟是个什么黑科技
PLC编程中报警的程序示例
拓尔微电子一站式提供中压18V 2A-6A Buck DC-DC转换器系列产品方案
国芯思辰|替代AD9231BCPZ,国产12位SC1232用于数字射频接收器
湘电风能为何选择NVIDIA虚拟GPU解决方案?
ESD管的工作原理及作用
DYS2308自存式数字波高仪
IPv6新技术联合实验室落户南京
C语言全局变量与局部变量
智慧园林管理系统可一键开启智能园林新科技时代
基于Microchip的极低功耗MCU无线智能照明解决方案
电力系统中嵌入式通信控制系统设计关键要点及前置机的应用
物联网环境下智能楼宇炙手可热
设计一个简单的白光LED驱动器电路