- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验原理
总体设计方案及其原理说明:
FPGA
图 1-1 系统总体设计方案
DDS是一种把数字信号通过数/模转换器转换成模拟信号的合成技术。它由相位累加器、相幅转换函数表、D/A转换器以及内部时序控制产生器等电路组成。
参考频率f_clk为整个合成器的工作频率,输入的频率字保存在频率寄存器中,经N位相位累加器,累加一次,相位步进增加,经过内部ROM波形表得到相应的幅度值,经过D/A转换和低通滤波器得到合成的波形。△P为频率字,即相位增量;参考频率为f_clk;相位累加器的长度为N位,输出频率f_out为:
F_out——输出信号的频率;
N————相位累加器的位数;
△P———频率控制字(步长);
F_clk——基准时钟频率。
图1-2 四种波形单周期的取样示意图
段地址 基地址 D7 D6 D5 D4 D3 D2 D1 D0
00 000
00 001
00 010
00 011 自定义的正弦波初值
00 100
00 101
00 110
00 111
01 000
01 001
01 010
01 011 自定义的方波初值
01 100
01 101
01 110
01 111
10 000
10 001
10 010
10 011 自定义的正三角波初值
10 100
10 101
10 110
10 111
11 000
11 001
11 010
11 011 自定义的反三角波初值
11 100
11 101
11 110
11 111
图1-3 函数查找表的设计
实验程序
/*********************顶层模块**********************/
module main(record, add,f,cho,ret,clk);
output [8:0] record;
input ret,clk;
input [9:0] f, [1:0] cho;
output [8:0] add;
addcount k(clk,f,add,ret,cho);
rom j(add, record);
endmodule
/**************累加计数模块*******************/
module addcount(f_clk,f,add,ret,cho);
input [9:0] f;
input f_clk,ret;
input [1:0] cho;
reg [9:0] count;
output add;
reg [8:0] addr,add;
initial
begin
count=0;
addr=0;
end
always @(posedge f_clk )
if(ret==1) add=0;
else
begin
if(countf)
count=count+1;
if(count==f)
begin
count=0;
if(addr=7)
begin
addr=addr+1;
if(addr7)
addr=0;
case(cho)
0 : add=addr;
1 : add=addr+8;
2 : add=addr+16;
3 : add=addr+24;
default add=5hxx;
endcase
end
end
end
endmodule
/********************波形控制模块**********************/
module rom(addrs, record);
input[4:0]
文档评论(0)