4.3__LPM_ROM宏模塊H的使用._第1頁(yè)
4.3__LPM_ROM宏模塊H的使用._第2頁(yè)
4.3__LPM_ROM宏模塊H的使用._第3頁(yè)
4.3__LPM_ROM宏模塊H的使用._第4頁(yè)
4.3__LPM_ROM宏模塊H的使用._第5頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、摘要:EDA技術(shù)與VHDL程序開發(fā)基礎(chǔ)教程第 4章Quartus II操作指南,本章主要介紹 Altera公司配套的EDA 開發(fā)套件Quartus II的使用方法。該軟件在大學(xué)教學(xué)中使用最為廣泛。通過(guò)介紹Quartus II工具的設(shè)計(jì)流程、嵌入式邏輯分析儀和宏單元模塊的使用,力求使讀者熟練掌握現(xiàn)代數(shù)字系統(tǒng)的設(shè)計(jì)流程和仿真驗(yàn)證方法。本小節(jié)為大家介紹LPM_ROM宏模塊的工作原理。標(biāo)簽:EDA VHDL EDA技術(shù)與VHDL程序開發(fā)基礎(chǔ)教程4.3 LPM_ROM 宏模塊的使用Altera器件提供了一系列宏功能模塊供設(shè)計(jì)者使用,如片上存儲(chǔ)器、DSP模塊、LVDS驅(qū)動(dòng)器、嵌入式PLL及SERDES和D

2、DIO電路等。這些模塊的應(yīng)用主要是為了提高EDA電路設(shè)計(jì)的效率和可靠性。設(shè)計(jì)者只要根據(jù)實(shí)際電路的設(shè)計(jì)需要,選擇LPM庫(kù)中的適當(dāng)模塊,為其設(shè)定適當(dāng)?shù)膮?shù),便可以滿足自己的設(shè)計(jì)指標(biāo),從而成功地達(dá)到優(yōu)秀電子工程師的設(shè)計(jì)成果。LPM功能模塊內(nèi)容豐富,每一模塊的功能、參數(shù)含義、使用方法、硬件描述語(yǔ)言、模塊參數(shù)設(shè)置及調(diào)用方法都可以在 Quartus II的幫助文檔中查到。本節(jié)以一 個(gè)正選信號(hào)發(fā)生器為例介紹 LPM_ROM的使用方法。4.3.1 LPM_ROM宏模塊的工作原理圖4-27為正弦信號(hào)發(fā)生器的模塊化結(jié)構(gòu),可以看出該信號(hào)發(fā)生器由以下4部分組成:計(jì)數(shù)器正弦信號(hào)數(shù)據(jù)ROMVHDL頂層設(shè)計(jì)D/A轉(zhuǎn)換器在上

3、述結(jié)構(gòu)中,頂層文件在FPGA中實(shí)現(xiàn)包含ROM地址信號(hào)發(fā)生器和正弦數(shù)據(jù) ROM兩部分。其中,ROM 地址信號(hào)發(fā)生器由一個(gè) 5位計(jì)數(shù)器實(shí)現(xiàn),正弦數(shù)據(jù)ROM由LPM_ROM模塊構(gòu)成。LPM_ROM的底層是FPGA 中的EAB或M4K等模塊。正弦信號(hào)數(shù)據(jù)的采樣率是 64,即CLK頻率為正弦信號(hào)頻率的 64倍。4.3.2初始化數(shù)據(jù)文件由圖4-27可知,正弦信號(hào)的數(shù)據(jù)ROM是通過(guò)LPM_ROM宏模塊生成的。目前,Quartus II能接受的LPM 模塊的初始化數(shù)據(jù)文件的格式有兩種,即Memory Initialization File(.mif) 格式和Hexadecimal File(.hex)格式。下

4、面以64點(diǎn)正弦波形數(shù)據(jù)為例使用.mif文件進(jìn)行說(shuō)明。首先在Quartus II中打開ROM數(shù)據(jù)文件編輯窗口,即選擇File|New命令,在New對(duì)話框中切換到 Otherfiles選項(xiàng)卡,再選擇 Memory Initialization File 選項(xiàng),單擊 OK按鈕后產(chǎn)生ROM數(shù)據(jù)文件大小選擇窗口。這里采用64點(diǎn)8位數(shù)據(jù)的情況,可選 ROM的數(shù)據(jù)數(shù)Number為64,數(shù)據(jù)寬 Word size取8位。單擊OK 按鈕,將出現(xiàn)如圖4-28所示的空mif數(shù)據(jù)表格,表格中的數(shù)據(jù)為 10進(jìn)制形式,任一數(shù)據(jù)(如第三行的99) 對(duì)應(yīng)的地址為左列數(shù)與頂行數(shù)之和 )。將波形數(shù)據(jù)填入此表中,完成后在 File

