久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

電子設(shè)計大賽:DDS 信號發(fā)生器

時間:2019-05-15 15:21:14下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《電子設(shè)計大賽:DDS 信號發(fā)生器》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《電子設(shè)計大賽:DDS 信號發(fā)生器》。

第一篇:電子設(shè)計大賽:DDS 信號發(fā)生器

DDS 信號發(fā)生器(1022)

產(chǎn)品應(yīng)用: 模擬傳感器信號 重現(xiàn)實際環(huán)境信號 電路功能測試 信號相位調(diào)試 科研與教育 最高輸出頻率 輸出通道數(shù) 采樣率 任意波長度

CH1 CH2MHz 2 100 MSa/s 2 pts – 4kpts 2pts – 1kpts 1 μHzmVpp ~ 10 Vpp(50 Ω),4 mV ~ 20 Vpp(高阻)mVpp ~ 3 Vpp(50 Ω),4 mV ~ 6 Vpp(高阻)14 bits 10 bits

USB Host & Device 無

臺式函數(shù)/任意波形發(fā)生器 寬×高×深=232mm×108mm×288mm 2.7 kg

頻率分辨率 幅度范圍 垂直分辨率

CH1 CH2 CH1 CH2

標(biāo)配接口 選配接口 產(chǎn)品類別 尺寸 重量 產(chǎn)品綜述

函數(shù)/任意波形發(fā)生器采用直接數(shù)字頻率合成(DDS)技術(shù)設(shè)計,能夠產(chǎn)生精確、穩(wěn)定、低失真的輸出信號。產(chǎn)品特性

1.采用先進(jìn)的DDS技術(shù),雙通道輸出,內(nèi)置頻率計,25 MHz最高輸出頻率

2.LCD單色液晶顯示屏

3.5種標(biāo)準(zhǔn)波形及48種預(yù)設(shè)任意波形輸出,可編輯10組4 kpts任意波形

4.豐富的調(diào)制功能:AM、FM、PM、FSK,以及輸出線性/對數(shù)掃描和脈沖串波形5.豐富的接口配置:標(biāo)配USB Host,USB Device

第二篇:DDS函數(shù)信號發(fā)生器的設(shè)計

DDS函數(shù)信號發(fā)生器的設(shè)計、仿真及下載

一、實驗設(shè)計

① 利用DDS(Direct DIgital Frequency Synthesis,即直接數(shù)字頻率合成)技術(shù)產(chǎn)生穩(wěn)定的正弦波,三角波和方波輸出,輸出頻率為10~1000kHz且頻率可調(diào),步進(jìn)為10Hz,1kHz,10kHz,100kHz。

② 用VerilogHDL進(jìn)行建模和模擬仿真,再利用FPGA進(jìn)行實現(xiàn)D/A轉(zhuǎn)換。

③ 下載到DE0板上利用VGA端口的一個四位孔進(jìn)行A/D轉(zhuǎn)換顯示在示波器上。

二、實驗原理

一個直接數(shù)字頻率合成器由相位累加器、波形ROM、D/A轉(zhuǎn)換器和低通濾波器構(gòu)成。DDS的原理框圖如下所示:

圖 1 直接數(shù)字頻率合成器原理圖

其中K為頻率控制字,fc為時鐘頻率,N為相位累加器的字長,D為ROM數(shù)據(jù)位及D/A轉(zhuǎn)換器的字長。相位累加器在時鐘 fc的控制下以步長K作為累加,輸出N位二進(jìn)制碼作為波形ROM的地址,對波形ROM進(jìn)行尋址,波形ROM輸出的幅碼S(n)經(jīng)D/A轉(zhuǎn)換器變成梯形波S(t),再經(jīng)低通濾波器平滑后就可以得到合成的信號波形了。合成的信號波形形狀取決于波形ROM中存放的幅碼,因此用DDS可以產(chǎn)生任意波形。【來自百度】

本設(shè)計中直接利用DE0開發(fā)板通過D/A轉(zhuǎn)換得到輸出波形,省略了低通濾波器這一環(huán)節(jié)。

DDS工作流程示意圖:

DDS的具體實現(xiàn)框圖:

三、實驗內(nèi)容:

1、相位累加器和數(shù)據(jù)鎖存器的設(shè)計

本設(shè)計采用模24的二進(jìn)制累加器和寄存器,其中累加器和寄存器在一個模塊中,只取鎖存數(shù)據(jù)的高十位作為查表的地址值。//地址計數(shù)器模塊;

module counter(clk,fre_word,address);input clk;

//聲明系統(tǒng)時鐘為clk

input [23:0] fre_word;

//聲明24為頻率控制字

output reg [9:0] address;

reg [23:0] phaseadder;always @(posedge clk)begin

phaseadder=phaseadder+fre_word;address=phaseadder[23:14];//地址取輸出鎖存后十位(對應(yīng)波形為一個周期取1024點)

end endmodule2、波形存儲器設(shè)計

本設(shè)計要求DDS系統(tǒng)能輸出方波、三角波及正弦波三種波形。可以調(diào)用FPGA的LPM_ROM模塊制作三張ROM表,地址計數(shù)器可以同時訪問這三張表,再使用數(shù)據(jù)選擇器輸出指定波形。實際上,方波,三角波的實現(xiàn)算法比較簡單,所以只把正弦波的算法用ROM實現(xiàn)。//方波產(chǎn)生模塊

module squwave(clk,address,qsquare);

input clk;

//系統(tǒng)時鐘;input [9:0] address;

