FPGA入門(mén)及Quartus II使用教程(內(nèi)部資料)_第1頁(yè)
FPGA入門(mén)及Quartus II使用教程(內(nèi)部資料)_第2頁(yè)
FPGA入門(mén)及Quartus II使用教程(內(nèi)部資料)_第3頁(yè)
FPGA入門(mén)及Quartus II使用教程(內(nèi)部資料)_第4頁(yè)
FPGA入門(mén)及Quartus II使用教程(內(nèi)部資料)_第5頁(yè)
已閱讀5頁(yè),還剩41頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 FPGA入門(mén)及Quartus II使用教程FPGA是英文FieldProgrammableGateArray的縮寫(xiě),即現(xiàn)場(chǎng)可編程門(mén)陣列,它是在可編程陣列邏輯PAL(ProgrammableArrayLogic)、門(mén)陣列邏輯GAL(GateArrayLogic)等可編程器件的基礎(chǔ)上上進(jìn)一步發(fā)展的產(chǎn)物??梢赃@樣講,ASIC(Application Specific Integrated Circuit )內(nèi)部的所有資源,是用積木堆積起來(lái)的小房子,可以是一個(gè)歐美風(fēng)情的房子,還可以是一個(gè)北京四合院.而FPGA內(nèi)部就可以說(shuō)是一個(gè)個(gè)小積木,也就是內(nèi)部有大量的資源提供給我們,根據(jù)我們的需求進(jìn)行內(nèi)部的設(shè)計(jì)。

2、并且可以通過(guò)軟件仿真,我們可以事先驗(yàn)證設(shè)計(jì)的正確性。第一章 FPGA的基本開(kāi)發(fā)流程下面我們基于 Altera 公司的 QuantusII 軟件來(lái)說(shuō)明FPGA 的開(kāi)發(fā)流程。下圖是一個(gè)典型的基于Quartus II的FPGA開(kāi)發(fā)整體流程框圖。1、 建立工程師每個(gè)開(kāi)發(fā)過(guò)程的開(kāi)始,Quartus II以工程為單位對(duì)設(shè)計(jì)過(guò)程進(jìn)行管理。2、 建立頂層圖??梢赃@樣理解,頂層圖是一個(gè)容器,將整個(gè)工程的各個(gè)模塊包容在里邊,編譯的時(shí)候就將這些模塊整合在一起。也可以理解為它是一個(gè)大元件,比如一個(gè)單片機(jī),內(nèi)部包含各個(gè)模塊,編譯的時(shí)候就是生成一個(gè)這樣的大元件。3、 采用ALTERA公司提供的LPM功能模塊。Quartu

3、s軟件環(huán)境包含了大量的常用功能模塊,比如計(jì)數(shù)器、累加器、比較器等等。4、 自己建立模塊。由于有些設(shè)計(jì)中現(xiàn)有的模塊功能不能滿(mǎn)足具體設(shè)計(jì)的要求,那就只能自己設(shè)計(jì)。使用硬件描述語(yǔ)言,當(dāng)然也可以用原理圖的輸入方法,可以獨(dú)立的把它們當(dāng)成一個(gè)工程來(lái)設(shè)計(jì),并且生成一個(gè)模塊符號(hào)(Symbol),類(lèi)似于那些LPM功能模塊。這里可以理解為,如果我們需求的濾波器,沒(méi)有現(xiàn)成的合適的,那我們可以通過(guò)LC自己來(lái)搭建一個(gè)濾波器。5、 將頂層圖的各個(gè)功能模塊連線起來(lái)。這個(gè)過(guò)程類(lèi)似電路圖設(shè)計(jì),把各個(gè)芯片連起來(lái),組成電路系統(tǒng)。6、 系統(tǒng)的功能原理圖至此已經(jīng)基本出爐了,下一步就是選擇芯片字載體,分配引腳,設(shè)置編譯選項(xiàng)等等。7、 編

