《電子技術應用》
您所在的位置:首頁 > 其他 > 業界動態 > Verilog HDL阻塞屬性探究及其應用

Verilog HDL阻塞屬性探究及其應用

2009-08-04
作者:郭寶增,汪祥春

??? 摘 要:阻塞賦值與非阻塞賦值語句作為verilog HDL語言的最大難點之一,一直困擾著FPGA設計者,而其中的錯誤又隱晦莫測,理解不透徹會直接導致運用不當,使設計工程達不到預期效果,而排錯又相當麻煩。阻塞賦值與非阻塞賦值語句既血脈相連,又有本質的區別。透過原理和實際應用,從不同側面對阻塞賦值與非阻塞賦值進行剖析,并闡述了阻塞賦值與非阻塞賦值的各自特點及其應用。
??? 關鍵詞:Verilog HDL;阻塞賦值;非阻塞賦值;層積事件列

?

??? Verilog HDL中,有兩種過程賦值方式,即阻塞賦值(blocking)和非阻塞賦值(nonblocking)。阻塞賦值執行時,RHS(right hand statement)估值與更新LHS(left hand statement)值一次執行完成,計算完畢,立即更新。在執行時阻塞同塊中的其他語句的執行。阻塞式(blocking)的操作符為 “ = ”。它的執行很像傳統程序設計語言。非阻塞賦值RHS估值與更新LHS值分兩步執行。在單位仿真周期開始時RHS估值,在同一單位仿真周期末更新LHS值,不阻塞同塊中其他語句的執行。非阻塞式(non-blocking)的操作符為 “ <= ”,它的執行更像并行電路,使描述電路更自然。阻塞賦值與非阻塞賦值是Verilog HDL程序設計的難點,它們既有共同點,也有差異,深入剖析其異同,對于硬件程序的開發具有重大意義。
1 Verilog 事件處理機制
??? 層積事件列(The Stratified Event Queue)是一個事件管理概念模型,而非硬件邏輯。模型內事件的具體實現與EDA軟件生產商的算法策略有關。在IEEE-2001中,Verilog把事件分為5個不同部分,按照時間順序如圖1所示。

?


