FPGA中LPM_ROM定制與讀出實驗
一.實驗?zāi)康?/strong>
??1.掌握FPGA中l(wèi)pm_ROM的設(shè)置,作為只讀存儲器ROM的工作特性和配置方法;
??2.用文本編輯器編輯mif文件配置ROM,學(xué)習(xí)將程序代碼以mif格式文件加載于lpm_ROM中;
??3.在初始化存儲器編輯窗口編輯mif文件配置ROM;
??4.驗證FPGA中mega_lpm_ROM的功能。
二.實驗原理
??ALTERA的FPGA中有許多可調(diào)用的LPM (Library Parameterized Modules)參數(shù)化的模塊庫,可構(gòu)成如lpm_rom、lpm_ram_io、lpm_fifo、lpm_ram_dq的存儲器結(jié)構(gòu)。CPU中的重要部件,如RAM、ROM可直接調(diào)用他們構(gòu)成,因此在FPGA中利用嵌入式陣列塊EAB可以構(gòu)成各種結(jié)構(gòu)的存儲器,lpm_ROM是其中的一種。lpm_ROM有5組信號:地址信號address[ ]、數(shù)據(jù)信號q[ ]、時鐘信號inclock、outclock、允許信號memenable,其參數(shù)都是可以設(shè)定的。由于ROM是只讀存儲器,所以它的數(shù)據(jù)口是單向的輸出端口,ROM中的數(shù)據(jù)是在對FPGA現(xiàn)場配置時,通過配置文件一起寫入存儲單元的。
實驗中主要應(yīng)掌握以下三方面的內(nèi)容:
??1.lpm_ROM的參數(shù)設(shè)置;
??2.lpm_ROM中數(shù)據(jù)的寫入,即LPM_FILE初始化文件的編寫;
??3.lpm_ROM的實際應(yīng)用,在實驗臺上的調(diào)試方法。
三.實驗步驟
??1.建立工程:
??A.新建一個存儲器初始化(.mif)文件。
??B.打開QuartusII,在頂部菜單中選File -> New other files ->memory initialization file ,單擊OK,在彈出的對話框中輸入字?jǐn)?shù)64和字長8,單擊OK, 打開存儲器初始化編輯窗口。利用View菜單命令,改變地址或字長的顯示格式等,選擇要編輯的字(反白顯示),直接輸入內(nèi)容。然后點File ->save as,在彈出的對話框中選擇 “保存在” D:\lpm_rom,輸入文件名Mif1,文件名后綴選擇.mif,取消最下面一行的Create new project based on this file的選擇框的對勾,點擊保存完成。
??C.打開QuartusII,選File ->New Block Diagram/schematic File單擊OK,進入圖形輸入界面,單擊鼠標(biāo)右鍵,點Insert ->Symobl…,在libraries庫中選擇需要的元件,(如果知道元件名稱也可以直接輸入),在這里我們在Name框中直接輸入lpm_rom,點OK,在彈出的窗口中選擇VHDL,在What name do you want for the output file? 點Browse,選擇元件存放的文件夾D:\lpm_rom,給元件取名lpm_rom0,點擊next ,進入LPM_ROM選擇對話框,在currently select device family中選擇芯片Cyclone III,選寬8位,64字節(jié),選中Dual clock,點next進入下一界面, 去掉已打勾的“q”output port,然后點next進入下一界面,點browse,選前面已建立的D: D:\lpm_rom\ Mif1。mif文件,點next -> next,F(xiàn)inish完成lpm_rom0的輸入。重復(fù)點鼠標(biāo)右鍵選Insert Symobl…,在libraries庫中擇其他需要的input,output引腳。連接到lpm_rom0對應(yīng)的端口,修改輸入引腳名稱一個為a[5…0],時鐘名為clk, 輸出引腳的名稱為q[7…0],然后點save,在彈出的窗口Do you want to create a new project on this file? 回答“是”,點next -> next ,在窗口中選擇存入新建的文件夾D:\lpm_rom中,項目名lpm_rom0,lpm_rom0,點next->next,在設(shè)備窗口中分別選擇:Family為CycloneIII, package為PQFP, Pin count為240, Speed grade為8,點next -> next ->選擇EP3C40Q248C8,F(xiàn)inish保存。
??D.在快捷鍵中,點擊編譯鍵?完成編譯。如果有錯誤,可返回前面重新檢查、修改輸入后再次編譯,直到看到提示編譯成功信息。
??2.波形仿真:
??A.打開QuartusII,選File File -> New other files -> Vector Waveform File,點擊OK進入仿真界面。
??B.在左空白處雙擊左鍵,在新出現(xiàn)的對話框的Radix中選擇Hexadecimal(16進制),點Node Finder點list選中需要仿真的信號,a[5…0],clk,[7…0]點擊OK->OK。
??C.加入信號。
??D.選仿真需要的時間,點擊Edit,選擇End time (100 us)。點a[0],設(shè)置為高電平。點clk (10 ns),一般可設(shè)置時鐘的周期為10-100 us ,End time為1-100 us。
??E.保存。系統(tǒng)會自動把后綴加上。
??F.仿真。點快捷鍵 仿真。
??3.引腳鎖定
??仿真完成后,選擇菜單Assignments-> pins->Location,根據(jù)實驗電路結(jié)構(gòu)圖NO。0和芯片引腳對照表, 查出a[5…0],clk,q[7…0] ,在核心芯片EP3C40Q240C8上所對應(yīng)的引腳號,進行引腳鎖定。引腳鎖定后再次編譯,點快捷鍵?編譯。
??4.下載
??將電腦與實驗箱通過并口連接接好,點快捷鍵,在出現(xiàn)的*.sof文件上, 選中program/configure點快捷鍵。即可設(shè)計下載到FPGA中。最后是用實驗箱進行硬件測試。
四.實驗要求
??1.實驗前認(rèn)真復(fù)習(xí)LPM-ROM存儲器部分的有關(guān)內(nèi)容。
??2.記錄實驗數(shù)據(jù),寫出實驗報告,給出仿真波形圖。
??3.通過本實驗,對FPGA中EAB構(gòu)成的LPM-ROM存儲器有何認(rèn)識,有什么收獲?文章來源:http://www.zghlxwxcb.cn/news/detail-442908.html
五. 實驗結(jié)果
??1.存儲器初始化文件內(nèi)容:
??2.LPM_ROM圖形文件:
??3.波形仿真結(jié)果:
??4.引腳鎖定結(jié)果:
??5. 下載到FPGA:
??6.FPGA實驗板初始化狀態(tài):
??選擇實驗電路模式為NO。0,24位數(shù)據(jù)輸出由數(shù)碼8至數(shù)碼3顯示,6位地址由鍵2、鍵1輸入,鍵1負(fù)責(zé)低4位,地址鎖存時鐘CLK由鍵8控制,每一次上升沿,將地址鎖入,數(shù)碼管8/7/6/5/4/3將顯示ROM中輸出的數(shù)據(jù)。發(fā)光管8至1顯示輸入的6位地址值。
例如:當(dāng)由鍵2、鍵1輸入的地址為000001時,數(shù)碼管3顯示000001F,表示讀取的數(shù)據(jù)為十進制的1;當(dāng)由鍵2、鍵1輸入的地址為010001時,數(shù)碼管3顯示000011FF,表示讀取的數(shù)據(jù)為十進制的17。由此可見,本次實驗成功地驗證了FPGA中mega_lpm_ROM的功能。
六.思考題
??1.如何在圖形編輯窗口中設(shè)計LPM-ROM存儲器?怎樣設(shè)計地址寬度和數(shù)據(jù)線的寬度?
??答:進入圖形輸入界面,雙擊鼠標(biāo)左鍵,在Name框中輸入lpm_rom,點OK,在彈出的窗口中選擇VHDL,在What name do you want for the output file?中點Browse,選擇元件存放的文件夾D:\lpm_rom,給元件取名lpm_rom0,點擊next,進入LPM_ROM選擇對話框,在currently select device family 中選擇芯片Cyclone III,選寬8位,64字節(jié)。
??2.怎樣導(dǎo)入LPM-ROM的設(shè)計參數(shù)文件和存儲LPM-ROM的設(shè)計參數(shù)文件?
??答:點next進入下一界面,去掉已打勾的“q”output port,點next進入下一界面,點browse,選前面已建立的D: D:\lpm_rom\ Mif1。mif文件,點next->next,最后點擊Finish完成lpm_rom0的輸入。
??3.怎樣對LPM-ROM的設(shè)計參數(shù)文件進行軟件仿真測試?
??答:選File File->New other files->Vector Waveform File,點擊OK進入仿真界面。在左空白處雙擊左鍵,在新出現(xiàn)的對話框的Radix中選擇Hexadecimal(16進制),點Node Finder點list選中需要仿真的信號:a[5…0],clk,[7…0]點擊OK。加入信號,選仿真需要的時間,點擊Edit,設(shè)置End time為100 us。設(shè)置A組信號的變化為從0-63(十進制),每隔10us變化一次,同時設(shè)置時鐘的周期為20us。保存,點快捷鍵 仿真。
??4.怎樣在實驗臺上對LPM-ROM進行測試?
??答:仿真完成后,選擇菜單Assignments->pins->Location,根據(jù)實驗電路結(jié)構(gòu)圖NO。0和芯片引腳對照表,查出a[5…0],clk,q[7…0],在核心芯片EP3C40Q240C8上所對應(yīng)的引腳號,進行引腳鎖定。引腳鎖定后再次編譯,點快捷鍵?編譯。將電腦與實驗箱通過并口連接接好,點快捷鍵,在出現(xiàn)的*.sof文件中選中program/configure點快捷鍵即可將設(shè)計下載到FPGA中,最后用實驗箱進行硬件測試。
七.心得體會
??1.本次實驗是這學(xué)期計組實驗的第一次實驗。通過本次實驗,我初步掌握了FPGA中l(wèi)pm_ROM的設(shè)置,復(fù)習(xí)了課本中只讀存儲器ROM的工作特性。
??2.通過本次實驗,我學(xué)會了用文本編輯器編輯mif文件配置ROM,將代碼以mif格式文件加載于lpm_ROM中;
??3.通過本次實驗,我學(xué)會了如何將配置文件下載到FPGA中并進行硬件驗證。
??4.雖然實驗中遇到了很多困難,如電路圖少連了線、引腳分配錯誤、USB-Blaster數(shù)據(jù)線有問題,板子內(nèi)部原因等等,但最終仍在老師的指導(dǎo)下成功完成了實驗。文章來源地址http://www.zghlxwxcb.cn/news/detail-442908.html
到了這里,關(guān)于西電計組實驗一 存儲器實驗的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!