Verilog進行組合邏輯設計時的一些注意事項_第1頁
Verilog進行組合邏輯設計時的一些注意事項_第2頁
Verilog進行組合邏輯設計時的一些注意事項_第3頁
Verilog進行組合邏輯設計時的一些注意事項_第4頁
全文預覽已結(jié)束

下載本文檔

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

文檔簡介

Verilog進行組合邏輯設計時的一些注意事項一、邏輯設計(1)組合邏輯設計下面是一些用Verilog進行組合邏輯設計時的一些注意事項:①組合邏輯可以得到兩種常用的RTL級描述方式。第一種是always模塊的觸發(fā)事件為電平敏感信號列表;第二種就是用assign關鍵字描述的數(shù)據(jù)流賦值語句。②always模塊的敏感表為電平敏感信號的電路可幾乎可以完成對所有組合邏輯電路的建模。always模塊的敏感列表為所有判斷條件信號和輸入信號,但一定要注意敏感列表的完整性(注意通配符*的使用)。由于賦值語句有阻塞賦值和非阻塞賦值兩類,建議讀者使用阻塞賦值語句“=”,原因?qū)⒃凇白枞x值和非阻塞賦值”中(現(xiàn)在還沒有寫)進行說明。always模塊中的信號必須定義為reg型,不過最終的實現(xiàn)結(jié)果中并沒有寄存器。這是由于在組合邏輯電路描述中,將信號定義為reg型,只是為了滿足語法要求。③assign語句的描述,利用條件符“?”可以描述一些相對簡單的組合邏輯電路,左邊的賦值信號只能被定義為wire型。當組合邏輯比較復雜時,需要很多條語句assign語句或者多重嵌套“?”,使得代碼可讀性極差,因此此時推薦always組合邏輯建模方式。④設計時要注意不要出現(xiàn)組合邏輯環(huán)路:不要在組合邏輯中引入環(huán)路,在組合邏輯中引入環(huán)路會導致電路產(chǎn)生振蕩、毛刺以及沖突等問題,從而降低設計的穩(wěn)定性和可靠性,此外,環(huán)回邏輯的延時完全依靠組合邏輯門延遲和布線延遲。一旦這些傳播時延有所變化,則環(huán)路的整體邏輯將徹底失效。其次,環(huán)路的時序分析是個死循環(huán)過程。目前的EDA開發(fā)工具為了計算環(huán)路的時序邏輯都會主動割斷時序路徑,引入許多不確定的因素。因此要徹底避免環(huán)路。(2)時序邏輯設計①時序電路的行為決定了其只能通過always塊語句實現(xiàn),通過關鍵詞“posedge”和“negedge”來捕獲時鐘信號的上升沿和下降沿。在always語句塊中可以使用任何可綜合的標志符。②在描述時序電路的always塊中的reg型信號都會被綜合成寄存器,這是和組合邏輯電路所不同的。③時序邏輯中推薦使用非阻塞賦值“<=”,原因?qū)⒑竺嬖敿氄f明。④時序邏輯的敏感信號列表只需要加入所用的時鐘觸發(fā)沿即可,其余所有的輸入和條件判斷信號都不用加入,這是因為時序邏輯是通過時鐘信號的跳變沿來控制的。二、鎖存器鎖存器是個“奇葩”的器件,在FPGA邏輯設計中很避諱;在ASIC設計中,以前很喜歡(因為面積小),現(xiàn)在不是很喜歡了。在這里就記錄一下關于鎖存器的一些事項吧。(1)鎖存器的概述①最常見最基本的鎖存器是SR鎖存器,然后常見常用的鎖存器是D鎖存器。在數(shù)字電路里面,SR鎖存器是最簡單的時序單元,它由一對交叉耦合的或非門構成。主要功能就是通過輸入的S、R端分別控制Q進行置位(set)和復位(reset)。SR鎖存器可以具有鎖存數(shù)據(jù)的功能。雖然SR鎖存器可以鎖存數(shù)據(jù),電路結(jié)構也簡單,但是有一個毛病就是S和R同時有效時,輸出錯誤,使用不夠方便;還有一個問題就是某個時候存某個數(shù)據(jù)分不開,相當于時間和內(nèi)容不夠清晰。因此就有了D鎖存器,D鎖存的功能是在時鐘高/低電平的時候通過數(shù)據(jù),在時鐘低/高電平的時候鎖存數(shù)據(jù)。D鎖存器可以分為前級門電路(兩個與門和一個非門)和后級SR鎖存器組成。②鎖存器是一種對脈沖電平敏感的存儲單元電路,可以在特定輸入脈沖電平作用下改變狀態(tài),其本身也是一類常用的邏輯單元,有著特定的需求。③鎖存器在數(shù)據(jù)未鎖存時,輸出端的信號隨輸入信號變化,就像信號通過一個緩沖器一樣,一旦鎖存信號有效,則數(shù)據(jù)被鎖住,輸入信號不起作用。因此,鎖存器也被稱為透明鎖存器,指的是不鎖存時輸出對于輸入是透明的。④鎖存器和寄存器都是數(shù)字電路的基本存儲單元,但鎖存器是電平觸發(fā)的存儲器,觸發(fā)器是邊沿觸發(fā)的存儲器。本質(zhì)上,鎖存器和D觸發(fā)器的邏輯功能是基本相同的,都可存儲數(shù)據(jù),且鎖存器所需的門邏輯更少,具備更高的集成度。⑤鎖存器具備下列三個缺點:·對毛刺敏感,不能異步復位,因此在上電后處于不確定的狀態(tài)?!ゆi存器會使靜態(tài)時序分析變得非常復雜,不具備可重用性。·在FPGA/CPLD芯片中,基本的單元是由查找表和觸發(fā)器組成的,若生成鎖存器反而需要更多的資源。(2)鎖存器的產(chǎn)生①鎖存器產(chǎn)生于組合邏輯的設計中,在基于always的組合邏輯描述語句中,可能產(chǎn)生鎖存器的情況具體可分為兩種:其一是在if語句中,另一種是在case語句中。②在always塊中使用if語句,但缺乏else分支而造成鎖存器。③在always塊中使用case語句,由于缺乏default分支而造成鎖存器。④如果用到if語句,最好有else分支;如果用到case語句,最好有default語句。即使需要鎖存器,也通過else分支或default分支來顯式說明。(3)鎖存器的應用①在總線應用上,鎖存器能提高驅(qū)動能力、隔離前后級。②地址鎖存器、數(shù)據(jù)鎖存器、復位信號鎖存器;門控時鐘鐘的應用等等。三、設計思維這個設計思維本來屬于設計技巧里面的,放在這里說明,是為了告訴自己,在進行電路描述的時候,是基于這些準則的,在設計時能夠根據(jù)這些基本準則進行優(yōu)化電路。下面是常見的設計思維,主要是基于FPGA的,關于ASIC其他設計技巧或者設計思維,我記錄在了“技巧”篇。(1)速度面積互換準則①速度與面積是設計時??紤]的的一個問題,因此在設計的時候要考慮怎么在這二者之間的權衡。當然,現(xiàn)在功耗也與速度、面積成為需要考慮的重大因素之一。②面積和速度互換的具體操作很多,比如模塊復用、乒乓操作、串并轉(zhuǎn)換以及流水線操作等。在設計技巧策略和技巧那一章節(jié)中將會進行敘述。③串并轉(zhuǎn)換乘法器:假設數(shù)據(jù)速率是乘法器模塊處理速度的3倍,那么由于乘法器模塊的數(shù)據(jù)吞吐量滿足不了要求,在這種情況下,就利用面積換速度的思想,復制3個乘法器模塊。首先將輸入數(shù)據(jù)進行串并轉(zhuǎn)換,然后利用這3個模塊并行處理所分配到的數(shù)據(jù),最后將處理結(jié)果并串轉(zhuǎn)換,達到數(shù)據(jù)速率的要求。如下圖所示:(2)FPGA中的設計思維①信號反相的處理策略在處理反相信號時,設計時應盡可能地遵從分散反相原則。即應使用多個反相器分別反相,每個反相器驅(qū)動一個負載,這個原則無論對時鐘信號還是對其它信號都是適用的。因為在FPGA設計中,反相是被吸收到CLB或IOB中的,使用多個反相器并不占用更多的資源,而使用一個反相器將信號反相后驅(qū)動多個負載卻往往會多占資源,而且延遲也增加了。②首先,如果輸入信號需要反相,則應盡可能地調(diào)用輸入帶反相功能的符號,而不是用分離的反相器對輸入信號進行反相。因為在使用自帶反相功能的器件中,由于函數(shù)發(fā)生器用查表方式實現(xiàn)邏輯,反相操作是不占資源的,也沒有額外延遲;而分開使用不同邏輯使用反相操作實現(xiàn),從而消耗額外的資源,增加額外的延遲。③其次,如果一個信號反相后驅(qū)動了多個負載,則

溫馨提示

  • 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

提交評論