深入理解阻塞和非阻塞賦值的區(qū)別PPT學習教案_第1頁
深入理解阻塞和非阻塞賦值的區(qū)別PPT學習教案_第2頁
深入理解阻塞和非阻塞賦值的區(qū)別PPT學習教案_第3頁
深入理解阻塞和非阻塞賦值的區(qū)別PPT學習教案_第4頁
深入理解阻塞和非阻塞賦值的區(qū)別PPT學習教案_第5頁
已閱讀5頁,還剩67頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、會計學1深入理解阻塞和非阻塞賦值的區(qū)別深入理解阻塞和非阻塞賦值的區(qū)別第1頁/共72頁第2頁/共72頁第3頁/共72頁第4頁/共72頁n最簡潔。第5頁/共72頁第6頁/共72頁第7頁/共72頁第8頁/共72頁后再n開始賦值的。第9頁/共72頁n允許用于連續(xù)賦值。第10頁/共72頁第11頁/共72頁第12頁/共72頁第13頁/共72頁第14頁/共72頁第15頁/共72頁第16頁/共72頁項 目例 1 例 2描 述wire ck;reg 7:0 a, b, c, d;always ( posedge ck ) beginc = b;b = a;a = d;end代入前的初始值a = 5;c = 10

2、;b = 3;d = 2;wire ck;reg 7:0 a, b, c, always ( posedge ck ) begina = d;/不同處c = b;b = a;end代入前的初始值a = 5;c = 10;b = 3;d = 2;運算結果 a = 2;c = 3;b = 5;d= 2; a = 2;c = 3;b = 2;d= 2;第17頁/共72頁項 目例 1 例 2描 述wire ck;reg 7:0 a, b, c, d;always ( posedge ck ) beginc = b;b = a;a = d;end代入前的初始值a = 5;c = 10;b = 3;d =

3、 2;wire ck;reg 7:0 a, b, c, always ( posedge ck ) begina = d;/不同處c = b;b = a;end代入前的初始值a = 5;c = 10;b = 3;d = 2;運算結果 a = 2;c = 3;b = 5;d= 2; a = 2;c = 3;b = 5;d= 2;第18頁/共72頁阻塞賦值阻塞賦值wire dinreg a, b, c;always (posedge ck) begin a= din; b=a; c=b;end非阻塞賦值非阻塞賦值wire dinreg a, b, c;always (posedge ck) beg

4、in a= din; b=a; c=b;end第19頁/共72頁wire dinreg a, b, c;always (posedge ck) begin a= din; b=a; c=b;end阻塞賦值阻塞賦值非阻塞賦值非阻塞賦值wire dinreg a, b, c;always (posedge ck) begin a= din; b=a; c=b;endDCKQDINCKCC=DIN;DCKQCKCDCKQDCKQAB第20頁/共72頁第21頁/共72頁第22頁/共72頁第23頁/共72頁第24頁/共72頁第25頁/共72頁第26頁/共72頁D的值賦給Q1以后,再執(zhí)行Q2 = Q1;同

5、樣在Q2的值更新以后,才執(zhí)行Q3 = Q2。這樣,最終的計算結果就是Q3 = D。即在每一個clk邊沿,輸入值被無延遲地傳到q3的輸出。這很明顯并沒有建立一個流水線而只是為一個寄存器建模-第27頁/共72頁第28頁/共72頁阻塞賦值”被安排在不同的always塊里面。這樣Verilog標準允許以任意的次序來仿真執(zhí)行3個always塊-這也許會使得該流水線仿真結果產(chǎn)生錯誤,因為這產(chǎn)生了Verilog競爭條件。由不同的always塊執(zhí)行順序會產(chǎn)生不同的結果。盡管這樣,它的綜合結果將是正確的! 這就意味著綜合前仿真和綜合后仿真不匹配 第29頁/共72頁顛倒了一下賦值次序,對實際仿真次序卻不產(chǎn)生決定作

6、用 ,綜合結果是對的,但是仿真結果也許不正確 第30頁/共72頁第31頁/共72頁第32頁/共72頁第33頁/共72頁q2;n endmodule第34頁/共72頁第35頁/共72頁n時序邏輯時要用非阻塞賦值的方式。第36頁/共72頁第37頁/共72頁第38頁/共72頁思考思考:真正的:真正的LFSR電路圖是什么樣子?電路圖是什么樣子?第39頁/共72頁第40頁/共72頁第41頁/共72頁第42頁/共72頁第43頁/共72頁q2,(q1q3),q3;n endmodule第44頁/共72頁雖然可行也很簡單,但我們不建議這種用阻塞賦值來描述D觸發(fā)器模型的風格。如果要把所有的模塊寫到一個alway

7、s塊里,是可以采用阻塞賦值得到正確的建模、仿真并綜合成期望的邏輯。但是,這種想法將導致使用阻塞賦值的習慣,而在較為復雜的多個always塊的情況下可能會導致競爭冒險 第45頁/共72頁第46頁/共72頁n原則2 :鎖存器電路建模時,用非阻塞賦值。第47頁/共72頁第48頁/共72頁第49頁/共72頁 不同之處在于不同之處在于tmp1和和tmp2被添加到事件被添加到事件列表中去了,當非阻塞賦值更新列表中去了,當非阻塞賦值更新LHS變變量時,量時,always塊將會塊將會“自觸發(fā)自觸發(fā)”并使用最并使用最新的新的tmp1和和tmp2來更新來更新y輸出?,F(xiàn)在輸出。現(xiàn)在y輸輸出值正確了因為增加使用了兩條

8、出值正確了因為增加使用了兩條“登入登入路徑路徑”(two passes)貫穿整個)貫穿整個always塊塊。使用更多的。使用更多的“登入路徑登入路徑”來貫穿來貫穿always塊等于降低仿真器的性能,因此如果可塊等于降低仿真器的性能,因此如果可以有合理的一些代碼變化可以取代這以有合理的一些代碼變化可以取代這 種種用法的話,就盡量避免這種用法。用法的話,就盡量避免這種用法。 第50頁/共72頁第51頁/共72頁第52頁/共72頁第53頁/共72頁第54頁/共72頁第55頁/共72頁第56頁/共72頁仿真和綜合都將是正確的,因為“阻塞”與“非阻塞”賦值不是針對同一個變量來的。盡管這可以“正常工作”,但是不推薦這種風格。 第57頁/共72頁第58頁/共72頁第59頁/共72頁第60頁/共72頁在在synplify Pro下綜合,產(chǎn)生錯誤信息下綜合,產(chǎn)生錯誤信息: E: Only one always blo

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論