基于FPGA的信號發(fā)生器的設(shè)計6波形_第1頁
基于FPGA的信號發(fā)生器的設(shè)計6波形_第2頁
基于FPGA的信號發(fā)生器的設(shè)計6波形_第3頁
基于FPGA的信號發(fā)生器的設(shè)計6波形_第4頁
基于FPGA的信號發(fā)生器的設(shè)計6波形_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、輕工業(yè)學(xué)院電子技術(shù)課程設(shè)計題 目 _ _ 學(xué)生 專業(yè)班級 學(xué) 號 院 (系) 電氣信息工程學(xué)院 指導(dǎo)教師 完成時間 2012年06月22日 27 / 31輕工業(yè)學(xué)院課 程 設(shè) 計 任 務(wù) 書題目 基于FPGA的信號發(fā)生器設(shè)計專業(yè)、班級學(xué)號主要容、基本要求、主要參考資料等:主要容:要求學(xué)生使用硬件描述語言設(shè)計信號發(fā)生器的FPGA源程序,實現(xiàn)如下功能:設(shè)計智能信號發(fā)生器,要現(xiàn)正弦波、方波、三角波、遞增、遞減斜波和階梯波六種波形?;疽螅?、 掌握FPGA 的程序設(shè)計方法。 2、掌握硬件描述語言語法。 3、程序設(shè)計完成后要求在軟件中實現(xiàn)功能仿真。主要參考資料:1、雪松,吳鈺淳.VHDL設(shè)計實例與仿

2、真.機械工業(yè), 2007.2、黃志偉.FPGA系統(tǒng)設(shè)計與實踐M.:電子工業(yè),2005.完 成 期 限:2013.6.212013.6.25指導(dǎo)教師簽名:課程負(fù)責(zé)人簽名:2013年 6月 18日目錄摘要I1 題目分析12 方案選擇22.1 波形函數(shù)發(fā)生方案對比選擇22.2 波形函數(shù)輸出控制方式選擇23 系統(tǒng)細(xì)化框圖44 各模塊程序設(shè)計與仿真54.1 遞增斜波模塊54.2 遞減斜波模塊64.3 三角波模塊74.4 階梯波模塊84.5 正弦波模塊104.6 方波模塊114.7 輸出波形選擇模塊125 系統(tǒng)聯(lián)調(diào)測試分析146 設(shè)計總結(jié)16參考文獻17附錄18基于FPGA的函數(shù)發(fā)生器設(shè)計摘 要隨著基于C

3、PLD的EDA技術(shù)的發(fā)展和應(yīng)用領(lǐng)域的擴大與深入,EDA技術(shù)在電子信息、通信、自動控制與計算機等領(lǐng)域的重要性日益突出。作為一個學(xué)電子信息專業(yè)的學(xué)生,我們必須不斷地去了解更多的新產(chǎn)品信息,這就更加要求我們對EDA有個全面的認(rèn)識。信號發(fā)生器在我們的日常中有很重要的應(yīng)用,用VHDL語言去實現(xiàn)設(shè)計將會使我們對本學(xué)科知識可以更好地掌握。函數(shù)發(fā)生器是一種多波形的信號源,它可以產(chǎn)生方波、三角波、鋸齒波,甚至任意波形。本設(shè)計是一個基于VHDL的采用自頂向下設(shè)計方法實現(xiàn)的信號發(fā)生器,該設(shè)計方法具有外圍電路簡單,程序修改靈活和調(diào)試容易等特點,并通過計算機仿真和實驗證明了設(shè)計的正確性。關(guān)鍵字FPGA VHDL 函數(shù)發(fā)