4、譯。這個(gè)過(guò)程類(lèi)似軟件開(kāi)發(fā)里德編譯,但是實(shí)際上這個(gè)過(guò)程比軟件的編譯復(fù)雜的多,因?yàn)樗罱K要實(shí)現(xiàn)硬件里邊的物理結(jié)構(gòu),包含了優(yōu)化邏輯的組合,綜合邏輯以及布線等步驟。8、 編譯后會(huì)生成2個(gè)文件,一個(gè)是*.sof文件,一個(gè)是*.pof文件,前者可以通過(guò)JTAG方式下載到FPGA內(nèi)部,可以進(jìn)行調(diào)試,但斷電后數(shù)據(jù)丟失;后者通過(guò)AS或者PS方式下載到FPGA的配置芯片里邊(EEPROM或者FLASH),重新上電后FPGA會(huì)通過(guò)配置將數(shù)據(jù)讀出。9、 對(duì)于復(fù)雜的設(shè)計(jì),工程編譯好了,我們可以通過(guò)Quartus軟件或者其他仿真軟件來(lái)對(duì)設(shè)計(jì)進(jìn)行反復(fù)仿真和驗(yàn)證,直到滿(mǎn)足要求。(主要是時(shí)序仿真)。第二章 基于Quartus

5、II的實(shí)例一、建立工程 首先,打開(kāi)Quartus II軟件。接下來(lái),建議一個(gè)新工程第一行,是所建工程的路徑,第二工程項(xiàng)目名稱(chēng),第三項(xiàng),是填好后,如下圖下邊一直點(diǎn)擊NEXT,直到出現(xiàn)以下界面Family里邊選擇Sratix II,Available devices里邊選擇EP2S60F672C5(具體內(nèi)容根據(jù)你所使用的芯片所決定),接著點(diǎn)NEXT,不需要做任何修改了,一直點(diǎn)到Finish。到此為止,工程已經(jīng)建立完成。需要建立一個(gè)Block Diagram/Schematic File,點(diǎn)擊File-New出現(xiàn)如下圖。點(diǎn)擊OK,建立完成,工程中出現(xiàn)一個(gè)Block1.bdf文件?,F(xiàn)在點(diǎn)“保存”是不管

6、用的,建議隨便放一個(gè)器件后點(diǎn)保存文件為bdf文件。方法是在這個(gè)bdf文件空白處雙擊鼠標(biāo),或者右鍵點(diǎn)鼠標(biāo),點(diǎn)insert-symbol這里邊的器件很多,可以再里邊輸入你所需要的器件,也可以直接點(diǎn)分類(lèi),根據(jù)分類(lèi)查找你需要的器件。點(diǎn)擊File-New,選擇VHDL File(根據(jù)你所使用的編程語(yǔ)言)點(diǎn)擊OK后,再下邊的界面就可以編寫(xiě)VHDL程序了。當(dāng)然可以根據(jù)自己掌握的語(yǔ)言種類(lèi)進(jìn)行編程。VHDL語(yǔ)言,注意:保存的文件名字,必須與實(shí)體名字一致,否則編譯會(huì)出錯(cuò)。設(shè)置當(dāng)前為最高實(shí)體。點(diǎn)擊那個(gè)紫色的三角,進(jìn)行編譯下面就是產(chǎn)生模塊了。如圖點(diǎn)擊就可以生成模塊完成后,回到bdf主界面。雙擊該界面,再Project

7、下拉欄,就會(huì)出現(xiàn)剛才所編譯文件生成的模塊,左鍵點(diǎn)擊就可以將其放入主原理圖實(shí)體中,并且今后如果重新改變VHDL程序,必須走這個(gè)過(guò)程,先設(shè)置最高實(shí)體,然后編譯,產(chǎn)生模塊,最后要添加這樣如下的過(guò)程。放置模塊的時(shí)候,通過(guò)自己的程序編譯產(chǎn)生的模塊,會(huì)在Project目錄下,如圖所示特別注意:已經(jīng)做好的并且放入到原理圖的模塊程序如果需要改動(dòng),改動(dòng)后也必須先編譯,后產(chǎn)生模塊,最后按照如下所示進(jìn)行模塊更新。根據(jù)需求進(jìn)行選擇一下以后每次要用的時(shí)候,都可以雙擊鼠標(biāo),進(jìn)入project里邊進(jìn)行選擇,進(jìn)行使用。右鍵點(diǎn)擊模塊,點(diǎn)Generate-引腳也可以自己設(shè)置輸入輸出引腳并且命名。設(shè)置當(dāng)前實(shí)體為最高實(shí)體,再次進(jìn)行編

