chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

continue和break跳轉語句介紹

OpenFPGA ? 來源:OpenFPGA ? 作者:碎碎思 ? 2022-11-09 09:23 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

跳轉語句允許程序代碼跳過一個或多個編程語句,SystemVerilog的jump語句是continue、break和disable。

continue 和 break跳轉語句

continue和break-跳轉語句在循環(huán)中用于控制循環(huán)中語句的執(zhí)行。這些跳轉語句只能用于for循環(huán)、while循環(huán)和foreach循環(huán)。它們不能在循環(huán)之外使用。

continue語句跳轉到循環(huán)的結尾,并計算循環(huán)的結束表達式(end expression),以確定循環(huán)是否應繼續(xù)進行另一次迭代。

下面的代碼段使用for循環(huán)遍歷一個小查找表的地址,該表被建模為16-bit的一維數(shù)組。使用continue語句跳過表中值為0的位置。對于非零位置,調(diào)用函數(shù)對該值進行某種操作(函數(shù)未顯示)。

f8758ab0-5fc6-11ed-8abf-dac502259ad0.png

break語句立即終止循環(huán)的執(zhí)行。循環(huán)退出,任何循環(huán)控制語句(如for循環(huán)步驟分配)都不會執(zhí)行。

示例6-10說明了如何使用continue和break來查找在一個位范圍內(nèi)設置為1的第一位。圖6-10顯示了該示例的綜合結果。

示例6-10:使用continue和break控制循環(huán)執(zhí)行

//`begin_keywords"1800-2012"http://useSystemVerilog-2012keywords
modulefind_bit_in_range
#(parameterN=4)//bussize
(inputlogic[N-1:0]data,
inputlogic[$clog2(N)-1:0]start_range,end_range,
outputlogic[$clog2(N)-1:0]low_bit
);
timeunit1ns;timeprecision1ns;

always_combbegin
low_bit='0;
for(inti=0;iend_range)break;//exitloop
if(data[i])begin
low_bit=i;
break;//exitloop
end
end//endoftheloop
//...//processdatabasedonlowestbitset
end

endmodule:find_bit_in_range
//`end_keywords

f899e748-5fc6-11ed-8abf-dac502259ad0.png 圖6-10:示例6-10的綜合結果

disable跳轉語句

SystemVerilog 的disable語句類似于其他編程語言中的go-to語句。disable跳轉到一組命名語句的末尾或任務的末尾。disable跳轉語句的一般用法是:

f9cb2f00-5fc6-11ed-8abf-dac502259ad0.png

在這個代碼片段中,begin-end語句組被命名為search_loop。disable語句指示仿真立即跳到名為begin-end 語句組的末尾。

最初的Verilog語言沒有continue和break-跳轉語句。相反,disable語句與通用go-to行為一樣用于跳轉到循環(huán)的末尾,但會繼續(xù)執(zhí)行循環(huán)的下一個過程。

disable語句通過跳過循環(huán)的末端,過早地跳出循環(huán)。要跳過循環(huán)中的語句,繼續(xù)執(zhí)行循環(huán)時,命名的begin-end語句組必須包含在循環(huán)中。要跳出循環(huán),命名的begin-end語句組必須包含整個循環(huán)。

下面的示例顯示了與示例6-10相同的功能,除了使用disable 跳轉語句而不是continue和break語句,

f9ec9b22-5fc6-11ed-8abf-dac502259ad0.png

最佳實踐指南6-6
使用continue和break-跳轉語句控制循環(huán)迭代。不要使用disable跳轉語句.

disable 跳轉語句提供與break和continue 跳轉語句相同的功能,如上所示。然而,disable 跳轉語句使代碼更難讀懂和維護,使用continue和break是一種更簡單、更直觀的編碼方式。

disable跳轉語句是一個通用的go-to語句,可以在驗證中使用。綜合編譯器通常不支持使用disable的其他方法。

No-op聲明

SystemVerilog編程語句以分號;(分號本身被視為完整的編程語句)表示沒有要執(zhí)行的功能。單獨的分號執(zhí)行空操作,通常被稱為無操作語句(no-op語句)。

下面的代碼片段表示存儲數(shù)據(jù)變量的寄存器(使用觸發(fā)器)。由case語句表示的多路輸入確定要存儲在數(shù)據(jù)寄存器中的值。

fa1f0b7a-5fc6-11ed-8abf-dac502259ad0.png

此代碼段中的case語句不會對mode的2’b11值進行解碼。雖然在本例中功能上是正確的,但不完整的case語句不是完美的,并且可能會在代碼驗證期間引發(fā)問題,或者其他工程師在維護或重用代碼時引入歧義(解碼模式值2’b11是不是故意的?還是模型中的疏忽(錯誤))。

在這個例子中,沒有任何東西可以說明這種或那種方式。添加關于未使用的2’b11值的注釋可能會很有幫助,但不是所有人都會用心的注釋代碼。

使用無操作語句有助于使RTL模型更加自我記錄和可讀。下面的代碼片段在功能上與前面的示例相同,但是,即使沒有注釋,很明顯,也很方便人們理解代碼。

fa5abd96-5fc6-11ed-8abf-dac502259ad0.png

時序邏輯中的無操作語句將被綜合編譯器忽略。沒有要實現(xiàn)的功能,因此寄存器將保留其初始值。然而,綜合編譯器不能忽略組合邏輯中的no-op語句。

當沒有為變量賦值時,它將保留以前的值。綜合時可能會添加一個鎖存器,以便邏輯可以保存以前的值。