4、生器1 題目分析要求設(shè)計一個函數(shù)發(fā)生器,該函數(shù)發(fā)生器能夠產(chǎn)生遞增斜波、遞減斜波、方波、三角波、正弦波、與階梯波,并且可以通過選擇開關(guān)選擇相應(yīng)的波形輸出;系統(tǒng)具有復(fù)位的功能;通過按鍵確定輸出的波形與確定是否輸出波形。FPGA是整個系統(tǒng)的核心,構(gòu)成系統(tǒng)控制器,波形數(shù)據(jù)生成器,加法器,運算/譯碼等功能。通過以上分析設(shè)計要求完成的功能,確定函數(shù)發(fā)生器可由遞增斜波產(chǎn)生模塊、遞減斜波產(chǎn)生模塊、三角波產(chǎn)生模塊、階梯波產(chǎn)生模塊、正弦波產(chǎn)生模塊、方波產(chǎn)生模塊和輸出波形選擇模塊組成,以與按鍵復(fù)位控制和時鐘輸入。由此可確定為:圖1-1 系統(tǒng)的總體原理框波形發(fā)生模塊時鐘clk復(fù)位reset波形輸出選擇模塊2 方案選擇

5、2.1 波形函數(shù)發(fā)生方案對比選擇波形函數(shù)發(fā)生是本設(shè)計的最重要的部分,實現(xiàn)函數(shù)發(fā)生的途徑也有很多,因此必須選擇一種易于實現(xiàn)且精度高的方案,以此來提高本設(shè)計的實用性。方案一:通過單片機控制D/A,輸出三種波形。此方案輸出的波形不夠穩(wěn)定,抗干擾能力弱,不易調(diào)節(jié),而且達(dá)不到題目要求的六種波形。方案二:使用傳統(tǒng)的鎖相頻率合成方法。通過芯片IC145152,壓控振蕩器搭接的鎖相環(huán)電路輸出穩(wěn)定性極好的正弦波,再利用過零比較器轉(zhuǎn)換成方波,積分電路轉(zhuǎn)換成三角波。此方案,電路復(fù)雜,干擾因素多,不易實現(xiàn)。方案三:利用MAX038芯片組成的電路輸出波形。MAX038是精密高頻波形產(chǎn)生電路,能夠產(chǎn)生準(zhǔn)確的三角波、方波和

6、正弦波三種周期性波形,但無法實現(xiàn)階梯波和遞增遞減斜波的產(chǎn)生。方案四:利用在系統(tǒng)編程技術(shù)和FPGA芯片產(chǎn)生。用VHDL語言編寫程序,調(diào)試成功后下載至實驗裝置的芯片上,再利用外接D/A轉(zhuǎn)換電路實現(xiàn)以上設(shè)計功能。此種方案完全可以生成設(shè)計要求的6種波形,而且通過軟件仿真可以直觀的觀測的輸出的波形參數(shù),方便調(diào)試和更改波形參數(shù),外圍電路簡單,減少器件損耗,精度高?;诜桨杆牡耐鈬娐泛唵稳菀讓崿F(xiàn)、波形產(chǎn)生精度高、易于仿真觀測調(diào)試的優(yōu)點,因此本設(shè)計的函數(shù)發(fā)生器選擇方案四完成波形發(fā)生的全部功能。2.2 波形函數(shù)輸出控制方式選擇方案一:控制多路D/A開關(guān)輸出方式此種方案為每一路輸出的波形函數(shù)使用一路D/A轉(zhuǎn)換后

7、輸出,通過控制開關(guān)控制每一路D/A是否工作,決定輸出的波形。此種方案可以同時輸出多路波形,但是需要路D/A轉(zhuǎn)化器,外圍電路復(fù)雜,制作成本較高而且控制復(fù)雜。方案二:采用數(shù)據(jù)選擇器方式此種方案可以利用VHDL語言寫出數(shù)據(jù)選擇器,然后每種函數(shù)發(fā)生器的輸出和數(shù)據(jù)選擇器輸入相連接,通過控制開關(guān)選擇對應(yīng)的波形輸出。方案二完全可以得到方案一的設(shè)計要求,而且只需一個D/A轉(zhuǎn)換器就可以。電路不需要外部搭建,節(jié)約成本且控制簡單方便。在實驗課時候已經(jīng)完成8選1數(shù)據(jù)選擇器的設(shè)計制作,因此本次設(shè)計可以直接調(diào)用。方案三:采用數(shù)據(jù)分配器方式此種方案利用數(shù)據(jù)分配器的功能,通過控制開關(guān)選擇相應(yīng)的函數(shù)發(fā)生器模塊,使之產(chǎn)生相應(yīng)的波