5、菜單中單擊Save as命令,保 存此數(shù)據(jù)文件。在這里不妨取名為 romd.mif。Addr+0+1+2+3+5+602S5-2542522492452392332256217207197186174162150fl371&1JI11299077564534324S426191384103204813192634404353&475畀的112124137150162174197207 _ 21756225233239245249252254圖4-28 mif文件的數(shù)據(jù)當(dāng)然,除了 Quartus II之外,還可以用其他編輯器設(shè)計(jì) MIF文件,只要格式符合要求,均能夠被正常使用。 設(shè)計(jì)者甚至可以編

6、寫 C語(yǔ)言程序生成目標(biāo)MIF文件或者利用MATLAB來(lái)生成。由于這些方法超出了本書 的范圍,在此不做過(guò)多的討論,有興趣的讀者可以參閱相關(guān)資料。4.3.3 定制 LPM_ROM 元件(1)在設(shè)計(jì)正弦信號(hào)發(fā)生器前,必須首先完成存放波形數(shù)據(jù)ROM的設(shè)計(jì)。利用MegaWizard Plug-In Manager可以定制正弦信號(hào)數(shù)據(jù) ROM宏功能模塊,并將以上的波形數(shù)據(jù)加載于該ROM中,具體步驟如下。1. 打開 MegaWizard Plug-In Manager打開 MegaWizard Plug-In Manager 的初始對(duì)話框。選擇 Tools|MegaWizard Plug-In Manage

7、r 命令,彈出 圖4-29所示的對(duì)話框,選擇 Create a new custom megafunction variation單選按鈕,即定制一個(gè)新的模塊。圖 4-29 MegaWizard Plug-In Manager 對(duì)話框單擊Next按鈕,出現(xiàn)圖4-30所示的窗口,在左欄選擇Storage項(xiàng)下的ROM :1-PORT,再選Cyclone器件和VHDL語(yǔ)言方式,最后輸入 ROM文件存放的路徑和文件名:F:VHDLsin_gntdata_rom.vhd,單擊Next按鈕。egafizard Plug-Tn lanage; page 2aWhich megafunction vwufdy

8、ou like to customize?Select a megafunction horn the list belowWhich device family 皿 jjou be using?I Cyclone-Installed Flugins$ | Altera SOPCBuildert Arithmetic+Gates* 血 I/O+J TAG-acoes stole E tensions-u Memory CompilerWhich lpe of output fde do you want to create?C AHDLU VHppVedogHDLWhat name do yo

