<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 解析高速嵌入式視頻系統(tǒng)中SDRAM的時序控制

          解析高速嵌入式視頻系統(tǒng)中SDRAM的時序控制

          作者: 時間:2014-06-27 來源:網(wǎng)絡(luò) 收藏

            在高速數(shù)字視頻系統(tǒng)應(yīng)用中,使用大容量存儲器實現(xiàn)數(shù)據(jù)緩存是一個必不可少的環(huán)節(jié)。就是經(jīng)常用到的一種存儲器。

          本文引用地址:http://www.ex-cimer.com/article/248956.htm

            但是,在主芯片與之間產(chǎn)生的時序抖動問題阻礙了產(chǎn)品的大規(guī)模生產(chǎn)。在數(shù)字電視接收機(jī)的生產(chǎn)實際應(yīng)用中,不同廠家的PCB板布線、PCB材料和時鐘頻率的不同,及型號和器件一致性不同等原因,都會帶來解碼主芯片與SDRAM間訪問時序的抖動問題。

            本文利用C-NOVA公司數(shù)字電視解碼芯片AVIA9700內(nèi)置的SDRAM控制器所提供的時序補償機(jī)制,設(shè)計了一個方便使用的內(nèi)存時序測試軟件工具,利用這個工具,開發(fā)測試人員可在以AVIA9700為解碼器的數(shù)字電視接收機(jī)設(shè)計和生產(chǎn)中進(jìn)行快速診斷,并解決SDRAM的時序問題。

            數(shù)字電視系統(tǒng)

            SDRAM時序控制

            AVIA9700內(nèi)集成了一個SDRAM控制器,該控制器提供一套完整的SDRAM接口。AVIA9700與SDRAM接口中的控制線、地址線和數(shù)據(jù)線都同步在MCLK時鐘上。圖1是用兩片16位SDRAM組合形成32位數(shù)據(jù)線的典型連接示意圖。

            

           

            圖1 SDRAM與AVIA9700典型鏈接示意圖

            SDRAM控制線

            正確讀寫時序條件

            AVIA9700解碼芯片訪問SDRAM的時序如圖2所示。

            

           

            圖2 AVIA9700訪問SDRAM時序示意圖

            要正確訪問SDRAM,建立時間和保持時間很關(guān)鍵。建立時間在觸發(fā)器采樣之前,在這段時間,數(shù)據(jù)必須保持有效的時間,否則會產(chǎn)生setup violation;保持時間在解發(fā)器開始采樣之后,數(shù)據(jù)必須保持有效的時間,否則會產(chǎn)生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為布線所引起的延時。

            對于低頻設(shè)計,線互連和板層的影響很小,可以不考慮。當(dāng)頻率超過50MHz或信號上升時間Tr小于6倍傳輸線延時時,互連關(guān)系必須以傳輸線理論納入考慮之中,而在評定系統(tǒng)性能時也必須考慮PCB板材料的電參數(shù)。由于AVIA9700輸出時鐘信號MCLK工作在108MHz~148.5MHz之間,所以設(shè)計時必須考慮布線延時引起的SDRAM時序問題。

            AVIA9700 SDRAM

            時序控制機(jī)制

            為了補償布線延時,滿足公式(1)和公式(2)的要求,AVIA9700的內(nèi)置SDRAM控制器提供了兩個延時補償參數(shù):SDRAM_CLK_IN 和SDRAM_CLK_OUT。這兩個參數(shù)都是8位的整數(shù),可以提供不同的時鐘延時組合,解決各種復(fù)雜數(shù)字電視接收機(jī)系統(tǒng)中的SDRAM時序問題。

            通過應(yīng)用軟件,開發(fā)人員可以調(diào)整SDRAM_CLK_IN的參數(shù)來控制讀入數(shù)據(jù)的時鐘延時。同樣,對SDRAM_CLK_OUT的設(shè)置也可以改變輸出時鐘的延時。通過設(shè)置SDRAM_CLK_OUT (OutTapSel=X)改變輸出的MCLK時鐘相位,補償各種不同的布線延時,可以解決高速數(shù)字電視系統(tǒng)的SDRAM時序問題。

            在實際應(yīng)用中,由于不同整機(jī)廠會采用不同廠家的SDRAM,PCB布線也會因為機(jī)器結(jié)構(gòu)原因發(fā)生較大變化,時鐘工作頻率和選用器材的不一致性等,都會引起公式(1)、(2)中的參數(shù)發(fā)生變化。這些因素的組合,往往使布線延時問題變得復(fù)雜。

            AVIA9700 SDRAM

            時序診斷軟件及測試結(jié)果

            為了方便開發(fā)人員快速解決問題,本文利用AVIA9700內(nèi)置SDRAM控制器提供的時鐘延時補償機(jī)制,設(shè)計了一個診斷工具。

            基于AVIA9700數(shù)字電視接收機(jī),由于PCB、元器件、系統(tǒng)頻率都已經(jīng)定型,影響布線延時的電氣特性已經(jīng)固化。通過改變 SDRAM_CLK_IN和SDRAM_CLK_OUT組合,設(shè)計人員可以測試不同組合下的SDRAM訪問錯誤率,根據(jù)錯誤率統(tǒng)計數(shù)據(jù)制成統(tǒng)計圖,如圖3 所示。圖中縱坐標(biāo)為SDRAM_CLK_IN,由于寄存器是8位,因此選取坐標(biāo)取值范圍在0~255之間(28);橫坐標(biāo)為SDRAM_CLK_OUT,取值范圍也在0~255之間。對該范圍內(nèi)的某一點所對應(yīng)的寄存器設(shè)置,診斷軟件都要自動重復(fù)10000次讀寫操作。設(shè)計人員可以利用最后生成的圖形,快速準(zhǔn)確地選定SDRAM_CLK_IN和SDRAM_CLK _OUT的值,并將其固化在最終生產(chǎn)版本的軟件中。

            

           

            圖3 SDRAM時序測試統(tǒng)計圖

            這里,補償參數(shù)的選擇原則是,組合值需要在測試圖中無錯區(qū)域的中心,且距離邊界大于25。

            結(jié)語

            通過實驗發(fā)現(xiàn),在高速數(shù)字系統(tǒng)設(shè)計中,通過SDRAM控制器來補償布線延時可以很好地解決SDRAM時序問題。

            參考文獻(xiàn)

            1. Howard Honson, Martin Graham. 高速數(shù)字設(shè)計[ 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不再難懂)


          關(guān)鍵詞: 嵌入式 SDRAM MPEG-2

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();