8、譯編譯完成后,要分配引腳,通常分配引腳有兩種方式,一種是直接在工程分配,這種方式對(duì)于引腳較少比較方便,如下圖所示。選擇PIN雙擊引腳分配處的to和location,就可以確定應(yīng)用的FPGA引腳分配情況。分配好引腳后,點(diǎn)擊保存,再看原理圖,每個(gè)引腳后邊都有一個(gè)“小尾巴”,表示信號(hào)線的實(shí)際物理引腳分配情況。然后再編譯。最后在點(diǎn)擊TOOL-Programmer,或者直接點(diǎn)擊下載圖標(biāo)就會(huì)出現(xiàn)下載對(duì)話框點(diǎn)擊Hardware Setup 如果你沒(méi)插USB-BLASTER,打開(kāi)后不會(huì)有顯示,如果插上后,這里就會(huì)顯示有一個(gè)硬件可以選擇,右上位置選擇下載方式。注意:JTAG模式和AS模式接口是不同的選擇好USB

9、-BLASTER后,點(diǎn)Close,然后點(diǎn)Start當(dāng)前選擇的是JTAG模式,因此下載程序到RAM,可以看調(diào)試結(jié)果。至此,F(xiàn)PGA的原理圖制作,代碼編寫(xiě)流程及下載流程已經(jīng)全部完畢。現(xiàn)在以一個(gè)簡(jiǎn)單的分頻器來(lái)講一下。第一件事,如同單片機(jī)的最小系統(tǒng)一樣,F(xiàn)PGA的系統(tǒng)需要一個(gè)時(shí)鐘源作為支撐,F(xiàn)PGA內(nèi)部有個(gè)PLL(鎖相環(huán))資源,這個(gè)PLL可以對(duì)輸入頻率進(jìn)行倍頻。因此,幾乎在每個(gè)系統(tǒng)設(shè)計(jì)的時(shí)候,都需要對(duì)這個(gè)PLL進(jìn)行設(shè)置。如下所示選擇第一個(gè)點(diǎn)NEXT,往下進(jìn)行選擇IO欄目下的ALTPLL,給這個(gè)模塊起一個(gè)名字叫PLL然后點(diǎn)NEXT根據(jù)提示進(jìn)行選擇,選擇好了后,點(diǎn)擊進(jìn)入下一個(gè)設(shè)置在這里,把所有的勾全部去掉

10、就可以,然后一直點(diǎn)下一步,一直到下面圖示,每個(gè)芯片可以設(shè)置輸出的頻率個(gè)數(shù)不同,當(dāng)前我用的ep2s60總共有2個(gè)PLL,每個(gè)PLL可以設(shè)置6個(gè)不同的頻率輸出。現(xiàn)在就可以一直點(diǎn)下一步,直到Finish就可以。然后再Project里邊將PLL放置到原理圖上。新建一個(gè)test_div的程序,程序代碼如下library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity test_div isport( clkin:in std_logic; clkout1:out std_logic; clkout2:out

11、std_logic );end test_div;architecture fenpin_arc of test_div issignal count1:integer range 0 to 7; -計(jì)數(shù)寄存器16分頻signal clkbuff1:std_logic; signal count2:integer range 0 to 3; -計(jì)數(shù)寄存器8分頻signal clkbuff2:std_logic;begin process(clkin,count1,count2) begin if rising_edge(clkin) then -計(jì)數(shù)、分頻1 if (count1 = 7) t

12、hen count1 = 0; clkbuff1 = not clkbuff1; else count1 = count1 + 1; clkout1 = 3) then count2 = 0; clkbuff2 = not clkbuff2; else count2 = count2 + 1; clkout2 Simulation Debug-Current Vector Inputs在name處點(diǎn)右鍵,選擇Inset-Inset Node or Bus點(diǎn)擊Node Finder,進(jìn)入可以選擇引腳,通常我習(xí)慣于顯示所有引腳,在Filter處選擇all,當(dāng)然也可以選擇一些你需要的引腳,其他的引腳