9、u want for the output hie?F:VHDLsin_gntddtajom. vhdJ FIFO-Q ;-.;-.Pj Fliii t-iemoryJ RAM:1-PDHTJ RAM:ZPORT RAM:3-P0ATJ RDM:1-PUATJ ROM:ZPORT Shift renter (RAM-ba:ed| + 直 Storage+ 兇 IP MegaStoreReturn to this page fa another create operationNote: To compile a pged successfully mlhe Quartus II softwar

10、e, your design files must be n (he project direc?oiy, in the global user librae specified in the Options dialog box ools menu, or a user library specified in the Us er Libraries page i the Settings dialog box (Assignments menu|.Your current user library (taectones are:Cancel imum(點(diǎn)擊查看大圖)圖4-30 LPM宏功能

11、設(shè)定2.選擇ROM控制線和地址、數(shù)據(jù)線在圖4-31和圖4-32所示的窗口中選擇地址與數(shù)據(jù)的位寬分別為6和8,選擇地址所存控制信號(hào)inclock,去除輸岀鎖存功能。(點(diǎn)擊查看大圖)圖4-31選擇data_rom模塊數(shù)據(jù)線和地址線寬度eaTizard Flu-In Isnager - ROI; 1-PORT pagp 4 of 7智 ROM: 1-PORT|T ParameterSettings General Regs/Clkens/Adrswhich ports should 盹 registered?“.::=. njdata_romt(7、Jnctacfc4DBlock type; AUT

12、Oj output poriCreate one clock enabfe signal for each dock signal. All registered ports are controlled by the enable signal(s).j 3 世 a byte enable 二屮hat s the Midth of a t 龍已 for byte e占匕空More Options,.,More Options,.,f?esource Usage1M4K eate an adr asynchronous clear for the registered pod$Cancel|

13、Next (點(diǎn)擊查看大圖)圖4-32選擇地址鎖存信號(hào)inclock4.3.3 定制 LPM_ROM 元件(2)3.選擇數(shù)據(jù)文件單擊Next按鈕進(jìn)行圖 4-33所示的窗口,選擇Yes,use this file for the memory content data單選按鈕并在 File name文本框中選擇數(shù)據(jù)文件 romd.mif,最后選中Allow In- System Memory復(fù)選框,完成 ROM文件 data_rom.vhd的生成。Allow In- System Memory是Altera的新功能,支持對(duì)FPGA中的ROM進(jìn)行在系 統(tǒng)測(cè)試和讀寫,且不影響數(shù)字系統(tǒng)的正常工作。按順序

14、完成以上三步的操作后,Quartus會(huì)自動(dòng)生成data_rom的VHDL源程序,如例4-1所示。通過(guò)閱讀程序,讀者可以很快了解LPM_ROM調(diào)用mif數(shù)據(jù)文件的方式以及與其他元件進(jìn)行連接的方法。【例4-1】data rom的源程序1. LIBRARY ieee;2. USE ieee.std_logic_1164.all;3. LIBRARY altera_mf;4. USE altera_mf.all;-使用宏功能庫(kù)中的所有元件5.5. ENTITY data_rom IS6. PORT7. (8. address : IN STD_LOGIC_VECTOR (5 DOWNTO 0);9.

15、in clock : IN STD_LOGIC ;10. q : OUT STD_LOGIC_VECTOR (7 DOWNTO 0)11. );12. END data_rom;14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.43.44.45.46.47.48.49.50.51.52.ARCHITECTURE SYN OF data_rom ISSIGNAL sub_wireO : STD_LOGIC_VECTOR (7 DOWNTO 0);COMPONENT alts

16、yncram-例化altsyncram 元件,調(diào)用 LPM 模塊 altsyncramGENERIC (-參數(shù)傳遞address_aclr_a : STRING;init_file : STRING;intended_device_family : STRING;-類屬參量數(shù)據(jù)類型定義lpm_hint: STRING;lpm_type: STRING;numwords_a : NATURAL;operation_mode : STRING;outdata_aclr_a: STRING;outdata_reg_a: STRING;widthad_a : NATURAL;width_a: NATU

17、RAL;width_byteena_a : NATURAL);PORT (clockO : IN STD_LOGIC ;address_a : IN STD_LOGIC_VECTOR (5 DOWNTO 0); q_a : OUT STD_LOGIC_VECTOR (7 DOWNTO 0);END COMPONENT;BEGINq NONE,init_file = romd.mif,intended_device_family Cyclone,lpm_hint ENABLE_RUNTIME_MOD=YES,INSTANCE_NAME=ROMT,lpm_type altsyncram,numwo

18、rds a64,operation_mode= ROM,outdata aclr a= NONE,outdata_reg_a= UNREGISTERED,widthad_a = 6,width a = 8,53.width_byteena_a54.)55.PORT MAP (-聲明元件連接關(guān)系56.clock。 = inclock,57.address_a= address58.q_a = sub._wire059.);60.END SYN;4.3.4頂層文件的仿真測(cè)試頂層文件的仿真測(cè)試是檢查整個(gè)系統(tǒng)是否能夠正常工作最有效的方法。在生成data_rom.vhd文件后,完成項(xiàng)目的操作流程與 4.

19、1節(jié)基本相同,包括編輯頂層設(shè)計(jì)文件,例化剛剛生成的LPM_ROM宏模塊、創(chuàng)建工程、全程編譯、觀察 RTL電路、仿真、了解時(shí)序分析報(bào)告、指定引腳及下載測(cè)試等。例4-2給岀了一個(gè)使用LPM_ROM宏模塊的頂層設(shè)計(jì)范例。【例4-2】頂層設(shè)計(jì)文件1. LIBRARY IEEE;-聲明IEEE庫(kù)2. USE IEEE.STD_LOGIC_1164.ALL;-聲明程序包3. USE IEEE.STD_LOGIC_UNSIGNED.ALL;4. ENTITY SINGT IS5. P0RT(CLK : IN STD_LOGIC;-實(shí)體聲明6. DOUT:OUT STD_L0GIC_VECT0R(7 DOWNTO 0);7. END;8. ARCHITECTURE DACC OF SINGT IS9. COMPONENT data_rom-聲明 LPM_ROMIN STD_LOGIC_VECTOR(5 DOWNTO

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論