??? 觸發的任何事件可以加入到這5個事件列中的任何事件列中,但只能從活躍事件列中移出。即上面的5個事件列中的事件最后都將被激活而放入活躍事件列中。層積事件列是層次模型,層積事件列的執行順序是按優先級排列的。任何EDA軟件都只能執行活躍事件。其他事件列都按優先級級別依次激活本列事件以供執行。
1.1 活躍事件列
??? 由圖1可見,大部分事件都被放入活躍事件列?;钴S事件列里包括非阻塞賦值RHS估值。但是,非阻塞賦值的更新不是在活躍事件列,它被列成獨立的非阻塞更新事件列。活躍事件列是仿真的執行源,從一開始執行活躍事件列到活躍事件列執行完畢稱為一個仿真周期?;钴S事件列中的事件可以觸發活躍或非活躍等其他事件。當活躍事件列中的所有事件執行完后,EDA軟件會按優先級依次觸發其余事件列以供仿真執行。但在當前活躍事件列中的事件執行順序是不確定的。
1.2 非活躍事件列
??? 發生在當前仿真時間里并且在活躍事件列執行完后執行的事件列,即非活躍事件列執行優先級僅次于活躍事件列。如帶PLI例程的回調過程(tf_synchronize()、vpi_register_cb(cb_readwrite))。非活躍事件列中的事件亦可以觸發其他事件。如果觸發了優先級更高的活躍事件,非活躍事件列中的其余事件執行后移。
1.3 非阻塞賦值更新事件列
??? 活躍事件列中的每個非阻塞賦值RHS估值,都會觸發一個與之對應的非阻塞賦值更新事件,這些事件被放在非阻塞賦值更新事件列中,執行優先級次于活躍與非活躍事件列。非阻塞賦值更新事件亦可以觸發其他事件。若在非阻塞賦值更新事件列中,存在多個對同一變量的先后賦值,只有最后一個有效,其余值將被覆蓋。
1.4 監控事件列
??? 監控事件列被放在非阻塞賦值更新事件列后。由此可見,用監控事件列中的監控命令監控得到的值都是賦值后的值,活躍事件列$display系統命令則可以查看非阻塞更新前的值。
1.5 未來事件列
??? 在執行事件時,如果事件含有延時,為不阻礙仿真的繼續執行,該事件將被掛起而放入未來事件列。未來事件包含未來非活躍事件和未來非阻塞賦值更新事件。
??? 理解阻塞與非阻塞賦值就需要深入理解層積事件列,層積事件列反應了Verilog事件處理機制。
2 應用及分析
??? 通常非阻塞賦值產生寄存器等存儲元件,對應的物理器件是帶存貯功能的元件,如寄存器、觸發器等。阻塞賦值則對應網線(wire)類型,通常與物理連線對應。這是兩種賦值方式的最明顯的差異,也是時序邏輯用非阻塞、組合邏輯用阻塞的重要原因。但這并不是絕對的,事實上阻塞賦值對應網線(wire)型,亦可對應寄存器(reg)型;阻塞賦值也能生成存貯元件,因此不能片面理解。在組合邏輯里,鎖存器可能引發測試問題,帶來隱患。說明在建模時,首先要從硬件出發來考慮問題,應先在頭腦中形成電路結構,由于賦值方式的不同,綜合結果差異甚大,運用不當很可能會導致建模失敗。阻塞賦值在時序邏輯中亦有著重要應用,在需要實時更新的組合邏輯中只有阻塞賦值能滿足要求。
??? 以下示例代碼的功能是計算傳送過來的data中1和0的個數。
??? reg [5:0]count0,count1;
??? always @(posedge clk,negedge Rst_n)
??? ?? begin
??? ????? if(!Rst_n)
?????????? ...
??? ????? else
?????????? begin
? ?????????? count0 = 0;???????????????????????? //語句1
? ?????????? count1 = 0;???????????????????????? //語句2
? ?????????? for(i = 0;i <= 11;i = i+1)
? ????????????? begin
? ???????????????? if(data[i] == 1)
? ??????????????????? count1 = count1 + 1;??????? //語句3
? ???????????????? else if(data[i] == 0)
?????????????????????????? count0 = count0 - 1;?????? //語句4
?????????????????????????? else
???????????????????????????????? count0 = count0 + 0;???? //防止生成鎖存器
? ?????????? end
?? ??????? end
??? end
??? 在這段代碼里,count0、count1的值必須在每次計數之前被清零,count0、count1必須實時更新。顯然,只有阻塞賦值能滿足要求。非阻塞賦值分兩步完成,所有的更新事件在單位仿真周期末同時執行,只有最后一個值有效,所以非阻塞賦值無法完成計數任務。阻塞賦值卻能很好地勝任,因為阻塞賦值估值和更新一次性完成。
??? 事件上,在時序邏輯中經常碰到上述實時更新問題,非阻塞賦值往往無法實現,如用阻塞賦值則可很好地解決問題。
??? 正如阻塞賦值在時序邏輯中有重要應用一樣,非阻塞賦值在組合邏輯中亦有不可替代的應用。在組合邏輯中用非阻塞賦值可以把組合邏輯改造成流水線??蓤绦腥缦滤炯兘M合邏輯代碼,將生成純組合邏輯,綜合結果如圖2所示。

?


??? input a,b,c,clk,sel;
? ? output out;
? ? reg out,temp;
??always @(posedge clk)
? ? begin
???? temp? = a & b;???? //語句1
???? if(sel)
?????? out? = temp | c;?? //語句2
???? else
?????? out? = c;?????? //語句3
??? end
??? 若把上面代碼中語句1、語句2、語句3阻塞賦值(" = ")改為非阻塞賦值(" <= "),則綜合結果如圖3所示。

?


