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

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

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

for循環(huán)語句基本用法及示例 介紹幾種可綜合的for循環(huán)語句

sanyue7758 ? 來源:處芯積律 ? 作者:處芯積律 ? 2023-08-03 10:22 ? 次閱讀

1、采用for(int*)實現(xiàn)不同信號賦值的循環(huán)

利用for循環(huán)實現(xiàn)對信號的賦值。

如下案例中,func_id_vld為512bit,需要根據(jù)func_mode_in[1024-1:0]給func_id_vld賦值,func_mode_in每2個bit對應(yīng)一個func_id_vld,即func_mode_in[1:0]對應(yīng)func_id_vld[0],func_mode_in[3:2]對應(yīng)func_id_vld[1],func_mode_in[1023:1022]對應(yīng)func_id_vld[511], 賦值規(guī)則為func_mode_in[1:0]為2‘b01時,func_id_vld[0]為1,以此類推。

采用for(int*)類型格式,可以在一個else分支中使用,不需要使用generate,使用更加靈活,使用范圍更廣。

always@(posedge  clk)
    if(~rst_n) begin
       func_id_vld <= 512'b0 ;
    end else begin
        for(int i=0; i<512;i=i+1) begin : func_id_vld_gen
            func_id_vld[i] <= (func_mode_in[2*i+:2]==2'b01) ;
        end
    end

2、采用for(int*)實現(xiàn)同一個信號賦值的循環(huán)

下圖所示,采用for(int*)類型格式實現(xiàn)了一個16mux1的循環(huán)賦值語句,實現(xiàn)不同條件一下,對debug_test_16mux1的賦值操作,即16mux1的邏輯。

always@(*) begin
    debug_test_16mux1 = 128'd0;  
    for(int i=0; i<16;i=i+1) begin : debug_test_16mux1_gen
        if(cfg_16mux1_mode ==i) begin
            debug_test_16mux1  =  debug_test_in[128*i+:128] ;
            break ;
        end
    end
end
always@(*) begin
  case(cfg_16mux1_mode)
  0 : debug_test_16mux1  =  debug_test_in[127  :0    ];
  1 : debug_test_16mux1  =  debug_test_in[255  :128  ];
  2 : debug_test_16mux1  =  debug_test_in[383  :256  ];
  3 : debug_test_16mux1  =  debug_test_in[511  :384  ];
  4 : debug_test_16mux1  =  debug_test_in[639  :512  ];
  5 : debug_test_16mux1  =  debug_test_in[767  :640  ];
  6 : debug_test_16mux1  =  debug_test_in[895  :768  ];
  7 : debug_test_16mux1  =  debug_test_in[1023 :896  ];
  8 : debug_test_16mux1  =  debug_test_in[1151 :1024 ];
  9 : debug_test_16mux1  =  debug_test_in[1279 :1152 ];
  10: debug_test_16mux1  =  debug_test_in[1407 :1280 ];
  11: debug_test_16mux1  =  debug_test_in[1535 :1408 ];
  12: debug_test_16mux1  =  debug_test_in[1663 :1536 ];
  13: debug_test_16mux1  =  debug_test_in[1791 :1664 ];
  14: debug_test_16mux1  =  debug_test_in[1919 :1792 ];
  15: debug_test_16mux1  =  debug_test_in ;
  endcase 
end

NOTE:在for(int*)語句中,如果寫成debug_test_16mux1 = debug_test_in[128*i+127:128*i] , VCS會報語法錯誤;只寫成debug_test_16mux1 =debug_test_in[128*i+:128],此處需要注意。





審核編輯:劉清

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

    關(guān)注

    28

    文章

    1351

    瀏覽量

    110243
  • VCS
    VCS
    +關(guān)注

    關(guān)注

    0

    文章

    80

    瀏覽量

    9628
  • for
    for
    +關(guān)注

    關(guān)注

    0

    文章

    44

    瀏覽量

    15837
  • for循環(huán)
    +關(guān)注

    關(guān)注

    0

    文章

    61

    瀏覽量

    2530

原文標(biāo)題:verilog語法:幾種可綜合的for循環(huán)語句

文章出處:【微信號:處芯積律,微信公眾號:處芯積律】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    C語言基礎(chǔ)知識(5)--循環(huán)語句

    C語言基礎(chǔ)知識(5)--循環(huán)語句
    的頭像 發(fā)表于 06-15 10:18 ?2465次閱讀
    C語言基礎(chǔ)知識(5)--<b class='flag-5'>循環(huán)</b><b class='flag-5'>語句</b>

    FOR循環(huán)語句分析與應(yīng)用

    FOR循環(huán)語句應(yīng)用比較廣泛,在機器人編程、PLC編程、C語言編程中都有應(yīng)用。能讀懂這些程序語句,可以更好地理解機電設(shè)備控制原理,為機電設(shè)備安裝維修工作帶來便利。
    的頭像 發(fā)表于 09-25 17:14 ?2962次閱讀
    FOR<b class='flag-5'>循環(huán)</b><b class='flag-5'>語句</b>分析與應(yīng)用

    開關(guān)語句循環(huán)語句

    switch/case開關(guān)語句是一種多分支選擇語句,是用來實現(xiàn)多方向條件分支的語句。雖然從理論上講采用條件語句也可以實現(xiàn)多方向條件分支,但是當(dāng)分支較多時會使條件
    發(fā)表于 07-15 14:26 ?18次下載

    C語言入門教程-if語句和while循環(huán)

    if語句和while循環(huán) C語言中,if語句和while循環(huán)都會用到布爾表達式。下面是一個使用if語句的簡單例子: #include
    發(fā)表于 07-29 10:48 ?8571次閱讀

    C++語言基礎(chǔ)講解視頻do while循環(huán)語句

    C++語言基礎(chǔ)講解視頻do while循環(huán)語句
    發(fā)表于 01-14 15:32 ?5次下載

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

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

    C語言的for循環(huán)語句的程序和電路圖免費下載

    1、在許多實際問題中,需要程序進行有規(guī)律的重復(fù)執(zhí)行,這時可以用循環(huán)語句來實現(xiàn)。在c語言中。用來實現(xiàn)循環(huán)語句有for語句,while
    發(fā)表于 08-20 17:31 ?1次下載
    C語言的for<b class='flag-5'>循環(huán)</b><b class='flag-5'>語句</b>的程序和電路圖免費下載

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

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

    簡述HDL中循環(huán)語句綜合

    (含循環(huán)體)組成的代碼塊,EDA稱為循環(huán)框架(Loop Frame)。 在這里,HDL循環(huán)語句與算法語言的循環(huán)
    的頭像 發(fā)表于 05-12 09:27 ?2203次閱讀
    簡述HDL中<b class='flag-5'>循環(huán)</b><b class='flag-5'>語句</b>的<b class='flag-5'>可</b><b class='flag-5'>綜合</b>性

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

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

    C語言for語句介紹

    除了可以用while語句和do...while語句實現(xiàn)循環(huán)外,C語言還提供for語句實現(xiàn)循環(huán),而且for
    的頭像 發(fā)表于 03-09 11:14 ?1418次閱讀

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

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

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

    本文主要介紹verilog常用的循環(huán)語句循環(huán)語句的用途,主要是可以多次執(zhí)行相同的代碼或邏輯。
    的頭像 發(fā)表于 05-12 18:26 ?2641次閱讀

    MATLAB中條件語句循環(huán)結(jié)構(gòu)的使用方式

    MATLAB提供了多種條件語句循環(huán)結(jié)構(gòu)。
    的頭像 發(fā)表于 07-05 09:41 ?4289次閱讀

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

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