正弦信號(hào)發(fā)生器+DAC輸出2010(DE2-70版)_第1頁(yè)
正弦信號(hào)發(fā)生器+DAC輸出2010(DE2-70版)_第2頁(yè)
正弦信號(hào)發(fā)生器+DAC輸出2010(DE2-70版)_第3頁(yè)
正弦信號(hào)發(fā)生器+DAC輸出2010(DE2-70版)_第4頁(yè)
正弦信號(hào)發(fā)生器+DAC輸出2010(DE2-70版)_第5頁(yè)
已閱讀5頁(yè),還剩77頁(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)介

PAGEword文檔可自由編輯《硬件系統(tǒng)課程設(shè)計(jì)》實(shí)驗(yàn)指導(dǎo)書原《基于FPGA的嵌入式系統(tǒng)設(shè)計(jì)與實(shí)踐》《EmbeddedSystemDesignandPracticeBasedonFPGA》實(shí)驗(yàn)一、正弦信號(hào)發(fā)生器————DE2—70平臺(tái)本實(shí)驗(yàn)指導(dǎo)書闡述了一個(gè)簡(jiǎn)單的正弦信號(hào)發(fā)生器在QUARTUSⅡ上的實(shí)現(xiàn)。通過(guò)這個(gè)文檔,旨在演示利用QUARTUSⅡ開發(fā)數(shù)字電路的基本流程和QUARTUSⅡ軟件的相關(guān)操作,并借此介紹QUARUTSⅡ的軟件界面。我們還針對(duì)NIOSⅡ的實(shí)驗(yàn)板,實(shí)現(xiàn)了本文檔所示硬件模塊的相關(guān)配置工作以及下載和實(shí)現(xiàn)。實(shí)驗(yàn)條件:

目錄TOC\o"1-4"\h\z\u二、實(shí)驗(yàn)步驟: 71、工程創(chuàng)建 72、sin信號(hào)發(fā)生器頂層模塊的設(shè)計(jì) 173、定制ROM存儲(chǔ)sin波形數(shù)據(jù) 233.1建立.mif文件 233.2ROM數(shù)據(jù)的生成 243.3定制ROM元件 253.3.1調(diào)用MegaWizardPlug-InManager 263.3.2設(shè)置LPM_ROM模塊 273.3.3添加文件到工程 344、編譯、綜合等 375、仿真 385.1編輯波形文件 395.2配置仿真參數(shù) 515.3進(jìn)行仿真 566、內(nèi)部電路觀察 587、生成symbol 628、管腳分配 679、下載 6710、利用SignalTapII觀察波 7111、利用外設(shè)DAC觀察輸出波形 7412.作業(yè) 81

一、設(shè)計(jì)原理:下圖所示為正弦信號(hào)發(fā)生器的結(jié)構(gòu),共有4個(gè)部分組成:VHDL頂層設(shè)計(jì)singt.vhdVHDL頂層設(shè)計(jì)singt.vhd6位計(jì)數(shù)器(地址發(fā)生器)Sin數(shù)據(jù)存儲(chǔ)ROM8位DAC頂層文件singt.vhd在FPGA中實(shí)現(xiàn)兩個(gè)部分:1、6位計(jì)數(shù)器產(chǎn)生地址信號(hào);2、存儲(chǔ)正弦信號(hào)(6bits地址線,8bits數(shù)據(jù)線)的ROM,有LPM_ROM模塊實(shí)現(xiàn),LPM_ROM模塊底層由FPGA的EAB、ESB或M4K來(lái)實(shí)現(xiàn)。地址發(fā)生器的時(shí)鐘頻率CLK假設(shè)為f0,這里我們?cè)O(shè)定的地址發(fā)生器為6bit,則周期為26=64,所以一個(gè)正弦周期內(nèi)可以采樣64個(gè)點(diǎn),DAC后的輸出頻率f為: 我們可以如下生成sin數(shù)據(jù)以用于查找表,雙、單極性Sin(x)數(shù)據(jù)波形可如下:x=round((sin(linspace(0,2*pi,64))+1)*127.5);所要得到的單極性信號(hào)波形。