//10位地址輸入信號;

output reg [7:0] qsquare;//輸出方波幅度信號8位寬送至DAC

always @(posedge clk)

if(address<=10'b01_1111_1111)qsquare[7:0]=8'b1111_1111;else qsquare[7:0]=8'b0000_0000;endmodule

//三角波產(chǎn)生模塊

module triawave(clk,address,qtriangle);input clk;

input [9:0] address;output reg [7:0] qtriangle;always @(posedge clk)begin if(address<=10'b01_1111_1111)qtriangle[7:0]=address[8:1];else qtriangle[7:0]=~address[8:1];end endmodule

//正弦波形文件制作(C語言)#include #include void main(){ int s;int i;FILE* fp;fp=fopen(“1024.mif”,“w+”);fprintf(fp,“--MAX+plusII-generated Memory Initialization Filen”);fprintf(fp,“--By 00022809nnnnn”);fprintf(fp,“WIDTH=8;nn”);fprintf(fp,“DEPTH=1024;nn”);fprintf(fp,“ADDRESS_RADIX=HEX;nn”);fprintf(fp,“DATA_RADIX=HEX;nn”);fprintf(fp,“CONTENT BEGINn”);for(i=0;i<1024;i++){

s=128+sin(atan(1.0)*8/1024*i)*127;

fprintf(fp,“%xt:t%x;n”);} fprintf(fp,“END;n”);fclose(fp);} 生成mif格式文件,然后可以調(diào)用LPM_ROM模塊實現(xiàn)正弦波產(chǎn)生模塊。

3、波形的綜合輸出

DDS系統(tǒng)中產(chǎn)生了三種波形,但是在每種情況下只輸出一種波形,因此要設(shè)計一個多路選擇器完成這種功能。輸出何種波形由外部開關(guān)控制。//boxing.v module boxing(clk,address,wavemode,wavevalue);

input clk;

input [1:0] wavemode;

//波形模式信號

input [9:0] address;

//十位地址輸入信號

output [7:0] wavevalue;

//對應(yīng)不同的波形輸出

reg [7:0] wavevalue;wire [7:0] q,qsquare,qtriangle;sinwave a(address,clk,q);

//調(diào)用正弦波產(chǎn)生模塊

squwave b(clk,address,qsquare);//調(diào)用方波產(chǎn)生模塊

triawave c(clk,address,qtriangle);//調(diào)用三角波產(chǎn)生模塊 always @(posedge clk)case(wavemode)2'b01:wavevalue=q;//01代表正弦波

2'b10:wavevalue=qsquare;

//10代表方波

2'b11:wavevalue=qtriangle;

//11代表三角波

endcase endmodule

4、工作模式控制模塊的設(shè)計

本設(shè)計包括了開關(guān)模塊和工作狀態(tài)轉(zhuǎn)換模塊。先將開關(guān)調(diào)好狀態(tài),每按一次鍵程序根據(jù)所選狀態(tài)進(jìn)行工作。(由于DE0板上時鐘為50MHz則變化較快,所以增加一個控制鍵,工程模式狀態(tài)由此鍵控制。)//控制模塊

module control(clk1,keyin,wavemode,length,single_state,single_frc);

input [3:0] keyin;

//四位狀態(tài)信號輸入

input clk1;

//按鍵控制狀態(tài)的輸入

input [1:0]single_state;

//輸入的波形模式信號

input [1:0]single_frc;

//頻率及步進(jìn)控制信號

output reg [1:0] wavemode;

//波形模式輸出信號

output reg [23:0] length;

//輸出波形控制字

reg [3:0] key;

always @(posedge clk1)

begin

key=keyin;case(key)4'b0001: begin wavemode=2'b01;length=24'd3;end

4'b0010: begin case(single_state)

2'b01:wavemode=2'b01;

2'b10:wavemode=2'b10;

2'b11:wavemode=2'b11;

default: begin wavemode=2'b01;end

endcase

end

4'b0100: begin case(single_frc)

1:length=24'd3;

//10~10kHz

2:length=24'd3355;//10kHz~100kHz

3:length=24'd33554;//100kHz~2000kHz

default: begin length=24'd671088;end //大于2000kHz

endcase

end

4'b1000: begin case(single_frc)

0:length=length+24'd33554;

//步進(jìn)為100kHz

1:length=length+24'd3;

//

10Hz

2:length=length+24'd336;

//

1kHz

3:length=length+24'd3355;//

10kHz

endcase

end

endcase

end

endmodule

5、DDS函數(shù)信號發(fā)生器頂層設(shè)計

頂層文件是將上述幾個模塊聯(lián)系在一起就可以得到DDS核心實現(xiàn)模塊。//頂層文件

module dds(clk,clk1,keyin,wavevalue,single_state,single_frc);input clk,clk1;

//系統(tǒng)時鐘和控制按鍵

input [3:0] keyin;

//四位狀態(tài)輸入信號

input [1:0]single_frc;

//頻率及步進(jìn)輸入模式信號

input [1:0]single_state;

//波形選擇開關(guān)

output [7:0] wavevalue;

//輸出波形信號

wire [9:0] address;

wire [1:0] wavemode;wire [23:0] length;control u1(clk1,keyin,wavemode,length,single_state,single_frc);//調(diào)用其他三個模塊

counter u2(clk,length,address);boxing u3(clk,address,wavemode,wavevalue);endmodule

五、實驗操作

操作軟件QuartusII9.1及Modelsim,這兩種軟件的用法在此不再細(xì)談。下載后示波器顯示如下:

