RM新时代网站-首页

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

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

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

簡述阻塞賦值和非阻塞賦值的可綜合性

電子工程師 ? 來源:FPGA設計論壇 ? 作者:FPGA設計論壇 ? 2021-05-12 09:45 ? 次閱讀

阻塞賦值和非阻塞賦值的可綜合性

Blocking Assignment阻塞賦值和NonBlocking Assignment非阻塞賦值,原本是軟件進程管理的術語。由于Verilog團隊是從C語言發(fā)展,所以基于的C的術語和概念出現(xiàn)在EDA中,原本是一個“誤打誤撞”,但歷史造成的現(xiàn)實則是:必須理解和正確掌握它們的用法。

軟件中阻塞進程,是指調(diào)用返回之前,應用進程一直等待:

395df0f8-b2a3-11eb-bf61-12bb97331649.png

為了保證應用進程的效率,不至于被子程序的運算過程“掛起”。非阻塞進程得到應用:

3968d040-b2a3-11eb-bf61-12bb97331649.png

在非阻塞賦值進程中,無論子程序是否返回,不影響應用進程的正常運行。C語言的阻塞和非阻塞概念被Verilog團隊引用,Verilog的阻塞賦值:

39747fe4-b2a3-11eb-bf61-12bb97331649.png

Verilog的非阻塞賦值:

3984bb34-b2a3-11eb-bf61-12bb97331649.png

關于阻塞和非阻塞爭議中,有一個辯論雙方都引用的電路模型:反饋震蕩器:

398e8ede-b2a3-11eb-bf61-12bb97331649.png

其中,復位信號rst_n初始化RA(a)為0, RB(b)為1。觀察其物理連接,在時鐘沿作用下,兩個寄存器將互相交換數(shù)據(jù)。(同時交換)

為以上電路模型進行驗證,在循環(huán)行為體并分別使用阻塞賦值和非阻塞賦值。并驗證其前仿和后仿,觀察對比真實性。

應該得到的結(jié)論:

使用阻塞賦值:前仿不真實(沒有發(fā)生兩個寄存器的交換),后仿真實(發(fā)生交換)

使用非阻塞賦值:前仿真實(交換),后仿真實(交換)

基于以上結(jié)論:

“倒阻派”認為,沒有使用阻塞賦值的必要,必須在行為語句賦值中全部使用非阻塞。

“挺阻派”認為,基于電平敏感賦值用阻塞,沿敏感賦值用非阻塞,阻塞語句是必要的。

2000年以后,進入從“綜合為王”進入“驗證為王”的時代。同樣的Verilog代碼需要回到電腦中,用于非綜合目的。驗證代碼中的賦值驅(qū)動與軟件編寫概念相同,帶來非常大的便利。這就是“阻塞”賦值的反轉(zhuǎn)。

編輯:jq

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

    關注

    0

    文章

    10

    瀏覽量

    9999
  • 阻塞
    +關注

    關注

    0

    文章

    24

    瀏覽量

    8100

原文標題:FPGA學習:阻塞賦值和非阻塞賦值的可綜合性