最佳實踐指南6-7
不要將no-op語句用于RTL建模,

盡管綜合編譯器支持no-op,但它在RTL功能中沒有任何用途,并且可能導致組合邏輯中出現(xiàn)意外的鎖存器。為了完整性,我們討論了no-op語句,但不建議在RTL代碼中使用。





審核編輯:劉清

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

    關注

    8

    文章

    926

    瀏覽量

    42403
  • 編程語言
    +關注

    關注

    10

    文章

    1956

    瀏覽量

    36670
  • Verilog語言
    +關注

    關注

    0

    文章

    113

    瀏覽量

    8555

原文標題:SystemVerilog-跳轉語句

文章出處:【微信號:Open_FPGA,微信公眾號:OpenFPGA】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    嵌入式C語言中的goto語句詳解

    goto語句被稱為C語言中的跳轉語句。用于無條件跳轉到其他標簽。它將控制權轉移到程序的其他部分。
    發(fā)表于 07-19 16:08 ?4132次閱讀
    嵌入式C語言中的goto<b class='flag-5'>語句</b>詳解

    C語言中break語句的語法和基本應用

    在C語言中,break語句是一種控制流語句,它用于終止當前所在的循環(huán)結構(for、while、do-while)或者switch語句,從而跳出循環(huán)或者結束switch
    發(fā)表于 08-17 15:35 ?2534次閱讀

    C語言的break轉移語句講解

    C語言的break轉移語句是一種用于跳出循環(huán)或者switch語句的控制結構。它的作用是提前結束循環(huán)或者switch語句,從而避免不必要的計算或者執(zhí)行。
    的頭像 發(fā)表于 11-22 15:34 ?1120次閱讀
    C語言的<b class='flag-5'>break</b>轉移<b class='flag-5'>語句</b>講解

    深入理解C語言:C語言循環(huán)控制

    在C語言編程中,循環(huán)結構是至關重要的,它可以讓程序重復執(zhí)行特定的代碼塊,從而提高編程效率。然而,為了避免程序進入無限循環(huán),C語言提供了多種循環(huán)控制語句,如breakcontinue和goto,用于
    的頭像 發(fā)表于 04-29 18:49 ?1156次閱讀
    深入理解C語言:C語言循環(huán)控制

    breakcontinue語句#硬聲創(chuàng)作季

    Conbreak
    學習電子
    發(fā)布于 :2022年10月27日 07:32:40

    在C語言中什么是goto語句

    什么是goto語句goto語句被稱為C語言中的跳轉語句,用于無條件跳轉到其他標簽,它將控制權轉移到程序的其他部分。goto語句一般很少使用,
    發(fā)表于 07-14 08:17

    continue、break和return的區(qū)別

    嵌入式工程師綜合筆試題之C語言基礎(含部分答案)continue、break和return的區(qū)別?continue:跳過本次循環(huán).Break:只能在循環(huán)體內(nèi)部或者switch開關
    發(fā)表于 12-15 06:08

    KEIL環(huán)境下華大芯片執(zhí)行跳轉語句會進入硬件中斷,關閉全部中斷后,為什么跳轉后會停下來而不是自動繼續(xù)跑下去?

    我在APP工程中使用attribute語句在0x8008的位置放置了一個入口函數(shù),用于跳轉到0x8200的APP工程。在BOOT工程下增加了跳轉語句跳轉到0x8008這個入口函數(shù)( (
    發(fā)表于 11-08 08:48

    芯靈思SinlinxA33開發(fā)板安卓開發(fā)-java語言基礎(五)

    )。?(3)結束while語句的執(zhí)行.breakcontinue語句breakcontinue
    發(fā)表于 12-24 10:45 ?326次閱讀

    C語言程序設計教程之循環(huán)結構程序設計資料概述

    本文檔的主要內(nèi)容詳細介紹的是C語言程序設計教程之循環(huán)結構程序設計資料概述主要內(nèi)容包括了:1.循環(huán)語句,2.breakcontinue 語句
    發(fā)表于 12-29 17:17 ?16次下載
    C語言程序設計教程之循環(huán)結構程序設計資料概述

    c語言中的SCL-CONTIUNE語句

    CONTIUNE語句 CONTIUNE語句用來終止循環(huán)語句(FOR, WHILE或REPEAT)的當前重復的執(zhí)行。 語法(Syntax) CONTINUE
    的頭像 發(fā)表于 04-16 11:19 ?2771次閱讀
    c語言中的SCL-CONTIUNE<b class='flag-5'>語句</b>

    決策語句允許程序塊的執(zhí)行流程

    SystemVerilog case語句與C switch語句類似,但有重要區(qū)別。SystemVerilog不能使用break語句(C使用break
    的頭像 發(fā)表于 10-27 08:57 ?1207次閱讀

    SCL用GOTO語句執(zhí)行程序跳轉

    用GOTO語句能夠執(zhí)行程序跳轉。此引起立即跳轉到指定標號,為此而到同塊中不同的語句
    的頭像 發(fā)表于 02-01 09:22 ?3131次閱讀

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

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

    深入探討嵌入式C編程的goto語句

    什么是goto語句? goto 語句被稱為 C 語言中的跳轉語句。 用于無條件跳轉到其他標簽。它將控制權轉移到程序的其他部分。 goto
    發(fā)表于 01-21 10:41 ?978次閱讀
    深入探討嵌入式C編程的goto<b class='flag-5'>語句</b>