8、形輸出,并通過數(shù)據(jù)分配器的使能復(fù)位控制決定是否輸出波形,此種方案和方案二很相似,也能夠?qū)崿F(xiàn)設(shè)計的功能也具有方案二的優(yōu)點,?;诜桨付脑O(shè)計簡便、節(jié)約制作元件和成本、控制簡便等優(yōu)點,選擇方案二作為波形函數(shù)輸出控制方式。3 系統(tǒng)細(xì)化框圖系統(tǒng)時鐘輸入后,通過復(fù)位開關(guān)選擇是否產(chǎn)生波形,當(dāng)各個模塊產(chǎn)生相應(yīng)的信號波形后,通過波形選擇模塊波形選擇開關(guān)選澤輸出不同的波形,再通過D/A轉(zhuǎn)換器轉(zhuǎn)換,就可以把數(shù)字信號(由FPGA輸出)變成了相應(yīng)模擬的信號波形。整個系統(tǒng)設(shè)計的核心就是FPGA部分。圖3系統(tǒng)的最終整體的原理圖波形選擇模塊遞增斜波模塊遞減斜波模塊三角波模塊階梯波模塊正弦波模塊方波模塊時鐘clk復(fù)位rese

9、t波形選擇開關(guān)D/A轉(zhuǎn)換器4 各模塊程序設(shè)計與仿真4.1 遞增斜波模塊遞增斜波icrs的VHDL程序如附錄所示,其中clk是輸入時鐘端口,reset為輸入復(fù)位端口,q為八位二進制輸出端口。圖4-1 -1斜波框圖圖4-1-2 遞增斜波模塊仿真圖程序設(shè)計的當(dāng)復(fù)位信號為0時,輸出為0,無對應(yīng)的波形產(chǎn)生。當(dāng)復(fù)位信號為1時,每當(dāng)檢測到時鐘上升沿時,計數(shù)器值加1,當(dāng)增加到最大后清零。計數(shù)值增加呈現(xiàn)線性關(guān)系,因此輸出的波形是遞增的斜波。從仿真波形圖也能看出這種變化規(guī)律。VHDL描述為:ARCHITECTURE behave OF icrs ISBEGIN PROCESS(clk,reset) VARIABL

10、E tmp: STD_LOGIC_VECTOR(7 DOWNTO 0); BEGINIF reset=0 THEN tmp:= 00000000;-復(fù)位信號清零ELSIF clkEVENT AND clk=1 THEN IF tmp=11111111 THEN tmp:=00000000;-遞增到最大值清零ELSE tmp:=tmp+1;-遞增運算END IF;END IF;q=tmp;END PROCESS;END behave;4.2 遞減斜波模塊遞減斜波dcrs的VHDL程序如附錄所示,其中clk是輸入時鐘端口,reset為輸入復(fù)位端口,q為八位二進制輸出端口。圖4-2-1 遞減斜波框圖

11、圖4-2-2 遞減斜波模塊仿真圖程序設(shè)計的是復(fù)位信號為0時輸出為0,無對應(yīng)的波形產(chǎn)生。當(dāng)復(fù)位信號為1時,當(dāng)每當(dāng)檢測到時鐘上升沿時,計數(shù)值減1,當(dāng)減到0后賦值到最大。計數(shù)值減少呈現(xiàn)線性關(guān)系,因此輸出的波形是遞減的斜波。從仿真波形圖也能看出這種變化規(guī)律。VHDL描述為:ARCHITECTURE behave OF dcrs ISBEGIN PROCESS(clk,reset) VARIABLE tmp: STD_LOGIC_VECTOR(7 DOWNTO 0); BEGINIF reset=0 THEN tmp:=11111111;-復(fù)位信號置最大值ELSIF clkEVENT AND clk=1

