版權(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)及入門(mén)及 Quartus II 使用教程使用教程FPGA 是英文 Field Programmable Gate Array 的縮寫(xiě), 即現(xiàn)場(chǎng)可編程門(mén)陣列,它 是 在 可 編 程 陣 列 邏 輯 PAL(Programmable Array Logic) 、 門(mén) 陣 列 邏 輯GAL(Gate Array Logic)等可編程器件的基礎(chǔ)上上進(jìn)一步發(fā)展的產(chǎn)物。可以這樣講,ASIC(Application Specific Integrated Circuit )內(nèi)部的所有資源,是用積木堆積起來(lái)的小房子,可以是一個(gè)歐美風(fēng)情的房子,還可以是一個(gè)北京四合院.而 FPGA 內(nèi)部就可以說(shuō)是一
2、個(gè)個(gè)小積木,也就是內(nèi)部有大量的資源提供給我們,根據(jù)我們的需求進(jìn)行內(nèi)部的設(shè)計(jì)。并且可以通過(guò)軟件仿真,我們可以事先驗(yàn)證設(shè)計(jì)的正確性。第一章第一章 FPGA 的基本開(kāi)發(fā)流程的基本開(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)部包
3、含各個(gè)模塊,編譯的時(shí)候就是生成一個(gè)這樣的大元件。3、采用 ALTERA 公司提供的 LPM 功能模塊。 Quartus 軟件環(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è)功能模塊連線(xiàn)起來(lái)。這個(gè)過(guò)程類(lèi)似電路圖設(shè)計(jì),把各個(gè)芯片連
4、起來(lái),組成電路系統(tǒng)。6、系統(tǒng)的功能原理圖至此已經(jīng)基本出爐了,下一步就是選擇芯片字載體,分配引腳,設(shè)置編譯選項(xiàng)等等。7、編譯。這個(gè)過(guò)程類(lèi)似軟件開(kāi)發(fā)里德編譯,但是實(shí)際上這個(gè)過(guò)程比軟件的編譯復(fù)雜的多,因?yàn)樗罱K要實(shí)現(xiàn)硬件里邊的物理結(jié)構(gòu),包含了優(yōu)化邏輯的組合,綜合邏輯以及布線(xiàn)等步驟。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ì)
5、,工程編譯好了,我們可以通過(guò) Quartus 軟件或者其他仿真軟件來(lái)對(duì)設(shè)計(jì)進(jìn)行反復(fù)仿真和驗(yàn)證,直到滿(mǎn)足要求。 (主要是時(shí)序仿真) 。第二章第二章 基于基于 Quartus II 的實(shí)例的實(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。 到此為止,
6、 工程已經(jīng)建立完成。 需要建立一個(gè) Block Diagram/SchematicFile,點(diǎn)擊 File-New 出現(xiàn)如下圖。點(diǎn)擊 OK,建立完成,工程中出現(xiàn)一個(gè) Block1.bdf 文件。現(xiàn)在點(diǎn) “保存” 是不管用的, 建議隨便放一個(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ù)自
7、己掌握的語(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 下拉欄,就會(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)后
8、也必須先編譯,后產(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)行編譯編譯完成后,要分配引腳,通常分配引腳有兩種方式,一種是直接在工程分配,這種方式對(duì)于引腳較少比較方便,如下圖所示。選擇 PIN雙擊引腳分配處的 to 和 location,就可以確定應(yīng)用的 FPGA 引腳分配情況。分配好引腳后,點(diǎn)擊保存,再看原理圖,每個(gè)引腳后邊都有一個(gè)“小尾巴” ,表示信號(hào)線(xiàn)的實(shí)際物理引腳分配情況。然后再編譯。最
9、后在點(diǎn)擊 TOOL-Programmer,或者直接點(diǎn)擊下載圖標(biāo)就會(huì)出現(xiàn)下載對(duì)話(huà)框點(diǎn)擊 Hardware Setup 如果你沒(méi)插 USB-BLASTER,打開(kāi)后不會(huì)有顯示,如果插上后,這里就會(huì)顯示有一個(gè)硬件可以選擇,右上位置選擇下載方式。注意:JTAG 模式和 AS 模式接口是不同的選擇好 USB-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)P
10、GA 內(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è)置在這里, 把所有的勾全部去掉就可以, 然后一直點(diǎn)下一步, 一直到下面圖示,每個(gè)芯片可以設(shè)置輸出的頻率個(gè)數(shù)不同,當(dāng)前我用的 ep2s60 總共有 2 個(gè)PLL,每個(gè) PLL 可以設(shè)置 6 個(gè)不同的頻率輸出?,F(xiàn)在就可以一直點(diǎn)下一步,直到Finish 就可以。然后再 Project 里邊將 PL
11、L 放置到原理圖上。新建一個(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 std_logic);end test_div;architecture fenpin_arc of test_div issignal count1:integer range 0 to 7;-計(jì)數(shù)寄存器 16 分頻signal c
12、lkbuff1:std_logic;signal count2:integer range 0 to 3;-計(jì)數(shù)寄存器 8 分頻signal clkbuff2:std_logic;beginprocess(clkin,count1,count2)beginif rising_edge(clkin) then-計(jì)數(shù)、分頻 1if (count1 = 7) thencount1 = 0;clkbuff1 = not clkbuff1;elsecount1 = count1 + 1;clkout1 = 3) thencount2 = 0;clkbuff2 = not clkbuff2;elsecou
13、nt2 = 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)然也可以選擇一些你需要的引腳,其他的引腳不顯示,然后點(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
14、 可以選擇仿真多長(zhǎng)時(shí)間。全部設(shè)置好后,點(diǎn)保存,起好名字,然后點(diǎn) Start simulation,便開(kāi)始進(jìn)行時(shí)序仿真。仿真結(jié)束后,可以觀(guān)察信號(hào)時(shí)序。第三章第三章 MATLAB、DSPBUILDER、QUARTUS 聯(lián)合仿真聯(lián)合仿真首先我們了解一個(gè)背景,現(xiàn)在在 DSP 算法軟件中最牛的毋庸置疑的就是Matlab 了。N 多人在用它搭建模型。我們可以把 Matlab 分為 matlab 和 simulink兩部分。Matlab 更多的是對(duì)數(shù)組進(jìn)行一系列的計(jì)算,而這些計(jì)算式靜態(tài)的,純粹算法上的。而 simulink 是使用模塊化的方式來(lái)搭建一個(gè)平臺(tái),這個(gè)模型才是動(dòng)態(tài)的。當(dāng)我們用 matlab 做成一
15、個(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)、 小窗、 房梁.而這些一個(gè)個(gè)做好的小模塊, 都放到了 DSPBUILDER 里邊。好了,這樣,我們就可以在 MATLAB 的 simulink 環(huán)境下,用DSP BUILDER 的內(nèi)部小模塊,開(kāi)
16、始堆積我們想要的那棟房子。這一下就省去了我們的好多工作,因?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 II 進(jìn)行語(yǔ)言編程,生成一個(gè)功能模塊,并且加載到 matlab 的simulink 庫(kù)里邊進(jìn)行仿真應(yīng)用。利用 Matlab 軟件中的
17、 Simulink 模塊進(jìn)行通信系統(tǒng)的仿真,并通過(guò) DSPBuilder 軟件將系統(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é)分析工具 Matlab/Simulink,以 Simulink 的 Blockset形式出現(xiàn),可以在 Simulink 中進(jìn)行圖形化設(shè)計(jì)和仿真。在安裝 DSP Buil
18、der 軟件后,Matlab 軟件的 Simulink 庫(kù)中會(huì)自動(dòng)添加如下兩個(gè)庫(kù):Altera DSP BuilderBlockset 和 Altera DSP BuilderAdvanced Blockset。后續(xù)的仿真及編譯工作主要基于 Altera DSP Builder Blockset 庫(kù)中的各個(gè)模塊組成的系統(tǒng)。下面以 Matlab R2009b(Matalb 7.9.0)版本為例,與 Altera 公司 Quartus II9.1/DSP Builder v9.1 軟件對(duì)應(yīng)使用,并以 BFSK(二進(jìn)制頻移鍵控)的調(diào)制系統(tǒng)為例,詳細(xì)介紹 Simulink 的使用步驟。1. 打開(kāi) Ma
19、tlab 環(huán)境Matlab 環(huán)境界面如圖所示,Matlab 的主窗口界面被分割成三個(gè)窗口:命令窗 口 (Command Window) 、 工 作 區(qū) (Workspace) 和 命 令 歷 史 記 錄 (CommandHistory)。在命令窗口中可以鍵入 Matlab 命令,同時(shí)獲得 Matlab 對(duì)命令的響應(yīng)信息、出錯(cuò)警告提示等。2. 建立工作庫(kù)在建立一個(gè)新的設(shè)計(jì)模型前,最好先建立一個(gè)新的文件夾,作為工作目錄,并把 Matlab 當(dāng)前的 work 目錄切換到新建的文件夾下。 可以點(diǎn)擊 “File” 中的 “SetPath ” 選 項(xiàng) , 添 加 該 工 作 目 錄 路 徑 , 如 圖 所
20、 示 “ F:ProgramFilesMATLABR2009bwork” ,并將其移到目錄頂部“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è) Li
21、brary 列表中的“Simulink”庫(kù)是 Simulink 的基本模型庫(kù)。當(dāng)安裝完 DSP Builder 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ù)瀏覽器后,需要新
22、建一個(gè) Simulink 的模型文件(后綴為mdl),如圖,在 Simulink 的庫(kù)瀏覽器中選擇“File”菜單,在出現(xiàn)的菜單項(xiàng)中選擇“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
23、 調(diào)制的一個(gè)輸入載波,為了便于確認(rèn),雙擊模塊下方的名字“Sine Wave” ,將其修改為“fc1” 。雙擊該模塊可以得到“Source Block Parameters: fc1”的對(duì)話(huà)框,這里包括了該模塊功能的介紹,以及各個(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”即可
24、。可以利用同樣的方法放置并設(shè)置 BFSK 調(diào)制的另一個(gè)輸入載波,頻率為277.778kHz,其余參數(shù)相同即可。6、添加輸入端口模塊如下圖,點(diǎn)擊 Simulink 庫(kù)瀏覽器左側(cè)的庫(kù)內(nèi)樹(shù)形列表中的“Altera DSPBuilder Blockset”條,選擇其中的“IO & Bus”項(xiàng)并展開(kāi),選中庫(kù)瀏覽器右側(cè)的“Input”模塊,同樣按住鼠標(biāo)左鍵將其拖動(dòng)到模型窗口中。將該輸入端口名稱(chēng)改為“SinIn1” ,雙擊模塊,得到如下圖的參數(shù)設(shè)置對(duì)話(huà)框,設(shè)置如下,總線(xiàn)類(lèi)型(Bus Type)選擇有符號(hào)整數(shù)(Signed Integer),輸出位寬(number of bits)設(shè)定為 11 位。下
25、面把這兩個(gè)模塊連接起來(lái),將鼠標(biāo)的指針移動(dòng)到模塊的輸入或輸出端口上, 鼠標(biāo)指針就會(huì)變成十字形 “+” , 這時(shí)按住鼠標(biāo)左鍵, 拖動(dòng)鼠標(biāo)就可以連線(xiàn)了?;蛘呦劝醋?“Ctrl” 鍵, 然后用鼠標(biāo)單擊第一個(gè)模塊 fc1, 再單擊第二個(gè)模塊 SinIn1,則會(huì)自動(dòng)產(chǎn)生連線(xiàn),連線(xiàn)后如圖所示。7、完成 BFSK 調(diào)制模型按照上述方法,依照 BFSK 調(diào)制系統(tǒng)的原理框圖,可以逐步添加各個(gè)功能模塊以及輸入、輸出端口,最終完成的 BFSK 調(diào)制模型文件如下圖所示。上圖中用到了波形觀(guān)察模塊示波器“Scope” ,該模塊屬于 Simulink 庫(kù)下的Sinks 庫(kù)。雙擊該模塊,打開(kāi)的是一個(gè)示波器窗口,其中只有一個(gè)信號(hào)
26、的波形觀(guān)察窗口,若希望可以同時(shí)觀(guān)察多路信號(hào),可以點(diǎn)擊 Scope 模塊窗口上側(cè)工具欄的第二個(gè)工具按鈕“Parameters” ,參數(shù)設(shè)置按鈕,打開(kāi) Scope 參數(shù)設(shè)置對(duì)話(huà)框。在Scope 參數(shù)設(shè)置對(duì)話(huà)框中有 “Gerneral”(通用)和“Data history”(數(shù)據(jù)歷史) 兩個(gè)選項(xiàng)頁(yè)。在“Gerneral”選項(xiàng)頁(yè)中將“Number of axes”參數(shù)改為 2,如圖所示。點(diǎn)擊“OK”按鈕確認(rèn)后,可以看到 Scope 窗口增加為兩個(gè)波形觀(guān)察窗,每個(gè)觀(guān)察窗都可以分別觀(guān)察信號(hào)波形,而且相對(duì)獨(dú)立。頻譜觀(guān)察模塊 “Spectrum Scope” 屬于 “Signal Processing Blo
27、ckset” 下的 “SignalProcessing Sinks”庫(kù),可以用來(lái)觀(guān)察輸出 BFSK 調(diào)制信號(hào)的頻譜波形情況。8、加入時(shí)鐘模塊展開(kāi)“Altera DSP Builder Blockset”庫(kù)下的“AltLab” ,選擇“Clock”模塊添加到模型文件中,并雙擊模塊,設(shè)置參數(shù)如下圖所示。9、設(shè)計(jì)文件存盤(pán)完成系統(tǒng)中各個(gè)模塊的設(shè)置與連接后,在進(jìn)行仿真驗(yàn)證和編譯(SignalCompiler)之前,先對(duì)設(shè)計(jì)進(jìn)行存盤(pán)操作。點(diǎn)擊新建模型窗口的“File”菜單,在下拉菜單中選擇“Save”項(xiàng),取名并保存,等同于直接點(diǎn)擊窗口界面的按鈕。在上述例子中,對(duì)新建模型取名為“fskmodu” ,模型文件
28、為 fskmodu.mdl。在保存完畢后,新建模型窗口的標(biāo)題欄就會(huì)顯示模型名稱(chēng),如下圖所示。注意:對(duì)模型文件取名時(shí),盡量用英文字母開(kāi)頭,不使用空格,不用中文,文件名不要過(guò)長(zhǎng)。10、Simulink 模型仿真在對(duì)模型取名存盤(pán)后, 就可以對(duì)文件進(jìn)行編譯, 并把 mdl 文件轉(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)和仿真周期,
29、 并添加合適的觀(guān)察點(diǎn)和觀(guān)察方式。 在 fskmodu 模型窗口中, 點(diǎn)擊 “Simulation”菜單,在下拉菜單中選擇“Configuration Parameters.”菜單項(xiàng),將彈出 fskmodu模型的仿真參數(shù)設(shè)置對(duì)話(huà)框“Configuration Parameters: fskmodu/Configuration(Active)” 。該對(duì)話(huà)框中的“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)始仿真,或
30、者直接點(diǎn)擊按鈕開(kāi)始。待仿真結(jié)束,雙擊 Scope 模塊,打開(kāi)示波器觀(guān)察窗。下圖給出了仿真結(jié)果,顯示的是系統(tǒng)生成的 BFSK 調(diào)制信號(hào)的基帶波形及時(shí)域波形圖, 在下面的放大波形圖中,可以清晰的看到在不同的基帶信號(hào)值“0”和“1”下,BFSK 信號(hào)具有不同的頻率,此時(shí)生成的是相位不連續(xù)的 BFSK 信號(hào)。在 Scope 觀(guān)察窗中,可以使用工具欄中的按鈕來(lái)放大或縮小波形,或者用鼠標(biāo)左鍵選擇波形并放大,也可以在波形上單擊鼠標(biāo)右鍵使用“Autoscale” ,使波形自動(dòng)適配波形觀(guān)察窗。模塊 “fsk modu Spectrum” 可以得到 BFSK 調(diào)制信號(hào)的頻譜波形, 如圖所示。該 BFSK 信號(hào)在頻
31、率為 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 的仿真。首先需要放置 Signal Compiler 模塊,選擇 “Altera DSP Builder Blockset”庫(kù)中“AltLab”項(xiàng)內(nèi)的“Signal Compiler”模塊,將其拖放到 fskmodu.mdl 文件中,如圖。雙擊該模塊,在下圖所示的對(duì)話(huà)框中可以選擇進(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軟件進(jìn)行仿真。首
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年模具行業(yè)產(chǎn)學(xué)研合作項(xiàng)目合同4篇
- 通風(fēng)和防排煙課程設(shè)計(jì)
- 觀(guān)察日記課程設(shè)計(jì)
- 二零二五年度面料印刷與包裝服務(wù)合同4篇
- 2025年度魚(yú)塘承包與漁業(yè)產(chǎn)業(yè)發(fā)展規(guī)劃合作協(xié)議4篇
- 二零二五版公司在職分紅與員工職業(yè)規(guī)劃協(xié)議3篇
- 二零二五年度高端酒店管理咨詢(xún)合同4篇
- 自動(dòng)化儀表課課程設(shè)計(jì)
- 二零二五版建筑廢棄物資源化利用建設(shè)工程擔(dān)保服務(wù)合同3篇
- 2024版輕鋼房屋建造協(xié)議模板協(xié)議版B版
- 《縣域腫瘤防治中心評(píng)估標(biāo)準(zhǔn)》
- 做好八件事快樂(lè)過(guò)寒假-2024-2025學(xué)年上學(xué)期中學(xué)寒假家長(zhǎng)會(huì)課件-2024-2025學(xué)年高中主題班會(huì)課件
- 【課件】寒假是用來(lái)超越的!課件 2024-2025學(xué)年高中上學(xué)期寒假學(xué)習(xí)和生活指導(dǎo)班會(huì)
- 2024-2025學(xué)年北師大版數(shù)學(xué)七年級(jí)上冊(cè)期末練習(xí)卷
- 2025年山東兗礦集團(tuán)公司招聘筆試參考題庫(kù)含答案解析
- 燃?xì)庥邢薰竟こ滩抗芾碇贫葏R編
- 2024年中國(guó)干粉涂料市場(chǎng)調(diào)查研究報(bào)告
- (自考)經(jīng)濟(jì)學(xué)原理中級(jí)(政經(jīng))課件 第二章 商品和貨幣
- ×××老舊小區(qū)改造工程施工組織設(shè)計(jì)(全面)
- 調(diào)解行業(yè)可行性分析報(bào)告
- 科創(chuàng)板知識(shí)題庫(kù)試題及答案
評(píng)論
0/150
提交評(píng)論