FPGA任意波形函數(shù)信號(hào)發(fā)生器的設(shè)計(jì)
平臺(tái): quartus II 13.0
仿真:signal tap II
語言:VHDL
方式:原理圖bdf輸入
芯片:Cyclone IV E: EP4CE6E22C8
實(shí)驗(yàn)?zāi)康?/h2>
設(shè)計(jì)一任意波函數(shù)信號(hào)發(fā)生器,具備以下兩功能:
①能輸出標(biāo)準(zhǔn)正弦波波形。
②能輸出任意函數(shù)波形。
一、實(shí)驗(yàn)系統(tǒng)框圖
二、頂層設(shè)計(jì)文件
創(chuàng)建工程,新建bdf文件,繪制原理圖
三、用到的宏模塊介紹
首先明確實(shí)驗(yàn)用到的宏模塊操作是在tool——MeGaWizard Plug-In Manager中(如下圖)
各種宏模塊的參數(shù)設(shè)置根據(jù)想要的設(shè)置就行,這里就不過多展示
該頂層文件大致分為5個(gè)模塊,根據(jù)上面的頂層文件從左到右依次介紹:
sxh——鎖相環(huán),由MeGaWizard Plug-In Manager中的ALTPLL宏模塊構(gòu)成。(如下圖)
將板子上的pin25(我用的板子上pin25引腳是時(shí)鐘信號(hào)clk,晶振20mhz)進(jìn)行分頻,這次仿真里我用的c1是擴(kuò)大了25倍,倍頻后送到adder32模塊中
adder32——32位加法器,由LPM_ADD_SUB宏模塊構(gòu)成。設(shè)置了2階流水線結(jié)構(gòu),使其在時(shí)鐘控制下有更高的運(yùn)算速度和輸入數(shù)據(jù)穩(wěn)定性。
LPM_DFF——32位寄存器,由LPM_DFF宏模塊構(gòu)成;ADDER32和LPM_DFF一起構(gòu)成一個(gè)32位的相位累加器。其高10位A[31..
22]作為波形ROM的地址。注意其中參數(shù)的設(shè)置,因?yàn)閿?shù)據(jù)是32位的LPM_WIDTH參數(shù)就設(shè)為32
ROM0、ROM1——波形數(shù)據(jù)存在ROM中,由ROM-PORT1宏模塊構(gòu)成。
ROM0我放入的是鋸齒波,ROM1為正弦波數(shù)據(jù)。
由于該數(shù)據(jù)的生成需要靠.mif文件生成一個(gè)周期內(nèi)的波形數(shù)據(jù),在這里我推薦一個(gè)mif文件自動(dòng)生成的工具叫mifmaker,可以自行百度下載,如下圖,可以自己選擇數(shù)據(jù)和波形。
m2——多路選擇控制器,由LPM_MUX宏模塊構(gòu)成
由于本次設(shè)計(jì)是按下K1鍵后可以切換波形,需要一個(gè)2選一選擇控制器來控制輸入的數(shù)據(jù)
四、本實(shí)驗(yàn)DDS原理
頻率控制字B[31..
0]與由DAC[9…0]驅(qū)動(dòng)的DAC正弦信號(hào)的頻率關(guān)系為:
f(out) = { B[31..
0]/(2^32) } * f(clk)
其中f(out)為DAC輸出的正弦波信號(hào)頻率, f(clk)為CLK的時(shí)鐘頻率。直接輸入是20MHz,接入鎖相環(huán)可以達(dá)到更高的頻率,且頻率上限要看DAC的速度。且數(shù)據(jù)輸入頻率需要一個(gè)相同的工作時(shí)鐘驅(qū)動(dòng),即為圖中的DAC_CLK,它作用于外部DAC的工作時(shí)鐘
五、Singal tap II仿真
仿真前需要將文件編譯一遍,鎖定好引腳,將仿真文件添加到工程中再編譯一遍,最后下載到板子中進(jìn)行仿真
仿真中需要注意的是setup設(shè)置好采樣深度,盡可能多觀察到一些周期,且需要將數(shù)據(jù)線性模擬,如下設(shè)置:
仿真結(jié)果:不按下K1為鋸齒波
按下K1為正弦波:文章來源:http://www.zghlxwxcb.cn/news/detail-780539.html
總結(jié)
本文是關(guān)于FPGA學(xué)習(xí)實(shí)驗(yàn)中任意波形函數(shù)信號(hào)發(fā)生器的設(shè)計(jì)和仿真,僅供參考,本人新手一枚,如有錯(cuò)誤還望各位在評(píng)論區(qū)指正;有疑問可以評(píng)論區(qū)提,雖然我也不一定知道(^ △ ^)文章來源地址http://www.zghlxwxcb.cn/news/detail-780539.html
到了這里,關(guān)于FPGA學(xué)習(xí)任意波函數(shù)信號(hào)發(fā)生器的設(shè)計(jì)(基于quartus II13.0)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!