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