當前位置:首頁 > 嵌入式 > 嵌入式硬件

摘 要: 介紹了異步FIFO在Camera Link接口中的應(yīng)用,將Camera Link接口中的幀有效信號FVAL和行有效信號LVAL引入到異步FIFO的設(shè)計中。分析了FPGA中設(shè)計異步FIFO的難點,解決了異步FIFO設(shè)計中存在的兩個關(guān)鍵問題:一是盡量降低電路中亞穩(wěn)態(tài)的出現(xiàn)概率;二是如何產(chǎn)生空、滿等相應(yīng)的控制信號。為Camera Link接口提供了穩(wěn)定的視頻數(shù)據(jù)及控制信號。
關(guān)鍵詞: Camera Link;異步FIFO;雙口RAM;亞穩(wěn)態(tài);格雷碼

FIFO(First In First Out)是一種常用于數(shù)據(jù)緩存的電路器件,可應(yīng)用于高速數(shù)據(jù)采集、多處理器接口和視頻信號的時序控制等領(lǐng)域。在Camera Link接口中,需要將28 bit的TTL/CMOS信號同時送給Camera Link接口芯片,其中28 bit信號包括24 bit數(shù)據(jù)信號和4 bit控制信號(幀有效FVAL信號和行有效LVAL信號等)。而進入FPGA中的只有數(shù)據(jù)信號,所以,異步FIFO要有在控制圖像數(shù)據(jù)時序的同時,生成FVAL和LVAL同步控制信號的功能。在這種情況下,目前常用的FIFO器件很難滿足系統(tǒng)的要求。文中采用Verilog HDL語言設(shè)計了一種異步FIFO,它不僅提供數(shù)據(jù)緩沖,而且能夠匹配Camera Link接口標準。
1 異步FIFO設(shè)計
異步FIFO由FIFO主控模塊(包含存儲單元)、讀地址及空標志產(chǎn)生模塊、寫地址及滿標志產(chǎn)生模塊、異步比較模塊4部分組成,結(jié)構(gòu)圖如圖1所示。整個FIFO分為2個獨立的時鐘域,即讀時鐘域和寫時鐘域,F(xiàn)IFO的存儲介質(zhì)為一塊雙口RAM,可以同時進行讀寫操作。在寫時鐘域部分,由寫地址及滿標志模塊產(chǎn)生寫地址和寫滿標志信號,寫時鐘信號和寫使能信號由系統(tǒng)數(shù)據(jù)生成模塊給出,寫入的數(shù)據(jù)由主控模塊存儲在雙端口RAM中;在讀時鐘域部分,由讀地址及空標志模塊產(chǎn)生讀地址和讀空標志信號,讀時鐘信號由系統(tǒng)時鐘通過分頻器得到,讀使能使用視頻同步信號中的行同步LVAL信號,讀出數(shù)據(jù)由主控制模塊從雙端口RAM中讀出并連同視頻同步信號一起發(fā)送到Camera Link接口。由異步比較模塊對讀、寫地址進行比較,并產(chǎn)生將滿(nfull_n)、將空(nempty_n)信號。


2 設(shè)計的難點
對于通用的FIFO,不能直接應(yīng)用到Camera Link接口中,也不能通過簡單修改現(xiàn)成的FIFO模塊而得到,這是因為異步FIFO的設(shè)計存在以下難點:
(1)亞穩(wěn)態(tài)問題:在信號傳輸中,每種觸發(fā)器都有時序要求,并在工作過程中存在數(shù)據(jù)的建立時間和保持時間。對于使用上升沿觸發(fā)的觸發(fā)器來說,建立時間(Setup Time)是在時鐘上升沿到來之前,觸發(fā)器數(shù)據(jù)保持穩(wěn)定的最小時間;而保持時間(Hold Time)是在時鐘上升沿到來之后,觸發(fā)器數(shù)據(jù)還應(yīng)該保持的最小時間。在時鐘上升沿前后的這個窗口內(nèi)數(shù)據(jù)應(yīng)該保持不變,否則會使觸發(fā)器工作在一個不確定的狀態(tài),即亞穩(wěn)態(tài)。如圖2所示。當觸發(fā)器處于亞穩(wěn)態(tài),且處于亞穩(wěn)態(tài)的時間超過了一個時鐘周期時,這種不確定的狀態(tài)將會影響到下一級的觸發(fā)器,最終導致連鎖反應(yīng),從而使整個系統(tǒng)功能失常。

