嵌入式視頻系統中SDRAM的時(shí)序控制研究方案
在高速數字視頻系統應用中,使用大容量存儲器實(shí)現數據緩存是一個(gè)必不可少的環(huán)節。SDRAM就是經(jīng)常用到的一種存儲器。
但是,在主芯片與SDRAM之間產(chǎn)生的時(shí)序抖動(dòng)問(wèn)題阻礙了產(chǎn)品的大規模生產(chǎn)。在數字電視接收機的生產(chǎn)實(shí)際應用中,不同廠(chǎng)家的PCB板布線(xiàn)、PCB材料和時(shí)鐘頻率的不同,及SDRAM型號和器件一致性不同等原因,都會(huì )帶來(lái)解碼主芯片與SDRAM間訪(fǎng)問(wèn)時(shí)序的抖動(dòng)問(wèn)題。
數字電視系統
SDRAM時(shí)序控制
AVIA9700內集成了一個(gè)SDRAM控制器,該控制器提供一套完整的SDRAM接口。AVIA9700與SDRAM接口中的控制線(xiàn)、地址線(xiàn)和數據線(xiàn)都同步在MCLK時(shí)鐘上。圖1是用兩片16位SDRAM組合形成32位數據線(xiàn)的典型連接示意圖。
圖1 SDRAM與AVIA9700典型鏈接示意圖
SDRAM控制線(xiàn)
正確讀寫(xiě)時(shí)序條件
AVIA9700解碼芯片訪(fǎng)問(wèn)SDRAM的時(shí)序如圖2所示。
圖2 AVIA9700訪(fǎng)問(wèn)SDRAM時(shí)序示意圖
要正確訪(fǎng)問(wèn)SDRAM,建立時(shí)間和保持時(shí)間很關(guān)鍵。建立時(shí)間在觸發(fā)器采樣之前,在這段時(shí)間,數據必須保持有效的時(shí)間,否則會(huì )產(chǎn)生setup violation;保持時(shí)間在解發(fā)器開(kāi)始采樣之后,數據必須保持有效的時(shí)間,否則會(huì )產(chǎn)生hold violation.因此,要正確讀寫(xiě)SDRAM的時(shí)序條件,需要滿(mǎn)足以下兩個(gè)公式:
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時(shí)鐘周期,Control signal valid為控制信號從時(shí)鐘上升沿到輸出有效時(shí)間,delay為布線(xiàn)所引起的延時(shí)。
對于低頻設計,線(xiàn)互連和板層的影響很小,可以不考慮。當頻率超過(guò)50MHz或信號上升時(shí)間Tr小于6倍傳輸線(xiàn)延時(shí)時(shí),互連關(guān)系必須以傳輸線(xiàn)理論納入考慮之中,而在評定系統性能時(shí)也必須考慮PCB板材料的電參數。由于A(yíng)VIA9700輸出時(shí)鐘信號MCLK工作在108MHz~148.5MHz之間,所以設計時(shí)必須考慮布線(xiàn)延時(shí)引起的SDRAM時(shí)序問(wèn)題。
AVIA9700 SDRAM
時(shí)序控制機制
為了補償布線(xiàn)延時(shí),滿(mǎn)足公式(1)和公式(2)的要求,AVIA9700的內置SDRAM控制器提供了兩個(gè)延時(shí)補償參數:SDRAM_CLK_IN 和SDRAM_CLK_OUT。這兩個(gè)參數都是8位的整數,可以提供不同的時(shí)鐘延時(shí)組合,解決各種復雜數字電視接收機系統中的SDRAM時(shí)序問(wèn)題。
通過(guò)嵌入式應用軟件,開(kāi)發(fā)人員可以調整SDRAM_CLK_IN的參數來(lái)控制讀入數據的時(shí)鐘延時(shí)。同樣,對SDRAM_CLK_OUT的設置也可以改變輸出時(shí)鐘的延時(shí)。通過(guò)設置SDRAM_CLK_OUT (OutTapSel=X)改變輸出的MCLK時(shí)鐘相位,補償各種不同的布線(xiàn)延時(shí),可以解決高速數字電視系統的SDRAM時(shí)序問(wèn)題。
在實(shí)際應用中,由于不同整機廠(chǎng)會(huì )采用不同廠(chǎng)家的SDRAM,PCB布線(xiàn)也會(huì )因為機器結構原因發(fā)生較大變化,時(shí)鐘工作頻率和選用器材的不一致性等,都會(huì )引起公式(1)、(2)中的參數發(fā)生變化。這些因素的組合,往往使布線(xiàn)延時(shí)問(wèn)題變得復雜。
AVIA9700 SDRAM
時(shí)序診斷軟件及測試結果
為了方便開(kāi)發(fā)人員快速解決問(wèn)題,本文利用AVIA9700內置SDRAM控制器提供的時(shí)鐘延時(shí)補償機制,設計了一個(gè)診斷工具。
基于A(yíng)VIA9700數字電視接收機,由于PCB、元器件、系統頻率都已經(jīng)定型,影響布線(xiàn)延時(shí)的電氣特性已經(jīng)固化。通過(guò)改變 SDRAM_CLK_IN和SDRAM_CLK_OUT組合,設計人員可以測試不同組合下的SDRAM訪(fǎng)問(wèn)錯誤率,根據錯誤率統計數據制成統計圖,如圖3 所示。圖中縱坐標為SDRAM_CLK_IN,由于寄存器是8位,因此選取坐標取值范圍在0~255之間(28);橫坐標為SDRAM_CLK_OUT,取值范圍也在0~255之間。對該范圍內的某一點(diǎn)所對應的寄存器設置,診斷軟件都要自動(dòng)重復10000次讀寫(xiě)操作。設計人員可以利用最后生成的圖形,快速準確地選定SDRAM_CLK_IN和SDRAM_CLK _OUT的值,并將其固化在最終生產(chǎn)版本的軟件中。
圖3 SDRAM時(shí)序測試統計圖
這里,補償參數的選擇原則是,組合值需要在測試圖中無(wú)錯區域的中心,且距離邊界大于25。
結語(yǔ)
通過(guò)實(shí)驗發(fā)現,在高速數字系統設計中,通過(guò)SDRAM控制器來(lái)補償布線(xiàn)延時(shí)可以很好地解決SDRAM時(shí)序問(wèn)題。
評論