文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關推薦

    數(shù)組名之間可以直接賦值

    數(shù)組之間的賦值能不能直接使用等于號?比如這樣的代碼。 int main(){ int a[5] = {1, 2, 3, 4, 5}; int b[5] = {0}; b = a
    的頭像 發(fā)表于 11-26 11:23 ?133次閱讀

    socket編程中的阻塞阻塞

    在網(wǎng)絡編程中, socket 是一個非常重要的概念,它提供了一個抽象層,使得開發(fā)者可以不必關心底層的網(wǎng)絡通信細節(jié)。 socket 編程中的阻塞阻塞模式是兩種不同的操作方式,它們對程序的響應
    的頭像 發(fā)表于 11-01 16:13 ?189次閱讀

    Verilog HDL的基礎知識

    本文繼續(xù)介紹Verilog HDL基礎知識,重點介紹賦值語句、阻塞阻塞、循環(huán)語句、同步與異步、函數(shù)與任務語法知識。
    的頭像 發(fā)表于 10-24 15:00 ?338次閱讀
    Verilog HDL的基礎知識

    socket阻塞阻塞的區(qū)別是什么

    在計算機編程中,socket 是一種通信端點,用于在網(wǎng)絡中進行數(shù)據(jù)傳輸。Socket 可以是阻塞的或阻塞的,這兩種模式在處理數(shù)據(jù)傳輸時有不同的行為。 阻塞模式(Blocking Mo
    的頭像 發(fā)表于 08-16 11:13 ?663次閱讀

    FPGA學習筆記---基本語法

    :task...endtask 11、循環(huán)語句:for 12、賦值符號:=和<=(阻塞阻塞賦值) 硬件設計的精髓,力求用最簡單的語
    發(fā)表于 06-23 14:58

    請問使用lwip創(chuàng)建socket,該如何做到阻塞的接收發(fā)送數(shù)據(jù)?

    請問使用lwip創(chuàng)建socket,該如何做到阻塞的接收發(fā)送數(shù)據(jù)?
    發(fā)表于 06-19 06:02

    關于Verilog的一些基本語法

    ,當然除了這種方式還有 <=(阻塞賦值)這種方式;阻塞賦值 = (例如 a = b;):a的值在
    發(fā)表于 05-31 18:31

    簡談FPGA研發(fā)設計相關規(guī)范(很實用)

    ,trior,real,disable,forever,arrays,memories,repeat,task,while。 建立綜合模型的原則 要保證Verilog HDL賦值語句的
    發(fā)表于 05-13 15:39

    簡談FPGA研發(fā)設計相關規(guī)范(很實用)

    要保證Verilog HDL賦值語句的綜合性,在建模時應注意以下要點: (1)不使用initial。(2)不使用#10。(3)不使用循環(huán)次數(shù)不確定的循環(huán)語句,如forever、while等
    發(fā)表于 04-16 15:42

    為什么指針之間不要隨意賦值呢?

    指針之間也不能隨意賦值。
    的頭像 發(fā)表于 03-28 17:13 ?651次閱讀
    為什么指針之間不要隨意<b class='flag-5'>賦值</b>呢?

    什么是阻塞阻塞?

    什么是阻塞阻塞?我們就用管道的讀寫來舉例子。
    的頭像 發(fā)表于 03-25 10:04 ?495次閱讀

    mapgis如何給區(qū)屬性賦值

    MapGIS是一款功能強大的地理信息系統(tǒng)軟件,它提供了豐富的功能和工具,使用戶能夠?qū)Φ乩頂?shù)據(jù)進行快速、高效的管理和分析。其中一個重要的功能就是給區(qū)屬性賦值,即對地圖中的區(qū)域進行分類和標記,以便更好
    的頭像 發(fā)表于 02-23 17:49 ?2241次閱讀

    proteus屬性賦值工具怎么用

    Proteus是一種電路設計和仿真軟件,在進行電路設計和仿真時,屬性賦值是非常重要的步驟。屬性賦值工具可以幫助用戶快速有效地配置電路元件的屬性,從而實現(xiàn)電路的準確仿真。下面是關于Proteus屬性
    的頭像 發(fā)表于 02-23 17:19 ?4559次閱讀

    verilog同步和異步的區(qū)別 verilog阻塞賦值阻塞賦值的區(qū)別

    Verilog是一種硬件描述語言,用于設計和模擬數(shù)字電路。在Verilog中,同步和異步是用來描述數(shù)據(jù)傳輸和信號處理的兩種不同方式,而阻塞賦值阻塞
    的頭像 發(fā)表于 02-22 15:33 ?1675次閱讀

    以太網(wǎng)阻塞的常見原因與解決方法

    以太網(wǎng)阻塞的常見原因與解決方法 以太網(wǎng)阻塞是指在以太網(wǎng)中數(shù)據(jù)流量增加超過網(wǎng)絡設備處理能力的情況下,導致網(wǎng)絡性能下降、延遲增加、丟包率上升等問題。下面將詳細討論以太網(wǎng)阻塞的常見原因及解決方法。 一
    的頭像 發(fā)表于 12-27 13:58 ?1249次閱讀
    RM新时代网站-首页