13、不顯示,然后點(diǎn)擊List,然后再點(diǎn)擊加入符號(hào),如圖所示點(diǎn)擊OK,一直回到仿真頁(yè)面,鼠標(biāo)左鍵單擊輸入信號(hào),給輸入信號(hào)加所需信號(hào),如clkin,是時(shí)鐘信號(hào),直接點(diǎn)擊時(shí)鐘符號(hào),就可以進(jìn)行設(shè)置設(shè)置好輸入后,可以點(diǎn)Edit菜單下的End Time可以選擇仿真多長(zhǎng)時(shí)間。全部設(shè)置好后,點(diǎn)保存,起好名字,然后點(diǎn)Start simulation,便開(kāi)始進(jìn)行時(shí)序仿真。仿真結(jié)束后,可以觀察信號(hào)時(shí)序。第三章 MATLAB、DSP BUILDER、QUARTUS聯(lián)合仿真首先我們了解一個(gè)背景,現(xiàn)在在DSP算法軟件中最牛的毋庸置疑的就是Matlab了。N多人在用它搭建模型。我們可以把Matlab分為matlab和simul

14、ink兩部分。Matlab更多的是對(duì)數(shù)組進(jìn)行一系列的計(jì)算,而這些計(jì)算式靜態(tài)的,純粹算法上的。而simulink是使用模塊化的方式來(lái)搭建一個(gè)平臺(tái),這個(gè)模型才是動(dòng)態(tài)的。當(dāng)我們用matlab做成一個(gè)算法的時(shí)候,這個(gè)算法在實(shí)際應(yīng)用中有可能可以實(shí)現(xiàn),當(dāng)然也有可能實(shí)現(xiàn)不了,更多的是一種理論上的公式。只有當(dāng)我們用simulink來(lái)搭建出一個(gè)模型的時(shí)候,我們可以知道,它是可以被實(shí)現(xiàn)出來(lái)的,無(wú)論是軟件,還是硬件方式。DSP builder是什么?通過(guò)前邊的學(xué)習(xí),我們知道,F(xiàn)PGA內(nèi)部就如同一個(gè)個(gè)小積木。DSP builder就是ALTERA公司工程師,專(zhuān)門(mén)用這些小積木已經(jīng)搭建好了各式各樣的小門(mén)、小窗、房梁.而這

15、些一個(gè)個(gè)做好的小模塊,都放到了DSP BUILDER里邊。好了,這樣,我們就可以在MATLAB的simulink環(huán)境下,用DSP BUILDER的內(nèi)部小模塊,開(kāi)始堆積我們想要的那棟房子。這一下就省去了我們的好多工作,因?yàn)楝F(xiàn)在很多模塊資源都是現(xiàn)成的,不需要我們用VHDL或者是Verilog語(yǔ)言去做這些小模塊。當(dāng)在simulink環(huán)境下模擬搭建好了后,我們通過(guò)DSP工具,就可以直接轉(zhuǎn)換到Quartus II環(huán)境下,進(jìn)行真正的搭建過(guò)程了。當(dāng)然了,這個(gè)過(guò)程Quartus II可以完全替代我們?nèi)ネ瓿伞M瑯?,有一些功能模塊,是DSP builder庫(kù)里邊所不具備的,這個(gè)時(shí)候還可以通過(guò)使用Quartus I

16、I進(jìn)行語(yǔ)言編程,生成一個(gè)功能模塊,并且加載到matlab的simulink庫(kù)里邊進(jìn)行仿真應(yīng)用。利用Matlab軟件中的Simulink模塊進(jìn)行通信系統(tǒng)的仿真,并通過(guò)DSP Builder軟件將系統(tǒng)級(jí)和RTL級(jí)(寄存器傳輸級(jí))兩個(gè)設(shè)計(jì)領(lǐng)域的設(shè)計(jì)工具連接起來(lái),把Simulink的設(shè)計(jì)文件(后綴為.mdl文件)轉(zhuǎn)成相應(yīng)的硬件描述語(yǔ)言VHDL設(shè)計(jì)文件(后綴為.vhd文件),以及用于控制綜合與編譯的TCL腳本,之后即可通過(guò)FPGA/CPLD開(kāi)發(fā)工具Quartus II來(lái)完成相應(yīng)的處理。DSP Builder依賴(lài)于數(shù)學(xué)分析工具M(jìn)atlab/Simulink,以Simulink的Blockset形式出現(xiàn),可

17、以在Simulink中進(jìn)行圖形化設(shè)計(jì)和仿真。在安裝DSP Builder軟件后,Matlab軟件的Simulink庫(kù)中會(huì)自動(dòng)添加如下兩個(gè)庫(kù):Altera DSP Builder Blockset和Altera DSP Builder Advanced Blockset。后續(xù)的仿真及編譯工作主要基于Altera DSP Builder Blockset庫(kù)中的各個(gè)模塊組成的系統(tǒng)。下面以Matlab R2009b(Matalb 7.9.0)版本為例,與Altera公司Quartus II 9.1/DSP Builder v9.1軟件對(duì)應(yīng)使用,并以BFSK(二進(jìn)制頻移鍵控)的調(diào)制系統(tǒng)為例,詳細(xì)介紹Si