(2)FIFO空、滿標志產(chǎn)生邏輯:一個好的FIFO設(shè)計的基本要求是:寫滿不溢出;讀空又不多讀。傳統(tǒng)的異步FIFO把讀寫地址信號同步后再進行比較以產(chǎn)生空滿標志,由于讀寫地址的每一位都需要兩級同步電路,大量使用寄存器必然要占用很大的面積。這種方法不適合設(shè)計大容量的FIFO。當讀、寫指針相等也就是指向同一個內(nèi)存位置時,F(xiàn)IFO可能處于滿或空兩種狀態(tài),必須區(qū)分FIFO是處于空狀態(tài)還是滿狀態(tài)。
(3)Camera Link接口的匹配:由于異步FIFO在控制數(shù)據(jù)時序的同時,還要產(chǎn)生視頻同步控制信號,并按照控制信號的時序?qū)?shù)據(jù)讀出。設(shè)計中,只用到Camera Link接口中的幀有效信號FVAL和行有效信號LVAL,當FVAL和LVAL信號為高時,才能將數(shù)據(jù)讀出,為低時,數(shù)據(jù)不能讀出。所以雙重的時序控制很難穩(wěn)定,Camera Link接口的匹配也很難達到要求。
3 問題的解決
(1)高速的格雷碼指針:對于亞穩(wěn)態(tài)問題,采用高速的格雷碼指針來解決。設(shè)計中讀、寫地址采用格雷碼,用兩組寄存器作為格雷碼指針。一組二進制計數(shù)器,而另一組用來存放二進制碼到格雷碼轉(zhuǎn)換(Binary-to-Gray)的值。圖3是高速格雷碼計數(shù)器的示意圖。加法器的附加條件分別是讀(或?qū)?使能和空(或滿)標志。當讀(或?qū)?使能有效(高電平)且FIFO存儲器處在非空(或非滿)狀態(tài)時就對二進制序列加一,否則二進制序列加零(保持不變);然后通過Binary-to-Gray電路將二進制bnext轉(zhuǎn)換為格雷碼gnext,這個轉(zhuǎn)換電路是由n個二輸入異或門組成,在下一個時鐘沿gnext被存到格雷碼指針中。

(2)空滿狀態(tài)產(chǎn)生邏輯:對于空、滿標志,設(shè)計中采用的解決方法是將地址空間劃分為4個連續(xù)區(qū)間,將取自每個指針最高位和次高位的4位地址狀態(tài)進行譯碼,以判定當2個指針相等時FIFO存儲器是處于滿狀態(tài)還是空狀態(tài)。如圖4和5所示,如果寫指針落后于讀指針一個區(qū)間,說明FIFO存儲器將可能為滿狀態(tài);如果讀指針落后于寫指針一個信號區(qū),說明FIFO存儲器將可能為空狀態(tài)。利用一個狀態(tài)鎖存器,當寫指針在讀指針后一個地址空間時將鎖存器置位;當讀指針在寫指針后一個地址空間時將鎖存器清零。在讀指針與寫指針相等時,如果鎖存器值為1,F(xiàn)IFO存儲器是滿狀態(tài);如果鎖存器值為0,F(xiàn)IFO存儲器是空狀態(tài)。由圖4和5可以寫出狀態(tài)鎖存器的置位和復(fù)位的邏輯關(guān)系:

對于空、滿標志的置位和復(fù)位,設(shè)計中采用異步比較的方法實現(xiàn)。如圖6所示,aempty_n和afull_n是由異步信號比較產(chǎn)生的。aempty_n有效(低電平)是由讀指針增加引起的,所以它是發(fā)生在讀時鐘的上升沿;aempty_n信號釋放(無效)是由寫指針增加引起的,所以它發(fā)生在寫時鐘的上升沿。類似地,afull_n信號變?yōu)橛行?低電平)是由寫指針增加引起的,所以它發(fā)生在寫時鐘的上升沿;釋放(無效)是由讀指針增加引起的,所以它發(fā)生在讀時鐘的上升沿??諣顟B(tài)標志是用于阻止下一個讀時鐘周期繼續(xù)讀取數(shù)據(jù),aempty_n的有效沿(下降沿)與讀時鐘同步,但是它的上升沿卻與寫時鐘同步,所以aempty_n的上升沿要經(jīng)過同步器才能傳遞到讀時鐘域中。afull_n信號與此類似。

