基于Verilog的DDS設(shè)計與顯示_第1頁
基于Verilog的DDS設(shè)計與顯示_第2頁
基于Verilog的DDS設(shè)計與顯示_第3頁
基于Verilog的DDS設(shè)計與顯示_第4頁
基于Verilog的DDS設(shè)計與顯示_第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、硬件描述語言課程設(shè)計題 目: 基于Verilog的DDS設(shè)計與顯示 學(xué) 院: 自動化工程學(xué)院 專 業(yè): 信號與信息處理 年 級: 2012級 姓 名: 黃山 2013年 1 月 19 日1.設(shè)計要求設(shè)計一個DDS信號發(fā)生器,能夠產(chǎn)生三角波,要求頻率、相位可調(diào)。實現(xiàn)VGA顯示波形和參數(shù)。要求用DE2-70開發(fā)板完成。設(shè)計要求:一、DDS信號發(fā)生器設(shè)計要求:(1) 頻率兩檔可調(diào);(2) 峰峰值兩檔可調(diào);二、VGA波形和字符顯示設(shè)計要求:(1) 用紅色顯示2個周期波形;(2) 在屏幕下方顯示字符庫。2.設(shè)計原理及分析一)DDS原理(以正弦信號為例)對于正弦信號發(fā)生器,它的輸出可以用下式來描述:()其

2、中,SOUT 是指該信號發(fā)生器的輸出信號波形,fOUT 指輸出信號對應(yīng)的頻率。上式的表述對于時間t是連續(xù)的,為了用數(shù)字邏輯實現(xiàn)該表達式,必須進行離散化處理,用基準時鐘clk進行抽樣,令正弦信號的相位為()在一個clk周期Tclk,相位的變化量為 ()為了對進行數(shù)字量化,把2切割為2N由此,每份clk周期的相位增量用量化值()且為整數(shù)。()顯然,信號發(fā)生器的輸出可描述為:()其中K-1指前一個clk周期的相位值,同樣得出()由上面的推導(dǎo)可以看出,只要對相位的量化值進行簡單的累加運算,就可以得到正弦信號的當前相位值,為用于累加的相位增量量化值決定了信號的輸出頻率fOUT,并呈現(xiàn)簡單的線性關(guān)系。直接

3、數(shù)字合成器DDS就是根據(jù)上述原理而設(shè)計的數(shù)控頻率合成器,主要由相位累加器、相位調(diào)制器、正弦ROM查找表、和DAC構(gòu)成。如圖1中相位累加器、相位調(diào)制器、正弦ROM查找表是DDS結(jié)構(gòu)中的數(shù)字部分,由于具有數(shù)控頻率合成的功能,可稱為NOC(Numerically Controlled Oscillators)。圖1 DDS信號發(fā)生器結(jié)構(gòu)二)VGA顯示原理常見的計算機顯示器有CRT( Cathode Ray Tube ,陰極射線管)顯示器和液晶顯示器,本次設(shè)計針對CRT顯示。CRT中的陰極射線槍發(fā)出電子束打在涂有熒光粉的熒光屏上,產(chǎn)生RGB三基色,合成一個彩色像素。用逐行掃描的方式顯示圖像。掃描從屏幕

4、左上方開始,從左到右,從上到下,進行掃描。每掃完一行,電子束回到屏幕的左邊下一行的起始位置,在這期間,CRT對電子束進行消隱,每行結(jié)束時,用行同步信號進行行同步;掃描完所有行,用場同步信號進行場同步,并使掃描回到屏幕的左上方,同時進行場消隱,預(yù)備下一場的掃描。場逆程掃描軌跡正程軌跡圖圖2 掃描軌跡其中藍色 行正程,紅色 行逆程;正程顯示(實線),逆程消隱(虛線)1.VGA顯示標準VGA標準共有5個信號:R(紅色)、G(綠色)、B(藍色)、HS(行同步)、VS(場同步)支持640*480分辨率 圖3 VGA顯示標準(行)表1 行掃描時序行掃描時序(單位:像素,即輸出一個像素的時間)TaTbTcT