18、mulink的使用步驟。1. 打開(kāi)Matlab環(huán)境Matlab環(huán)境界面如圖所示,Matlab的主窗口界面被分割成三個(gè)窗口:命令窗口(Command Window)、工作區(qū)(Workspace)和命令歷史記錄(Command History)。在命令窗口中可以鍵入Matlab命令,同時(shí)獲得Matlab對(duì)命令的響應(yīng)信息、出錯(cuò)警告提示等。2. 建立工作庫(kù)在建立一個(gè)新的設(shè)計(jì)模型前,最好先建立一個(gè)新的文件夾,作為工作目錄,并把Matlab當(dāng)前的work目錄切換到新建的文件夾下。可以點(diǎn)擊“File”中的“Set Path”選項(xiàng),添加該工作目錄路徑,如圖所示“F:Program FilesMATLABR20

19、09bwork”,并將其移到目錄頂部“Move to top”然后保存。在下一次打開(kāi)Matlab時(shí),可以通過(guò)改變主界面中的“Current Folder”,選擇該目錄路徑,改變當(dāng)前Matlab工作目錄。3、打開(kāi)Simulink庫(kù)單擊Matlab界面上的快捷鍵(Simulink)可以打開(kāi)Simulink的庫(kù)文件,如圖所示。上圖即為Simulink的庫(kù)瀏覽器(Library Browser),在庫(kù)瀏覽器的左側(cè)是Simulink Library列表,右側(cè)是選中的Library中的組件、子模塊列表。其中左側(cè)Library列表中的“Simulink”庫(kù)是Simulink的基本模型庫(kù)。當(dāng)安裝完DSP Bu

20、ilder v9.1后,在Simulink的庫(kù)瀏覽器中可以看到多出的兩個(gè)庫(kù)文件:“Altera DSP Builder Advanced Blockset”和“Altera DSP Builder Blockset”。在以下的DSP Builder應(yīng)用中,主要是使用“Altera DSP Builder Blockset”庫(kù)中的組件、子模型來(lái)完成各項(xiàng)設(shè)計(jì),再使用Simulink完成模型的仿真驗(yàn)證。4. Simulink的模型文件在打開(kāi)Simulink庫(kù)瀏覽器后,需要新建一個(gè)Simulink的模型文件(后綴為mdl),如圖,在Simulink的庫(kù)瀏覽器中選擇“File”菜單,在出現(xiàn)的菜單項(xiàng)中選擇

21、“New”,在彈出的子菜單項(xiàng)中選擇新建模型“Model”即可,或者通過(guò)直接單擊界面上的打開(kāi)一個(gè)空白文件。5、添加正弦產(chǎn)生模塊如下圖,點(diǎn)擊Simulink庫(kù)瀏覽器左側(cè)的庫(kù)內(nèi)樹(shù)形列表中的“Simulink”條,使其庫(kù)器件展開(kāi),這時(shí)會(huì)出現(xiàn)一長(zhǎng)串樹(shù)形列表,對(duì)基本模型庫(kù)的子模塊(Block)進(jìn)行了分組。再次點(diǎn)擊其中的“Sources”項(xiàng),選 中庫(kù)瀏覽器右側(cè)的“Sine Wave”組件,按住鼠標(biāo)左鍵并拖動(dòng)“Sine Wave”模塊到新模型窗口中。該模塊即為BFSK調(diào)制的一個(gè)輸入載波,為了便于確認(rèn),雙擊模塊下方的名字“Sine Wave”,將其修改為“fc1”。雙擊該模塊可以得到“Source Block