六、實驗總結(jié):

做完這次實驗,我感覺DDS對于我們這些初學(xué)者來說一時很難接受,但是我們需要通過自己以及他人的見解來不斷消化知識,一點一點去理解。最后做出來波形的時候確實很高興,這是對我們這幾天的學(xué)習(xí)的肯定,以后還要不斷的去學(xué)習(xí)去理解FPGA以及VerilogHDL,堅持不懈,不管它有多難。

第三篇:電子設(shè)計大賽信號發(fā)生器心得總結(jié)(共)

電子設(shè)計大賽信號發(fā)生器心得總結(jié)

電子設(shè)計大賽結(jié)束了半個月了,也就是我們的培訓(xùn)過去半個多月了。回頭想想還是記憶猶新。這一個多月是那么短暫,卻又是那么的充實,空前的充實,比奮戰(zhàn)高考是還要緊張。歸根結(jié)底是我們學(xué)到了很多知識,特別是實際的動手能力。這是我們平時學(xué)不到的,或者說是能學(xué)

到但條件是很有限的。

我先從幾方面談?wù)勎业氖斋@。

(1)和老師之間:

和老師難得有這么親近的機會,指導(dǎo)我們的幾個老師只是平時見過,有的教過我們課,只是授課與聽課的關(guān)系。而這次大賽是我們師生之間有個更深的一層含義—朋友,合作者。每個老師都是給我們掏心窩子的交流,督促我們學(xué)習(xí),真的是想讓我們學(xué)到點東西。老師一再強調(diào)要我們和他們交流,有時甚至是老師主動找我們學(xué)生交流的。最后做項目的幾個晚上大部分老師是陪我們一起通宵的。實際上即便是我們充實的學(xué)了一個月,以我們的能力完成電子設(shè)計大賽的題可以說是不可能的。所以老師一再強調(diào)要和他們交流。最后完成項目還是靠老師的幫助,關(guān)鍵是我們必須參與進(jìn)去,過程一定要有。完成項目的過程中會遇到種種問題,和老師一起解決問題的過程,是最有價值的。

(2)和同學(xué)之間

我是計算機班的,最后參賽的共有18人,其中15人是醫(yī)電班的,三人是我班的。參賽的都是相對比較優(yōu)秀的同學(xué)。有的以前甚至沒見過。現(xiàn)在在一起上課,討論問題,吃飯。象一個大家庭。有問題先和別的同學(xué)討論,解決不了再去找老師。大家共同分享解決問題的方法經(jīng)驗。自己相處來的好方法和同學(xué)一起分享一下,一來別人會說我聰明,二來別人想出來好方法也會和我分享的,這樣就形成了良性循環(huán)的過程。這次大賽是和理工大學(xué)的本科生一起上課的。我們是大二-大三,他們是大三-大四,水平也相對比我們高,我有問題還是經(jīng)常請教他們的。還好他們都挺熱心的。我和一個叫張書平的挺熟的,他很聰明,學(xué)東西上手很快,和他一起學(xué)習(xí)也刺激的我反應(yīng)變快了。

(3)和組員之間

電子設(shè)計大賽我是和我班的曲世靜劉友平一組的。和他們相對熟一點。現(xiàn)在想想感覺挺親的。三個人合作一個項目首先要團(tuán)結(jié),其次才是分工。我們?nèi)司褪且粋€團(tuán)隊,一個整體。一個項目需要一個團(tuán)隊來完成。也就是人們常說的teamwork.。這是我們第一次團(tuán)隊合作的經(jīng)歷,以前只是概念層的teamwork,有了這次經(jīng)歷,就可以說是實踐層的teamwork了。再次強調(diào)一個團(tuán)隊就是一個整體,首先要團(tuán)結(jié)一致,再是合理分工。團(tuán)結(jié)不只是心理上團(tuán)結(jié)更重要的是向一個方向共同努力。合理分工真諦是同一時間每個人并行的工作。有時卻不得不串行工作。既是下一步工作是在上一部工作必須完成的基礎(chǔ)上才能開始著手的,因為完成一個項目往往有時間限制的。所以每一步都必須抓緊時間來完成,否則會耽誤下一步的工作的。通宵也是常理之中的。這是其他組員在適當(dāng)?shù)那闆r下先休息,說不定下一個晚上你就要熬夜甚至

通宵了。

這次培訓(xùn)我是數(shù)電組的。我們主要學(xué)的是可編程邏輯器件FPGA(field programmable gate array)的應(yīng)用。FPGA是一種集成度很高的PLD(編程邏輯器)。在一塊FPGA芯片上可以實現(xiàn)各種數(shù)字電FPGA的功能往往不局限與數(shù)字電路上,它的強大功能主要用于設(shè)計數(shù)字電子系統(tǒng),來優(yōu)化算法。當(dāng)然能實現(xiàn)常見的組合輯電路,時序邏輯電路。所有工作是在QUARTUS 軟件開發(fā)平臺上完成的。實現(xiàn)過程可以通過軟件編程或者圖形輸入法完成軟件系統(tǒng),然后進(jìn)

行編譯,仿真正確后下載到FPGA芯片上,該芯片就能實現(xiàn)所要的邏輯功能。