12、 THEN-檢測時鐘上升沿IF tmp=00000000 THEN tmp:=11111111;-遞減到0置最大值ELSE tmp:=tmp-1;-遞減運算END IF;END IF;q=tmp;END PROCESS;END behave;4.3 三角波模塊三角波波delat的VHDL程序如附錄所示,其中clk是輸入時鐘端口,reset為輸入復(fù)位端口,q為八位二進制輸出端口。圖4-3-1 三角波框圖圖4-3-2 三角波模塊仿真圖三角波波形是對稱的,每邊呈線形變化,所以可以根據(jù)數(shù)據(jù)做簡單運算,就可以得到三角波。程序設(shè)計的是reset復(fù)位信號為0時輸出為0,無對應(yīng)的波形產(chǎn)生。當(dāng)復(fù)位信號為1時,當(dāng)

13、每當(dāng)檢測到時鐘上升沿時,當(dāng)計數(shù)的數(shù)據(jù)不是最大值時,數(shù)值做遞增運算,當(dāng)增大到最大時,然后再做遞減運算,因此輸出的波形便呈現(xiàn)出三角波的形狀。從仿真波形圖也能看出這種變化規(guī)律。VHDL描述如下:ARCHITECTURE behave OF delat ISBEGIN PROCESS(clk,reset) VARIABLE tmp: STD_LOGIC_VECTOR(7 DOWNTO 0);VARIABLE a: STD_LOGIC; BEGINIF reset=0 THEN tmp:=00000000;-復(fù)位信號為0,置最小值 ELSIF clkEVENT AND clk=1 THEN-檢測時鐘上升

14、沿 IF a=0 THEN IF tmp=11111110 THENtmp:=11111111; -置最大值a:=1; ELSE -不是最大值時遞增tmp:=tmp+1;-遞增運算 END IF; ELSE IF tmp =00000001 THENtmp:=00000000; -置最小值a:=0; ELSE -a為1時,執(zhí)行遞減運算tmp:=tmp-1;-遞減運算END IF;END IF;END IF;q=tmp;END PROCESS;END behave;4.4 階梯波模塊階梯波ladder的VHDL程序如附錄所示,其中clk是輸入時鐘端口,reset為輸入復(fù)位端口,q為八位二進制輸出

15、端口。圖4-4-1 階梯波框圖圖4-4-2 階梯波模塊仿真圖階梯波設(shè)計的是數(shù)據(jù)的遞增是以一定的階梯常數(shù)向上增加,所以輸出的波形呈現(xiàn)是成階梯狀的,而不是完全呈現(xiàn)是直線增長。VHDL描述如下:ARCHITECTURE behave OF ladder ISBEGIN PROCESS(clk,reset) VARIABLE tmp: STD_LOGIC_VECTOR(7 DOWNTO 0); VARIABLE a: STD_LOGIC; BEGINIF reset=0 THEN tmp:=00000000;-復(fù)位信號為0,置最小值ELSIF clkEVENT AND clk=1 THEN-檢測時鐘上

16、升沿 IF a=0 THEN-判斷a數(shù)值,計數(shù)。IF tmp=11111111 THENtmp:=00000000; -計數(shù)到最大清零a:=1; ELSEtmp:=tmp+16;-階梯常數(shù)為16,可修改a:=1; END IF; ELSEa:=0;-循環(huán)計數(shù)標(biāo)志 END IF; END IF;q=tmp;END PROCESS; END behave;4.5 正弦波模塊正弦波模塊由三個部分組成:6位地址發(fā)生器、正弦信號數(shù)據(jù)ROM和原理圖頂層設(shè)計文件。8位波形數(shù)據(jù)輸出圖4-5-1 結(jié)構(gòu)圖上圖所示的信號發(fā)生結(jié)構(gòu)中圖中,頂層文件sin.bdf在FPGA中實現(xiàn),包含兩個部分:ROM的地址信號發(fā)生器,由