二、實(shí)驗(yàn)步驟:1、工程創(chuàng)建建立工程進(jìn)入QUARTUSⅡ開發(fā)軟件,選擇“File”點(diǎn)擊“NewProjectWizard”。彈出工程向?qū)?duì)話框,選擇“Next”輸入存放工程及其相關(guān)設(shè)計(jì)文件的文件夾:指定“工程名”和工程對(duì)應(yīng)的“頂層設(shè)計(jì)實(shí)體名”。這里我們將工程名和頂層設(shè)計(jì)實(shí)體名都取作“singt1”,再點(diǎn)擊Next。注意:工程路徑中不要包含中文接下來(lái)點(diǎn)擊“Add”將先期已經(jīng)輸入的設(shè)計(jì)文件(*.bdf;*.vhd;*.v等)添加到工程中,這里我們沒(méi)有事先輸入好的文件,因此不用添加,即使點(diǎn)擊AddAll,也沒(méi)有文件可以加入。接著點(diǎn)擊“UserLiberaryPathname”指定用戶自定義元件庫(kù)的路徑,這里我們沒(méi)有要用的用戶自定義元件庫(kù),也忽略跳過(guò),直接進(jìn)入下一步。如有已經(jīng)輸入完畢的設(shè)計(jì)文件,我們可以參照下述方式建立新工程:打開此文件,正弦信號(hào)發(fā)生器的VHDL格式的設(shè)計(jì)文件已在文件框中;指定目標(biāo)器件。由于本實(shí)驗(yàn)所用的Altera套件是用“CycloneII”系列的“EP2C7接下來(lái)指定“設(shè)計(jì)輸入,綜合,仿真,時(shí)序分析……”用到的工具,QUARTUSⅡ?qū)Φ谌焦ぞ叩闹С直容^完善,這里我們不選擇,直接點(diǎn)擊“Next”,QUARTUSⅡ?qū)⑹褂媚J(rèn)的“設(shè)計(jì)輸入,綜合,仿真,時(shí)序分析……”工具。上圖給出了所創(chuàng)建工程的主要的信息。點(diǎn)擊“Finish”,工程新建完成,工程相關(guān)的基本配置工作也完成,這些已經(jīng)配置的參數(shù),在開發(fā)工作進(jìn)行的過(guò)程中,仍然可以通過(guò)菜單“Assignments”->“Settings”來(lái)修改。

2、sin信號(hào)發(fā)生器頂層模塊的設(shè)計(jì)新工程設(shè)計(jì)文件輸入(建立頂層設(shè)計(jì)文件)模式:新建文件,打開File菜單點(diǎn)擊New命令,選擇“DeviceDesignFiles”子類中的“VHDLFile”,點(diǎn)擊“OK”,創(chuàng)建一個(gè)vhdl文件作為頂層設(shè)計(jì)文件,頂層設(shè)計(jì)利用VHDL語(yǔ)言方式輸入。我們剛才已經(jīng)用拷貝文件方式新建了頂層設(shè)計(jì)文件保存,這是工程新建的第一個(gè)文件,系統(tǒng)會(huì)默認(rèn)保存為頂層設(shè)計(jì)實(shí)體的名字,在本實(shí)例中,也就是“singt1”,點(diǎn)擊“保存”,這樣,就新建好了頂層設(shè)計(jì)實(shí)體的輸入文件。下面我們介紹的是如何輸入VHDL格式來(lái)建立我們所需模塊的實(shí)現(xiàn)代碼,沒(méi)有興趣的同學(xué)可以跳過(guò)此節(jié)。注意:Quartus給我們提供了很多的幫助,比如對(duì)VHDL不熟悉或某些語(yǔ)法生疏的情況下,該軟件提供了如下圖的模板生成代碼:(模塊的設(shè)計(jì)及其輸入)在singt.vhd文件中我們可以輸入模塊對(duì)應(yīng)的實(shí)現(xiàn)代碼!代碼在“所需文件文”件夾:在該文件中我們完成了6位計(jì)數(shù)器的設(shè)計(jì)工作,調(diào)用了sin波形數(shù)據(jù)存儲(chǔ)文件data_rom.vhd,并加以了優(yōu)化。下面我們具體的給出該文件的編寫方式!