剛接觸FPGA是李丕丁博士給我們介紹VHDL(V-hard description language)硬件描述語言開始的。幾乎所有的電子系統(tǒng)都可以用VHDL編出來。當(dāng)天晚上李老師給我們留的作業(yè)是編出一個象五分頻,占空比2:3的分頻計數(shù)器出來。因為是剛接觸一天做起來還是有難度的。自己先試著編了一下,結(jié)果沒能實現(xiàn),就和本科的同學(xué)交流討論了一下,取了點經(jīng)驗,自己也就做出來了。第二天李老師給我們畫了四個D觸發(fā)器,連接起來是一個移位寄存器,讓我們用VHDL來實現(xiàn),一開始真的是一頭霧氣水,不知道如何下手。其他同學(xué)也是這樣的反映。見到這種情況,老師們商量了一下,再把基礎(chǔ)的給我們講一下是必要的。所以我們就用VHDL從與,或,非門等基礎(chǔ)的開始一一練習(xí),再到編碼器,譯碼器,選擇器計數(shù)器。一直練習(xí)到這些基本的邏輯都能自己獨立編出來。這樣才對自己有了信心,更進(jìn)一步了解了VHDL。平時練習(xí)的很多還給自己出題目做,例如完成一個并入串出的移位寄存器等等。

因為FPGA的輸入輸出,以及處理的全是數(shù)字量,既是邏輯高低電平0,1。所以單獨一塊FPGA芯片是不能完成項目的。要完成的項目都會有模擬量的,比如再示波器上看到的某個波形就是一般都是模擬量。這就用到A D,DA轉(zhuǎn)換,必須也要把這個掌握起來,第一周的后三天就和單片機組的一起聽莫老師講的相關(guān)的內(nèi)容。是張老師給我們講的有關(guān)下載的知識,下載的應(yīng)用讓我們見識到了它的功能。下載就是把從軟件編好的程序下載到FPGA芯片上,下載線

一端接到電腦的并行IO口上,另一端接到FPGA芯片上。操做軟件就能實現(xiàn)下載。

卜老師給我們講了quartus的圖形輸入法,這種方法很好用,就是在軟件平臺上搭建數(shù)字電路。Quartus 自帶的元件庫是相當(dāng)豐富的,常用的,不常用的,有盡有。從元件庫中調(diào)出需用的元件,然后連接,這種方法比在面板上方便多了。電路連接好后,編譯調(diào)試,仿真成功

后下載到FPGA上就能實現(xiàn)所要的功能。

印象最深的的是DDS原理的應(yīng)用。DDS是直接數(shù)字頻率合成技術(shù),通過這種技術(shù)能得到任意頻率的各種波型。基本原理是頻率初始字輸入到一累加器,累加器做循環(huán)累加,累加器的高N位作為讀取ROM的地址。ROM的M個存儲單元中存放波型的采樣點。讀取采樣值然后輸出。通過改變頻率初始字的改變,就能實現(xiàn)輸出頻率的改變。我們練習(xí)國05年電子設(shè)計大賽的A題-正弦信號發(fā)生器,要求產(chǎn)生100Hz-100MHz的正弦信號頻率步進(jìn)為100Hz。這道題就

是DDS的原理。

電子設(shè)計大賽我組是單單數(shù),是六組唯一沒有模電學(xué)生的。拿到題目后針對我組的情況我們選擇了信號發(fā)生器這道題目,要去產(chǎn)生方波,正弦波,三角波,頻率范圍為10hz-10mhz,低頻段10hz-khz,高頻段1khz-10mhz,步進(jìn)為1khz,波形發(fā)生系統(tǒng)正好我們練習(xí)過,和05年正弦信號發(fā)生器類似,但也有不同,要求產(chǎn)生3種波形,又要分高低頻段,這些在軟件上實現(xiàn)難度不大,用選擇器高低頻段,內(nèi)涵在于用累加器的選擇作為地址信號的選擇,波形控制是把3種波形的采樣點存到3個rom中,用選擇信號來選擇波形,難點在于控制字的輸入,累加器要接收23位數(shù)據(jù)。方案1采取23根數(shù)據(jù)位,與單片機的io口連接,但單片機資源有限,所以不能采取此方案。方案2采取分高低中3位接收數(shù)據(jù)在fpga內(nèi)部配置3個8位鎖存器,每個鎖存器的時鐘信號通過單片機做為握手信號來提供,3個8為鎖存器的輸出再接到一個鎖存器上,鎖存器的24為輸出就能得到需要的頻率控制字。

在fpg內(nèi)部握手信號為hold,波形控制信號為s2(1,0),高低頻段控制信號為s1,這幾個信號分別由單片機提供。在調(diào)試過程中遇到了種種困難,其中第一個為數(shù)據(jù)不能讀入,最后找出來是hold信號沒有起作用,又來又發(fā)現(xiàn)高頻段波形能出來,但低頻段不能出來,這個問題讓人頭痛,高頻段都出來了,低頻段不可能出不來,因為原理是一樣的,這種情況最可能的原因還是頻率控制字的錯誤,經(jīng)反復(fù)檢驗,發(fā)現(xiàn)問題出在單片機額po口的分時復(fù)用上,po口除了發(fā)送數(shù)據(jù)還要進(jìn)行鍵盤掃描,fpga把po對鍵盤掃描的信號也接收了過來,肯定會出錯的。因為fpga反應(yīng)很快,采取措施是修改匯編程序,延長po口對鍵盤的掃描到1妙,最后得到正確結(jié)果,下一步工作是輸出的波形信號接到da上,因為輸出最大頻率要10mhz,考慮采用高速adv7120,數(shù)據(jù)輸入為r(7…0)b(7…0),g(7…0),這塊芯片主要用于視頻轉(zhuǎn)換,能滿足高速要求,但是控制信號太多,再焊到pcb板上很容易出錯,最后放棄使用adv7120,采樣我們熟悉的da0832,fpga的8為波形信號作為da的輸入wr信號由fpga提供,其他信號由單片機提供。Fpga每輸出8為波形信號一次,wr信號就接收延時1ms的低電平,就能完成一次轉(zhuǎn)換,輸出一位的模擬信號pcb焊接好后,進(jìn)行統(tǒng)調(diào),可喜的是方波指標(biāo)全能達(dá)到,三角波正弦波的頻率能完全符合要求,但波形明顯失真,原因出在pcb上電

