本文主要介紹verilog常用的循環(huán)語句,循環(huán)語句的用途,主要是可以多次執(zhí)行相同的代碼或邏輯。
verilog的循環(huán)語句主要有:for循環(huán)、while循環(huán)、foever循環(huán)和repeat循環(huán)。
注意注意,for循環(huán)在正式FPGA設(shè)計(jì)中部分情況下可綜合,其余幾個循環(huán)語句均不可綜合,主要用于testbench。
一、For循環(huán)
for 循環(huán)會將一段代碼執(zhí)行固定次數(shù)。
雖然它通常用于testbench,但也可以在可綜合的 verilog 代碼中使用,比如 for 循環(huán)處理verilog數(shù)組。
1、語法
for (
說明:
更新循環(huán)變量,注意只能用類似i=i+1或i=i-1。
2、代碼示例
for 循環(huán)實(shí)現(xiàn)移位寄存器
reg [5:0] shift [0:3];
wire [5:0] init_data = 'd10;
wire [6*4-1] shift_com_w;
//將輸入賦值給數(shù)組的第一個數(shù)
shift[0] <= init_data;
//使用for循環(huán)語句來將數(shù)組整體向左移動
for (i = 1; i < 4; i = i + 1) begin
shift[i] <= shift[i-1];
end
//合并數(shù)組,易于輸出模塊
for (i = 0; i < 4; i = i + 1) begin
assign shift_com_w[i*6+:6] = shift[i];
end
二、Forever循環(huán)
verilog 中的forever循環(huán)會創(chuàng)建一個連續(xù)執(zhí)行的代碼塊,并無限循環(huán)。
forever循環(huán)只能在testbench中使用,常用于生成激勵時鐘信號。 注意forever循環(huán)無法被綜合。
1、語法
forever begin
// 循環(huán)執(zhí)行的語句
end
3、代碼示例
創(chuàng)建一個10Mhz的時鐘
initial begin
clk = 1'b0;
forever begin
#5 clk = ~clk;
end
end
三、Repeat循環(huán)
repeat循環(huán)執(zhí)行指定次數(shù)的循環(huán)代碼塊。 注意該語句不可綜合。
1、語法
repeat (
說明: 用來確定重復(fù)循環(huán)的次數(shù)
2、代碼示例
檢測到上升沿,信號翻轉(zhuǎn)一次。
repeat (6) begin //重復(fù)6次
@(posedge sig_a) //上升沿
sig_b = ~sig_b; //翻轉(zhuǎn)
end
四、While 循環(huán)
while循環(huán)的每次迭代之前都會判斷指定條件是否滿足,如果為真,就執(zhí)行條件內(nèi)的循環(huán)代碼塊; 否則,就不會執(zhí)行。 注意該語句不可綜合。
1、語法
while
說明: 循環(huán)執(zhí)行條件。
2、代碼示例
創(chuàng)建一個從 0 到 3 的integer型變量,然后在循環(huán)的每次迭代中打印這個變量的值。
integer i;
while (i < 4) begin
$display("i = %0d", i);
i = i + 1;
end
-
FPGA
+關(guān)注
關(guān)注
1643文章
21974瀏覽量
614342 -
FPGA設(shè)計(jì)
+關(guān)注
關(guān)注
9文章
428瀏覽量
27159 -
Verilog
+關(guān)注
關(guān)注
29文章
1366瀏覽量
111878 -
代碼
+關(guān)注
關(guān)注
30文章
4889瀏覽量
70281 -
變量
+關(guān)注
關(guān)注
0文章
614瀏覽量
28831
發(fā)布評論請先 登錄
verilog中g(shù)enerate語句的用法分享
verilog是什么_verilog的用途和特征是什么

Java的循環(huán)語句的詳細(xì)資料說明

Verilog可綜合的循環(huán)語句
Verilog教程之Verilog HDL程序設(shè)計(jì)語句和描述方式

Verilog邏輯設(shè)計(jì)中的循環(huán)語句和運(yùn)算符
什么是python break語句-終止循環(huán)
Verilog中循環(huán)語句簡介
Verilog中的If語句和case語句介紹

評論