FPGA設(shè)計(jì)秘笈

FPGA設(shè)計(jì)秘笈

ID:47062460

大?。?15.00 KB

頁(yè)數(shù):11頁(yè)

時(shí)間:2019-07-12

FPGA設(shè)計(jì)秘笈_(tái)第1頁(yè)
FPGA設(shè)計(jì)秘笈_(tái)第2頁(yè)
FPGA設(shè)計(jì)秘笈_(tái)第3頁(yè)
FPGA設(shè)計(jì)秘笈_(tái)第4頁(yè)
FPGA設(shè)計(jì)秘笈_(tái)第5頁(yè)
資源描述:

《FPGA設(shè)計(jì)秘笈》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。

1、第十章存儲(chǔ)器一、前言如果我們考慮使用同步動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(SDRAM),那么針對(duì)這種存儲(chǔ)器我們需考慮的主要方面有:1.這種類型的動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)依賴于存儲(chǔ)數(shù)據(jù)關(guān)口的電容三極管;2.DRAM比靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)更加兼容;3.DRAM不能被合成,因此需要一個(gè)單獨(dú)的DRAM芯片;4.SDRAM要求有一個(gè)同步時(shí)鐘,這個(gè)時(shí)鐘需與其余的硬件系統(tǒng)相一致,并且是由微處理器進(jìn)行運(yùn)作5.DRAM數(shù)據(jù)必須被刷新,因?yàn)镈RAM是儲(chǔ)存電荷且在一定時(shí)間后會(huì)衰變;6.DRAM較SRAM更慢些。SRAM可以看作是類似于只讀存儲(chǔ)器(ROM)芯片,它還有其他不同的特征:1.存儲(chǔ)單元格是以標(biāo)準(zhǔn)鎖存

2、器為基準(zhǔn);2.SRAM是快捷的存儲(chǔ)方式。3.SRAM兼容性不如DRAM(或SDRAM);4.SRAM可以合成一個(gè)現(xiàn)場(chǎng)可編程門陣列(FPGA),因此它是小型、快速寄存器或內(nèi)存塊的最佳選擇。SRAM從本質(zhì)上來(lái)說(shuō)是不同步的,但是可以修改為同步運(yùn)轉(zhuǎn)(如SDRAM的同步相當(dāng)于DRAM),這通常被稱為同步RAM。這時(shí)候,F(xiàn)lash存儲(chǔ)器非常有用,盡管它的運(yùn)作不同于其他存儲(chǔ)器那樣久遠(yuǎn),僅僅是因?yàn)樗子谑褂们以贔PGA開發(fā)板上經(jīng)常用得到。Flash存儲(chǔ)器本質(zhì)上是電可擦只讀存儲(chǔ)器(EEPROM)的一種形式,可以用作是一種永久的RAM。只所以說(shuō)是永久性的,是因?yàn)樵贔lash存儲(chǔ)器中,存儲(chǔ)裝置即使在斷電時(shí)仍能

3、保存數(shù)據(jù),因此它經(jīng)常用作一種ROM,因?yàn)樗梢杂糜诖鎯?chǔ)FPGA程序,也可以用作RAM(動(dòng)態(tài))存儲(chǔ)當(dāng)前數(shù)據(jù),因此普遍用于FPGA系統(tǒng)。二、用硬件描述語(yǔ)言(VHDL)對(duì)存儲(chǔ)器進(jìn)行建模當(dāng)用VHDL對(duì)存儲(chǔ)器進(jìn)行建模時(shí)應(yīng)非常小心,因?yàn)槟承┐鎯?chǔ)器不能合成,如果使用模塊,即使是離片時(shí),也必須能體現(xiàn)出正確的實(shí)際裝置物理特征。這尤其適用于訪問(wèn)次數(shù)和時(shí)序擾亂情況。當(dāng)時(shí)序擾亂時(shí),所獲得的數(shù)據(jù)最好的情況也許是可疑的,最壞的情況是完全無(wú)效的。設(shè)計(jì)師可以發(fā)現(xiàn)自己處于一個(gè)令人反感的處境,即仿真模塊運(yùn)行良好,而實(shí)際硬件完全不起作用。在此章節(jié)中,我們所使用的VHDL是在任何模型中都不會(huì)出現(xiàn)任何物理性延時(shí),如果這些模塊用于

4、現(xiàn)實(shí)系統(tǒng)時(shí),則會(huì)增加延時(shí)。三、只讀存儲(chǔ)器ROM本質(zhì)上是一套在存儲(chǔ)寄存器中預(yù)先定義的數(shù)值。這種存儲(chǔ)器有2種定義,第一種是存儲(chǔ)區(qū)數(shù)量,第二種是位元數(shù)量。比如,假如存儲(chǔ)器各自有16個(gè)存儲(chǔ)區(qū)和8個(gè)位元,那么這個(gè)存儲(chǔ)器就可以定義為16×8ROM?;镜腞OM有一個(gè)信息輸入,可以存取地址的定義,還有一個(gè)信息輸出,是一個(gè)存放數(shù)據(jù)的邏輯載體。設(shè)想在VHDL中的一個(gè)簡(jiǎn)單的ROM行為模塊實(shí)體為:ENTITYROM16x8ISPORT(address:ININTEGERRANGE0TO15;dout:OUTstd_logic_vector(7DOWNTO0));ENDENTITYROM16x8;由此可以看到,

5、地址已被定義為一個(gè)整數(shù),但是數(shù)值范圍局限于ROM范圍中。ROM的架構(gòu)定義為一個(gè)可以直接獲取的固定數(shù)組元素。因此,一個(gè)帶有一套樣板數(shù)據(jù)元素的ROM范例可以定義如下:ARCHITECTUREexampleOFrom16x8ISTYPEromdataISARRAY(0TO15)OFstd_logic_vector(7DOWNTO0);CONSTANTromvals:romdata:=(“00000000”,“01010011”,“01110010”,“01101100”,“01110101”,“11010111”,“11011111”,“00111110”,“11101100”,“100001

6、10”,“11111001”,“00111001”,“01010101”,“11110111”,“10111111”,“11101101”);BEGINdata<=romvals(address);ENDARCHITECTUREexample;如果我們采取這個(gè)范例,我們首先需要聲明這個(gè)ROM是在一個(gè)VHDL測(cè)試臺(tái)上的,然后制定地址使用一個(gè)整數(shù)信號(hào)。以下為一個(gè)testbench范例:libraryieee;useieee.std_logic_1164.all;entitytestromisendentitytestrom;architecturetestoftestromissignala

7、ddress:integer:=0;signaldata:std_logic_vector(7downto0);beginrom16x8:entitywork.rom16x8(example)portmap(address,data);endarchitecturetest;需注意的是IEEE庫(kù)中,std_logic_vector型號(hào)要求是std_logic_1164,數(shù)值取決于所選擇的地址。四、隨機(jī)存取存儲(chǔ)器一個(gè)DRAM組件有一個(gè)

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。