嵌入式視頻系統(tǒng)中SDRAM時(shí)序控制分析
AVIA9700 SDRAM
為了補(bǔ)償布線延時(shí),滿足公式(1)和公式(2)的要求,AVIA9700的內(nèi)置SDRAM控制器提供了兩個(gè)延時(shí)補(bǔ)償參數(shù):SDRAM_CLK_IN和 SDRAM_CLK_OUT。這兩個(gè)參數(shù)都是8位的整數(shù),可以提供不同的時(shí)鐘延時(shí)組合,解決各種復(fù)雜數(shù)字電視接收機(jī)系統(tǒng)中的SDRAM時(shí)序問題。
通過嵌入式應(yīng)用軟件,開發(fā)人員可以調(diào)整SDRAM_CLK_IN的參數(shù)來控制讀入數(shù)據(jù)的時(shí)鐘延時(shí)。同樣,對(duì)SDRAM_CLK_OUT的設(shè)置也可以改變輸出時(shí)鐘的延時(shí)。通過設(shè)置SDRAM_CLK_OUT (OutTapSel=X)改變輸出的MCLK時(shí)鐘相位,補(bǔ)償各種不同的布線延時(shí),可以解決高速數(shù)字電視系統(tǒng)的SDRAM時(shí)序問題。
在實(shí)際應(yīng)用中,由于不同整機(jī)廠會(huì)采用不同廠家的SDRAM,PCB布線也會(huì)因?yàn)闄C(jī)器結(jié)構(gòu)原因發(fā)生較大變化,時(shí)鐘工作頻率和選用器材的不一致性等,都會(huì)引起公式(1)、(2)中的參數(shù)發(fā)生變化。這些因素的組合,往往使布線延時(shí)問題變得復(fù)雜。
AVIA9700 SDRAM
時(shí)序診斷軟件及測試結(jié)果
為了方便開發(fā)人員快速解決問題,本文利用AVIA9700內(nèi)置SDRAM控制器提供的時(shí)鐘延時(shí)補(bǔ)償機(jī)制,設(shè)計(jì)了一個(gè)診斷工具。
基于AVIA9700數(shù)字電視接收機(jī),由于PCB、元器件、系統(tǒng)頻率都已經(jīng)定型,影響布線延時(shí)的電氣特性已經(jīng)固化。通過改變SDRAM_CLK_IN和 SDRAM_CLK_OUT組合,設(shè)計(jì)人員可以測試不同組合下的SDRAM訪問錯(cuò)誤率,根據(jù)錯(cuò)誤率統(tǒng)計(jì)數(shù)據(jù)制成統(tǒng)計(jì)圖,如圖3所示。圖中縱坐標(biāo)為 SDRAM_CLK_IN,由于寄存器是8位,因此選取坐標(biāo)取值范圍在0~255之間(28);橫坐標(biāo)為SDRAM_CLK_OUT,取值范圍也在 0~255之間。對(duì)該范圍內(nèi)的某一點(diǎn)所對(duì)應(yīng)的寄存器設(shè)置,診斷軟件都要自動(dòng)重復(fù)10000次讀寫操作。設(shè)計(jì)人員可以利用最后生成的圖形,快速準(zhǔn)確地選定 SDRAM_CLK_IN和SDRAM_CLK _OUT的值,并將其固化在最終生產(chǎn)版本的軟件中。
圖3 SDRAM時(shí)序測試統(tǒng)計(jì)圖
這里,補(bǔ)償參數(shù)的選擇原則是,組合值需要在測試圖中無錯(cuò)區(qū)域的中心,且距離邊界大于25。
結(jié)語
通過實(shí)驗(yàn)發(fā)現(xiàn),在高速數(shù)字系統(tǒng)設(shè)計(jì)中,通過SDRAM控制器來補(bǔ)償布線延時(shí)可以很好地解決SDRAM時(shí)序問題?!?p>參考文獻(xiàn)
1. Howard Honson, Martin Graham. 高速數(shù)字設(shè)計(jì)[ M ] . 電子工業(yè)出版社。 2004
2. AVIA9700 datasheet C-NOVA, Inc. 2004
3. AVIA9700 programming guide C-Nova, Inc. 2004
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論