為什么在Verilog-HDL設計中一定要用同步而不能用異步時序邏輯_第1頁
為什么在Verilog-HDL設計中一定要用同步而不能用異步時序邏輯_第2頁
為什么在Verilog-HDL設計中一定要用同步而不能用異步時序邏輯_第3頁
為什么在Verilog-HDL設計中一定要用同步而不能用異步時序邏輯_第4頁
全文預覽已結束

下載本文檔

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

文檔簡介

1、為什么在VerilogHDL設計中一定要用同步而不能用異步時序邏輯同步時序邏輯是指表示狀態(tài)的寄存器組的值只可能在唯一確定的觸發(fā)條件發(fā)生時刻改變。只能由時鐘的正跳沿或負跳沿觸發(fā)的狀態(tài)機就是一例。always(posedgeclock)就是一個同步時序邏輯的觸發(fā)條件,表示由該always控制的beginend塊中寄存器變量重新賦值的情形只有可能在clock正跳沿發(fā)生。而異步時序邏輯是指觸發(fā)條件由多個控制因素組成,任何一個因素的跳變都可以引起觸發(fā)。記錄狀態(tài)的寄存器組其時鐘輸入端不是都連結在同一個時鐘信號上。例如用一個觸發(fā)器的輸出連結到另一個觸發(fā)器的時鐘端去觸發(fā)的就是異步時序邏輯。用VerilogHD

2、L設計的可綜合模塊,必須避免使用異步時序邏輯,這不但是因為許多綜合器不支持異步時序邏輯的綜合,而且也因為用異步時序邏輯確實很難來控制由組合邏輯和延遲所產生的冒險和競爭。當電路的復雜度增加時,異步時序邏輯無法調試。工藝的細微變化也會造成異步時序邏輯電路的失效。因為異步時序邏輯中觸發(fā)條件很隨意,任何時刻都有可能發(fā)生,所以記錄狀態(tài)的寄存器組的輸出在任何時刻都有可能發(fā)生變化。而同步時序邏輯中的觸發(fā)輸入至少可以維持一個時鐘后才會發(fā)生第二次觸發(fā)。這是一個非常重要的差別,因為我們可以利用這一個時鐘的時間在下一次觸發(fā)信號來到前,為電路狀態(tài)的改變創(chuàng)造一個穩(wěn)定可靠的條件。因此我們可以得出結論:同步時序邏輯比異步時

3、序邏輯具有更可靠更簡單的邏輯關系。如果我們強行作出規(guī)定,用Verilog來設計可綜合的狀態(tài)機必須使用同步時序邏輯,有了這個前提條件,實現(xiàn)自動生成電路結構的綜合器就有了可能。因為這樣做大大減少了綜合工具的復雜度,為這種工具的成熟創(chuàng)造了條件。也為Verilog可綜合代碼在各種工藝和FPGA之間移植創(chuàng)造了條件。VerilogRTL級的綜合就是基于這個規(guī)定的。下面我們將詳細說明同步與異步時序邏輯的差異。在同步邏輯電路中,觸發(fā)信號是時鐘(clock)的正跳沿(或負跳沿);觸發(fā)器的輸入與輸出是經由兩個時鐘來完成的。第一個時鐘的正跳沿(或負跳沿)為輸入作準備,在第一個時鐘正跳沿(或負跳沿)到來后到第二個時鐘

4、正跳沿(或負跳沿)到來之前的這一段時間內,有足夠的時間使輸入穩(wěn)定。當?shù)诙€時鐘正跳沿(或負跳沿)到來時刻,由前一個時鐘沿創(chuàng)造的條件已經穩(wěn)定,所以能夠使下一個狀態(tài)正確地輸出。若在同一時鐘的正跳沿(或負跳沿)下對寄存器組既進行輸入又進行輸出,很有可能由于門的延遲使輸入條件還未確定時,就輸出了下一個狀態(tài),這種情況會導致邏輯的紊亂。而利用上一個時鐘為下一個時鐘創(chuàng)造觸發(fā)條件的方式是安全可靠的。但這種工作方式需要有一個前提:確定下一個狀態(tài)所使用的組合電路的延遲與時鐘到各觸發(fā)器的差值必須小于一個時鐘周期的寬度。只有滿足這一前提才可以避免邏輯紊亂。在實際電路的實現(xiàn)中,采取了許多有效的措施來確保這一條件的成立,

5、其中主要有以下幾點:(1)全局時鐘網(wǎng)絡布線時盡量使各分支的時鐘一致;(2)采用平衡樹結構,在每一級加入緩沖器,使到達每個觸發(fā)器時鐘端的時鐘同步。通過這些措施基本可以保證時鐘的同步,在后仿真時,若邏輯與預期設計的不一樣,可降低時鐘頻率,就有可能消除由于時鐘過快引起的觸發(fā)器輸入端由延遲和冒險競爭造成的不穩(wěn)定從而使邏輯正確。在組合邏輯電路中,多路信號的輸入使各信號在同時變化時很容易產生競爭冒險,從而結果難以預料。下面就是一個簡單的組合邏輯的例子:C=a&b;ab+JCLOCK輸入卞輸出a由于a,b變化不同步導致組合電路競爭冒險產生毛刺和防止辦法a和b變化不同步使C產生了一個脈沖。這個結果也許與當初設計時的想法并不一致,但如果我們能過一段時間,待C的值穩(wěn)定后再來取用組合邏輯的運算結果,就可以避免競爭冒險。同步時序邏輯由于用上一個時鐘的跳變沿時刻(置寄存器作為組合邏輯的輸入)來為下一個時鐘的跳變沿時刻的置數(shù)(置下一級寄存器作為該組合邏輯的輸出)做準備,只要時鐘周期足夠長,就可以在下一個時鐘的跳變沿時刻得到穩(wěn)定的置數(shù)條件,從而在寄存器組中存入可靠的數(shù)據(jù)。而這一點用異步電路是做不到的,因此在實際設計中應盡量避免使用異步時序邏輯。若用彌補的方法來避免競爭冒險,所耗費的人力物力是很巨大的。也無法使所設計的VerilogHDL代碼和已通過仿真測

溫馨提示

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

評論

0/150

提交評論