郭慧瑩
摘 要:存儲(chǔ)器是保證計(jì)算機(jī)正常運(yùn)行的重要組成部分,實(shí)現(xiàn)計(jì)算機(jī)的數(shù)據(jù)存儲(chǔ)工作,傳統(tǒng)的存儲(chǔ)器控制器存在著運(yùn)行效率低、不可重復(fù)編寫(xiě)的問(wèn)題,為此,提出一種基于FPGA的嵌入式存儲(chǔ)器控制器設(shè)計(jì)方案,探討了存儲(chǔ)器控制器的構(gòu)造,設(shè)計(jì)了四種形態(tài)的狀態(tài)機(jī),可以實(shí)現(xiàn)相互之間的自由轉(zhuǎn)換,以VHDL語(yǔ)言作為程序編碼的語(yǔ)言,實(shí)現(xiàn)對(duì)存儲(chǔ)器控制器的控制,最后以ISE Simulator Lite軟件進(jìn)行仿真模擬,證實(shí)了設(shè)計(jì)的存儲(chǔ)器控制器能夠?qū)崿F(xiàn)數(shù)據(jù)的讀與寫(xiě)操作,同時(shí)效率高、可擦寫(xiě)。
關(guān)鍵詞:嵌入式存儲(chǔ)器;控制器;FPGA;VHDL
信息化時(shí)代計(jì)算機(jī)在各行各業(yè)中的地位越來(lái)越重要,使得計(jì)算機(jī)技術(shù)得到了快速的發(fā)展,與此同時(shí)存儲(chǔ)器在計(jì)算機(jī)系統(tǒng)中的作用也逐漸加大。計(jì)算機(jī)系統(tǒng)中包含了規(guī)模龐大的處理器,每一個(gè)處理器均要與存儲(chǔ)器建立連接實(shí)現(xiàn)信息的交互,由此可以看出存儲(chǔ)器是計(jì)算機(jī)的核心部件,影響著計(jì)算機(jī)的性能發(fā)揮。傳統(tǒng)的存儲(chǔ)器控制方法存在著靈活性差、無(wú)法擦寫(xiě)的問(wèn)題,為此,本文分析了一種基于FPGA的改進(jìn)存儲(chǔ)器控制方法,克服了傳統(tǒng)控制方法中的弊端,并引入VHDL語(yǔ)言進(jìn)行程序的編寫(xiě),進(jìn)而實(shí)現(xiàn)處理器與存儲(chǔ)器信號(hào)的有效傳遞。
一、基于FPGA和VHDL的存儲(chǔ)器控制器設(shè)計(jì)
在進(jìn)行存儲(chǔ)器控制器的設(shè)計(jì)過(guò)程中,第一步需要將相關(guān)數(shù)據(jù)參數(shù)傳輸?shù)娇刂破鞑糠?,其中參?shù)包含了數(shù)據(jù)的地址、內(nèi)容以及長(zhǎng)度等,控制器將接受到的信號(hào)按照先后的順序進(jìn)行各個(gè)數(shù)據(jù)的讀與寫(xiě)操作。所以,為了滿(mǎn)足上述的要求需要設(shè)計(jì)一個(gè)可以對(duì)內(nèi)部程序進(jìn)行編寫(xiě)的存儲(chǔ)器控制器,控制器依據(jù)設(shè)定的程序代碼逐個(gè)完成數(shù)據(jù)的讀與寫(xiě)工作。[1]本文設(shè)計(jì)的存儲(chǔ)器硬件設(shè)備選用塞林思公司的Spartan-6系列,并使用VHDL進(jìn)行控制器語(yǔ)言的編寫(xiě),借助有限狀態(tài)機(jī)FSM完成存儲(chǔ)器控制器。另外,還需要在存儲(chǔ)器控制器中添加讀數(shù)裝置,從而實(shí)現(xiàn)對(duì)時(shí)序圖中所包含的數(shù)據(jù)進(jìn)行逐個(gè)計(jì)數(shù),連接線(xiàn)路用來(lái)實(shí)現(xiàn)數(shù)據(jù)地址和內(nèi)容的運(yùn)輸。如圖1為控制器的構(gòu)造。
配置寄存器是存儲(chǔ)器中結(jié)構(gòu)中的一部分,其實(shí)現(xiàn)的功能是幫助存儲(chǔ)器確定存儲(chǔ)形式、字長(zhǎng)以及時(shí)序參數(shù)等方面的內(nèi)容,通過(guò)行業(yè)標(biāo)準(zhǔn)查詢(xún)手冊(cè)可以看到,配置寄存器的數(shù)據(jù)讀取時(shí)間為8ns,假設(shè)控制器的工作效率為100MHz,也就是工作周期為10ns,那么配置寄存器數(shù)據(jù)讀取的總時(shí)長(zhǎng)為1拍的時(shí)間。結(jié)合時(shí)序圖以及相關(guān)參數(shù)可以得到數(shù)據(jù)讀取觸發(fā)的時(shí)間大于8ns,由此可以推理出數(shù)據(jù)讀取觸發(fā)的周期必定大于1拍。[2]
根據(jù)上述的理論推理與數(shù)據(jù)參數(shù),設(shè)計(jì)了四種形態(tài)的狀態(tài)機(jī),每個(gè)狀態(tài)機(jī)的保持與切換均是由計(jì)時(shí)裝置的節(jié)拍數(shù)進(jìn)行倒計(jì)時(shí)來(lái)進(jìn)行控制的,當(dāng)計(jì)數(shù)器的數(shù)值不為零,那么狀態(tài)機(jī)將保持現(xiàn)狀不變,當(dāng)計(jì)數(shù)器的數(shù)值為零,那么狀態(tài)機(jī)將切換到下一形態(tài)。[3]形態(tài)切換圖見(jiàn)下圖2,其中圖中所顯示的形態(tài)文字與第二形態(tài)是相同的。
二、仿真模擬與分析
總結(jié)上文設(shè)計(jì)中的理論分析與數(shù)據(jù)計(jì)算,代入到嵌入式存儲(chǔ)器控制器中,同時(shí)以VHDL語(yǔ)言作為程序編碼的語(yǔ)言,實(shí)現(xiàn)對(duì)存儲(chǔ)器控制器的控制,以ISE Design Suite 14.7軟件為設(shè)計(jì)平臺(tái),以FPGA為硬件設(shè)備,完成程序的下載工作。另外,運(yùn)用Xilinx軟件中包含的ISE Simulator Lite功能進(jìn)行程序模擬,最終獲得的時(shí)序圖和設(shè)計(jì)標(biāo)準(zhǔn)手冊(cè)中的時(shí)序圖相符合,因此可以得出設(shè)計(jì)出的存儲(chǔ)器控制器能夠?qū)崿F(xiàn)對(duì)數(shù)據(jù)的讀與寫(xiě)操作,證明該存儲(chǔ)器控制器設(shè)計(jì)方案是可行的。[4]
三、結(jié)語(yǔ)
本文對(duì)基于FPGA和VHDL的存儲(chǔ)器控制器設(shè)計(jì),設(shè)定FPGA為嵌入式存儲(chǔ)器的控制裝置,可以完成對(duì)時(shí)序控制器中數(shù)據(jù)的讀與寫(xiě)步驟,這種設(shè)計(jì)思路新穎,不但能夠有效降低制作成本,同時(shí)還可以保證控制器具有較高的可編輯性,解決了專(zhuān)用控制器中復(fù)雜操作的問(wèn)題,改善了存儲(chǔ)器控制軟件的運(yùn)行速度,為今后的存儲(chǔ)器控制器設(shè)計(jì)提供了寶貴的經(jīng)驗(yàn)。
參考文獻(xiàn):
[1]史展,李占宣.基于FPGA的嵌入式CPU的VHDL設(shè)計(jì)[J].科技創(chuàng)新與應(yīng)用,2013(27):43.
[2]李家星.嵌入式系統(tǒng)和FPGA的總線(xiàn)控制器的設(shè)計(jì)實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2007(02):242-243+285.
[3]周榮.基于FPGA的嵌入式CPU的VHDL建模和設(shè)計(jì)[J].浙江工業(yè)大學(xué)學(xué)報(bào),2006(05):550-553+588.
[4]曹志香,桑愛(ài)兵,丁黃勝,張萌.基于AMBA總線(xiàn)的嵌入式彩色LCD控制器的設(shè)計(jì)及FPGA實(shí)現(xiàn)[J].電子器件,2004(01):139-142.