路連接不理想,但當(dāng)時已經(jīng)沒有時間在修改了,有間的話肯定能做好。

現(xiàn)在已經(jīng)結(jié)束了,收獲的結(jié)果并不重要,收獲的整個過程才是有價值的,我們從這個過程鍛煉了很多能力,有的極其深遠(yuǎn)的意義。這個過程使我對我的將來有了一個新的認(rèn)識一個新的定位,也為我指明了方向。因為我對這方面感興趣,我有興趣繼續(xù)研究,有斗志躋身于電子

這個行業(yè)。

最后感謝老師。首先,感謝老師給我的這次機會,我很珍惜。

再感謝各位老師的辛勤栽培,在這里祝愿每個老師有個好身體,每天都有好運氣。

第四篇:EDA課程設(shè)計——基于DDS的正弦信號發(fā)生器設(shè)計(模版)

頂層文件 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY DDS IS

PORT(K:IN STD_LOGIC_VECTOR(9 DOWNTO 0);

EN:IN STD_LOGIC;

RESET:IN STD_LOGIC;

CLK:IN STD_LOGIC;

Q:OUT STD_LOGIC_VECTOR(8 DOWNTO 0));END ENTITY DDS;ARCHITECTURE BEHAVE OF DDS IS

COMPONENT SUM99 IS

PORT(K:IN STD_LOGIC_VECTOR(9 DOWNTO 0);

EN:IN STD_LOGIC;

RESET:IN STD_LOGIC;

CLK:IN STD_LOGIC;

OUT1:OUT STD_LOGIC_VECTOR(9 DOWNTO 0));

END COMPONENT SUM99;

COMPONENT REG1 IS

PORT(D:IN STD_LOGIC_VECTOR(9 DOWNTO 0);

CLK:IN STD_LOGIC;

Q:OUT STD_LOGIC_VECTOR(9 DOWNTO 0));

END COMPONENT REG1;

COMPONENT ROM IS

PORT(CLK:IN STD_LOGIC;

ADDR:IN STD_LOGIC_VECTOR(9 DOWNTO 0);

OUTP:OUT STD_LOGIC_VECTOR(8 DOWNTO 0));

END COMPONENT ROM;

COMPONENT REG2 IS

PORT(D:IN STD_LOGIC_VECTOR(8 DOWNTO 0);

CLK:IN STD_LOGIC;

Q:OUT STD_LOGIC_VECTOR(8 DOWNTO 0));

END COMPONENT REG2;

SIGNAL S1:STD_LOGIC_VECTOR(9 DOWNTO 0);

SIGNAL S2:STD_LOGIC_VECTOR(9 DOWNTO 0);

SIGNAL S3:STD_LOGIC_VECTOR(8 DOWNTO 0);

BEGIN

U0:SUM99

PORT MAP(K=>K,EN=>EN,RESET=>RESET,CLK=>CLK,OUT1=>S1);

U1:REG1 PORT MAP(D=>S1,CLK=>CLK,Q=>S1);

U2:ROM PORT MAP(ADDR=>S2,CLK=>CLK,OUTP=>S3);

U3:REG2 PORT MAP(D=>S3,CLK=>CLK,Q=>Q);END ARCHITECTURE BEHAVE;

