欢迎来到天天文库
浏览记录
ID:56931140
大小:698.00 KB
页数:24页
时间:2020-07-21
《电子系统设计实践课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第9章电子系统设计实践9.1直接数字合成器(DDS)设计正弦信号发生器,它的输出可以用下式来描述:9-1用基准时钟clk进行抽样,令正弦信号的相位:9-2在一个clk周期Tclk,相位的变化量为:9-39.1直接数字合成器(DDS)设计为了对进行数字量化,把切割成2N份,由此每个clk周期的相位增量用量化值来表述:且为整数与10-3式联立,可得:9-49.1直接数字合成器(DDS)设计信号发生器的输出可描述为:9-5其中指前一个clk周期的相位值,同样得出9-69.1直接数字合成器(DDS)设计图9-1基本DDS结构【例9
2、-1】--DDSC:DDS主模块libraryIEEE;useIEEE.STD_LOGIC_1164.all;useIEEE.STD_LOGIC_UNSIGNED.all;useieee.std_logic_arith.all;librarylpm;--AlteraLPMuselpm.lpm_components.all;entityddscis--DDS主模块generic(freq_width:integer:=32;--输入频率字位宽phase_width:integer:=12;--输入相位字位宽adder_wid
3、th:integer:=32;--累加器位宽romad_width:integer:=10;--正弦ROM表地址位宽rom_d_width:integer:=10);--正弦ROM表数据位宽port(clk:instd_logic;--DDS合成时钟freqin:instd_logic_vector(freq_width-1downto0);--频率字输入phasein:instd_logic_vector(phase_width-1downto0);--相位字输入ddsout:outstd_logic_vector(ro
4、m_d_width-1downto0));--DDS输出endentityddsc;接下页architecturebehaveofddscissignalacc:std_logic_vector(adder_width-1downto0);signalphaseadd:std_logic_vector(phase_width-1downto0);signalromaddr:std_logic_vector(romad_width-1downto0);signalfreqw:std_logic_vector(freq_wid
5、th-1downto0);signalphasew:std_logic_vector(phase_width-1downto0);beginprocess(clk)beginif(clk'eventandclk='1')thenfreqw<=freqin;--频率字输入同步phasew<=phasein;--相位字输入同步acc<=acc+freqw;--相位累加器endif;endprocess;phaseadd<=acc(adder_width-1downtoadder_width-phase_width)+phase
6、w;romaddr<=phaseadd(phase_width-1downtophase_width-romad_width);--sinromi_rom:lpm_rom--LPM_rom调用接下页GENERICMAP(LPM_WIDTH=>rom_d_width,LPM_WIDTHAD=>romad_width,LPM_ADDRESS_CONTROL=>"UNREGISTERED",LPM_OUTDATA=>"REGISTERED",LPM_FILE=>"sin_rom.mif")--指向rom文件PORTMAP(out
7、clock=>clk,address=>romaddr,q=>ddsout);endarchitecturebehave;下面是产生SINROM数据值的C程序:#include#include"math.h"main(){inti;floats;for(i=0;i<1024;i++){s=sin(atan(1)*8*i/1024);printf("%d:%d;",i,(int)((s+1)*1023/2));}}把上述C程序编译成程序后,在DOS命令行下执行:romgen>sin_rom.mif;图9
8、-2DDS主模块RTL综合结果基本DDS结构的常用参量计算(1)DDS的输出频率fout。9-7(2)DDS的频率分辨率。9-8(3)DDS的频率输入字计算。注意要取整,有时会有误差。【例9-2】--简易频率合成器--DDS(32bit频率字,1024points10bitout)--ForGW48-C
此文档下载收益归作者所有