本文主要介紹verilog常用的循環(huán)語(yǔ)句,循環(huán)語(yǔ)句的用途,主要是可以多次執(zhí)行相同的代碼或邏輯。
verilog的循環(huán)語(yǔ)句主要有:for循環(huán)、while循環(huán)、foever循環(huán)和repeat循環(huán)。
注意注意,for循環(huán)在正式FPGA設(shè)計(jì)中部分情況下可綜合,其余幾個(gè)循環(huán)語(yǔ)句均不可綜合,主要用于testbench。
一、For循環(huán)
for 循環(huán)會(huì)將一段代碼執(zhí)行固定次數(shù)。
雖然它通常用于testbench,但也可以在可綜合的 verilog 代碼中使用,比如 for 循環(huán)處理verilog數(shù)組。
1、語(yǔ)法
for (
說(shuō)明:
更新循環(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ù)組的第一個(gè)數(shù)
shift[0] <= init_data;
//使用for循環(huán)語(yǔ)句來(lái)將數(shù)組整體向左移動(dòng)
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)會(huì)創(chuàng)建一個(gè)連續(xù)執(zhí)行的代碼塊,并無(wú)限循環(huán)。
forever循環(huán)只能在testbench中使用,常用于生成激勵(lì)時(shí)鐘信號(hào)。 注意forever循環(huán)無(wú)法被綜合。
1、語(yǔ)法
forever begin
// 循環(huán)執(zhí)行的語(yǔ)句
end
3、代碼示例
創(chuàng)建一個(gè)10Mhz的時(shí)鐘
initial begin
clk = 1'b0;
forever begin
#5 clk = ~clk;
end
end
三、Repeat循環(huán)
repeat循環(huán)執(zhí)行指定次數(shù)的循環(huán)代碼塊。 注意該語(yǔ)句不可綜合。
1、語(yǔ)法
repeat (
說(shuō)明: 用來(lái)確定重復(fù)循環(huán)的次數(shù)
2、代碼示例
檢測(cè)到上升沿,信號(hào)翻轉(zhuǎn)一次。
repeat (6) begin //重復(fù)6次
@(posedge sig_a) //上升沿
sig_b = ~sig_b; //翻轉(zhuǎn)
end
四、While 循環(huán)
while循環(huán)的每次迭代之前都會(huì)判斷指定條件是否滿足,如果為真,就執(zhí)行條件內(nèi)的循環(huán)代碼塊; 否則,就不會(huì)執(zhí)行。 注意該語(yǔ)句不可綜合。
1、語(yǔ)法
while
說(shuō)明: 循環(huán)執(zhí)行條件。
2、代碼示例
創(chuàng)建一個(gè)從 0 到 3 的integer型變量,然后在循環(huán)的每次迭代中打印這個(gè)變量的值。
integer i;
while (i < 4) begin
$display("i = %0d", i);
i = i + 1;
end
-
FPGA
+關(guān)注
關(guān)注
1645文章
22040瀏覽量
618186 -
FPGA設(shè)計(jì)
+關(guān)注
關(guān)注
9文章
428瀏覽量
27340 -
Verilog
+關(guān)注
關(guān)注
29文章
1367瀏覽量
112251 -
代碼
+關(guān)注
關(guān)注
30文章
4900瀏覽量
70689 -
變量
+關(guān)注
關(guān)注
0文章
614瀏覽量
28944
發(fā)布評(píng)論請(qǐng)先 登錄
verilog中g(shù)enerate語(yǔ)句的用法分享
verilog是什么_verilog的用途和特征是什么

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

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

簡(jiǎn)述Verilog HDL中阻塞語(yǔ)句和非阻塞語(yǔ)句的區(qū)別

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

Python的循環(huán)語(yǔ)句介紹
條件語(yǔ)句/循環(huán)語(yǔ)句simulink的實(shí)現(xiàn)方法(一)

評(píng)論