正弦查找表 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ROM IS PORT(ADDR:IN STD_LOGIC_VECTOR(6 DOWNTO 0);CLK:IN STD_LOGIC;OUTP:OUT SIGNED(7 DOWNTO 0));END ENTITY ROM;ARCHITECTURE ART OF ROM IS BEGIN PROCESS(CLK)IS BEGIN IF(CLK'EVENT AND CLK='1')THEN CASE ADDR IS WHEN “0000000”=>OUTP<=“00000000”;WHEN “0000001”=>OUTP<=“00000010”;WHEN “0000010”=>OUTP<=“00000011”;WHEN “0000011”=>OUTP<=“00000101”;WHEN “0000100”=>OUTP<=“00000110”;

WHEN “0000101”=>OUTP<=“00001000”;WHEN “0000110”=>OUTP<=“00001001”;WHEN “0000111”=>OUTP<=“00001011”;WHEN “0001000”=>OUTP<=”00001101“;WHEN ”0001001“=>OUTP<=”00001110“;WHEN ”0001010“=>OUTP<=”00010000“;WHEN ”0001011“=>OUTP<=”00010001“;WHEN ”0001100“=>OUTP<=”00010011“;WHEN ”0001101“=>OUTP<=”00010100“;WHEN ”0001110“=>OUTP<=”00010110“;WHEN ”0001111“=>OUTP<=”00010111“;WHEN ”0010000“=>OUTP<=”00011001“;WHEN ”0010001“=>OUTP<=”00011011“;

WHEN ”0010010“=>OUTP<=”00011100“;WHEN ”0010011“=>OUTP<=”00011110“;WHEN ”0010100“=>OUTP<=”00011111“;WHEN ”0010101“=>OUTP<=”00100001“;WHEN ”0010110“=>OUTP<=”00100010“;WHEN ”0010111“=>OUTP<=”00100100“;WHEN ”0011000“=>OUTP<=”00100101“;WHEN ”0011001“=>OUTP<=”00100111“;

WHEN ”0011010“=>OUTP<=”00101001“;WHEN ”0011011“=>OUTP<=”00101010“;WHEN ”0011100“=>OUTP<=”00101100“;WHEN ”0011101“=>OUTP<=”00101101“;WHEN ”0011110“=>OUTP<=”00101111“;WHEN ”0011111“=>OUTP<=”00110000“;WHEN ”0100000“=>OUTP<=”00110010“;WHEN ”0100001“=>OUTP<=”00110011“;WHEN ”0100010“=>OUTP<=”00110101“;WHEN ”0100011“=>OUTP<=”00110110“;WHEN ”0100100“=>OUTP<=”00111000“;WHEN ”0100101“=>OUTP<=”00111001“;WHEN ”0100110“=>OUTP<=”00111011“;WHEN ”0100111“=>OUTP<=”00111100“;WHEN ”0101000“=>OUTP<=”00111110“;WHEN ”0101001“=>OUTP<=”00111111“;WHEN ”0101010“=>OUTP<=”01000001“;WHEN ”0101011“=>OUTP<=”01000011“;WHEN ”0101100“=>OUTP<=”01000100“;WHEN ”0101101“=>OUTP<=”01000110“;WHEN ”0101110“=>OUTP<=”01000111“;WHEN ”0101111“=>OUTP<=”01001001“;

WHEN ”0110000“=>OUTP<=”01001010“;WHEN ”0110001“=>OUTP<=”01001100“;WHEN ”0110010“=>OUTP<=”01001101“;WHEN ”0110011“=>OUTP<=”01001111“;WHEN ”0110100“=>OUTP<=”01010000“;WHEN ”0110101“=>OUTP<=”01010001“;WHEN ”0110110“=>OUTP<=”01010011“;WHEN ”0110111“=>OUTP<=”01010100“;WHEN ”0111000“=>OUTP<=”01010110“;WHEN ”0111001“=>OUTP<=”01010111“;WHEN ”0111010“=>OUTP<=”01011001“;WHEN ”0111011“=>OUTP<=”01011010“;WHEN ”0111100“=>OUTP<=”01011100“;WHEN ”0111101“=>OUTP<=”01011101“;WHEN ”0111110“=>OUTP<=”01011111“;WHEN ”0111111“=>OUTP<=”01100000“;WHEN ”1000000“=>OUTP<=”01100010“;WHEN ”1000001“=>OUTP<=”01100011“;WHEN ”1000010“=>OUTP<=”01100100“;WHEN ”1000011“=>OUTP<=”01100110“;WHEN ”1000100“=>OUTP<=”01100111“;WHEN ”1000101“=>OUTP<=”01101001“;

WHEN ”1000110“=>OUTP<=”01101010“;WHEN ”1000111“=>OUTP<=”01101100“;WHEN ”1001000“=>OUTP<=”01101101“;WHEN ”1001001“=>OUTP<=”01101110“;WHEN ”1001010“=>OUTP<=”01110000“;WHEN ”1001011“=>OUTP<=”01110001“;WHEN ”1001100“=>OUTP<=”01110011“;WHEN ”1001101“=>OUTP<=”01110100“;WHEN ”1001110“=>OUTP<=”01110101“;WHEN ”1001111“=>OUTP<=”01110111“;WHEN ”1010000“=>OUTP<=”01111000“;WHEN ”1010001“=>OUTP<=”01111010“;WHEN ”1010010“=>OUTP<=”01111011“;WHEN ”1010011“=>OUTP<=”01111100“;WHEN ”1010100“=>OUTP<=”01111110“;WHEN ”1010101“=>OUTP<=”01111111“;WHEN ”1010110“=>OUTP<=”10000000”;WHEN “1010111”=>OUTP<=“10000010”;WHEN “1011000”=>OUTP<=“10000011”;WHEN “1011001”=>OUTP<=“10000100”;WHEN “1011010”=>OUTP<=“10000110”;WHEN “1011011”=>OUTP<=“10000111”;

WHEN “1011100”=>OUTP<=“10001000”;WHEN “1011101”=>OUTP<=“10001010”;WHEN “1011110”=>OUTP<=“10001011”;WHEN “1011111”=>OUTP<=“10001100”;WHEN “1100000”=>OUTP<=“10001110”;WHEN “1100001”=>OUTP<=“10001111”;WHEN “1100010”=>OUTP<=“10010000”;WHEN “1100011”=>OUTP<=“10010010”;WHEN “1100100”=>OUTP<=“10010011”;WHEN “1100101”=>OUTP<=“10010100”;WHEN “00001100110”=>OUTP<=“10010101”;WHEN “1100111”=>OUTP<=“10010111”;WHEN “1101000”=>OUTP<=“10011000”;WHEN “1101001”=>OUTP<=“10011001”;WHEN “1101010”=>OUTP<=“10011010”;WHEN “1101011”=>OUTP<=“10011100”;WHEN “1101100”=>OUTP<=“10011101”;WHEN “1101101”=>OUTP<=“10011110”;WHEN “1101110”=>OUTP<=“10011111”;WHEN “1101111”=>OUTP<=“10100001”;WHEN “1110000”=>OUTP<=“10100010” WHEN “1110001”=>OUTP<=“10100011”;

WHEN “1110010”=>OUTP<=“10100100”;WHEN “1110011”=>OUTP<=“10100101”;WHEN “1110100”=>OUTP<=“10100111”;WHEN “1110101”=>OUTP<=“10101000”;WHEN “1110110”=>OUTP<=“10101001”;WHEN “1110111”=>OUTP<=“10101010”;WHEN “1111000”=>OUTP<=“10101011”;WHEN “1111001”=>OUTP<=“10101100”;WHEN “1111010”=>OUTP<=“10101110”;WHEN “1111011”=>OUTP<=“10101111”;WHEN “1111100”=>OUTP<=“10110000”;WHEN “1111101”=>OUTP<=“10110001”;WHEN “1111110”=>OUTP<=“10110010”;WHEN “1111111”=>OUTP<=“10110011”;WHEN OTHERS=>OUTP<=“ 00000000”;

END CASE;

END IF;END PROCESS;END ARCHITECTURE ART;

DAC 0832的VHDL程序 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY DAC0832 IS PORT(CLK:IN STD_LOGIC;

RST:IN STD_LOGIC;

ILE:OUT STD_LOGIC;

CONT:OUT STD_LOGIC;DATA_OUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END ENTITY;ARCHITECTURE BEHAVE OF DAC0832 IS SIGNAL Q:INTEGER RANGE 0 TO 63;SIGNAL DATA:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGIN

PROCESS(CLK)

BEGIN

IF RST='1'THEN Q<=0;ELSIF CLK'EVENT AND CLK='1'THEN

IF DATA=“11111111”THEN DATA<=“00000000”;

ELSE DATA<=DATA+1;

END IF;

ELSE Q<=Q+1;

END IF;

END PROCESS;ILE<='1';CONT<='0';DATA_OUT<=DATA;END ARCHITECTURE BEHAVE;

頻率控制字 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY REG0 IS

PORT(CLK:IN STD_LOGIC;

LOCK:IN STD_LOGIC;

Q:OUT STD_LOGIC_VECTOR(9 DOWNTO 0));END ENTITY REG0;ARCHITECTURE ART OF REG0 IS BEGIN

PROCESS(CLK)

BEGIN

IF(CLK'EVENT AND CLK='1')THEN

IF LOCK='1'THEN

Q<=“0000011111”;

END IF;

END IF;

END PROCESS;END ARCHITECTURE ART;

相位寄存器 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY REG1 IS

PORT(D:IN STD_LOGIC_VECTOR(9 DOWNTO 0);

CLK:IN STD_LOGIC;

Q:OUT STD_LOGIC_VECTOR(9 DOWNTO 0));END ENTITY REG1;ARCHITECTURE BEHAVE OF REG1 IS BEGIN

PROCESS(CLK)IS

BEGIN

IF(CLK'EVENT AND CLK='1')THEN

Q<=D;

END IF;

END PROCESS;END ARCHITECTURE BEHAVE;

輸出數(shù)據(jù)寄存器 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY REG2 IS PORT(D:IN STD_LOGIC_VECTOR(8 DOWNTO 0);

CLK:IN STD_LOGIC;

Q:OUT STD_LOGIC_VECTOR(8 DOWNTO 0));END ENTITY REG2;ARCHITECTURE BEHAVE OF REG2 IS BEGIN

PROCESS(CLK)IS

BEGIN

IF(CLK'EVENT AND CLK='1')THEN

Q<=D;

END IF;

END PROCESS;END ARCHITECTURE BEHAVE;

相位累加器 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY SUM99 IS

PORT(K:IN STD_LOGIC_VECTOR(9 DOWNTO 0);

CLK:IN STD_LOGIC;

EN:IN STD_LOGIC;

RESET:IN STD_LOGIC:

OUT1:OUT STD_LOGIC_VECTOR(9 DOWNTO 0));END ENTITY SUM99;ARCHITECTURE BEHAVE OF SUM99 IS

SIGNAL TEMP:STD_LOGIC_VECTOR(9 DOWNTO 0);BEGIN

PROCESS(CLK,EN,RESET)IS

BEGIN

IF RESET='1'THEN

TEMP<=“0000000000”;

ELSE

IF CLK'EVENT AND CLK='1'THEN

IF EN='1'THEN

TEMP<=TEMP+K;

END IF;

END IF;

END IF;

OUT1<=TEMP;

END PROCESS;END ARCHITECTURE BEHAVE;

圖1.頂層電路原理圖

圖2.dds波形仿真圖

圖3.rom波形仿真圖

圖4.相位寄存器reg1仿真波形圖

圖5.寄存器reg2的波形仿真

圖6.相位累加器仿真波形圖

圖7.優(yōu)化過程及對比波形(A——H)

圖A

圖B

圖C

圖D

圖E 23

圖F

圖G

圖H

第五篇:函數(shù)信號發(fā)生器設(shè)計

函數(shù)信號發(fā)生器設(shè)計設(shè)計任務(wù)與要求

⑴ 設(shè)計并制作能產(chǎn)生正弦波、矩形波(方波)和三角波(鋸齒波)的函數(shù)發(fā)生器,本信號發(fā)生器可以考慮用專用集成芯片(如5G8038等)為核心實現(xiàn)。⑵ 信號頻率范圍: 1Hz∽100kHz;

⑶ 頻率控制方式:

① 手控通過改變RC參數(shù)實現(xiàn);

② 鍵控通過改變控制電壓實現(xiàn);

③ 為能方便地實現(xiàn)頻率調(diào)節(jié),建議將頻率分檔;

⑷ 輸出波形要求

① 方波上升沿和下降沿時間不得超過200nS,占空比在48%∽50%之間;② 非線性誤差≤2%;

③ 正弦波諧波失真度≤2%;

⑸ 輸出信號幅度范圍:0∽20V;

⑹ 信號源輸出阻抗:≤1Ω;

⑺ 應(yīng)具有輸出過載保護(hù)功能;

⑻ 具有數(shù)字顯示輸出信號頻率和電壓幅值功能。

下載電子設(shè)計大賽:DDS 信號發(fā)生器word格式文檔
下載電子設(shè)計大賽:DDS 信號發(fā)生器.doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報,并提供相關(guān)證據(jù),工作人員會在5個工作日內(nèi)聯(lián)系你,一經(jīng)查實,本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

相關(guān)范文推薦

    DSP-任意信號發(fā)生器

    任意信號發(fā)生器 實驗報告 姓 名: 學(xué)院(系): 專業(yè): 組員: 指導(dǎo)老師: 學(xué) 號: 電子工程與光電技術(shù)學(xué)院 通信工程 一、實驗?zāi)康?1.熟悉 DSP 硬件開發(fā)平臺; 2.熟悉 DSP 集成開發(fā)......

    函數(shù)信號發(fā)生器論文

    函數(shù)信號發(fā)生器的設(shè)計與制作 系別:電子工程系 專業(yè):應(yīng)用電子技術(shù) 屆:XX屆 姓名:XXX 摘 要 本系統(tǒng)以ICL8038集成塊為核心器件,制作一種函數(shù)信號發(fā)生器,制作成本較低。適合學(xué)生學(xué)......

    函數(shù)信號發(fā)生器設(shè)計任務(wù)書

    目錄 一、設(shè)計的任務(wù)和要求............................................................................ 二、已知條件...................................................

    信號發(fā)生器設(shè)計(推薦)

    模擬課程設(shè)計題 信號發(fā)生器設(shè)計 設(shè)計一個能夠輸出正弦波、三角波和矩形波的信號源電路,電路形式自行選擇。輸出信號的頻率可通過開關(guān)進(jìn)行設(shè)定,具體要求如下: (1)輸出信號的頻率范......

    簡易信號發(fā)生器設(shè)計

    《單片機原理及應(yīng)用》課程設(shè)計任務(wù)書 課程設(shè)計題目:簡易信號發(fā)生器設(shè)計 一、設(shè)計目的和要求 (一)、設(shè)計目的 通過設(shè)計簡易信號發(fā)生器,完成系統(tǒng)設(shè)計、編碼、調(diào)試及維護(hù)工作的實踐......

    函數(shù)信號發(fā)生器課程設(shè)計

    一 緒論 1.1 函數(shù)信號發(fā)生器的應(yīng)用意義 函數(shù)發(fā)生器一般是指能自動產(chǎn)生正弦波、三角波、方波及鋸齒波、階梯波等電壓波形的電路或儀器。根據(jù)用途不同,有產(chǎn)生三種或多種波形的......

    低頻信號發(fā)生器2

    低頻信號發(fā)生器 目錄 產(chǎn)品簡介:低頻信號發(fā)生器采用單片機波形合成發(fā)生器產(chǎn)生高精度,低失真的正弦波電壓,可用于校驗頻率繼電器,同步繼電器等,也可作為低頻變頻電源使用。以單片機......

    DSP音頻信號發(fā)生器

    大學(xué)課程設(shè)計報告 音頻信號發(fā)生器 設(shè) 計 人: 專業(yè): 班級: 學(xué)號: 指導(dǎo)教師: 二零一四年 付路 電子信息工程 電子111501 201115020104 寧愛平目錄 一. 引言-------------第2頁 二.......

主站蜘蛛池模板: 亚洲国产精品无码一区二区三区| 国内精品久久久人妻中文字幕| 性欧美videofree高清精品| 精品精品国产自在97香蕉| 小辣椒福利视频精品导航| 亚洲一区二区三区尿失禁| 国产精品爽爽久久久久久| 香蕉久久国产超碰青草| 国产六月婷婷爱在线观看| 狠狠色噜噜狠狠狠狠97首创麻豆| 无码国产精品久久一区免费| 久热这里只有精品99国产6| 一本av高清一区二区三区| 精品欧洲av无码一区二区三区| 制服视频在线一区二区| 88久久精品无码一区二区毛片| 亚洲综合色视频在线观看| 97久久久久人妻精品专区| 国产内射老熟女aaaa| 欧美喷潮最猛视频| 婷婷六月亚洲中文字幕| 护士人妻hd中文字幕| 国产成人精品电影在线观看| 久久国产精品国产四虎90后| 日本中文字幕乱码免费| 国产亚洲精品久久午夜玫瑰园| 国产精自产拍久久久久久蜜| 无码永久成人免费视频| 欧美一道本一区二区三区| 中文区中文字幕免费看| 国产精品福利2020久久| 精品久久久噜噜噜久久| 久久超碰97人人做人人爱| 亚洲av成人无码网天堂| 日本免费一区二区三区高清视频| 国产麻豆精品乱码一区| 中文字幕一区二区三区精彩视频| 久久不见久久见www免费视频| 丰满熟妇人妻中文字幕| 国产精品久久久久久av福利| av无码久久久久不卡蜜桃|