17、6位計數(shù)器擔(dān)任;一個正弦數(shù)據(jù)ROM,由LPM_ROM模塊構(gòu)成,6位地址線,8位數(shù)據(jù)線,一個周期含有64個8位數(shù)據(jù)。LPM_ROM底層是FPGA中的EAB、ESB或M4K等模塊。地址發(fā)生器的時鐘CLK的輸入頻率F0與每周期的波形數(shù)據(jù)點數(shù)以與D/A輸出頻率F的關(guān)系是:F=F0/64。正弦波產(chǎn)生原理:通過循環(huán)不斷地從波形數(shù)據(jù)ROM文件中依次讀取正弦波一個周期在時域上64個采樣點的波形數(shù)據(jù)送入波形DAC,從而產(chǎn)生正弦波。正弦波的頻率取決于讀取數(shù)據(jù)的速度。圖4-5-2 正弦波模塊仿真圖圖4-5-3 頂層文件原理圖sin.bdf4.6 方波模塊方波模塊的square的VHDL程序描述如下:其中clk為輸入

18、時鐘端口,clr為輸入復(fù)位端口,q為整數(shù)輸出端口。圖4-6 方波模塊仿真圖方波模塊的設(shè)計是當(dāng)部計數(shù)cnt達(dá)到64時,根據(jù)輸出標(biāo)志a的數(shù)值輸出對應(yīng)的數(shù)值,當(dāng)a=0輸出0,也即是方波周期中的低電平,當(dāng)a=1,輸出255,也即是方波周期中的高電平。連續(xù)的輸出便成了觀測到的方波波形。其VHDL描述如下:ARCHITECTURE behave OF square ISSIGNAL a:BIT;BEGIN PROCESS(clk,clr) VARIABLEt:INTEGER; BEGINIF clr=0 THEN a=0; ELSIF clkEVENT AND clk=1 THEN -檢測時鐘上升沿IFt

19、63 THEN -計數(shù)64個點cnt:=cnt+1; -計數(shù) ELSEcnt:=0; -當(dāng)計數(shù)的值大于64時,清零。a=NOT a; -對部a變量取反,a變化啟動進程END PROCESS; END IF;END IF;END PROCESS;PROCESS(clk,a)BEGINIF clkEVENT AND clk=1 THEN IF a=1 THENq=255;-a=1,輸出一個波形周期的高電平 ELSEqqqqqqqNULL; 5 系統(tǒng)聯(lián)調(diào)測試分析通過以上各個模塊的細(xì)化和分析,最終在Quartus 中完成了整個系統(tǒng)的聯(lián)合調(diào)試,并通過嵌入式邏輯分析的方法回讀輸出信號的波形符合設(shè)計的要求。

20、5.1 調(diào)試的結(jié)果分析:(復(fù)位信號reset高電平,低電平為不輸出)(1)第一次sel選擇值設(shè)為0,輸出為遞增波,從圖中可以看出,輸出的波形成線性遞增,結(jié)果正確。(2)第二次sel選擇值設(shè)為1,輸出為遞減波,從圖中可以看出,輸出的波形成線性遞減,結(jié)果正確。(3)第三次sel的值設(shè)為2,輸出為三角波,其仿真波形如下圖所示,輸出波形線性增大到最大后,再線性減小。(4)第四次sel的值設(shè)為3,其輸出的波形是階梯波,其仿真波形見下圖,波形遞增常數(shù)為16,結(jié)果正確。(5)第五次sel的值設(shè)為4,其輸出的波形是正弦波,從圖中可以看出,輸出的數(shù)據(jù)的變化規(guī)律是正弦規(guī)律。(6)第六次sel的值設(shè)為5,其輸出的波

