新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > FPGA與外部存儲設備的接口實現(xiàn)

FPGA與外部存儲設備的接口實現(xiàn)

作者: 時間:2012-03-26 來源:網(wǎng)絡 收藏

DRAM性能簡介

DRAM與SRAM不同,它只能將數(shù)據(jù)保持很短的時間。為了保持數(shù)據(jù),DRAM 必須隔一段時間刷新一次,如果存儲單元沒有刷新,數(shù)據(jù)就會丟失。SRAM雖不需刷新,但斷電后會丟失數(shù)據(jù)。SRAM的數(shù)據(jù)傳輸速率從10 ns到30 ns不等,DRAM要比它慢30 ns左右。因此,SRAM通常用于高速緩沖存儲器,而DRAM通常用來存儲較大的數(shù)據(jù)。HY57V281620HC(L/S)T是4Banks 2M 16bit的同步動態(tài)存儲器,性能特點包括:

1.工作在3.3 0.3V電壓下;
2.所有器件管腳都與LVTTL接口兼容;
3.所有的輸入和輸出操作都是在時鐘CLK上升沿的作用下進行;
4.通過UDQM或者LDQM來實現(xiàn)數(shù)據(jù)延時功能;
5.內(nèi)部有四個bank可以進行操作;
6.自刷新功能,刷新周期為4096;
7.可編程的猝發(fā)類型、猝發(fā)長度;
8.可編程的的CAS延遲為2或3個時鐘周期。

由上面的特性可知,DARM的讀寫操作與SRAM有較大的不同。根據(jù)HY57V281620HC(L/S)T的讀寫狀態(tài)的時序要求,其讀寫時序狀態(tài)如圖2所示:

設計實現(xiàn)

當設計與SRAM的接口時,由于它的傳輸速度較快,所以只需著重考慮如何保證存儲數(shù)據(jù)的正確性,而不需要考慮用其它方式來提高SRAM的存儲速度。本設計的做法是一次性寫滿128k數(shù)據(jù)后,再一次性讀出128k數(shù)據(jù)。為了保證數(shù)據(jù)的正確性,要求在寫數(shù)據(jù)時不能讀數(shù)據(jù),而在讀數(shù)據(jù)時不能寫數(shù)據(jù)。

當設計與DRAM的接口時,為了能滿足各種系統(tǒng)的使用要求,本設計創(chuàng)建了時鐘頻率、猝發(fā)長度、延時節(jié)拍等可編程參數(shù)。在具體操作DRAM時,首先,必須進行初始化配置,即寫模式寄存器,以便確定DRAM列選延遲節(jié)拍數(shù)、猝發(fā)類型、猝發(fā)長度等工作模式。然后通過ACT命令激活對應地址的組,同時輸入行地址。最后,通過RD或WR命令輸入列地址,將相應數(shù)據(jù)讀出或?qū)懭氲綄牡刂?。操作完成后,用相關命令中止讀或?qū)懖僮?。在沒有操作的時候,每64ms必須對所有存儲單元刷新一遍,防止數(shù)據(jù)丟失。

下面本文將指出在設計實現(xiàn)中需要特別注意的幾個問題,并給出了相應的解決方法 。

首先,是如何控制SRAM的讀寫功能。這就需要與IS63LV1024讀寫時序要求和真值表的描述相配合。本設計為了避免連讀或連寫數(shù)據(jù)時出錯,考慮了一種通過讀寫數(shù)據(jù)請求的方法來盡量避免讀或?qū)憯?shù)據(jù)出錯的可能。即每寫完或讀完一個數(shù)據(jù)后都要先進行請求,然后才能繼續(xù)讀或?qū)憯?shù)據(jù)。ASRAM的狀態(tài)轉(zhuǎn)移圖如圖3所示:

下面給出了圖3中各個狀態(tài)所表示的意思:
DOREAD表示讀數(shù)據(jù)的請求;
DOWRITE表示寫數(shù)據(jù)的請求;
STIDLE表示存儲器處于空閑狀態(tài);
STWRITE1表示存儲器處于寫準備狀態(tài),準備寫數(shù)據(jù);
STWRITE2表示存儲器處于寫狀態(tài),開始寫數(shù)據(jù);
STREAD1表示存儲器處于讀準備狀態(tài),準備讀數(shù)據(jù);
STREAD2表示存儲器處于讀狀態(tài),開始讀數(shù)據(jù)。

只有當系統(tǒng)時鐘的上升沿到來時,才會觸發(fā)這個狀態(tài)機改變一次當前狀態(tài)。

剛開始時,存儲器的初始狀態(tài)為空閑狀態(tài),當有請求來時才判斷是讀或?qū)懻埱?,如果沒有請求就一直保持空閑狀態(tài)。虛線表示自動按順序進入下一個狀態(tài)。



關鍵詞: FPGA 存儲設備

評論


相關推薦

技術專區(qū)

關閉