版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、摘 要隨著數(shù)字系統(tǒng)規(guī)模的不斷增大,單時鐘域設計會極大地限制數(shù)字系統(tǒng)性能,現(xiàn)代數(shù)字系統(tǒng)為了提升性能,常采用多時鐘域的設計。跨時鐘域的信號在傳輸時會遇到亞穩(wěn)態(tài)現(xiàn)象,如何保持系統(tǒng)穩(wěn)定地傳輸數(shù)據(jù)是多時鐘域系統(tǒng)設計者重點關注的問題,在跨時鐘域傳遞數(shù)據(jù)的系統(tǒng)中,常采用異步FIFO(First In First Out,先進先出隊列)口來緩沖傳輸?shù)臄?shù)據(jù),以克服亞穩(wěn)態(tài)產(chǎn)生的錯誤,保證數(shù)據(jù)的正確傳輸。常規(guī)的異步FIFO 設計采用先同步讀寫指針后比較產(chǎn)生空滿標志和用先比較讀寫指針產(chǎn)生空滿標志,再同步到相應時鐘域的方法,但由于常規(guī)異步FIFO 模塊中的RAM 存儲器讀寫尋址指針常采用格雷碼計數(shù)器以及“空滿”控制邏輯
2、的存在,工作頻率低,面積大,將使通過這兩個模塊的信號通路延時對整個模塊的工作頻率造成制約。本文提出了一種新型異步FIFO 的設計方法,該方法省略“了滿”信號產(chǎn)生模塊和多余的存儲器位深來簡化常規(guī)的FIFO 模塊,而只保留“空”信號產(chǎn)生模塊,避免使用大量的同步寄存器,減少了面積空間。FPGA 驗證的結果表明,改進后的異步 FIFO 性能有了顯著的提高。關鍵詞:現(xiàn)場可編程門陣列(FPGA ) 亞穩(wěn)態(tài) 空/滿標志產(chǎn) 高速FIFOABSTRACTWith the increasing of digital system size, a single clock domain design will gr
3、eatly limit the digital system performance. To enhance the performance of modern digital systems, multiple clock domain design is conventionally adopted. While being transmitted, Cross-clock domain signals will come across the phenomenon of metastability, hence it will be a major concern for the mul
4、ti -clock domain system designers to probe how to maintain the system stability and to have data transmission conducted smoothly. As to the bus system data transmission in the system where the two data interface clocks dont match, one of super and effective solutions is to use asynchronous FIFO buff
5、er memory. How To solve the key and difficult issue that metastability and how to generate empty and full flag correctly in asynchronous FIFO design. Traditional FIFO design often synchronizes write/read address first, then compares them to generate empty/full signals or empty / full flag first comp
6、are the read and write pointer, and then synchronized to the clock domain, This design takes on too much area and can only work at a low frequency,this will allow the signaling pathways of these two modules delay caused by constraints of the operating frequency of the entire module. A new method of
7、asynchronous FIFO is proposed to overcome these problems, omit the "full" signal generator module and redundant memory bit depth to simplify the conventional FIFO module, leaving only the "empty" signal generation module,avoid the use of a large number of synchronization register
8、s, reducing the area of space. FPGA verification results show that the asynchronous FIFO improved performance has been significantly improved.Keywords: Field Programmable Gate Array (FPGA); Metastable; Mmpty / Full Flag production; High-speed FIFO目 錄摘 要IABSTRACTII第一章緒 論11.1研究背景和意義11.2研究現(xiàn)狀11.3本文的主要工作
9、31.4論文結構3第二章 跨時鐘域設計的挑戰(zhàn)與實現(xiàn)方法42.1跨時鐘域設計的挑戰(zhàn)4亞穩(wěn)態(tài)問題4亞穩(wěn)態(tài)產(chǎn)生的原因5亞穩(wěn)態(tài)的危害52.2 跨時鐘域的實現(xiàn)方法6同步器6握手機制9第三章 開發(fā)環(huán)境113.1硬件平臺113.2軟件平臺11第四章 異步FIFO的設計與實現(xiàn)134.1異步FIFO13異步FIFO工作原理13異步FIFO設計的難點144.2常見異步 FIFO 的設計164.2.1 讀寫地址產(chǎn)生邏輯18空/滿標志的產(chǎn)生及代碼的實現(xiàn)19改進的異步 FIFO 設計方法分析224.4高速異步FIFO的設計與實現(xiàn)23常見FIFO模塊分析23高速異步FIFO 設計25第五章 結 論28第六章 參考文獻29
10、致 謝30附 錄 高速異步FIFO設計仿真分析31附1. 設計工作流程31附.1.1 設計輸入31附.1.2 設計編譯35附.1.3 設計仿真37第一章 緒 論1.1研究背景和意義作為21 世紀最重要的科學領域之一,超級計算機是體現(xiàn)科技競爭力和綜合國力的重要標志。各大國均把它作為國家科技創(chuàng)新的重要基礎設施,投入了巨資進行研制和開發(fā)。隨著科學技術的進步,我國的超級計算機取得了高速的發(fā)展,2010 年11 月14 日,國際TOP500 組織在網(wǎng)站上公布了最新全球超級計算機前500 強排行榜,中國首臺千萬億次超級計算機系統(tǒng)“天河一號”高居榜首。高性能微處理器是超級計算機的核心,高性能微處理器目前都采
11、用多核的結構,多核處理器是指在一個芯片內(nèi)集成多個處理核心而構成的處理器,所謂“核心”,通常指包含指令部件、算術、邏輯部件、寄存器堆和一級或者二級緩存的處理單元?,F(xiàn)代數(shù)字系統(tǒng)的設計多采用全局異步,局部同步的設計方式,核心部件采用高頻設計為了提升性能,為了盡快地上市常常采用SoC 的設計,集成成熟的IP,在同一芯片有多個時鐘域。在數(shù)字系統(tǒng)設計中,數(shù)據(jù)在不同模塊或系統(tǒng)間傳輸,而現(xiàn)代數(shù)字系統(tǒng)內(nèi)部采用多時鐘域設計,導致數(shù)據(jù)進行跨時鐘域傳輸。由于各系統(tǒng)數(shù)據(jù)總線上的傳輸速度不同而造成系統(tǒng)接口界面處出現(xiàn)數(shù)據(jù)輸入和輸出速度不同,就會發(fā)生數(shù)據(jù)傳輸速率不匹配的問題,這會讓傳輸?shù)臄?shù)據(jù)產(chǎn)生錯誤或者丟失,降低數(shù)據(jù)傳輸?shù)目?/p>
12、靠性,同時也會因為對數(shù)據(jù)的復寫、丟棄而降低數(shù)據(jù)傳輸速率,因此需要在各系統(tǒng)接口界面處設計專用的電路來實現(xiàn)數(shù)據(jù)的高速高效傳輸。為了提高電路整體性能,設計者對數(shù)據(jù)傳輸率、數(shù)據(jù)吞吐量以及系統(tǒng)各部分接口之間不同數(shù)據(jù)傳輸速率以及帶寬的匹配有越來越高的要求,所以研究數(shù)據(jù)如何在異步時鐘域穩(wěn)定和快速地傳輸,具有非常重要的現(xiàn)實意義。1.2研究現(xiàn)狀隨著數(shù)字系統(tǒng)規(guī)模的不斷擴大,跨時鐘域信號的同步器設計以及相應的驗證技術,越來越被關注。目前的VLSI 設計進入到SoC 時代,一個SoC 系統(tǒng)中一般含有多個時鐘域,如何在這些不同時鐘域之間進行穩(wěn)定、可靠地傳輸成為設計人員所面臨的一個挑戰(zhàn)性的問題。國內(nèi)外研究人員提出了異步握
13、手、異步包裝以及異步FIFO 等多種解決方案。實踐證明,采用異步FIFO 進行跨時鐘域傳輸是非常有效、可靠的方法,在實際芯片設計中得到了廣泛的應用。Clifford E.Cummings 在文獻1中提出了一種基于Gray 碼的異步FIFO 接口技術。同步多個異步輸入信號出現(xiàn)亞穩(wěn)態(tài)的概率遠遠大于同步一個異步信號的概率,解決這一問題的有效方法是采用格雷碼。格雷碼是一種在相鄰計數(shù)數(shù)值之間只有一位發(fā)生變化的編碼方式,讀寫指針采用格雷碼的編碼方式,就可以盡可能地消除觸發(fā)器產(chǎn)生亞穩(wěn)態(tài)問題。William J Dally 和John W Poulton 在文獻2中提出一個表示關于任意兩次故障出現(xiàn)的間隔時間期
14、望的平均無故障時間MTBF,一個系統(tǒng)亞穩(wěn)態(tài)的MTBF 是與系統(tǒng)頻率、器件速度之間的指數(shù)函數(shù)。同步器去采樣輸入的異步數(shù)據(jù),當在第一級的時序器件出現(xiàn)亞穩(wěn)態(tài)的問題時,其輸出會出現(xiàn)一種不穩(wěn)定的中間值,并且這個時間受多種因素影響。當?shù)诙€時序器件的采樣窗口到來的時候,在第二級輸入端口上的電平仍然處在可以使第二級出現(xiàn)亞穩(wěn)態(tài)的電平范圍內(nèi)的概率會變得很小,由計算公式表明,對于大多數(shù)的應用問題,兩級鎖存器同步失效的概率很小足以消除可能出現(xiàn)的亞穩(wěn)態(tài)情況。Vijay A. Nebhrajani 在文獻3中提出關于異步FIFO 的五種結構,分別從單時鐘結構,雙時鐘三種結構和脈沖模式的FIFO 的結構進行了闡述。著重介
15、紹了怎樣設計異步FIFO,主要討論了異步FIFO 空滿標志的產(chǎn)生方法。美國研究人員Tiberiu Chelcea,Steven M. Nowick,Xin Wang, Tapani Ahonen,Jari Numi 在文獻4,5中用寫/讀令牌環(huán)代替寫/讀指針,簡化了“滿”/“空”狀態(tài)的檢測,節(jié)省了編碼轉(zhuǎn)換邏輯以及同步器的延遲和面積開銷,但是為了防止寫/讀溢出及死鎖,又引入了額外的控制邏輯,并且仍然存在可用空間的浪費。日本研究人員Jeong-Gun Lee,Suk-Jin Kim,Kiseon Kim 在文獻6結合握手協(xié)議和行波流水技術實現(xiàn)了一種異步FIFO,降低了延遲和功耗,但其純異步電路實現(xiàn)
16、方式增大了設計的復雜度和應用的難度。受國外研究熱潮的影響,近些年來,國內(nèi)一些院校和科研單位也開始對異步FIFO 展開研究,主要研究有:中國科學院微電子研究所的博士生導師袁國順和張英武博士等人,共同設計實現(xiàn)了一款低功耗的異步FIFO,引入了門控時鐘技術降低了控制電路和譯碼電路80的功耗7,并采用位線分割技術降低了存儲單元38的功耗。利用格雷碼作異步FIFO 指針的控制電路,能有效地消除多時鐘域中的亞穩(wěn)態(tài)。國防科技大學計算機學院博士生導師陳書明、劉祥遠博士,針對現(xiàn)有FIFO 設計方法的不足,提出一種新的異步FIFO 結構8WG-FIFO,采用加權Gray 碼進行指針編碼,采用實時狀態(tài)檢測器控制寫/
17、讀操作。模擬結果表明,在FIFO 深度為416 的情況下,該結構與已有的FIFO 結構相比在性能、面積開銷以及寫讀操作效率等方面都獲得了明顯的改善。特別地,當FIFO 的深度為8、寬度為32時,相比B-FIFO,WG-FIFO 的最高時鐘頻率提高31.6,單元面積減少17.1,且寫/讀效率最大能提高47。東南大學周磊碩提出了一種新型結構異步FIFO 電路的實現(xiàn)方案9,運用整體移位實現(xiàn)數(shù)據(jù)正確寫入和輸出,使用緩沖寄存器組存放移位產(chǎn)生的多余數(shù)據(jù),適用于頻率不成整數(shù)倍的異步時鐘域之間的數(shù)據(jù)傳輸。利用串聯(lián)的D 觸發(fā)器作為同步器,避免產(chǎn)生亞穩(wěn)態(tài),實現(xiàn)異步信號的同步,采用自頂向下、基于0.18mm 標準單
18、元庫的半定制ASIC 流程對其進行設計。該方案與常見的異步FIFO 實現(xiàn)方案進行比較,面積大約減少一半,工作速度提高約三分之一。指針編碼不同程度地存在下列問題:(1)寫/讀指針編碼轉(zhuǎn)換、計算的延時大,限制了寫/讀操作頻率。(2)跨時鐘域傳遞寫/讀指針需要大量的同步器,面積開銷大。(3)由于同步器的延遲,導致FIFO 的狀態(tài)檢測保守,浪費可用空間。綜上所述,國內(nèi)外關于異步FIFO 的設計與驗證的研究,雖然取得了一定的成果,但是研究仍處于發(fā)展階段,跨時鐘域設計將面臨著更多的困難與挑戰(zhàn)。1.3本文的主要工作本文較為全面地討論了跨時鐘域設計的挑戰(zhàn),并論述了異步FIFO 的設計和驗證過程,最后分別對常見
19、的異步FIFO 和改進的異步FIFO 進行了FPGA 驗證綜合,并對綜合后的結果進行了比較。其主要工作包括:1、針對FIFO設計的局限性,先簡單地介紹了亞穩(wěn)態(tài)的工作原理,并詳細地分析了常規(guī)FIFO 口對模塊工作頻率制約的主要原因,然后結合FPGA優(yōu)秀的邏輯控制功能,及低功耗、高可靠性、可重構性、開發(fā)周期短和開費用低廉等特性,提出了一種在FPGA 內(nèi)實現(xiàn)高速異步FIFO 的方法。2、提出了基于DE2-70平臺的異步FIFO 的檢驗方法,利用原理圖描述異步FIFO,對設計的異步FIFO進行模塊化綜合驗證,達到了預期的效果。1.4論文結構本文共分六章,各章的組織如下:第一章,緒論,包括論文選題的背景
20、與意義、研究現(xiàn)狀及主要工作等;第二章,介紹跨時鐘域設計的挑戰(zhàn)和實現(xiàn)方法,介紹了亞穩(wěn)態(tài)的現(xiàn)象、產(chǎn)生的原因及危害和同步器及握手機制的實現(xiàn)方法;第三章,介紹本設計的開發(fā)環(huán)境;第四章,對常規(guī)異步FIFO做了分析,提出高速異步FIFO的設計和實現(xiàn)方法;第五章,總結得出結論;第六章,參考文獻;致謝附錄第二章 跨時鐘域設計的挑戰(zhàn)與實現(xiàn)方法在一般的 ASIC 設計中,比較常見的是同步時序設計,即單時鐘的設計,但是在實際應用中,純粹的單時鐘設計并不能滿足 ASIC 設計的多方面需求,特別是所設計模塊需要與外圍設備通訊時,跨時鐘域的數(shù)據(jù)傳輸是不可避免的。如果對這種情況估計不足或者缺乏足夠的了解將會使設計面臨重大的
21、隱患,甚至會造成不可估量的損失。本章主要介紹跨時鐘域數(shù)據(jù)傳輸時容易出現(xiàn)的問題與同步器設計的實現(xiàn)方法。2.1跨時鐘域設計的挑戰(zhàn)亞穩(wěn)態(tài)問題隨著數(shù)字系統(tǒng)規(guī)模的不斷增大,一個系統(tǒng)通常與若干個子系統(tǒng)進行通信,如 計算機會有并口、串口、USB 接口等各種不同種類的接口,可以連接不同的外部設備。由于外部設備與主機的時鐘不一致,跨時鐘域異步信號的可靠傳輸變得十分重要。在通信系統(tǒng)中,各個節(jié)點間時鐘不一致,節(jié)點間跨時鐘域的低誤碼率傳 輸極其重要. 跨時鐘信號傳輸是指某時鐘域內(nèi)的信號傳遞到另外一個或多個時鐘域,該信號對于另一個時鐘域來說,一般是異步的,即不能保證采樣時該信號是穩(wěn)定的,或者說無法保證采樣點前后的建立和
22、保持時間。這種不穩(wěn)定性常常會造成不可預 測的錯誤或干擾,致使硬件系統(tǒng)無法正常工作。在信號傳輸中,每種觸發(fā)器都有時序要求,對于使用上升沿觸發(fā)的觸發(fā)器來 說,建立時間(Setup Time)是在時鐘上升沿到來之前,觸發(fā)器數(shù)據(jù)保持穩(wěn)定的最小 時間,而保持時間(Hold Time)是在時鐘上升沿到來之后,觸發(fā)器數(shù)據(jù)還應該保持 的最小時間29,在時鐘上升沿前后的這個窗口內(nèi)數(shù)據(jù)應該保持不變,否則會使觸 發(fā)器工作在一個不確定的狀態(tài),即亞穩(wěn)態(tài)。當觸發(fā)器處于亞穩(wěn)態(tài)且處于亞穩(wěn)態(tài)的時間超過了一個時鐘周期時,這種不確定的狀態(tài)將會影響到下一級的觸發(fā)器,最 終導致連鎖反應,從而使整個系統(tǒng)功能失常,如圖 2.1 所示。當一
23、個信號跨越某個 時鐘域時,對新時鐘域的電路來說,它是一個異步信號。由于異步信號之間的時 序是毫無關系的,因此必然存在建立時間/保持時間(Setup Time/Hold Time)沖突.簡單來說,亞穩(wěn)態(tài)就是指當觸發(fā)器的建立時間和保持時間要求沒有得到滿足時,觸發(fā)器就 會進入一個介于邏輯 1 和邏輯 0 之間的第三種狀態(tài),換句話說,是指觸發(fā)器無法在某個規(guī)定時間段內(nèi)達到一個可確認的狀態(tài)。當一個觸發(fā)器進入亞穩(wěn)態(tài)時,既無法預測該單元的輸出電平,也無法預測何時輸出才能穩(wěn)定在某個正確的電平上, 在這個穩(wěn)定期間,觸發(fā)器輸出一些中間級電平或者可能處于振蕩狀態(tài),并且這種 無效的輸出電平可以沿信號通道上的各個觸發(fā)器級
24、聯(lián)式傳播下去。 “?” “1” “? ” “0” dat adat bdat ” “?” “?” clka clkbclka adat clkb bdat 圖 2.1 異步時鐘和亞穩(wěn)態(tài)現(xiàn)象 亞穩(wěn)態(tài)產(chǎn)生的原因如果觸發(fā)器的建立時間或保持時間(setup time / hold time)不滿足時,在同步系統(tǒng)中,亞穩(wěn)態(tài)現(xiàn)象就可能會出現(xiàn),此時觸發(fā)器的輸出端 Q,在有效時鐘沿之后, 很長的一段時間里處于不確定的狀態(tài),在這段時間里 Q 端振蕩、毛刺、固定的某一電壓值,而不是等于數(shù)據(jù)輸入端 D 的值,這段之間成為決斷時間(resolution time)。經(jīng)過決斷時間(resolution time)之后,
25、Q 端將穩(wěn)定到 1 或 0 上,但是究竟是0 還是 1,這是隨機出現(xiàn)的,與輸入沒有因果聯(lián)系。亞穩(wěn)態(tài)的危害由于輸出在穩(wěn)定下來之前可能是振蕩、毛刺或固定的某一電壓值,因此亞穩(wěn)態(tài)除了導致邏輯誤判之外,輸出0到 1之間的中間電壓值還會使下一級產(chǎn)生亞穩(wěn)態(tài)現(xiàn)象。在電路設計中,邏輯誤判有可能通過特殊設計減輕其危害,但亞穩(wěn)態(tài)現(xiàn)象的傳播擴大了故障面,難以處理。只要系統(tǒng)中有異步元器件,亞穩(wěn)態(tài)現(xiàn)象就會出現(xiàn)的,因此設計的電路首先要盡可能減少亞穩(wěn)態(tài)引發(fā)錯誤的概率,其次要使系統(tǒng)對產(chǎn)生的錯誤不受其影響。常用用同步器來減少亞穩(wěn)態(tài)發(fā)生的概率。2.2 跨時鐘域的實現(xiàn)方法SoC(System on chip,SoC)技術的廣泛應用
26、,芯片的高性能和低功耗的需求, 芯片的多個部件通常工作在不同頻率的異步時鐘域中??鐣r鐘域(Clock Domain Crossing,CDC)的數(shù)據(jù)傳輸電路被稱為跨時鐘域設計,其功能的正確性是 SoC 系 統(tǒng)芯片各跨時鐘域部件間正確傳輸數(shù)據(jù)的基礎。在跨時鐘域路徑上傳遞信號不正 確的設計可能產(chǎn)生三種情況,一種是產(chǎn)生亞穩(wěn)態(tài)(Metability),該路徑終點寄存 器的建立或保持時間違例(Setup/Hold Timing Violation),從而引起寄存器的輸入 端進入亞穩(wěn)態(tài)狀態(tài);另一種是數(shù)據(jù)保持時間(Hold Time)不足,產(chǎn)生數(shù)據(jù)丟失,例 如來自一個快時鐘域的信號不能夠被慢時鐘域的時鐘采樣
27、到;最后一種是數(shù)據(jù)聚 合(Re-convergence),一組被同步的控制信號再次匯聚時丟失或重復采樣。對于第一種情況,如果是單根控制信號,最簡單的解決方法是采用兩級同步器;對于第二、三種可采用異步 FIFO,帶使能的同步器,握手協(xié)議等方法??鐣r鐘域信號同步器的設計,通常用同步器或增加握手信號可以實現(xiàn)。同步器跨時鐘域信號同步器的設計,通常的實現(xiàn)方法有以下幾種:1、兩級同步器:解決跨時鐘域設計問題的基本方法是同步器,同步器是將幾個用本地時鐘驅(qū) 動的時序器件串聯(lián)起來,去采樣輸入的異步數(shù)據(jù),當在第一級的時序器件出現(xiàn)亞 穩(wěn)態(tài)的問題時,其輸出會出現(xiàn)一種不穩(wěn)定的中間值,并且這個時間受多種因素影 響,或者說
28、這個輸出在高電平到低電平之間滿足一定形式的概率分布。當?shù)诙€ 時序器件的采樣窗口到來的時候,在第二級輸入端口上的電平仍然處在可以使第 二級出現(xiàn)亞穩(wěn)態(tài)的電平范圍內(nèi)的概率會變得很小,如果再加上第三級,在第三級 上的這個概率幾乎可以忽略不計。從數(shù)學上講,每個時序器件的亞穩(wěn)態(tài)的出現(xiàn)都 有一定的概率,如果多個期間串聯(lián),總概率是各自概率的積,因此增加期間,會 消除“亞穩(wěn)態(tài)”,但是這里的消除是指降低不穩(wěn)定的時間,使得輸出電平的穩(wěn)定時間接近時鐘周期。至于能否采樣到正確的邏輯,則基本取決于第一個時序器件的輸出??鐣r鐘域的核心問題是亞穩(wěn)態(tài)現(xiàn)象,最簡單的同步器設計加在該路徑終點寄存器,同步器設計為兩個背靠背的兩級觸
29、發(fā)器,適用于慢時鐘到 快時鐘域的單根控制信號的同步。雖然同步器可以消除亞穩(wěn)態(tài)現(xiàn)象,但其輸出體 現(xiàn)輸入變化的明確時鐘周期仍然不可預測,這種不確定性是跨時鐘域設計中功能 錯誤的本質(zhì)原因,值得注意的是電平信號同步轉(zhuǎn)換,有效電平必須保持或大于 2個目的時鐘周期,否則可能會丟掉,如圖 2.4 所示 sigin D clkin Q D Q D Q sinout clkout圖 2.4 二級同步信號轉(zhuǎn)換邏輯 sigin D R1 R2 R3 Clkin Q D Q D Q RI Step time hold time clkout Cycle 1 R2 cycle2 cycle3 R3 圖 2.5 跨時鐘域
30、信號的亞穩(wěn)態(tài)現(xiàn)象如圖 2.5 所示,兩級寄存器組成的同步器,其輸出信號 R3 雖然不存在亞穩(wěn)態(tài)現(xiàn)象,但 R3 體現(xiàn) R1 變化的時鐘周期可能在 Cycle 2 也可能在 Cycle 3,這種不確定性是跨時鐘域設計中功能錯誤的本質(zhì)原因,采用二級同步器的方式,R1 信號的有效時間是 Cycle 1,正確使用 R3 信號時間是 Cycle 4,電平信號同步轉(zhuǎn) 換,有效電平必須保持或大于持 2 個目的時鐘周期,否則可能會丟掉,適合于慢時鐘域到快時鐘域的單根控制信號的同步。2、采用格雷碼的同步轉(zhuǎn)換器適合于單根有效信號的轉(zhuǎn)換,如圖2.7 所示二進制計數(shù)器的位寬與源時鐘、目的時鐘的頻差有關系,位寬log2(
31、clkin/clkout),適合高速時鐘域進入低速時鐘域應用的場合:如數(shù)據(jù)傳輸?shù)挠行盘柡瓦m合于跨時鐘域的遞增指針的傳輸。 sigin binary binary Counter counter clkin clkout full compare D Q D Q D Q compare sigout clkin clkout圖2.7 采用格雷碼的二級同步信號轉(zhuǎn)換邏輯3、采用格雷碼編碼的數(shù)據(jù)總線同步器:數(shù)據(jù)有效信號采用格雷編碼轉(zhuǎn)換邏輯, 產(chǎn)生目的時鐘域的數(shù)據(jù)使能信號,這種類型主要用于寄存器通路中,同步后的讀寫使能信號作為同步使能信號,對地址和數(shù)據(jù)進行同步,如圖 2.9 所示 Source clo
32、ck domainack Destination clock domainGraycode synchronizersrc_vld D Gray code synchronizerdst_vld D Q src_addD Qm bitsen dst_addD src_clksrc_dataD Qn bitsst_clkenD dst_dataQ 圖 2.9 采用使能信號的同步器的邏輯4、不帶應答的數(shù)據(jù)總線同步器:跨時鐘域數(shù)據(jù)總線的傳輸,數(shù)據(jù)使能信號通 過脈沖同步器完成,特別適用于目的時鐘大于源時鐘域頻率 3 倍以上的,低速時 鐘域進入高速時鐘域應用的場合,源時鐘域發(fā)送數(shù)據(jù)時,前一個數(shù)據(jù)一定被目
33、的 時鐘域接收。數(shù)據(jù)總線輸入同步器和輸出同步器都是棧進棧出,利于定義約束文件,如圖 2.10 所示。 datasrc_data D Q dst_data dst_valid D Qsrc_valid D Q Qclkin D Q D Q D clkout圖 2.10 不帶應答的數(shù)據(jù)總線同步器5、適用于低速時鐘域進入高速時鐘域應用的場合的脈沖同步器,如圖 2.11 所示。sigoutsigin DclkinQ D Q D Q Clkout 圖 2.11 脈沖同步器信號邏輯典型的同步器有電平同步器、邊沿檢測同步器、脈沖同步器等,雖然它們都可以消除亞穩(wěn)態(tài)現(xiàn)象,但是其輸出體現(xiàn)輸入變化的確切時鐘周期仍然
34、不可預測的。2.2.2握手機制跨時鐘域數(shù)據(jù)總線的傳輸,數(shù)據(jù)的使能信號通過握手信號完成。握手信號是 指由源電路聲明,發(fā)送到目的電路的請求信號。目的電路檢測該請求信號,判斷 其有效性,然后聲明它的響應信號反饋給源電路。在電路實現(xiàn)中,源電路請求后 一定有應答;請求信號有效的過程,數(shù)據(jù)總保持穩(wěn)定。信號轉(zhuǎn)換邏輯,如圖 2.15所示。對全握手信號,雙方電路在聲明或中止各自的握手信號前都要等待對方的響應,第一步,電路A 聲明它的請求信號,第二步,電路B 檢測到該請求信號有效后,聲明它的響應信號,當電路A 檢測到響應信號有效后,中止自己的請求信號,第三步,當電路B 檢測到請求無效后,它中止自己的響應信號,除非
35、電路A 檢測到無效的響應信號,否則它不會再聲明新的請求信號。data busD Qdata_outD Qen enreq_clkSenderHandshakeFSMREQack_clkACK F FF FF FF FF FF FF FQ DQ DReceiverHandshake FSMack_clkreq_clk圖2.15 握手協(xié)議信號轉(zhuǎn)換邏輯當使用部分握手信號方式時,響應的電路必須以正確的時序產(chǎn)生它的信號。如果響應電路要求先處理完一個請求,然后才能處理下一個請求,則響應信號的時序就很重要,電路用它的響應信號來指示它的處理任務何時完成。第一種部分握手方法混合了電平與脈沖信號,而第二種方法則只
36、使用脈沖信號。這些握手協(xié)議使用的都是跨越時鐘域的單一信號,但當幾組信號要跨越時鐘域時,設計人員就需要使用較復雜的信號傳送方法。本文將在第四章進一步完成異步FIFO的設計。第三章 開發(fā)環(huán)境3.1硬件平臺隨著FPGA的不斷發(fā)展,尤其是如今許多高端FPGA的高密度、高性能以及豐富的特性,高端芯片系統(tǒng)(SoC)設計都選擇了業(yè)界效率最高、性能最好的邏輯、嵌入式存儲器和DSP功能的Stratix系列的FPGA。而這些高端的FPGA的開發(fā)平臺也不得不隨之不斷地改進和升級,以滿足高端FPGA設計的最佳解決方案。與各種FPGA的開發(fā)平臺相比,Altera DE2-70 多媒體開發(fā)板配備了數(shù)量高達70,000 個
37、邏輯單元的Altera Cyclone. II 2C70 和更大容量的記憶體元件,并完全承襲了Altera DE2 多媒體平臺豐富的多媒體、儲存及網(wǎng)路等應用介面的優(yōu)點。Altera DE2-70 最新多媒體開發(fā)平臺提供使用者豐富的產(chǎn)品功能,在廣泛的電路設計運用上,從簡易的電路設計,到多樣化的多媒體專案,使用者都能輕易完成。DE2-70 擁有顯示器、視訊輸出接口、音訊輸入出、輸入按鈕、額外的存儲存空間等配件,能夠從事更為廣泛的硬體設計;且其開發(fā)板可獨立運作的特性,也更適合嵌入式系統(tǒng)相關硬體的開發(fā)。本設計就是基于DE2-70開發(fā)平臺來完成異步FIFO的設計的。3.2軟件平臺Quartus II 是
38、Altera公司的綜合性PLD/FPGA開發(fā)軟件,是Altera前一代FPGACPLD集成開發(fā)環(huán)境MAX+plus II的更新?lián)Q代產(chǎn)品。支持原理圖、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多種設計輸入形式,內(nèi)嵌自有的綜合器以及仿真器,可以完成從設計輸入到硬件配置的完整PLD設計流程,它提供了一種與結構無關的設計環(huán)境,是設計者能方便的進行設計輸入、快速處理和器件編程。Quartus II提供了完整的平臺的設計環(huán)境,能夠滿足各種特定的設計需要,設計工具完全支持VHDL、Verilog的設計流程,其內(nèi)部嵌有VHDL、Ve
39、rilog邏輯綜合器。Quartus II也可以第三方的綜合工具,如Leonardo Spectrum、Synplify Pro、FPGA Complier,并能直接調(diào)用這些工具。同樣,Quartus II具備仿真功能,同時也支持第三方的仿真工具,如ModelSim。此外,Quartus II與MATLAB和DSP Buider結合,可以進行基于FPGA的DSP系統(tǒng)開發(fā)。Quartus II包括塊化的編譯器。編譯器包括的公共模塊有分析綜合器(Analysis&Synthesis)適配器(Fitter)、裝配器(Assembler)、時序分析器(Timing Analyzer)、設計輔助
40、模塊、EDA網(wǎng)表文件生成器(EDA Netlist Writer)和編譯數(shù)據(jù)庫接口等。Quartus II 還包含許多十分有用的LPM(Library of Parameterized Moudles)模塊,它們是復雜或高級系統(tǒng)的重要組成部分,在SOPC設計中被大量使用。Quartus II軟件的功能特性如下:Quartus II提供了完全集成且與電路結構無關的開發(fā)包環(huán)境,具有數(shù)字邏輯設計的全部特性,包括: 可利用原理圖、結構框圖、VerilogHDL、AHDL和VHDL完成電路描述,并將其保存為設計實體文件; 芯片(電路)平面布局連線編輯; LogicLock增量設計方法,用戶可建立并優(yōu)化系
41、統(tǒng),然后添加對原始系統(tǒng)的性能影響較小或無影響的后續(xù)模塊; 功能強大的邏輯綜合工具; 完備的電路功能仿真與時序邏輯仿真工具; 定時/時序分析與關鍵路徑延時分析; 可使用SignalTap II邏輯分析工具進行嵌入式的邏輯分析; 支持軟件源文件的添加和創(chuàng)建,并將它們鏈接起來生成編程文件; 使用組合編譯方式可一次完成整體設計流程; 自動定位編譯錯誤; 高效的期間編程與驗證工具; 可讀入標準的EDIF網(wǎng)表文件、VHDL網(wǎng)表文件和Verilog網(wǎng)表文件; 能生成第三方EDA軟件使用的VHDL網(wǎng)表文件和Verilog網(wǎng)表文件。Quartus II還擁有良好的設計輸入定位器,用于確定文本或圖形設計中的錯誤。
42、在進行編譯后,可對設計進行時序仿真,編譯和仿真無誤后,便可以將下載信息通過Quartus II提供的編程器下載到目標器件中了。有了Quartus II強大功能的平臺支持,就可方便快捷高效地實現(xiàn)異步FIFO的設計和實現(xiàn)了。第四章 異步FIFO的設計與實現(xiàn)4.1異步FIFO 設計同步化是當今集成電路設計的主導思想之一,即采用同一個時鐘來控制 所有時鐘控制器件,然而在實際的數(shù)字系統(tǒng)中,完全同步化的設計,實現(xiàn)起來非 常困難,多數(shù)情況下,完成數(shù)據(jù)在不同時鐘域間的傳輸是不可避免的。因此,如 何保持系統(tǒng)順利、穩(wěn)定地完成數(shù)據(jù)的傳輸是一個極其重要的問題,通常解決這一問題的做法是采用對每位信號增加握手信號或加同步
43、器,但是這樣會影響傳輸速 度和增加系統(tǒng)的復雜度。本文在兩個時鐘域的交界處增加一個異步 FIFO,通過它來實現(xiàn)數(shù)據(jù)流的傳輸。然而,常見的異步FIFO 設計采用同步讀寫地址后比較產(chǎn)生空滿標志的方法,面積大、工作頻率低。本章將通過優(yōu)化格雷碼編碼電路來改進 常見的異步 FIFO 設計,減少面積空間,提升工作頻率 寫地址產(chǎn)生 雙口RAM 讀地址產(chǎn)生 full wr_clk empty wr_en wr_adder wr_clk rd_addr rd_clk wt_en wr_adder rd_adder wr_adder rd_adder rd_en圖3.1 異步FIFO內(nèi)部模塊和接口信號4.1.1異步
44、FIFO工作原理異步FIFO 的工作原理如圖1 所示。一般可以分為4個模塊: 寫地址模塊、讀地址模塊、數(shù)據(jù)存儲模塊以及空/滿標志位產(chǎn)生模塊。數(shù)據(jù)存儲模塊在FPGA 中是一個雙口RAM, 可以同時進行讀寫操作。整個系統(tǒng)分為兩個完全獨立的時鐘域: 讀時鐘域和寫時鐘域。由圖 可以看寫地址產(chǎn)生模塊根據(jù)寫時鐘和寫有效信號產(chǎn)生遞增的寫地址, 讀地址產(chǎn)生模塊根據(jù)讀時鐘和讀有效信號產(chǎn)生遞增的讀地址。在FIFO 中的具體實現(xiàn)過程為: 在寫時鐘的上升沿, 當寫使能有效, 將數(shù)據(jù)寫入到雙口RAM 的寫地址對應位置; 在讀時鐘的上升沿, 讀使能有效的時候, 始終將讀地址對應的雙口RAM 中的數(shù)據(jù)輸出到讀數(shù)據(jù)總線上???/p>
45、/ 滿標志位產(chǎn)生模塊是由讀寫地址相互比較生成空/滿標志。異步FIFO 存儲器的接口信號如圖3.1 所示, 包括異步的寫時鐘( wrclk) 、讀時鐘( rd_ clk) 、與寫時鐘同步的寫有效( wr _en) 、寫數(shù)據(jù)( wr _data) 、及與讀時鐘同步的讀有效( rd_en) 、讀數(shù)據(jù)( rd_ data) . 為了實現(xiàn)正確的讀寫和避免異步FIFO 存儲器的上溢或下溢, 給出的與讀時鐘和寫時鐘同步的FIFO 的空標志( empty) 、滿標志( full) 以禁止非法讀、寫操作. 由圖4 可以看出, 寫地址產(chǎn)生模塊根據(jù)寫時鐘和寫有效信號產(chǎn)生遞增的寫地址, 讀地址產(chǎn)生模塊根據(jù)讀時鐘和讀有
46、效信號產(chǎn)生遞增的讀地址. 在寫時鐘wr_ clk 的上升沿, 當wr _en 有效時, 將wr_data 寫入雙口RAM 中寫地址對應的位置中; 并始終將讀地址對應的雙口RAM 中的數(shù)據(jù)輸出到讀數(shù)據(jù)總線上, 從而實現(xiàn)了先進先出的功能.當讀寫地址的差值等于一個預設值的時候,空/滿信號被置位。這種實現(xiàn)方法邏輯簡 單,但它是減法器形成的一個比較大的組合邏輯,因而限制了 FIFO 的速度。所以,一般只采用相等不相等的比較邏輯,避免使用減法器。圖3.3 是另外一種設計,比較器只對讀寫地址比較是否相等。在讀寫地址相等的時候無法判斷空滿狀態(tài),所以附加了一個并行的區(qū)間判斷邏輯來指示是空還是滿。這個區(qū)間判斷邏輯
47、將整個地址空間分為幾個部分,以指示讀寫地址的相對位置,這種做法提高了整個電路的速度,但是其缺點主要是直接采用讀寫地址是否相等的比較邏輯來進行空/滿標志的判斷,在某些時候有可能帶來誤判。寫地址 比較器 讀地址 空/滿標志 判斷邏輯 區(qū)間指示器圖3.3 帶區(qū)間指示的FIFO 標志產(chǎn)生邏輯4.1.2異步FIFO設計的難點異步 FIFO 是一個經(jīng)典的跨時鐘域設計,蘊含很多跨時鐘域設計方法,具有 兩大特點。一是單個信號跨時鐘域,由于兩個時鐘不同,跨時鐘信號不能滿足新 時鐘的建立和保持時間所造成的亞穩(wěn)態(tài)問題。二是多個控制狀態(tài)信號的跨時鐘傳 遞。具體地說,就是把一組信號傳遞到另外一個時鐘域的時候,這一組信號
48、可能 因為延遲不同,這樣到達新時鐘域之后,得到的數(shù)據(jù)相差一個老時鐘域的時鐘周 期。在異步 FIFO 中,需要傳遞的是一個計數(shù)器,這個計數(shù)器可以編碼成格雷碼, 這樣的編碼每次只變化一個位,避免了多個跨時鐘域信號同時變化。值得注意的 是,這里對格雷碼的相對延遲和相關的時鐘周期有一個要求,這就是異步 FIFO 中最關鍵的一點。多位同步信號轉(zhuǎn)換主要適用在異步 FIFO 這樣的邏輯,其讀寫指針在進行時鐘 域轉(zhuǎn)換時,首先要將其轉(zhuǎn)換為格雷碼形式,再進行轉(zhuǎn)換。在寄存器通路中,讀寫 使能信號也通過本方式進行同步,值得注意的是,異步 FIFO 的描述與域庫器件的 邏輯描述相關,器件選型后,規(guī)范統(tǒng)一異步 FIFO
49、的描述,異步 FIFO 的同步信號 轉(zhuǎn)換邏輯,如圖 3.4 所示。 data_in data_ out Register D Qfile waddr clk_rdraddr wr Binary Binarycounte counter rdwr_clk rd_clk D D D D Q DQdata_vld full compare Q Q Q Q compare D wr_clk rd_clk rd_clk圖 3.4 異步 FIFO 的同步信號轉(zhuǎn)換邏輯計者使用異步 FIFO 有兩個目的:速度匹配或數(shù)據(jù)寬度匹配。在速度匹配時, 異步 FIFO 較快的端口處理猝發(fā)的數(shù)據(jù)傳輸,而較慢的端口則維持恒定的數(shù)據(jù)流。 雖然訪問方式和速度不同,但是進出異步 FIFO 的平均數(shù)據(jù)速率必須是相同的, 否則異步 FIFO 就會出現(xiàn)上溢或下溢問題。在速度匹配應用中,每個端口(讀或?qū)懀?的時鐘不同。異步 FIFO 中的寄存器使用寫端口時鐘,就像保持
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版凈化車間裝修施工監(jiān)理與驗收合同2篇
- 北京經(jīng)濟管理職業(yè)學院《數(shù)據(jù)庫與數(shù)據(jù)結構(二)》2023-2024學年第一學期期末試卷
- 北京交通大學《美國文學史及作品選讀》2023-2024學年第一學期期末試卷
- 北京建筑大學《建筑漫游》2023-2024學年第一學期期末試卷
- 2024年私人二手房屋買賣合同含家具家電移轉(zhuǎn)范本3篇
- 北京工業(yè)職業(yè)技術學院《醫(yī)用檢驗儀器》2023-2024學年第一學期期末試卷
- 2024年甲乙雙方關于汽車租賃服務的合同
- 北京工商大學嘉華學院《有聲語言表達基礎》2023-2024學年第一學期期末試卷
- 2025年度美容院專業(yè)按摩技師承包經(jīng)營合同范本3篇
- 2025版股權重組與人力資源整合合同3篇
- 2024年高考政治選必二《法律與生活》重要知識問題梳理總結
- 孕早期nt檢查課件
- 【MOOC】工程制圖解讀-西安交通大學 中國大學慕課MOOC答案
- 期末復習(試題)-2024-2025學年三年級上冊數(shù)學蘇教版
- 檢驗科新進人員崗前培訓
- 小紅書種草營銷師模擬題及答案(單選+多選+判斷)
- 內(nèi)鏡中心年終總結和計劃
- 運維或技術支持崗位招聘筆試題與參考答案(某大型央企)2024年
- 2024年家裝家居行業(yè)解決方案-淘天集團
- 2022年新高考I卷讀后續(xù)寫David's run公開課課件-高三英語一輪復習
- 《論語》導讀(復旦版)學習通超星期末考試答案章節(jié)答案2024年
評論
0/150
提交評論