21、形是方波,從圖中仿真的結(jié)果可以看出,輸出的波形變化規(guī)律是按方波規(guī)律周期性變化的。(7)當(dāng)設(shè)置為其他值時無波形輸出6 設(shè)計總結(jié)本設(shè)計以函數(shù)信號發(fā)生器的功能為設(shè)計對象,運用EDA技術(shù)的設(shè)計方法,進行各種波形的輸入設(shè)計、設(shè)計處理和器件編程。在VHDL語言的編寫中按照語言描述規(guī),實現(xiàn)了幾種波形的軟件設(shè)計和具體邏輯元件結(jié)構(gòu)的硬件映射。結(jié)合FPGA的開發(fā)集成環(huán)境Quartus2軟件,產(chǎn)生了函數(shù)信號發(fā)生器的各種信號,同時完成了時序和功能仿真,并在GW48-CK型實驗開發(fā)系統(tǒng)上實現(xiàn)的波形仿真。實驗表明采用該方法能準(zhǔn)確的產(chǎn)生三角波、階梯波、正弦波等設(shè)計產(chǎn)生的波形,實現(xiàn)了信號發(fā)生器的功能。本設(shè)計的函數(shù)信號發(fā)生器在

22、設(shè)計上由于設(shè)計時考慮的不夠全面雖然完成了函數(shù)信號的產(chǎn)生,但不夠完善。要做成完整實用的信號源還應(yīng)考慮設(shè)計包含的功能有:1) 用鍵盤輸入編輯生成上述6種波形(同周期)的線性組合波形;2) 具有波形存儲功能;3) 輸出波形的頻率圍可調(diào),頻率步進;4) 輸出波形幅度可調(diào),步進調(diào)整;5) 具有顯示輸出波形的類型、重復(fù)頻率(周期)和幅度的功能;6) 用鍵盤或其他輸入裝置產(chǎn)生任意波形;7) 波形占空比可調(diào)等。參考文獻1 雪松,吳鈺淳.VHDL設(shè)計實例與仿真.機械工業(yè), 2007.2 黃志偉.FPGA系統(tǒng)設(shè)計與實踐M.:電子工業(yè),2005.3 松,黃繼業(yè).EDA技術(shù)與實用教程(第三版),科學(xué),2006.4 褚

23、振勇,翁木云.FPGA設(shè)計與應(yīng)用.電子科技大學(xué),2002.5 朱正偉.EDA技術(shù)與應(yīng)用.清華大學(xué),2005.6 林明權(quán). VHDL數(shù)字控制系統(tǒng)設(shè)計例.電子工業(yè),2003.7 輝.PLD與數(shù)字系統(tǒng)設(shè)計.電子科技大學(xué),2005.5.8 王志鵬,付麗琴.可編程邏輯器件開發(fā)技術(shù)MAX+PLUS II.國防工業(yè),2005.3.9 王道先.VHDL電路設(shè)計技術(shù).國防工業(yè),2004.1.附 錄1. 遞增波形源程序-遞增模塊程序LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY icrs IS P

