一種基于DDR高速圖像緩存的實(shí)現(xiàn)
隨著半導(dǎo)體傳感器技術(shù)的發(fā)展,在實(shí)際應(yīng)用中越來越多地用到了高幀頻、大面陣的CCD相機(jī)以獲取高質(zhì)量、高分辨率的圖像數(shù)據(jù)。以分辨率為1K×1K、幀頻為200f/s、8bit灰度級(jí)的相機(jī)為例,其圖像數(shù)據(jù)流速率就將高達(dá)200MB/s,這對(duì)圖像的高速緩存和記錄提出了挑戰(zhàn)。高速緩存的實(shí)現(xiàn)是實(shí)時(shí)記錄的前提條件,高速圖像記錄之前必須采用合理的緩存機(jī)制來完成高速圖像數(shù)據(jù)緩存。
目前高速緩存實(shí)現(xiàn)方案有三種: 第一種是FIFO(先進(jìn)先出)方式,FIFO存儲(chǔ)器就像數(shù)據(jù)管道一樣,數(shù)據(jù)從管道的一端流入,從另一端流出,先進(jìn)先出,省略了地址線,接口簡單方便,其缺點(diǎn)是容量可擴(kuò)展性差。第二種是雙口RAM方式,具有兩套獨(dú)立的數(shù)據(jù)、地址和控制總線,因而可從兩個(gè)端口同時(shí)讀寫而互不干擾,能達(dá)到很高的傳輸速度,并且具有隨機(jī)存取的優(yōu)點(diǎn),缺點(diǎn)是需要用戶產(chǎn)生地址邏輯。 第三種是高速SRAM切換方式,高速SRAM只有一套數(shù)據(jù)、地址和控制總線,可通過三態(tài)緩沖門來實(shí)現(xiàn)兩塊SRAM的乒乓切換操作,該方案提高了系統(tǒng)帶寬,缺點(diǎn)是切換電路控制比較復(fù)雜。
目前高速緩存方案中常采用三種介質(zhì):第一種是SRAM,其具有操作簡單的特點(diǎn),但是昂貴的價(jià)格和容量的有限性限制了其在高速大容量的緩存中的應(yīng)用。第二種是SDRAM,由于需要進(jìn)行刷新、預(yù)充電等操作,控制難度大于SRAM,同時(shí)由于其數(shù)據(jù)傳輸只在時(shí)鐘沿上沿進(jìn)行,因此其傳輸帶寬還是受時(shí)鐘頻率的限制。第三種是DDR SDRAM,克服了SDRAM數(shù)據(jù)帶寬的問題,在時(shí)鐘的上下沿均傳輸數(shù)據(jù),帶寬是SDRAM的兩倍,性價(jià)比高,是目前高速緩存的最理想介質(zhì)。
本文以Micron DDR SDRAM[1]作為緩存介質(zhì),發(fā)揮了FIFO接口簡單、DDR的容量可擴(kuò)展性和高數(shù)據(jù)帶寬的優(yōu)點(diǎn)。在工作時(shí)鐘100MHz的條件下,以FIFO作為緩存方案實(shí)現(xiàn)了緩存容量32MB、數(shù)據(jù)傳輸率高達(dá)360MB/s的高速圖像緩存,彌補(bǔ)了FIFO容量小和DDR用戶接口邏輯復(fù)雜的缺點(diǎn),具有較好的應(yīng)用前景。
1 系統(tǒng)設(shè)計(jì)
為提高設(shè)計(jì)的可移植性和可擴(kuò)展性,采用了模塊設(shè)計(jì)的方法,設(shè)計(jì)四個(gè)模塊來完成圖像緩存功能。系統(tǒng)框架如圖1所示。用戶層接口模塊負(fù)責(zé)與用戶進(jìn)行通信,接收用戶命令和圖像數(shù)據(jù)并產(chǎn)生控制命令到應(yīng)用層控制模塊;應(yīng)用層控制模塊負(fù)責(zé)接收來自用戶層命令以及物理層控制模塊的狀態(tài)反饋信號(hào),產(chǎn)生讀寫命令及DDR操作地址發(fā)送到物理控制模塊;物理層控制模塊負(fù)責(zé)接收應(yīng)用層發(fā)送來的操作地址和命令以及和用戶層進(jìn)行數(shù)據(jù)通信,同時(shí)負(fù)責(zé)產(chǎn)生DDR器件操作所需要的時(shí)序邏輯功能來完成對(duì)DDR器件的物理層操作。
1.1 物理層控制模塊
DDR器件在上電過程中有一系列復(fù)雜的操作:上電后至少等候200?滋s然后連續(xù)執(zhí)行如下一連串命令:
全充電→空命令→配置外部模式寄存器→空命令→配置內(nèi)部模式寄存器→全充電→空命令→自動(dòng)刷新→空命令→自動(dòng)刷新→空命令→用戶發(fā)出任何有效操作命令。
該模塊的狀態(tài)機(jī)如圖2所示,復(fù)位或者上電后進(jìn)入初始化狀態(tài),初始化完成后進(jìn)入工作等待(空閑)中,由于DDR器件的構(gòu)造特點(diǎn),需要每隔64ms對(duì)器件所有存儲(chǔ)單元進(jìn)行一次刷新。DDR器件本身具有自動(dòng)刷新計(jì)數(shù)器,刷新一行計(jì)數(shù)器便增加一,因此自動(dòng)刷新的時(shí)間間隔由DDR的行數(shù)決定,本設(shè)計(jì)采用Micron MT46V32M16器件,行數(shù)為8K,計(jì)算得到相鄰自動(dòng)刷新命令的間隔為7.8μs。設(shè)計(jì)中采用一個(gè)計(jì)數(shù)器,每隔7.8?滋s就發(fā)出一個(gè)自動(dòng)刷新的命令,控制器在工作空閑狀態(tài)下響應(yīng)并發(fā)出自動(dòng)刷新命令。
評(píng)論