


下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、1 引言現場可編程門陣列(FPGA)在結構上由邏輯功能塊排列為陣列,并由可編程的內部連線連接這些功能塊,來實現一定的邏輯功能。FPGA可以替代其他PLD或者各種中小規模數字邏輯芯片在數字系統中廣泛應用,也是實現具有不同邏輯功能ASIC的有效辦法。FPGA是進行原型設計最理想的載體,原型機的最初框架和實現通過PFGA來驗證,可以降低成本、縮短開發周期。利用FPGA的可重配置功能,可以在使用過程中,在不改變所設計的設備的硬件電路情況下,改變設備的功能。但和所有的數 字電路一樣,FPGA電路中也存在毛刺問題。它的出現會影響電路工作的可靠性、穩定性,嚴重時會 導致整個數字系統的誤動作和邏輯紊亂。在此詳
2、細論述了解決此問題的多種方法。2 FPGA 的功能和結構特點2.1 FPGA 的功能FPGA 的功能由邏輯結構的配置數據決定,在工作時,這些配置數據存放在片內的SRAM或者熔絲圖上。使用SRAM的 FPGA器件,在工作前需要從芯片外部加載配置數據,這些配置數據可以存放在片外的EPROM或其他存儲體上,人們可以控制加載過程,在現場修改器件的邏輯功能。圖1實際邏輯電路圖2 LUT 的實現方式2.2 FPGA 的結構特點FPGA 使用了可編程的查找表(Look Up Table丄UT) 結構,LUT是可編程的最小邏輯構成單元。大部分FPGA采用基于SRAM的查找表邏輯形成結構,就是用SRAM靜態隨機
3、存儲器)來構成邏輯函數發生器。圖1、2分別是4輸入LUT的實際邏輯電路和 LUT的實現方式。FLEX10KE系列器件的結構和工 作原理在Altera的FPGA器件中具有典型性,下面以此類器件為例,介紹PFGA的結構。其內部結構如圖 3所示 :圖3FLEX10KE 內部結構FLEX10KE 內部結構包含嵌入式陣列塊 (EAB, Embedded Array Block) 、邏輯陣列塊 (LAB, LogicArray Block) 、快速通道 (Fast Track) 互連和輸入 /輸出單元 (I/O Element,IOE) 四部分。(1) 嵌入式陣列用來實現各種存儲器及復雜的邏輯功能,如數字
4、信號處理、微控制器等。嵌入式陣列由一系列嵌入式陣列塊(EAB)構成。EAB是在輸入輸出口上具有寄存器的能變形的RAM塊。(2) 邏輯陣列用來實現普通邏輯功能,如計數器、加法器、狀態機等。邏輯陣列由一系列邏輯陣列塊(LAB)構成。每個LAB包含八個LE和一些局部互連。LAB構成了 FLEX10KE的“粗粒度”結構,有利 于EDA軟件進行布局布線,優化器件的利用,提高性能。LE是FLEX10KE吉構中的最小單元,每個 LE含有一個 4輸入查找表 (LUT) 、一個帶有同步使能的可編程觸發器(Programmable Register) 、一個進位鏈 (Carry Chain) 和一個級連鏈 (Ca
5、scade) 。每個 LE 都能驅動 LAB 局部互連 (LAB Local Interconnect) 和快速通道互連(Fast Track Interconnect)。 LE的內部結構如圖4所示。圖4邏輯單元 (LE) 內部結構(3) 器件內部信號的互連和器件引出端之間的信號互連由快速通道 (FastTrack) 連線提供, FastTrack遍布于整個FLEX10KE器件,是一系列水平和垂直走向的連續式布線通道。FastTrack互連是一系列貫通器件行、列的快速連接通道。(4) I/O引出端由一些I/O單元(IOE)驅動。IOE位于快速通道的行和列的末端,每個IOE有一個雙向I/O 緩沖
6、器和一個既可做輸入寄存器也可做輸出寄存器的觸發器。3 競爭冒險 在組合電路中,當邏輯門有兩個互補輸入信號同時向相反狀態變化時,輸出端可能產生過渡干 擾脈沖的現象,稱為競爭冒險。3.1 FPGA 中產生競爭冒險的原因信號在FPGA器件內部通過連線和邏輯單元時,都有一定的延時。 延時的大小與連線的長短和邏輯單元的數目有關,同時還受器件的制造工藝、工作電壓、溫度等條件的影響。信號的高低電平轉換 也需要一定的過渡時間。 由于存在這兩方面因素, 多路信號的電平值發生變化時, 在信號變化的瞬間, 組合邏輯的輸出有先后順序,并不是同時變化 , 往往會出現一些不正確的尖峰信號,這些尖峰信號稱 為“毛刺”。如果
7、一個組合邏輯電路中有“毛刺”出現,就說明該電路存在“冒險”。(與分立元件不同,由于PLD內部不存在寄生電容電感,這些毛刺將被完整的保留并向下一級傳遞,因此毛刺現象 在PLD FPGA設計中尤為突出)3.2 FPGA 中競爭冒險的危害圖5給出了一個邏輯冒險的例子,從圖6的仿真波形可以看出,“ A B、C、D四個輸入信號經過布線延時以后,高低電平變換不是同時發生的,這導致輸出信號“OUT出現了毛刺。而當數據完全穩定的時候,毛刺信號也就自然消失了。可以概括的講,只要輸入信號不同時變化,(經過內部走線)組合邏輯必將產生毛刺。將它們的輸出直接連接到時鐘輸入端、清零或置位端口的設計方法是錯 誤的,這可能會
8、導致嚴重的后果。而現在FPGA設計中的信號往往是由時鐘控制的,多數據輸入的復雜運算系統,甚至每個數據都由相當多的位數組成。這時,每一級的毛刺都會對結果有嚴重的影響, 如果是多級的設計,那么毛刺累加后甚至會影響整個設計的可靠性和精確性。時鐘端口、清零和置位 端口對毛刺信號十分敏感, 任何一點毛刺都可能會使系統出錯, 因此判斷邏輯電路中是否存在冒險以 及如何避免冒險是設計人員必須要考慮的問題。圖5 一個邏輯冒險的例子圖 6 仿真波形任何組合電路、反饋電路和計數器都可能是潛在的毛刺信號發生器。毛刺并不是對所有輸入都 有危害,如觸發器的D輸入端,只要毛刺不出現在時鐘的上升沿并滿足數據的建立保持時間,就
9、不會 對系統造成危害。而當毛刺信號成為系統的啟動信號、控制信號、握手信號,觸發器的清零信號 (CLEAR)、預置信號(PRESET)、時鐘輸入信號(CLK)或鎖存器的輸入信號就會產生邏輯錯誤。任何一點 毛刺都可能使系統出錯。3 毛刺的消除3.1 利用冗余項消除毛刺函數式和真值表所描述的是靜態邏輯,而競爭則是從一種穩態到另一種穩態的過程。因此競爭 是動態過程,它發生在輸入變量變化時。此時,修改卡諾圖,增加多余項,在卡諾圖的兩圓相切處增加一個圓,可以消除邏輯冒險。但該法對于計數器型產生的毛刺是無法消除的。3.2 采用格雷碼我們可以通過改變設計,破壞毛刺產生的條件,來減少毛刺的發生。例如,在數字電路
10、設計中, 常常采用格雷碼計數器取代普通的二進制計數器,這是因為格雷碼計數器的輸出每次只有一位跳變, 消除了競爭冒險的發生條件,避免了毛刺的產生。3.3 采樣法由于冒險出現在變量發生變化的時刻,如果待信號穩定之后加入取樣脈沖,那么就只有在取樣 脈沖作用期間輸出的信號才能有效。這樣可以避免產生的毛刺影響輸出波形。一般說來,冒險出現在信號發生電平轉換的時刻,也就是說在輸出信號的建立時間內會發生冒 險,而在輸出信號的保持時間內是不會有毛刺信號出現的。如果在輸出信號的保持時間內對其進行 “采樣”,就可以消除毛刺信號的影響。有兩種基本的采樣方法 : 一種方法是在輸出信號的保持時間內, 用一定寬度的高電平脈
11、沖與輸出 信號做邏輯“與”運算,由此獲取輸出信號的電平值。圖7說明了這種方法,采樣脈沖信號從輸入引腳“SAMPLE引入。從圖8的仿真波形上可以看出,毛刺信號出現在“ TEST引腳上,而“ OUT引腳 上的毛刺已被消除了。圖 7 采樣法一圖 8 采樣法一仿真波形上述方法的一個缺點是必須人為的保證 sample 信號必須在合適的時間中產生, 另一種更常見的 方法是利用D觸發器的D輸入端對毛刺信號不敏感的特點,在輸出信號的保持時間內,用觸發器讀取組合邏輯的輸出信號, 這種方法類似于將異步電路轉化為同步電路。圖9給出了這種方法的示范電路,圖10是仿真波形。在仿真時,我們也可能會發現在FPGA器件對外輸
12、出引腳上有輸出毛刺,但由于毛刺很短,加上PCB本身的寄生參數,大多數情況下,毛刺通過PCB走線,基本可以自然被慮除, 不用再外 加阻容濾波。圖 9采樣法二圖 10采樣法二仿真波形3.4 吸收法增加輸出濾波,在輸出端接上小電容C可以濾除毛刺,圖11所示。但輸出波形的前后沿將變壞,在對波形要求較嚴格時,應再加整形電路,該方法不宜在中間級使用。圖 11 吸收法消除毛刺圖3.5 延遲辦法因為毛刺最終是由于延遲造成的,所以可以找出產生延遲的支路。對于相對延遲小的支路,加 上毛刺寬度的延遲可以消除毛刺。 當需要對某一信號作一段延時時, 初學者往往在此信號后串接一些 非門或其它門電路,此方法在分離電路中是可
13、行的。但在FPGA中,開發軟件在綜合設計時會將這些門當作冗余邏輯去掉,達不到延時的效果。用Altera公司的Maxplusll 開發FPGA時,可以通過插入一些LCELL原語或調用延時線模塊來產生一定的延時,但這樣形成的延時在 FPGA芯片中并不穩定,會隨溫度等外部環境的改變而改變, 因此并不提倡這樣。 在此, 可以用高頻時鐘來驅動一移位寄存器, 待延時信號作數據輸入, 按所需延時正確設置移位寄存器的級數, 移位寄存器的輸出即為延時后的信 號。在此以實現雙口 RAM的讀寫時序中IDT7132的讀時序為例,時序圖如圖 12所示。無論用 CE還是0E來控制讀取,都需要 CE或0E保持一段低電平。令
14、 0E保持低電平,CE平時為高電平,讀雙口 RAM 時觸發 CE 變為低電平,延遲一小段時間再恢復高電平。本設計產生這段延時的方法是用高頻計數器 產生,具體方法為:在FPGA中設計一個計數器, 取系統可用的高頻時鐘(周期小于所需延時)驅動它計 數,計到設定好的終值時產生觸發脈沖。不同的計數終值可以產生不同的延時。此方法所產生的延時 為高頻時鐘周期的整數倍,若高頻時鐘周期與所需延時相比很小,則延時較精確,否則只能做一粗略 的延時。圖12雙口 RAM IDT7132讀操作時序圖4 FPGA設計中避免毛刺的其他注意事項4.1 電路選用要用寄存器和觸發器設計電路,盡量不要用鎖存器,因它對輸入信號的毛刺
15、太敏感。如果堅持 用鎖存器設計必須保證輸入信號絕對沒有毛刺,且滿足保持時間。4.2 譯碼器設計設計譯碼邏輯電路時必須十分小心, 因為譯碼器和比較器本身會產生尖峰, 容易產生毛刺, 把譯碼器或比較器的輸出直接連到時鐘輸入端或異步清除端,會造成嚴重的后果。4.3避免隱含RS觸發器應該盡量避免隱含 RS觸發器的出現。一般要控制輸出被直接反饋到輸入端,采用反饋環路會出現隱含RS觸發器,其對輸入尖峰和假信號很敏感,輸入端有任何變化都有可能使輸出值立刻改變, 此時易造成毛刺的產生,導致時序的嚴重混亂。一旦具有隱含的RS觸發器,加鎖存器消除毛刺是不能解決問題的。此時只有通過全面修改電路來從根本上解決。4.4
16、 避免使用多時鐘設計每一個模塊中只用一個時鐘,避免使用多時鐘設計,同時避免使用主時鐘分頻后的二次時鐘作 為時序器件的時鐘輸入, 因為二次時鐘相對于一次時鐘可能存在過大的時鐘歪斜。對所有模塊的輸入時鐘、輸入信號、輸出信號都用D觸發器或寄存器進行同步處理,即輸出信號直接來自觸發器或寄存 器的輸出端。這樣可以消除尖峰和毛刺信號。不論是控制信號還是地址總線信號、數據總線信號,都 要采用另外的寄存器, 以使內部歪斜的數據變成同步數據。 這些表面上看似乎無用的操作可以大大提 高電路系統的性能。4.5 避免使用延遲線應該盡量避免使用延遲線,因它對工藝過程的變化極為敏感,會大大降低電路的穩定性和可靠性,并將為
17、測試帶來麻煩。4.6 充分利用資源大部分FPGA器件都為時鐘、復位、預置等信號提供特殊的全局布線資源,要充分利用這些資源。這樣可以減少電路中的毛刺并且大大提高設計電路的性能 .4.7 不要期望仿真器替你找到毛刺錯誤注意仿真結果和實際綜合的電路的不一致性。無論是時序電路還是異步邏輯電路,其行為與其仿真器結果都是不完全一樣的。特別是異步邏輯電路,仿真結果將會隱藏競爭冒險和毛刺現象,與實際行為相差較遠。故在 FPGA設計中,對每一個邏輯門、每一行 VHDL(Verilof) 語言,必須完全理解, 不要期望仿真器替你找到錯誤。使用FPGA開發數字電路,可以大大縮短設計時間、減少PCB面積、提高系統的可靠性。它的這些優點使得 FPGA技術得到飛速的發展,已經在通信、電子、信號處理、工業控制等領域被廣泛應用。隨著FPGA容量的增加,SOPQ可編程芯片上系統)SOPC(對信號的處理和整
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數字藝術作品版權交易市場發展研究報告:2025年行業規模與增長預測
- 2025年網絡游戲虛擬貨幣消費報告:市場規模與用戶行為分析
- 夏季皮膚護理
- 神經系統腫瘤癥狀及護理
- 2025物流行業勞動合同
- 2025年云南省茶葉訂購合同模板
- 夏季兒童保健課件
- 腰大池引流管的護理要點
- 遠程控制燈的設計
- 健康師的課件
- 【西安交通大學】2025年電力人工智能多模態大模型創新技術及應用報告
- 分賬管理制度
- 電動汽車車網互動規模化發展策略與標準體系規劃
- 餐飲服務流程與標準操作指引
- (一模)石家莊市2025年高三年級教學質量檢測(一)物理試卷(含標準答案)
- 產品供應鏈合作協議與分銷合同簽訂備忘錄
- 老年人權益保障法課件
- 博弈論(中文版)
- 磁懸浮列車技術進展-深度研究
- 七年級后進生自我管理能力提升計劃
- OCT簡介及其臨床應用
評論
0/150
提交評論