24、ORT(clk,reset: IN STD_LOGIC; q: OUT STD_LOGIC_VECTOR(7 DOWNTO 0); END icrs; ARCHITECTURE behave OF icrs ISBEGINPROCESS(clk,reset)VARIABLE tmp : STD_LOGIC_VECTOR(7 DOWNTO 0);BEGINIF reset=0 THEN tmp:= 00000000;-復(fù)位信號清零ELSIF clkEVENT AND clk=1 THEN IF tmp=11111111 THEN tmp:=00000000;-遞增到最大值清零 ELSE tmp:

25、=tmp+1;-遞增運算 END IF; END IF; q=tmp; END PROCESS; END behave;2. 遞減波形源程序-遞減模塊源程序LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY dcrs ISPORT (clk,reset:IN STD_LOGIC; q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END dcrs;ARCHITECTURE behave OF dcrs ISBEGINPROCESS(clk,reset)VARIABL

26、E tmp:STD_LOGIC_VECTOR(7 DOWNTO 0); BEGINIF reset=0 THEN tmp:=11111111;-復(fù)位信號置最大值ELSIF clkEVENT AND clk=1 THEN-檢測時鐘上升沿IF tmp=00000000 THEN tmp:=11111111;-遞減到0置最大值ELSE tmp:=tmp-1;-遞減運算END IF; END IF;q=tmp;END PROCESS; END behave;3. 三角波形源程序-三角波模塊程序LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD

27、_LOGIC_UNSIGNED.ALL; ENTITY delta IS PORT(clk,reset:IN STD_LOGIC; q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);end delta;ARCHITECTURE behave OF delta ISBEGIN PROCESS(clk,reset) VARIABLE tmp:STD_LOGIC_VECTOR(7 DOWNTO 0); VARIABLE a:STD_LOGIC; BEGINIF reset=0 THEN tmp:=00000000;-復(fù)位信號為0,置最小值 ELSIF clkEVENT AND c

28、lk=1 THEN-檢測時鐘上升沿 IF a=0 THEN IF tmp=11111110 THENtmp:=11111111; -置最大值a:=1; ELSE -不是最大值時遞增tmp:=tmp+1;-遞增運算 END IF; ELSE IF tmp =00000001 THENtmp:=00000000; -置最小值a:=0; ELSE -a為1時,執(zhí)行遞減運算tmp:=tmp-1;-遞減運算 END IF; END IF; END IF; q=tmp; END PROCESS;END behave;4. 階梯波形程序源程序-階梯波模塊LIBRARY IEEE; USE IEEE.STD_

29、LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY ladder ISPORT(clk,reset:IN STD_LOGIC; q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END ladder;ARCHITECTURE behave OF ladder ISBEGINPROCESS(clk,reset)VARIABLE tmp: STD_LOGIC_VECTOR(7 DOWNTO 0); -定義部變量VARIABLE a: STD_LOGIC; BEGINIF reset=0 THEN tmp:=000000

30、00;-復(fù)位信號為0,置最小值ELSIF clkEVENT AND clk=1 THEN-檢測時鐘上升沿 IF a=0 THEN-判斷a數(shù)值,計數(shù)。IF tmp=11111111 THENtmp:=00000000; -計數(shù)到最大清零a:=1; ELSEtmp:=tmp+16;-階梯常數(shù)為16,可修改a:=1; END IF; ELSEa:=0;-循環(huán)計數(shù) END IF; END IF;q=tmp;END PROCESS; END behave;5. 正弦波源程序波形數(shù)據(jù)ROM文件sin_rom.vhd如下:LIBRARY ieee;USE ieee.std_logic_1164.all;LI

31、BRARY altera_mf;USE altera_mf.all;-使用宏功能庫中的所有元件ENTITY sin_rom ISPORT(address: IN STD_LOGIC_VECTOR (5 DOWNTO 0);inclock: IN STD_LOGIC ;q: OUT STD_LOGIC_VECTOR (7 DOWNTO 0);END sin_rom;ARCHITECTURE SYN OF sin_rom ISSIGNAL sub_wire0: STD_LOGIC_VECTOR (7 DOWNTO 0);COMPONENT altsyncram例化altsyncram元件,調(diào)用了L

32、PM模塊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: NATURAL;width_byteena_a: NATURAL);PO

33、RT (clock0: IN STD_LOGIC ; -altsyncram元件接口聲明address_a: IN STD_LOGIC_VECTOR (5 DOWNTO 0);q_a: OUT STD_LOGIC_VECTOR (7 DOWNTO 0);END COMPONENT;BEGINq NONE,init_file = sin_data.mif,intended_device_family = Cyclone,-參數(shù)傳遞映射lpm_hint = ENABLE_RUNTIME_MOD=NO,lpm_type = altsyncram,numwords_a = 64, -數(shù)據(jù)數(shù)量64operation_mode = ROM, -LPM模式ROMoutdata_aclr_a = NONE, -無異步地址清零outdata_reg_a = UNREGISTERED, -輸出無鎖存widthad_a = 6, -地址線寬度6w

溫馨提示

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

評論

0/150

提交評論