0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Verilog常用的循環(huán)語句及用途

CHANBAEK ? 來源:FPGA入門到精通 ? 作者:未可知摩爾 ? 2023-05-12 18:26 ? 次閱讀

本文主要介紹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ì)中部分情況下可綜合,其余幾個(gè)循環(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ù)組的第一個(gè)數(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)建一個(gè)連續(xù)執(zhí)行的代碼塊,并無限循環(huán)。

forever循環(huán)只能在testbench中使用,常用于生成激勵時(shí)鐘信號。 注意forever循環(huán)無法被綜合。

1、語法

forever begin    
// 循環(huán)執(zhí)行的語句
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)代碼塊。 注意該語句不可綜合。

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)建一個(gè)從 0 到 3 的integer型變量,然后在循環(huán)的每次迭代中打印這個(gè)變量的值。

integer i;

while (i < 4) begin
  $display("i = %0d", i);
  i = i + 1;
end
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1624

    文章

    21538

    瀏覽量

    600474
  • FPGA設(shè)計(jì)
    +關(guān)注

    關(guān)注

    9

    文章

    428

    瀏覽量

    26446
  • Verilog
    +關(guān)注

    關(guān)注

    28

    文章

    1335

    瀏覽量

    109847
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4694

    瀏覽量

    68078
  • 變量
    +關(guān)注

    關(guān)注

    0

    文章

    608

    瀏覽量

    28286
收藏 人收藏

    評論

    相關(guān)推薦

    verilog中g(shù)enerate語句的用法分享

    ,使用生成語句能大大簡化程序的編寫過程。Verilog-2001添加了generate循環(huán),允許產(chǎn)生module和primitive的多個(gè)實(shí)例化,generate語句的最主要功能就是對
    發(fā)表于 12-23 16:59

    verilog是什么_verilog用途和特征是什么

    本文首先介紹了verilog的概念和發(fā)展歷史,其次介紹了verilog的特征與Verilog的邏輯門級描述,最后介紹了Verilog晶體管級描述與v
    發(fā)表于 05-14 14:22 ?4.5w次閱讀
    <b class='flag-5'>verilog</b>是什么_<b class='flag-5'>verilog</b>的<b class='flag-5'>用途</b>和特征是什么

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

    本文檔的主要內(nèi)容詳細(xì)介紹的是Java的循環(huán)語句的詳細(xì)資料說明包括了:1、while循環(huán)語句,2、do…while循環(huán)
    發(fā)表于 03-22 08:00 ?0次下載
    Java的<b class='flag-5'>循環(huán)</b><b class='flag-5'>語句</b>的詳細(xì)資料說明

    Verilog可綜合的循環(huán)語句

    Verilog中提供了四種循環(huán)語句,可用于控制語句的執(zhí)行次數(shù),分別為:for,while,repeat,forever。其中,for,while,repeat是可綜合的,但
    發(fā)表于 10-13 12:23 ?1.9w次閱讀

    Verilog教程之Verilog HDL程序設(shè)計(jì)語句和描述方式

    本文檔的主要內(nèi)容詳細(xì)介紹的是Verilog教程之Verilog HDL程序設(shè)計(jì)語句和描述方式。
    發(fā)表于 12-09 11:24 ?47次下載
    <b class='flag-5'>Verilog</b>教程之<b class='flag-5'>Verilog</b> HDL程序設(shè)計(jì)<b class='flag-5'>語句</b>和描述方式

    verilog中的initial語句說明

    解釋verilog HDL中的initial語句的用法。
    發(fā)表于 05-31 09:11 ?0次下載

    簡述Verilog HDL中阻塞語句和非阻塞語句的區(qū)別

    ? 在Verilog中有兩種類型的賦值語句:阻塞賦值語句(“=”)和非阻塞賦值語句(“=”)。正確地使用這兩種賦值語句對于
    的頭像 發(fā)表于 12-02 18:24 ?5859次閱讀
    簡述<b class='flag-5'>Verilog</b> HDL中阻塞<b class='flag-5'>語句</b>和非阻塞<b class='flag-5'>語句</b>的區(qū)別

    Verilog邏輯設(shè)計(jì)中的循環(huán)語句和運(yùn)算符

    “ 本文主要分享了在Verilog設(shè)計(jì)過程中一些經(jīng)驗(yàn)與知識點(diǎn),主要包括循環(huán)語句(forever、repeat、while和for)、運(yùn)算符。”
    的頭像 發(fā)表于 03-15 11:41 ?4971次閱讀

    什么是python break語句-終止循環(huán)

    循環(huán)的過程中如果要退出循環(huán),我們可以用break語句和continue語句。
    的頭像 發(fā)表于 02-23 11:17 ?2351次閱讀

    Verilog循環(huán)語句簡介

    在這篇文章中,我們討論了可以在verilog中使用的不同類型的循環(huán) - for循環(huán),while循環(huán),forever循環(huán)和repeat
    的頭像 發(fā)表于 04-15 09:19 ?2906次閱讀

    Verilog中的If語句和case語句介紹

    我們在上一篇文章中已經(jīng)看到了如何使用程序塊(例如 always 塊來編寫按順序執(zhí)行的 verilog 代碼。 我們還可以在程序塊中使用許多語句來控制在我們的verilog設(shè)計(jì)中信號賦值的方式
    的頭像 發(fā)表于 05-11 15:37 ?4080次閱讀
    <b class='flag-5'>Verilog</b>中的If<b class='flag-5'>語句</b>和case<b class='flag-5'>語句</b>介紹

    Python的循環(huán)語句介紹

    哈嘍大家好,我是知道。今天帶大家了解下Python的循環(huán)語句 定義循環(huán)語句允許我們執(zhí)行一個(gè)語句語句
    的頭像 發(fā)表于 05-11 17:39 ?826次閱讀

    詳解Verilog賦值語句、塊語句、條件語句

    不可綜合語句經(jīng)常用在測試文件中,未注明的語句均是可綜合的
    的頭像 發(fā)表于 07-02 10:47 ?6251次閱讀
    詳解<b class='flag-5'>Verilog</b>賦值<b class='flag-5'>語句</b>、塊<b class='flag-5'>語句</b>、條件<b class='flag-5'>語句</b>

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

    條件語句循環(huán)語句是計(jì)算機(jī)編程中常用的兩種控制結(jié)構(gòu)
    的頭像 發(fā)表于 07-21 16:48 ?9981次閱讀
    條件<b class='flag-5'>語句</b>/<b class='flag-5'>循環(huán)</b><b class='flag-5'>語句</b>simulink的實(shí)現(xiàn)方法(一)

    verilog中for循環(huán)是串行執(zhí)行還是并行執(zhí)行

    的for循環(huán)也是并行執(zhí)行的。 Verilog中的for循環(huán)可以用來實(shí)現(xiàn)重復(fù)的操作,例如在一個(gè)時(shí)鐘周期中對多個(gè)電路進(jìn)行操作。在循環(huán)內(nèi)部,多個(gè)語句
    的頭像 發(fā)表于 02-22 16:06 ?2410次閱讀