3、定制ROM存儲(chǔ)sin波形數(shù)據(jù)構(gòu)成ROM中初始化數(shù)據(jù)文件的方式有兩種:MemoryInitializationFile(.mif)格式和Hexadecimal(Intel-Format)File(.hex)格式。下面我們僅僅以mif格式的文件為例來(lái)講解ROM初始化數(shù)據(jù)文件的生成!3.1建立.mif文件點(diǎn)擊QuartusII的File->New->MemoryFiles項(xiàng),選擇MemoryInitializationFile,點(diǎn)擊OK,出現(xiàn)一個(gè)參數(shù)設(shè)置框!這里Numberofwords對(duì)應(yīng)查找表中查找項(xiàng)的個(gè)數(shù),為64,Wordsize對(duì)應(yīng)sin輸出波形的數(shù)據(jù)寬度,為8。點(diǎn)擊OK出現(xiàn)如下表格:3.2ROM數(shù)據(jù)的生成表格中的數(shù)據(jù)即為sin輸出點(diǎn)所對(duì)應(yīng)的8bits的幅度,我們可以在Matlab下生成這些數(shù)據(jù):x=round((sin(linspace(0,2*pi,64))+1)*127.5);reshape(x,8,8)'ans=1281401531651771881992092192272352412462502532552552542522482442382312232142041941831711591471341211089684726151413224171173100259142028364656677890102115127復(fù)制這些數(shù)據(jù)可以很容易的在mif表格中進(jìn)行粘貼,如圖。當(dāng)然我們可以手工輸入這些數(shù)據(jù),也可以通過(guò)excel得到這些數(shù)據(jù),也可以編程得到這些數(shù)據(jù)。最方便的方式則是在Matlab/Simulink的DSPBuilder下完成ROM波形數(shù)據(jù)文件的編寫。我們將文件保存為singt.mif。3.3定制ROM元件下面我們對(duì)初始化數(shù)據(jù)文件加載到一定的硬件模塊中,本例中,我們將之加載于LPM_ROM模塊,步驟如下。3.3.1調(diào)用MegaWizardPlug-InManager3.3.2設(shè)置LPM_ROM模塊選擇Createanewcustommegafunctionvariation,點(diǎn)擊Next。這里我們?cè)O(shè)置器件為CycloneII,輸出文件的格式為vhdl,輸出文件名為data_rom.vhd,選擇MemoryComplier中的ROM:1-PORT。點(diǎn)擊Next。在Page3of7我們進(jìn)一步設(shè)置ROM:1-PORT的相關(guān)參數(shù),如下圖:其中器件為上一頁(yè)面所選的CycloneII,rom輸出的總線寬度為8bits,該查找表共有64格查找項(xiàng),RAMblock的類型由quartus進(jìn)行自動(dòng)的選擇(如ACEX1K為EAB,APEX20K為ESB,Cyclone為M4K),選擇DaulClock方式,inclock為地址鎖存控制信號(hào)。點(diǎn)擊Next!取消掉‘q’outputport選項(xiàng)點(diǎn)擊next!內(nèi)存初始化的數(shù)據(jù)文件指定為我們剛才創(chuàng)建的singt.mif,選擇AllIn-SystemMemoryContentEditorto…,表示允許QuartusII將能通過(guò)JTAg口對(duì)下載于FPGA中的此ROM進(jìn)行在系統(tǒng)的測(cè)試和讀寫,這種讀寫不影響FPGA中系統(tǒng)的工作。點(diǎn)擊next!點(diǎn)擊Finish!再點(diǎn)擊Finish3.3.3添加文件到工程 我們必須將剛才生成的所有文件添加到工程中。選擇Quartus的Files選項(xiàng),右鍵點(diǎn)擊Add/RemoveFilesinProject。點(diǎn)擊右圖的AddAlL->OK打開data_rom.vhd,修改絕對(duì)路徑為相對(duì)路徑!“singt.mif”-“./singt.mif”4、編譯、綜合等QuartusII編譯器由一系列處理模塊組成,如設(shè)計(jì)工程的查錯(cuò)、邏輯的綜合、結(jié)構(gòu)的綜合、輸出結(jié)果的編輯配置、時(shí)序分析等。在編譯前,我們可以設(shè)置一些參數(shù)使得編譯器采取一些特別的綜合和適配技術(shù)(如時(shí)序驅(qū)動(dòng)技術(shù)等),也可提高工程編譯的速度,優(yōu)化器件的資源利用率等。我們簡(jiǎn)單的點(diǎn)擊StartCompilation進(jìn)行全程編譯。編譯的時(shí)候,QuartusII會(huì)給出編譯的一些相關(guān)信息,如果出錯(cuò),則根據(jù)這些提示進(jìn)行排錯(cuò),直至無(wú)誤。編譯完成后出現(xiàn)如下框圖。并給出編譯報(bào)告,如圖!5、仿真對(duì)工程的編譯通過(guò)后必須進(jìn)行功能和時(shí)序的仿真,以便了解系統(tǒng)是否滿足要求。步驟如下:5.1編輯波形文件File->New->Verification/DebuggingFiles–VectorWaveformFile設(shè)置仿真時(shí)間:保存波形文件:導(dǎo)入singt工程的相關(guān)節(jié)點(diǎn):出現(xiàn):點(diǎn)擊List會(huì)列出所有的輸入輸出管腳,如圖:也可在波形向量文件編輯器左側(cè)空白處雙擊左鍵或者右鍵->“InsertNodeorBus”彈出“InsertNodeorBus”對(duì)話框,在對(duì)話框中輸入名字插入需要仿真的Node和Bus(也就是設(shè)計(jì)輸入文件中的Pin或者Signal),也可直接點(diǎn)擊“NodeFinder”,讓編輯器列出已知的Node和Bus。點(diǎn)擊NodeFinder,就調(diào)出對(duì)話框。選擇所需的pin到觀察列表,如圖:設(shè)置CLK的輸入波形:我們可以通過(guò)左側(cè)的放大鏡進(jìn)行觀察。保存該文件!5.2配置仿真參數(shù)在菜單“Assignments”->“Settings”->“Simulator”頁(yè)面,設(shè)置SimulationMode,根據(jù)具體需要選擇“Functional”或者“Timing”,這里我們選擇功能仿真SimulationInput:添加為singt.vwf仿真之前,先點(diǎn)擊下圖所示指令,生成功能仿真子表(功能仿真特有的步驟)。5.3進(jìn)行仿真點(diǎn)擊菜單工具欄“Simulator”按鈕,得到仿真的結(jié)果。為便于觀察DOUT的輸出結(jié)果,設(shè)置其數(shù)據(jù)格式:結(jié)果如下:注意:如果采用時(shí)序仿真,時(shí)鐘周期太小,可能會(huì)造成數(shù)據(jù)輸出不正確,所以建議時(shí)鐘周期盡量大于毛刺檢測(cè)時(shí)間的十倍以上。6、內(nèi)部電路觀察觀察RTL電路:ChipEditor:7、生成symbolFile->New->新建一個(gè)bdf文件,命名為singt.bdf:在singt1.bdf輸入欄中雙擊空白處,彈出symbol調(diào)用窗口,如下圖所示,選擇剛才生成的singt1的symbol,點(diǎn)擊OK。 用相同的方式在原理圖中添加input和output管腳。輸入管腳命名為clk,輸出管腳命名為dout[7..0],如下圖所示:將此bdf文件設(shè)為頂層實(shí)體,然后進(jìn)行全編譯:編譯:8、管腳分配分析和綜合之后,點(diǎn)擊菜單“Assignments”->“Pins”,進(jìn)入管腳分配編輯器,注意:如果手邊有開發(fā)板并想將設(shè)計(jì)輸入到開發(fā)板上演示,請(qǐng)具體參考手邊開發(fā)板的《硬件開發(fā)配置參考手冊(cè)》(名字可能有差別)或類似文檔,如果不需要將最后的設(shè)計(jì)生成文件燒寫到開發(fā)板,而只是需要嘗試QUARTUS的設(shè)計(jì)流程,任意選擇幾個(gè)管腳就可以。確定引腳分別為:主頻時(shí)鐘clk接PIN_AD15;8位輸出數(shù)據(jù)總線dout[7..0]對(duì)應(yīng)的引腳編號(hào)分別為PIN_W27、PIN_W25、PIN_W23、PIN_Y27、PIN_Y24、PIN_Y23、PIN_AA27、PIN_AA24。最后存儲(chǔ)這些引腳鎖定的信息后,必須在編譯(啟動(dòng)StartCompilation)一次,才能將引腳鎖定信息編譯進(jìn)編程下載文件中。此后就可以準(zhǔn)備將生成好的SOF文件下載到實(shí)驗(yàn)系統(tǒng)的FPGA中去了。9、下載點(diǎn)擊菜單工具欄“Programmer”按鈕進(jìn)入下載頁(yè)面,下載工程生成的燒寫文件到FPGA芯片,首先要配置下載工具,點(diǎn)擊“HardwareSetup”,進(jìn)入下載工具設(shè)置頁(yè)面,首先點(diǎn)擊“AddHardware”,進(jìn)入AddHardware對(duì)話框添加用到下載電纜,根據(jù)實(shí)際情況,選擇“ByteBlasterⅡ”或者“UsbBlaster”下載電纜,雙擊選擇,點(diǎn)擊“OK”回到HardwareSetup對(duì)話框,點(diǎn)擊要使用的下載電纜,并點(diǎn)擊“SelectHardware”,最后點(diǎn)擊“Close”回到下載界面,出現(xiàn)或者說(shuō)明下載電纜設(shè)置成功輸入需要下載的文件(這里是singt1.sof),選擇“Program/Configure”復(fù)選框,點(diǎn)擊“Start”,即可完成燒寫文件的下載。注意:消息框中下載結(jié)束的信息條出現(xiàn)!下載成功后,我們可以在實(shí)驗(yàn)平臺(tái)上看到8個(gè)LED在閃亮。(也許會(huì)由于主頻時(shí)鐘頻率過(guò)大,而觀察不到明顯的閃爍)10、利用SignalTapII觀察波Signaltap配置:選擇“File”菜單,點(diǎn)擊“New”,在彈出的New對(duì)話框中,選擇Verification/DebuggingFiles下的SignalTapIILogicAnalyzerFile,如圖所示:SignalTap的相關(guān)配置在InstanceManager窗口,Instance欄為實(shí)例名稱,右鍵對(duì)Instance進(jìn)行Create、Delete、Rename操作,此處名稱我們改為“singt”。在JTAGChainConfiguration窗口,點(diǎn)擊Hardware欄的Setup…按鈕,彈出HardwareSetup對(duì)話框:雙擊“Availablehardwareitems”欄中的“USB-Blaster”選項(xiàng),單擊“Close”關(guān)閉對(duì)話框,此時(shí)在“JTAGChainConfiguration”窗口的“Hardware”欄將顯示“USB-Blaster”字樣,同時(shí)Device欄將顯示“@1:EP2C35(0x020B40DD)”字樣,此為自動(dòng)識(shí)別到的FPGA芯片。SOFManager欄,點(diǎn)擊Browse按鈕,在彈出的SelectProgrammingFile對(duì)話框選中singt.sof文件。在singt欄,分為Data和Setup窗口,Data為數(shù)據(jù)顯示窗口,Setup為配置窗口。在Setup窗口,雙擊空白處,彈出NodeFilter對(duì)話框,點(diǎn)擊List列出列出信號(hào)列表,雙擊dout信號(hào),此時(shí)在SelectedNodes欄列出了已選信號(hào)dout,(可以根據(jù)需要,任意添加希望觀察的信號(hào))點(diǎn)擊OK關(guān)閉對(duì)話框。SignalConfiguration欄,點(diǎn)擊Clock欄后的browse按鈕,選擇邏輯分析儀的工作時(shí)鐘,在彈出的NodeFilter對(duì)話框,點(diǎn)擊List列出信號(hào)列表,雙擊clk信號(hào),此時(shí)在SelectedNodes欄列出了已選信號(hào)clk,(視具體工程不同,選擇不同的工作頻率,但是該頻率不能同時(shí)出現(xiàn)在singt欄)點(diǎn)擊OK關(guān)閉對(duì)話框。在Setup欄的Sampledepth下拉菜單,選擇待測(cè)數(shù)據(jù)的抽樣深度,此處選擇2k,其他設(shè)置如圖所示此時(shí)SignalTap的設(shè)置已經(jīng)全部完成,保存設(shè)置,名字任取,此處保存為singt1.stp。如下圖所示設(shè)置:工具欄按鈕,分別表示:Run、Analysis、AutoAnalysis、StopAnalysis、ReadData。點(diǎn)擊保存按鈕,在接下來(lái)彈出的對(duì)話框都點(diǎn)擊Yes.然后再進(jìn)行綜合編譯,完成以后,就可以下載“.sof”工程文件到FPGA芯片了,點(diǎn)擊ProgramDevice按鈕進(jìn)行芯片燒寫。燒寫完成后,點(diǎn)擊“AutoAnalysis”按鈕運(yùn)行邏輯分析儀。此時(shí)在芯片內(nèi)部運(yùn)行的信號(hào)數(shù)據(jù),已經(jīng)通過(guò)JTAG鏈讀取到計(jì)算機(jī),并在Data窗口顯示為了便于觀察,在DOUT欄點(diǎn)擊右鍵,在彈出的對(duì)話框中選擇BusDisplayFormat欄的UnsignedLineChart選項(xiàng),如下圖所示:更改dout的數(shù)據(jù)類型:右擊“dout”選擇BusDisplayFormat->UnsignedLineChart,即可看到正弦波信號(hào):11、利用外設(shè)DAC觀察輸出波形實(shí)驗(yàn)內(nèi)容1:將正弦波信號(hào)發(fā)生器所輸出的信號(hào)經(jīng)外設(shè)DAC器件輸出到示波器上。在前面的基礎(chǔ)上,我們?cè)赒uartusII上完成了正弦信號(hào)發(fā)生器設(shè)計(jì),包括仿真和資源利用情

溫馨提示

  • 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)論