5、dTeTfTg時間9640864088800圖4 VGA顯示標準(場)表2 場掃描時序場掃描時序(單位:行,即輸出一行的時間) TaTbTcTdTeTfTg時間225848082525VGA顯示標準時鐘頻率:25.175MHz(輸出像素的頻率)行頻:31469Hz場頻:59.94Hz (每秒圖像刷新頻率, 約60Hz)2.時序處理分別將場同步信號和行同步信號做時間近似處理表3 對行同步做近似處理行掃描時序(單位:us) TaTbTcTdTeTfTg時間3.81.60.325.40.30.3前項之和 5.7us26us 表4 對場同步做近似處理場掃描時序(

6、單位:行) TaTbTcTdTeTfTg時間225848082525作近似處理2忽略480忽略482這樣,便可通過計數(shù)分頻得到行同步信號和場同步信號。下面以開發(fā)板的50Mhz時鐘信號為例,得到32Khz的行同步信號和64hz的長同步信號26分頻2分頻482分頻50Mhz25Mhz31Khz64hzclkvga_clkHSVS系統(tǒng)時鐘像素時鐘行同步信號場同步信號圖5 時序處理圖三)波形顯示原理要顯示波形,需要將波形數(shù)據(jù)存入存儲器(簡稱wave_RAM)。wave_RAM中可以寫入讀出波形數(shù)據(jù)。下面將以幅值為256的正弦波為例,闡明波形顯示原理。圖6 波形顯示結(jié)構(gòu)圖每個時鐘沿到來,從存儲

7、器中讀出一個數(shù),通過判斷x_cnt與addr的關(guān)系以及y_cnt 與data的關(guān)系是否滿足條件,控制屏幕上以x_cnt 和y_cnt為坐標的像素點的顏色值。其中,x_cnt與addr的關(guān)系以及y_cnt 與data的關(guān)系如下圖7所示。圖7 波形顯示像素位置與存儲器地址之間關(guān)系x_cnt與存儲器地址對應(yīng);若高度等于數(shù)據(jù)值,則該處顏色為紅色。關(guān)鍵算法如下:若在(m,n)處開始顯示波形當x_cnt=m時,addr=0 若y_cnt=n-data,則rgb=010;當x_cnt=m+1時,addr=1 若y_cnt=n-data,則rgb=010; 當x_cnt=m+i時,addr=i 若y_cnt=

8、n-data,則rgb=010;四)字符顯示原理要顯示字母、數(shù)字、符號、漢字等,需要自建字庫(以后簡稱Char_ROM)。Char_ROM中存放字模數(shù)據(jù)。字模尺寸自行設(shè)定,例如英文字母、數(shù)字等可設(shè)置為16行*8列像素,漢字可設(shè)置為16行*16列像素。圖8 字符庫端口圖1. 字模庫設(shè)計以16行*8列的字模1的設(shè)計及存儲為例。圖9 字模庫設(shè)計舉例字庫容量:地址線與所有字符所占列數(shù)(決定于字符數(shù)量)有關(guān),數(shù)據(jù)線與一個字符所占行數(shù)有關(guān)。該例中數(shù)據(jù)線位數(shù)為16bit,地址為2bit。2.字符顯示思路:1)確定屏幕顯示起始位置,屏幕顯示起始位置由行列計數(shù)值決定。2)求Char_ROM地址Char_ROM起

9、始地址由所要顯示的字符決定(可將地址用宏定義的方法與字符關(guān)聯(lián))。3)讀取該地址對應(yīng)的數(shù)據(jù)4)確定數(shù)據(jù)位和像素位置的關(guān)系數(shù)據(jù)位和像素位置的關(guān)系由行計數(shù)值、起始行數(shù)、字符所占行數(shù)決定。5)顯示顏色,RGB賦值若數(shù)據(jù)為1,則對應(yīng)位置上的RGB賦值為字符色,否則RGB值賦值為背景色。至此,DDS及VGA顯示的原理介紹結(jié)束,下面開始進行系統(tǒng)設(shè)計及程序編寫仿真。三、系統(tǒng)設(shè)計實現(xiàn)由于實驗時間有限,在實際設(shè)計時并未對所生成波形做移相與改變幅值的處理,整體設(shè)計思路如下圖10所示。圖10 系統(tǒng)設(shè)計思路一) 參數(shù)設(shè)計本次實驗中所生成的正弦波共采樣256個點,存儲器采用8位地址線,數(shù)據(jù)為16bit。設(shè)N為18位,M為

