在高速數字視頻係統應用中,使用大容量存儲器實現數據緩存是一個必不可少的環節。SDRAM就是經常用到的一種存儲器。
但是,在主芯片與SDRAM之間產生的時序抖動問題阻礙了產品的大規模生產。在數字電視接收機的生產實際應用中,不同廠家的PCB板布線、PCB材料和時鍾頻率的不同,及SDRAM型號和器件一致性不同等原因,都會帶來解碼主芯片與SDRAM間訪問時序的抖動問題。
本文利用C-NOVA公司數字電視MPEG-2解碼芯片AVIA9700內置的SDRAM控製器所提供的時序補償機製,設計了一個方便使用的內存時序測試軟件工具,利用這個工具,開發測試人員可在以AVIA9700為解碼器的數字電視接收機設計和生產中進行快速診斷,並解決SDRAM的時序問題。
數字電視係統 SDRAM時序控製
AVIA9700內集成了一個SDRAM控製器,該控製器提供一套完整的SDRAM接口。AVIA9700與SDRAM接口中的控製線、地址線和數據線都同步在MCLK時鍾上。圖1是用兩片16位SDRAM組合形成32位數據線的典型連接示意圖。

圖1 SDRAM與AVIA9700典型鏈接示意圖
SDRAM控製線正確讀寫時序條件
AVIA9700解碼芯片訪問SDRAM的時序如圖2所示。

圖2 AVIA9700訪問SDRAM時序示意圖
要正確訪問SDRAM,建立時間和保持時間很關鍵。建立時間在觸發器采樣之前,在這段時間,數據必須保持有效的時間,否則會產生setup violation;保持時間在解發器開始采樣之後,數據必須保持有效的時間,否則會產生hold violation。因此,要正確讀寫SDRAM的時序條件,需要滿足以下兩個公式:
SDRAM_Setup_time_min < T_cycle-control_signal_valid_max-control_signal_Delay_max+ clock_delay_min (1)
SDRAM_Hold_time_min < control_signal_valid_min + control_signal_delay_min- clock_delay_m_ax (2)
這裏,T_cycle 為SDRAM時鍾周期,Control signal valid為控製信號從時鍾上升沿到輸出有效時間,delay為布線所引起的延時。
對於低頻設計,線互連和板層的影響很小,可以不考慮。當頻率超過50MHz或信號上升時間Tr小於6倍傳輸線延時時,互連關係必須以傳輸線理論納入考慮之中,而在評定係統性能時也必須考慮PCB板材料的電參數。由於AVIA9700輸出時鍾信號MCLK工作在108MHz~148.5MHz之間,所以設計時必須考慮布線延時引起的SDRAM時序問題。
AVIA9700 SDRAM 時序控製機製
為了補償布線延時,滿足公式(1)和公式(2)的要求,AVIA9700的內置SDRAM控製器提供了兩個延時補償參數:SDRAM_CLK_IN和SDRAM_CLK_OUT。這兩個參數都是8位的整數,可以提供不同的時鍾延時組合,解決各種複雜數字電視接收機係統中的SDRAM時序問題。
通過嵌入式應用軟件,開發人員可以調整SDRAM_CLK_IN的參數來控製讀入數據的時鍾延時。同樣,對SDRAM_CLK_OUT的設置也可以改變輸出時鍾的延時。通過設置SDRAM_CLK_OUT (OutTapSel=X)改變輸出的MCLK時鍾相位,補償各種不同的布線延時,可以解決高速數字電視係統的SDRAM時序問題。
在實際應用中,由於不同整機廠會采用不同廠家的SDRAM,PCB布線也會因為機器結構原因發生較大變化,時鍾工作頻率和選用器材的不一致性等,都會引起公式(1)、(2)中的參數發生變化。這些因素的組合,往往使布線延時問題變得複雜。
AVIA9700 SDRAM 時序診斷軟件及測試結果
為了方便開發人員快速解決問題,本文利用AVIA9700內置SDRAM控製器提供的時鍾延時補償機製,設計了一個診斷工具。
基於AVIA9700數字電視接收機,由於PCB、元器件、係統頻率都已經定型,影響布線延時的電氣特性已經固化。通過改變SDRAM_CLK_IN和SDRAM_CLK_OUT組合,設計人員可以測試不同組合下的SDRAM訪問錯誤率,根據錯誤率統計數據製成統計圖,如圖3所示。圖中縱坐標為SDRAM_CLK_IN,由於寄存器是8位,因此選取坐標取值範圍在0~255之間(28);橫坐標為SDRAM_CLK_OUT,取值範圍也在0~255之間 。對該範圍內的某一點所對應的寄存器設置,診斷軟件都要自動重複10000次讀寫操作。設計人員可以利用最後生成的圖形,快速準確地選定SDRAM_CLK_IN和SDRAM_CLK _OUT的值,並將其固化在最終生產版本的軟件中。

圖3 SDRAM時序測試統計圖
這裏,補償參數的選擇原則是,組合值需要在測試圖中無錯區域的中心,且距離邊界大於25。
結語
通過實驗發現,在高速數字係統設計中,通過SDRAM控製器來補償布線延時可以很好地解決SDRAM時序問題。■
參考文獻
1. Howard Honson, Martin Graham. 高速數字設計[ M ] . 電子工業出版社. 2004
2. AVIA9700 datasheet C-NOVA, Inc. 2004
3. AVIA9700 programming guide C-Nova, Inc. 2004