22、Parameters: fc1”的對(duì)話框,這里包括了該模塊功能的介紹,以及各個(gè)相關(guān)參數(shù)的設(shè)定。修改參數(shù)設(shè)置如上圖,其中幅度(Amplitude)為210-1,表示輸入信號(hào)位寬(Number of Bits)為11位;頻率(Frequency(rad/sec)設(shè)定為263.158kHz;初始相位為pi/2表示產(chǎn)生余弦波;由于采樣頻率為2MHz,采樣時(shí)間(Sample time)設(shè)為1/2000000。設(shè)置完成后點(diǎn)擊“OK”即可。可以利用同樣的方法放置并設(shè)置BFSK調(diào)制的另一個(gè)輸入載波,頻率為277.778kHz,其余參數(shù)相同即可。6、添加輸入端口模塊如下圖,點(diǎn)擊Simulink庫(kù)瀏覽器左側(cè)的庫(kù)內(nèi)

23、樹(shù)形列表中的“Altera DSP Builder Blockset”條,選擇其中的“IO & Bus”項(xiàng)并展開(kāi),選中庫(kù)瀏覽器右側(cè)的“Input”模塊,同樣按住鼠標(biāo)左鍵將其拖動(dòng)到模型窗口中。將該輸入端口名稱(chēng)改為“SinIn1”,雙擊模塊,得到如下圖的參數(shù)設(shè)置對(duì)話框,設(shè)置如下,總線類(lèi)型(Bus Type)選擇有符號(hào)整數(shù)(Signed Integer),輸出位寬(number of bits)設(shè)定為11位。下面把這兩個(gè)模塊連接起來(lái),將鼠標(biāo)的指針移動(dòng)到模塊的輸入或輸出端口上,鼠標(biāo)指針就會(huì)變成十字形“+”,這時(shí)按住鼠標(biāo)左鍵,拖動(dòng)鼠標(biāo)就可以連線了?;蛘呦劝醋 癈trl”鍵,然后用鼠標(biāo)單擊第一個(gè)模塊fc1

24、,再單擊第二個(gè)模塊SinIn1,則會(huì)自動(dòng)產(chǎn)生連線,連線后如圖所示。7、完成BFSK調(diào)制模型 按照上述方法,依照BFSK調(diào)制系統(tǒng)的原理框圖,可以逐步添加各個(gè)功能模塊以及輸入、輸出端口,最終完成的BFSK調(diào)制模型文件如下圖所示。上圖中用到了波形觀察模塊示波器“Scope”,該模塊屬于Simulink庫(kù)下的Sinks庫(kù)。雙擊該模塊,打開(kāi)的是一個(gè)示波器窗口,其中只有一個(gè)信號(hào)的波形觀察窗口,若希望可以同時(shí)觀察多路信號(hào),可以點(diǎn)擊Scope模塊窗口上側(cè)工具欄的第二個(gè)工具按鈕“Parameters”,參數(shù)設(shè)置按鈕,打開(kāi)Scope參數(shù)設(shè)置對(duì)話框。在Scope參數(shù)設(shè)置對(duì)話框中有 “Gerneral”(通用)和“D

25、ata history”(數(shù)據(jù)歷史) 兩個(gè)選項(xiàng)頁(yè)。在“Gerneral”選項(xiàng)頁(yè)中將“Number of axes”參數(shù)改為2,如圖所示。點(diǎn)擊“OK”按鈕確認(rèn)后,可以看到Scope窗口增加為兩個(gè)波形觀察窗,每個(gè)觀察窗都可以分別觀察信號(hào)波形,而且相對(duì)獨(dú)立。 頻譜觀察模塊“Spectrum Scope”屬于“Signal Processing Blockset”下的“Signal Processing Sinks”庫(kù),可以用來(lái)觀察輸出BFSK調(diào)制信號(hào)的頻譜波形情況。8、加入時(shí)鐘模塊展開(kāi)“Altera DSP Builder Blockset”庫(kù)下的“AltLab”,選擇“Clock”模塊添加到模型文

26、件中,并雙擊模塊,設(shè)置參數(shù)如下圖所示。9、設(shè)計(jì)文件存盤(pán) 完成系統(tǒng)中各個(gè)模塊的設(shè)置與連接后,在進(jìn)行仿真驗(yàn)證和編譯(Signal Compiler)之前,先對(duì)設(shè)計(jì)進(jìn)行存盤(pán)操作。點(diǎn)擊新建模型窗口的“File”菜單,在下拉菜單中選擇“Save”項(xiàng),取名并保存,等同于直接點(diǎn)擊窗口界面的按鈕。在上述例子中,對(duì)新建模型取名為“fskmodu”,模型文件為fskmodu.mdl。在保存完畢后,新建模型窗口的標(biāo)題欄就會(huì)顯示模型名稱(chēng),如下圖所示。注意:對(duì)模型文件取名時(shí),盡量用英文字母開(kāi)頭,不使用空格,不用中文,文件名不要過(guò)長(zhǎng)。10、Simulink模型仿真 在對(duì)模型取名存盤(pán)后,就可以對(duì)文件進(jìn)行編譯,并把mdl文件

27、轉(zhuǎn)換為VHDL文件。不過(guò)現(xiàn)在模型的正確性還是未知的,需要進(jìn)行仿真驗(yàn)證。Matlab的Simulink環(huán)境具有強(qiáng)大的圖形化仿真驗(yàn)證功能。用DSP Builder模塊設(shè)計(jì)好一個(gè)新的模型后,可以直接在Simulink中進(jìn)行算法級(jí)、系統(tǒng)級(jí)仿真驗(yàn)證。對(duì)一個(gè)模型文件進(jìn)行仿真,需要施加合適的激勵(lì)、一定的仿真步進(jìn)和仿真周期,并添加合適的觀察點(diǎn)和觀察方式。在fskmodu模型窗口中,點(diǎn)擊“Simulation”菜單,在下拉菜單中選擇“Configuration Parameters.”菜單項(xiàng),將彈出fskmodu模型的仿真參數(shù)設(shè)置對(duì)話框“Configuration Parameters: fskmodu/Con

28、figuration (Active)”。該對(duì)話框中的“Solver”選項(xiàng)包括了仿真基本的時(shí)間設(shè)置、步進(jìn)間隔、方式設(shè)置及輸出選項(xiàng)設(shè)置。具體各項(xiàng)設(shè)置如上圖所示,最后,點(diǎn)擊“OK”按鈕確認(rèn)。11、啟動(dòng)仿真在fskmodu模型窗口中選擇“Simulation”菜單,再選“Start”項(xiàng)開(kāi)始仿真,或者直接點(diǎn)擊按鈕開(kāi)始。待仿真結(jié)束,雙擊Scope模塊,打開(kāi)示波器觀察窗。下圖給出了仿真結(jié)果,顯示的是系統(tǒng)生成的BFSK調(diào)制信號(hào)的基帶波形及時(shí)域波形圖,在下面的放大波形圖中,可以清晰的看到在不同的基帶信號(hào)值“0”和“1”下,BFSK信號(hào)具有不同的頻率,此時(shí)生成的是相位不連續(xù)的BFSK信號(hào)。在Scope觀察窗中,

29、可以使用工具欄中的按鈕來(lái)放大或縮小波形,或者用鼠標(biāo)左鍵選擇波形并放大,也可以在波形上單擊鼠標(biāo)右鍵使用“Autoscale”,使波形自動(dòng)適配波形觀察窗。模塊“fsk modu Spectrum”可以得到BFSK調(diào)制信號(hào)的頻譜波形,如圖所示。該BFSK信號(hào)在頻率為270.468kHz附近(263.158kHz及277.778kHz)兩處有明顯的波峰,表明實(shí)現(xiàn)了BFSK調(diào)制信號(hào)的產(chǎn)生。12、編譯模型文件在Simulink中完成仿真驗(yàn)證后,就需要把設(shè)計(jì)轉(zhuǎn)到硬件上加以實(shí)現(xiàn),并獲得針對(duì)特定FPGA芯片的VHDL代碼,這是整個(gè)DSP Builder設(shè)計(jì)流程中最為關(guān)鍵的一步,包括對(duì)模型文件的編譯,以及RTL的

30、仿真。首先需要放置Signal Compiler模塊,選擇 “Altera DSP Builder Blockset”庫(kù)中“AltLab”項(xiàng)內(nèi)的“Signal Compiler”模塊,將其拖放到fskmodu.mdl文件中,如圖。雙擊該模塊,在下圖所示的對(duì)話框中可以選擇進(jìn)行編譯所使用的器件類(lèi)型,此例中選擇默認(rèn)的Stratix Family,以及AUTO Device,單擊“Compile”即可對(duì)完成的fskmodu.mdl模型文件進(jìn)行編譯。編譯沒(méi)有錯(cuò)誤,成功完成后,點(diǎn)擊“OK”即可,然后再次保存fskmodu.mdl模型文件。13、運(yùn)行RTL仿真這一步驟是將Simulink模型文件轉(zhuǎn)化為VHDL語(yǔ)言,并可以利用ModelSim

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論