以FPGA為橋梁的FIFO設(shè)計(jì)方案及其應(yīng)用
在模式設(shè)定之后,BANK和行地址選中需要訪問數(shù)據(jù)所在的具體BANK塊和行,狀態(tài)機(jī)對(duì)這一行發(fā)出激活命令,從激活到讀寫操作需要經(jīng)過一個(gè)tRCD的延時(shí),設(shè)計(jì)中選tRCD=20 ns,而系統(tǒng)時(shí)鐘周期為9.26 ns,所以從激活到執(zhí)行讀寫操作之間至少需要3個(gè)時(shí)鐘周期。在執(zhí)行讀寫操作時(shí),只要狀態(tài)機(jī)通過讀寫命令選中數(shù)據(jù)所在行的列地址,就能達(dá)到讀寫具體存儲(chǔ)單元的目的。狀態(tài)機(jī)對(duì)SDRAM發(fā)出一個(gè)讀命令后,需要等待一個(gè)CAS latency,然后才能讀數(shù)據(jù);而寫操作是實(shí)時(shí)的,不需要延時(shí),狀態(tài)機(jī)在發(fā)出寫命令后,就可以對(duì)SDRAM進(jìn)行寫操作。SDRAM同時(shí)只允許一行地址激活,因此在完成某BANK/ROW的讀寫操作后,對(duì)該BANK/ROW進(jìn)行預(yù)充電,然后才能激活下一個(gè)BANK/ROW。從預(yù)充電成功到下一次激活命令成功,如果是在同一個(gè)BANK塊,則需要延時(shí)tRC,如果是不同的BANK塊,則需要延時(shí)tRRD。
SDRAM要求在64 ms之內(nèi)對(duì)4 096行進(jìn)行刷新,也就是每15.625μs刷新一行。由于系統(tǒng)時(shí)鐘周期為9.26 ns,所以刷新模塊計(jì)數(shù)達(dá)到1 685時(shí),就需要對(duì)SDRAM發(fā)出刷新命令,保證SDRAM中的數(shù)據(jù)不丟失。將自動(dòng)刷新請(qǐng)求設(shè)為優(yōu)先請(qǐng)求,狀態(tài)機(jī)內(nèi)部有請(qǐng)求仲裁邏輯,當(dāng)自動(dòng)刷新請(qǐng)求和其他請(qǐng)求同時(shí)出現(xiàn)時(shí),優(yōu)先保證自動(dòng)刷新請(qǐng)求,狀態(tài)轉(zhuǎn)移至刷新操作,當(dāng)刷新操作結(jié)束時(shí),重新返回空閑狀態(tài),開始響應(yīng)其他請(qǐng)求。
3 工程應(yīng)用介紹
該設(shè)計(jì)目的是為了擴(kuò)展TMS320DM642的FIFO容量,以FPGA為接口,實(shí)現(xiàn)與SDRAM的連接。TMS320DM642可以對(duì)4 GB的地址進(jìn)行尋址,而實(shí)際應(yīng)用中FIFO的容量只有256 KB,尋址空間為0x0184000~0x0187FFFF,因此在實(shí)際應(yīng)用中必須進(jìn)行擴(kuò)展。這里采用1片MICRON公司的MT48LC4M3282型號(hào)的128 Mb SDRAM,采用32位數(shù)據(jù)總線,將其通過FPGA配置在TMS320DM642處理器的EMIFA CE3上,其地址范圍為0xB0000000~0xB7FFFFFF。在該設(shè)計(jì)中,突發(fā)長度為8,CAS latency為3。圖4為用Modelsim SE 6.0仿真的SDRAM讀時(shí)序圖。
4 結(jié) 語
該設(shè)計(jì)已應(yīng)用于目標(biāo)識(shí)別與跟蹤系統(tǒng)中的幀緩沖。文中主要介紹了SDRAM的具體信號(hào)關(guān)系,說明各種操作命令,給出在高速圖像存儲(chǔ)系統(tǒng)中SDRAM控制器的具體硬件接口設(shè)計(jì)。大容量存儲(chǔ)器是FIFO的發(fā)展方向,從現(xiàn)在通用的SDRAM、專用的SRAM,到DDR SDRAM,容量越來越大,速度也越來越快,而用FPGA作為SDRAM的控制器,具有最大的靈活性,也能在最大限度上發(fā)揮SDRAM高速度的優(yōu)勢(shì),因此對(duì)它進(jìn)行研究具有重要的意義。
評(píng)論