在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1494|回复: 0

毕业论文求助(急好人一生平安)dds频率可变方波的产生

[复制链接]
发表于 2013-6-3 08:45:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
利用dds技术产生频率可变的方波时,为什么要经过一个加发器然后再经过一个存储器,把存储器的输出反馈回去那个频率控制字进行相加,看了eda教程还是不懂,累加寄存器将加法器在上一个时钟脉冲作用后所产生的新相位数据反馈到加法器的输入端,使加法器在下一个时钟脉冲的作用下继续与频率控制字相加。这样,相位累加器在时钟作用下,不断对频率控制字进行线性相位累加。由此可以看出,相位累加器在每一个时钟脉冲输入时,把频率控制字累加一次,相位累加器输出的数据就是合成信号的相位,相位累加器的溢出频率就是DDS输出的信号频率。取存储器的最高位的输出就是方波的波形,怕老师问,不知道为什么那样就是,这样出来好使,不懂原因,CPLD的频率是50MHz,而频率在10001Hz到11000之间可调,频率控制是36位的,相位控制字是10位的,编程显示频率已调的方波时第三十五位即最高作为输出,相位控制字也是最高位,还有为什么积分了就是相位了(黑体是最主要迷惑地方)。。。求大神讲解。还有几天就交论文了。我们没有学过FPGA现在把程序放在底下:
module dds
(
clk_i,
fword_a,
pword_a,
fword_b,
aout,
bout
);

input  clk_i;
input  [35:0] fword_a;  //control a's f
input  [9:0]  pword_a;  //control a's phase
input  [35:0] fword_b;  //control b's f
output aout;
output bout;

wire aout;
wire bout;

wire  [35:0]  awire;
wire  [35:0]  addout_fa;
wire [9:0]   pawire;
wire [9:0]   pawire_out;
wire [9:0]   addout_pa;

wire [35:0]  bwire;
wire [35:0]  addout_fb;


assign  aout=pawire_out[9];
assign pawire=awire[35:26];

assign bout=bwire[35];

add36  add36_ainst
(
.a  (fword_a),
.b  (awire),
.sum (addout_fa),
.c  ()
);
reg36  reg36_ainst
(
.clk_i(clk_i),
.DIN (addout_fa),
.DOUT (awire)
);

add10  add10_ainst
(
.a  (pword_a),
.b  (pawire),
.sum (addout_pa),
.c  ()
);
reg10  reg10_ainst
(
.clk_i(clk_i),
.DIN (addout_pa),
.DOUT (pawire_out)
);

add36  add36_binst
(
.a  (fword_b),
.b  (bwire),
.sum (addout_fb),
.c  ()
);
reg36  reg36_binst
(
.clk_i(clk_i),
.DIN (addout_fb),
.DOUT (bwire)
);
endmodule
那个reg是存储器,当来一个上升沿时进行储存,add是两位数加法器(不同位两个数就不一样),求大神讲原因谢谢了。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-28 02:37 , Processed in 0.021968 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表