10、地址線位數(shù)為8位,頻率字=(000000010000000000)2,則當輸入時鐘為vga_clk=25Mhz時,由DDS原理部分公式可推知當輸出DDS輸出頻率fOUT=100Khz。由于顯示屏幕大小為640*480,需要顯示兩個周期的波形共256*2=512個點,設(shè)置屏幕顯示橫向范圍為50到561,縱向范圍為100到300;字符顯示范圍為橫向50到305,縱向310到325。二) 各模塊實現(xiàn)程序及仿真結(jié)果1. DDS模塊程序如下:module DDS1(CLK ,CTR,Q);input CLK; input CTR;/input 17:0 BK0; /頻率設(shè)置字/input 3:0 A;

11、/幅值設(shè)置字/input 2:0 BKI0; /初相位設(shè)置字output 7:0 Q; /DDS數(shù)字量輸出wire 17:0 BK0;wire 17:0 BK1;wire 17:0 BK2;wire 17:0 BK3;wire 7:0 addr;wire 7:0 Q0;wire 7:0 Q1;reg 7:0 Q2; assign BK0=17'b000000010000000000;assign BKI2 = BK217:10;/取N位的高M位DFF32 DDF1 (CLK,BK0,BK1);ADD ADD1(CLK,BK1,BK2,BK3); DFF32 DDF2 (CLK,BK3,

12、BK2); /相位累加器ROM10 ROM1 (BKI2,CLK,Q0);/正弦ROM查找表ROM10tri ROM2 (BKI2,CLK,Q1);always (posedge CLK)if (CTR) Q2 <= Q0;else Q2 <= Q1;assign Q = Q2;endmodule仿真結(jié)果如下圖11所示圖11 DDS模塊仿真結(jié)果2.vga顯示模塊module ddsvga (vga_clk,clk,hs,vs,blank_n,red, green, blue, sync_n);input clk;output hs,vs;output blank_n;output9

13、:0 red;output9:0 green;output9:0 blue;output sync_n;output vga_clk;wire r,g,b;wire 3:1 grb;wire vs,hs,sync_n_r;wire fclk,cclk;wire clk_div;wire 7:0 addr;wire 7:0 data;wire 4:0 addrchar;wire 15:0 datachar;integer i;reg 7:0 addr1;reg 4:0 addr1char;reg hs1,vs1;wire 8:0 y_cnt;reg 9:0 xcc;reg 5:0 fs;reg

14、4:0 cc;/hang tong bureg 8:0 ll;/chang tong bureg 3:1 grbp;div_2 div_2(clk,clk_div);ROMsin ROM(addr,clk,data);/testchar testchar(addrchar,clk,datachar);assign vga_clk=clk_div;assign grb2=(grbp2)&hs1&vs1;assign grb3=(grbp3)&hs1&vs1;assign grb1=(grbp1)&hs1&vs1;always (posedge cl

15、k) beginif (fs=53) fs<=0;else fs<=(fs+1'b1);endassign fclk=fs5;always (posedge fclk) beginif (cc=29) cc<=5'b00000;else cc<=cc+1'b1;endassign cclk=cc4;always (posedge cclk) beginif (ll=481) ll<=9'b0;else ll<=ll+1'b1;endassign y_cnt=ll;/生成行同步,場同步信號always (cc or ll

16、) beginif (cc>23) hs1<=1'b0;else hs1<=1'b1;if (ll>479) vs1<=1'b0;else vs1<=1'b1;endalways ( posedge vga_clk) if(blank_n)beginif(xcc=639) xcc<=0;else xcc<=xcc+1'b1;endelse xcc<=0;always(xcc,y_cnt,data) beginif (xcc>=10'd200 && xcc<=10&#

17、39;d455) beginaddr1<=xcc-8'd200; if (y_cnt=9'd300-data) grbp<=3'b001; else grbp<=3'b000; end else begin addr1<=3'b000; grbp <=3'b000; endend/*/always (posedge clk_div) begin if(y_cnt >= 9'd100 && y_cnt <= 9'd115) begin if (xcc = 10'd50

18、0) addr1char <= 0; /求地址 else if (xcc >= 10'd501 && xcc <= 10'd516 ) addr1char<=addr1char+1'b1; end endwire 3:0 dis_bit=10'd115-y_cnt; always (posedge clk_div) /數(shù)據(jù)位 begin grbp<=3'b000;if (y_cnt>=9'd100 && y_cnt<=9'd115 && xcc>=10'd501 && xcc<=10'd516 ) begin if(datachardis_bit) grbp <= 3'b010; /RGB賦值 else grbp <= 3'b000; endend/*/assign

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論