采用FPGA與SRAM的大容量數(shù)據(jù)存儲(chǔ)的設(shè)計(jì)
3.2 引腳功能本文引用地址:http://www.ex-cimer.com/article/148770.htm
(1)A0~A17:18位的地址輸入線;
(2)IO0~I(xiàn)O15:16位的三態(tài)數(shù)據(jù)輸入輸出線;
(3)寫(xiě)控制線;
(4)片選信號(hào);
(5)輸出使能信號(hào);
(6)低字節(jié)、高字節(jié)使能信號(hào);
(3)~(6)的控制線均為低電平有效。
3.3 控制邏輯電路設(shè)計(jì)
如圖三所示,控制邏輯由FPGA來(lái)實(shí)現(xiàn)。主要包括讀地址產(chǎn)生器、寫(xiě)地址產(chǎn)生器、讀寫(xiě)時(shí)鐘信號(hào)產(chǎn)生器及讀寫(xiě)控制等幾部分。下面分別加以講述。
(1)寫(xiě)地址產(chǎn)生器:由于設(shè)計(jì)時(shí)采用256K×16的SRAM,故有18位地址,寫(xiě)地址產(chǎn)生器用18位計(jì)數(shù)器實(shí)現(xiàn)??客獠繒r(shí)鐘驅(qū)動(dòng),每進(jìn)行一次寫(xiě)操作后,讀寫(xiě)控制單元產(chǎn)生計(jì)數(shù)脈沖,使其增1,直到18位計(jì)數(shù)器計(jì)滿再循環(huán)寫(xiě)入地址為0的空間。
(2)讀地址產(chǎn)生器同上,也采用18位計(jì)數(shù)器實(shí)現(xiàn),根據(jù)系統(tǒng)要求,每隔一定的采樣周期將讀地址指針偏移一定偏移量,并從該位置讀取數(shù)據(jù)。
(3)讀寫(xiě)地址選擇器由于讀寫(xiě)地址復(fù)用管腳,因此在讀寫(xiě)操作時(shí),必須選通相應(yīng)的地址。這就需要由FPGA控制芯片上的等控制信號(hào)來(lái)對(duì)SRAM進(jìn)行讀寫(xiě)的操作。
(4)此外,由于讀寫(xiě)之間的切換,數(shù)據(jù)線上的數(shù)據(jù)在切換瞬間如不加處理會(huì)出現(xiàn)混亂現(xiàn)象。因此,為避免讀、寫(xiě)操作發(fā)生沖突,數(shù)據(jù)線呈三種狀態(tài),讀數(shù)據(jù)、寫(xiě)數(shù)據(jù)及高阻態(tài)。在從寫(xiě)到讀的過(guò)程中需給數(shù)據(jù)線上送高阻態(tài)。
(5)當(dāng)需要對(duì)SRAM進(jìn)行寫(xiě)操作時(shí),由FPGA控制產(chǎn)生寫(xiě)地址選通信號(hào),該選通信號(hào)為一單脈沖形式,如圖四中該脈沖下降沿觸發(fā)SRAM,告知開(kāi)始對(duì)RAM進(jìn)行寫(xiě)操作,使FPGA輸出寫(xiě)地址,同時(shí)給數(shù)據(jù)線上送數(shù)據(jù)。在寫(xiě)操作期間,片選信號(hào)始終保持低電平,而寫(xiě)地址選通信號(hào)上升沿到來(lái)時(shí)使寫(xiě)地址計(jì)數(shù)器增1。以此類推,通過(guò)寫(xiě)地址選通信號(hào)高低電平變化完成對(duì)數(shù)據(jù)依次寫(xiě)入。需要注意的是,地址線和數(shù)據(jù)線在為高時(shí)可同時(shí)賦新值,但只有在變低后賦予數(shù)據(jù)線上的新值才有效。
對(duì)SRAM進(jìn)行讀操作相對(duì)較簡(jiǎn)單,在進(jìn)行讀操作期間,始終為低電平,始終為高電平。每進(jìn)行一次讀操作,地址按系統(tǒng)要求變化一次。同時(shí)注意,地址的變化時(shí)刻總要先于數(shù)據(jù)的變化時(shí)刻。圖五為RAM讀操作時(shí)序。
評(píng)論