??? 流水線設計方法在高性能、需經常進行大規模運算的組合邏輯中可以到廣泛運用。
??? 在組合邏輯中,如在begin、end塊中同時有許多非阻塞賦值,則它們的賦值順序是并發的。實際上它們賦予的都是上一個時鐘送入寄存器的值。這與使用同一時鐘沿觸發的許多在同一個使能控制信號下賦值完全一致,并且這種賦值因為數據保存在寄存器中,當時鐘沿到來時都已穩定,所以存入的數值是可靠的。用這種方法可以避免由組合邏輯產生的競爭冒險[2]
??? 在相關應用中,非阻塞賦值能較好地解決零時刻競爭冒險問題。因為非阻塞賦值分兩步完成,非阻塞賦值更新事件是在所有活躍與非活躍事件執行完之后執行,能確保所有敏感變量值在零時刻都被觸發[3]。
??? 在同一always塊混合使用阻塞賦值與非阻塞賦值,利弊共存,混合使用的結果可能事半功倍,亦可能功虧一簣。只有了解其處理機制,深刻理解阻塞與非阻塞賦值底層實現的異同,方可靈活運用。
??? 本文通過Verilog事件處理機制,詳細討論了阻塞與非阻塞賦值的區別、聯系及其應用示例。由本文可知,阻塞與非阻塞賦值靈活多變,底層實現也差異甚大。因而在數字電路設計時,依據預期功能,從硬件實現出發,斟酌差異,仔細選用阻塞與非阻塞賦值才能有效避免出錯,縮短開發周期。
參考文獻
[1]? IEEE Standard verilog hardware description language based on the verilog hardware description language[R]. IEEE Computer Society. IEEE. New York. NY. IEEE Std 1364-2001.
[2]? 夏宇聞.Verilog 數字系統設計教程[M]. 北京:北京航空航天大學出版社,2003.
[3]? CLIKFFORD E.C. nonblocking assignment in verilog synthesis. coding styles that kill[J]. SNUG (Synopsys Users Group) 2000 User Papers,2000(3).

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          影音先锋一区| 国产欧美日韩视频一区二区三区| 国产精品高潮呻吟视频| 欧美午夜免费电影| 黄色日韩网站| 一本高清dvd不卡在线观看| 一区二区不卡在线视频 午夜欧美不卡'| 欧美一区二区三区四区在线观看| 午夜精品一区二区三区在线| 欧美激情精品久久久久久大尺度| 欧美日韩在线三级| 国产在线日韩| 欧美日韩三区| 欧美日韩另类丝袜其他| 久久国产综合精品| 欧美日韩和欧美的一区二区| 玖玖视频精品| 国产精品久久久久免费a∨大胸| 国产精品久久久久天堂| 国产精品va在线播放我和闺蜜| 久久另类ts人妖一区二区| 久久久美女艺术照精彩视频福利播放| 亚洲一区二区动漫| 国产精品www色诱视频| 久久久久久久高潮| 久久精品国产第一区二区三区| 久久精品亚洲一区二区三区浴池| 久久国产精品99久久久久久老狼| 国产精品久久久久一区二区三区| 红桃视频国产精品| 亚洲高清久久| 国产九九精品| 欧美日韩视频在线观看一区二区三区| 久久精品视频在线播放| 国产日韩成人精品| 国产三区精品| 久久尤物视频| 欧美一区二区网站| 一本色道久久综合亚洲精品不卡| 一区二区三区回区在观看免费视频| 欧美高清在线播放| 欧美日韩在线视频一区二区| 欧美二区在线观看| 国产精品无码专区在线观看| 国产专区一区| 亚洲一区中文| 久久综合网络一区二区| 欧美精品观看| 国产精品a久久久久| 国产精品青草久久久久福利99| 一区精品久久| 久久综合中文色婷婷| 久久人人97超碰国产公开结果| 香蕉av福利精品导航| 久久gogo国模裸体人体| 亚洲欧美久久久久一区二区三区| 久久色在线观看| 国产精品国产亚洲精品看不卡15| 精品成人在线观看| 99re8这里有精品热视频免费| 黄色成人av网站| 久久婷婷久久一区二区三区| 国产精品一区二区男女羞羞无遮挡| 狠狠88综合久久久久综合网| 欧美高清在线播放| 免费久久99精品国产自在现线| 亚洲激情婷婷| 亚洲欧美激情诱惑| 国产精品分类| 国产一区二区久久久| 久久国产直播| 亚洲黄色在线观看| 午夜精品久久久久久99热软件| 欧美日韩一区在线观看| 在线视频亚洲一区| 狂野欧美一区| 久久aⅴ国产欧美74aaa| 欧美调教视频| 欧美三级视频在线播放| 国产亚洲一区在线| 欧美日韩一区二区视频在线观看| 欧美激情久久久| 欧美多人爱爱视频网站| 亚洲视频1区| 伊人成综合网伊人222| 国产综合av| 国产一区二区高清不卡| 海角社区69精品视频| 亚洲国产欧洲综合997久久| 亚洲福利视频一区二区| 99re66热这里只有精品3直播| 亚洲精品小视频在线观看| 亚洲午夜电影网| 国产综合视频在线观看| 久久一区精品| 亚洲在线网站| 亚洲人成网在线播放| 亚洲精品一区久久久久久| 免费在线看一区| 欧美视频官网| 欧美日韩免费高清一区色橹橹| 免费在线亚洲欧美| 亚洲欧美视频在线观看| 国产欧美日韩三级| 久久精品免费电影| 国产一区二区福利| 亚洲无亚洲人成网站77777| 亚洲欧美日本在线| 国产精品久久久久久久久免费桃花| 欧美日韩一本到| 欧美成人免费在线观看| 欧美区二区三区| 亚洲专区欧美专区| 韩国v欧美v日本v亚洲v| 欧美日韩在线一区| 国产日韩欧美夫妻视频在线观看| 亚洲婷婷综合久久一本伊一区| 欧美国产一区二区在线观看| 国产欧美日韩不卡| 翔田千里一区二区| 亚洲电影中文字幕| 夜夜嗨av一区二区三区四季av| 亚洲精品欧美激情| 亚洲视频在线观看| 久久在线免费| 欧美一区二区三区四区高清| 欧美日韩亚洲三区| 亚洲午夜国产成人av电影男同| 欧美日韩一二三四五区| 欧美乱在线观看| 国产精品区一区二区三| 欧美国产日本高清在线| 国内免费精品永久在线视频| 国产精品视频网站| 一本久久a久久精品亚洲| 国产亚洲精品久久飘花| 尤物99国产成人精品视频| 在线播放国产一区中文字幕剧情欧美| 欧美三日本三级三级在线播放| 亚洲视频在线播放| 中文在线不卡视频| 久久精品视频导航| 欧美激情视频免费观看| 亚洲欧洲99久久| 国产精品日韩欧美大师| 欧美亚洲三级| 夜夜嗨av色一区二区不卡| 久久一二三区| 久久狠狠婷婷| 一区二区三区四区五区精品| 欧美成人免费在线观看| 国产深夜精品| 亚洲美女淫视频| 欧美成人免费在线视频| 亚洲系列中文字幕| 香蕉久久精品日日躁夜夜躁| 亚洲一区二区av电影| 午夜精品在线观看| 欧美午夜精品久久久久免费视| 国产精品成人播放| 国产精品专区h在线观看| 久久免费精品日本久久中文字幕| 亚洲高清在线| 一区二区三区三区在线| 黄色成人免费观看| 久久狠狠一本精品综合网| 午夜精品在线| 欧美日韩国产免费| 国产精品jvid在线观看蜜臀| 亚洲国产综合视频在线观看| 亚洲午夜性刺激影院| 亚洲一区二区欧美日韩| 国产欧美综合在线| 黑人巨大精品欧美黑白配亚洲| 国产精品国产自产拍高清av王其| 亚洲欧美一区二区精品久久久| 国产精品hd| 欧美区日韩区| 国产亚洲欧洲一区高清在线观看| 日韩一级欧洲| 欧美国产日韩在线观看| 久久九九热免费视频| 欧美日韩亚洲一区二区三区四区| 国产欧美一区二区三区国产幕精品| 免费在线观看一区二区| 中文欧美日韩| 午夜在线观看免费一区| 国产精品99久久99久久久二8| 亚洲综合视频一区| 欧美日韩国产精品一区| 国产精品久久夜| 久久riav二区三区| 狠狠操狠狠色综合网| 在线成人激情| 亚洲丶国产丶欧美一区二区三区| 亚洲综合成人婷婷小说| 久久精品五月婷婷| 国产精品免费一区豆花| 精品不卡一区| 国产日韩精品电影| 午夜欧美理论片| 亚洲黄色小视频| 亚洲大胆av| 欧美日韩亚洲另类| 麻豆精品在线播放| 在线亚洲美日韩| 国产原创一区二区| 午夜欧美大片免费观看| 在线视频国产日韩| 免费欧美在线视频| 久久精品毛片| 小辣椒精品导航| 亚洲一区二区精品在线| 国产精品美腿一区在线看| 亚洲国产精品电影在线观看| 欧美中文在线观看国产| 国产一区二区三区久久悠悠色av| 欧美涩涩视频| 亚洲人成网站999久久久综合| 国产欧美日韩中文字幕在线| 久久久蜜桃一区二区人| 亚洲九九九在线观看| 亚洲欧洲av一区二区三区久久| 国产欧美在线视频| 亚洲电影网站| 亚洲欧洲视频在线| 国产精品久久久久久久第一福利| 欧美日韩中文另类| 噜噜噜噜噜久久久久久91| 久久丁香综合五月国产三级网站| 午夜影视日本亚洲欧洲精品| 欧美与黑人午夜性猛交久久久| 亚洲欧美韩国| 国产精品狠色婷| 亚洲三级免费观看| 欧美mv日韩mv国产网站| 欧美国产高潮xxxx1819| 在线观看日韩av电影| 欧美一区激情视频在线观看| 一区二区高清| 欧美日韩裸体免费视频| 国产精品久久久久aaaa樱花| 亚洲欧洲日产国产综合网| 欧美精品videossex性护士| 日韩性生活视频| 亚洲国产电影| 亚洲欧洲综合另类在线| 欧美日韩国产电影| 狠狠综合久久| 亚洲精品一区久久久久久| 亚洲欧美制服另类日韩| 久久野战av| 国产精品美女久久久久久久| 亚洲视频精选| 亚洲美女免费视频| 国产精品第十页| 欧美国产一区二区| 欧美精品色网| 国产精品老牛| 国产日韩欧美一区二区三区在线观看| 午夜视频精品| 亚洲素人一区二区| 亚洲小少妇裸体bbw| 亚洲缚视频在线观看| 99精品福利视频| 亚洲精品视频在线播放| 亚洲韩国精品一区| 久久躁日日躁aaaaxxxx| 久久九九久久九九| 午夜精品久久久久久久| 欧美主播一区二区三区美女 久久精品人| 有码中文亚洲精品| 国产精品99免视看9| 国产一区二区三区四区老人| 欧美肥婆bbw| 韩国欧美国产1区| 欧美福利一区| 国产精品v欧美精品v日本精品动漫| 91久久香蕉国产日韩欧美9色| 亚洲免费视频观看| 欧美性事免费在线观看| 国产伦精品一区二区三区照片91| 国产尤物精品| 亚洲国产日本| 新67194成人永久网站| 欧美日韩妖精视频| 免费不卡在线观看av| 亚洲国产日韩在线| 国产午夜精品美女视频明星a级| 亚洲伊人第一页| 亚洲网址在线| 亚洲人成艺术| 国产精品一区二区久久国产| 久久国产精品电影| 欧美高清视频一区二区三区在线观看| 国产精品久久777777毛茸茸| 国产欧美日韩一区二区三区在线| 精品动漫3d一区二区三区| 亚洲欧美日韩爽爽影院| 99人久久精品视频最新地址| 欧美成人一区二区在线| 亚洲最新在线| 欧美大尺度在线| 欧美黄色精品| 欧美精品手机在线| 亚洲精品在线观看视频| 国产精品久久久久77777| 亚洲欧美日韩视频一区| 免费欧美视频| 亚洲无亚洲人成网站77777| 国产日产高清欧美一区二区三区| 欧美日韩成人一区二区三区| 亚洲国产精品传媒在线观看| 欧美日韩一区二区视频在线观看| 在线国产欧美| 亚洲欧洲日产国码二区| 韩国三级电影一区二区| 亚洲一区二区三区在线视频| 日韩视频在线一区| 欧美日韩精品伦理作品在线免费观看| 日韩一区二区精品在线观看| 国产一区二区三区无遮挡| 国产专区综合网| 欧美午夜视频在线观看| 欧美一区二区免费观在线| 午夜久久美女| 在线日韩欧美视频| 欧美一区不卡|