(3)Camera Link接口匹配邏輯:Camera Link接口有基本架構(gòu)(Base Configuration)、中階架構(gòu)(Medium Configuration)及完整架構(gòu)(Full Configuration)3種。設(shè)計中采用基本架構(gòu),配置A口和B口作為圖像數(shù)據(jù)的輸入,其中A口、B口都為8 bit;控制信號使用幀有效信號FVAL和行有效信號LVAL。當FVAL和LVAL信號都為高電平時,數(shù)據(jù)在圖像時鐘信號的控制下依次發(fā)送。
由于對FIFO的讀要嚴格按照控制信號的時序,依次將寫入到雙端口RAM中的像素數(shù)據(jù)讀出,也就是當幀有效信號FVAL為高電平,行有效信號LVAL由低電平跳變到高電平時,讀出的是該行的第一個像素數(shù)據(jù);并依次按照行頻和幀頻將像素數(shù)據(jù)發(fā)送到Camera Link接口中。所以要解決以下幾個問題:
首先是讀時鐘信號與寫時鐘信號的匹配問題。設(shè)計中采用分頻器將系統(tǒng)時鐘分頻,并與寫時鐘相近,作為讀時鐘,這樣可以避免頻繁產(chǎn)生空、滿信號。
其次,讀操作控制信號的確定。通常的設(shè)計中,讀出數(shù)據(jù)和讀地址加一都在讀使能信號的控制下完成。但設(shè)計中增加FVAL和LVAL信號后,數(shù)據(jù)的讀出和讀地址的增加都是在LVAL和FVAL信號為高時完成,因此就不能用通常設(shè)計中的讀使能信號作為讀操作的控制信號,設(shè)計中用LVAL做為讀操作的控制信號,從圖1中也可以看出。這樣,當LVAL為高電平時,就可以實現(xiàn)每次地址加一,讀出一個數(shù)據(jù)。當LVAL為低電平時,地址不增加,數(shù)據(jù)也不被讀出。
最后,F(xiàn)VAL和LVAL信號的產(chǎn)生。設(shè)計中通過計數(shù)來實現(xiàn),那么觸發(fā)計數(shù)的信號如何選取呢?通過上面分析知道,讀地址的增加和數(shù)據(jù)的讀出都是在LVAL信號的控制下完成的,而LVAL信號也要與讀出的數(shù)據(jù)一一對應(yīng),也就是說LVAL計數(shù)每次加一就會有一個數(shù)據(jù)讀出,所以采用通常設(shè)計中的讀使能信號作為LVAL和FVAL計數(shù)的觸發(fā)信號,便可以實現(xiàn)Camera Link接口的控制信號對圖像數(shù)據(jù)的控制。
4 驗證結(jié)果
將程序下載到FPGA中,使用開發(fā)工具Quartus II6.0中自帶的邏輯分析儀SignalTap對FIFO中的信號進行采樣監(jiān)測,采樣結(jié)果如圖7、圖8所示。結(jié)果表明信號時序準確,數(shù)據(jù)和地址無毛刺現(xiàn)象。從圖7可以看出,當LVAL信號為低時,讀地址不增加并停止讀,滿足時序要求。圖8中rdata為讀出數(shù)據(jù),值為0~9,lval_count為LVAL信號的計數(shù)寄存器,計數(shù)值為0~369,其中高電平為0~319。從圖中看出:讀出數(shù)據(jù)值和lval_count的尾數(shù)值一一對應(yīng),也就是說LVAL與讀出數(shù)據(jù)一一對應(yīng)。結(jié)果表明其可以為Camera Link接口提供穩(wěn)定的數(shù)據(jù)及控制信號。

本文設(shè)計了一種異步FIFO,并成功應(yīng)用在Camera Link接口中。分析和解決了異步FIFO設(shè)計中存在的2個關(guān)鍵問題:用高速的格雷碼指針作為讀寫地址編碼,有效降低了亞穩(wěn)態(tài)出現(xiàn)的概率;通過劃分地址空間和增加標志位解決了空、滿信號問題。同時還解決了與Camera Link接口的時序匹配問題。設(shè)計中增加了電路的面積,但避免了復(fù)雜的組合邏輯,提高了系統(tǒng)的工作頻率。
參考文獻
[1] 夏宇聞.Verilog數(shù)字系統(tǒng)設(shè)計教程[M].北京航空航天大學出版社,2003.
[2] 魏芳,劉志軍,馬克杰.基于Verilog HDL的異步FIFO設(shè)計與實現(xiàn)[J].電子技術(shù)應(yīng)用,2006(7):97-99.
[3] 陳驥,王鑫,曹久大.高速CCD激光移位傳感器[J].光學精密工程,2008(4):611-616.
[4] 劉洪波,龍娟.異步FIFO狀態(tài)判斷的研究與設(shè)計[J].微電子學與計算機,2007,24(3).
[5] 黃平,何虎剛,徐定杰.導航接收機的非對稱異步FIFO設(shè)計[J].彈箭與制導學報,2008,28(1).
[6] 萬秋華,孫瑩,王樹浩,等.雙讀數(shù)系統(tǒng)的航天級絕對式光電編碼器設(shè)計[J].光學精密工程,2009(6):52-57.

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