verilog设计简易正弦波信号发生器_FPGA学习(一)——产生频率可控的正弦波

c93d76e117ca1b24110917b7adde36cb.png

2018.5.17更新如下

作为小透明,没想到随手一写的学习过程也能被看见,看到有人点赞也还是很高兴的,希望能以后自己忘了,还能来看懂,如果对大家能有所帮助,那就再好不过了。

对于输出的正弦波周期有两种算法,在这里记录一下。

因为和昨天使用的不是同一个文件,所以名称会和昨天的不一样,不过原理一样。

另外,在仿真的时候可以不用添加约束文件,只需要仿真时可以直接跳过,如果需要下载进板子的话就必须要写了。下一篇会介绍。

1.使用DDS输出的最高位去计算,具体操作如图

eb7b4531ec0208faa6ae4c8a322e029f.png
步骤1.2.3,注意黄线的位置和数值

点击两次上图3的图标

b46039192c6ba1fac7e66894c1eaa1d6.png
根据两次的数值就能算出输出正弦波的周期

可能会觉得频率控制字可以控制输出波形的频率,而输出位宽又可以计算输出波形周期,那改变输出波形会影响什么呢?会影响输出波形周期吗?答案是不会。

具体看图,我将输出位宽改为10位的仿真结果。

7a752999f62ac0d615dc4f5c156d13c0.png
圈圈圈

输出位宽影响的是输出波形的幅度(0^◇^0)/

了解DDS的原理就明白了。

2.第二种就是昨天解释原理时用频率控制字控制输出频率时,fre_word取1的值。

具体算法见原答案。

两种区别就是一个取最高位,一个取最低位,刚开始容易理不清。


原答案如下

信号调制和解调功能。写下其中过程当做自己的学习记录吧。本篇讲的是如何产生一个正弦波。

  1. 使用的软件是Vivado 2016.4
  2. 实验室板卡是Nexys Video

1.原理说明

采用的是自带DDS IP核,DDS直接数字式频率合成器(Direct Digital Synthesizer),相信所有人看到这个名字就觉得不会陌生。

DDS由频率控制字(Frequency Control Word)寄存器、相位累加器(Phase Accumulator)和正余弦查找表(Sine/Cosine LUT)三部分组成,通过控制相位累加器的位宽和查找表的位宽,可以实现不同频率和动态范围的正弦信号的产生。

关于DDS是如何产生我们需要的波形信号可以查看这篇文章:

用FPGA实现DDS任意波形发生器 | 电子创新网赛灵思中文社区​xilinx.eetrend.com
a37383c052ff5eb48d86c8f75343cc06.png

而我们现在不用关心太多原理,经过实验的过程,自然就能明白其工作原理。

我们只需要知道如何控制其输出频率就行了,首先记住两个术语(jargon):

a. 相位累加器࿱

  • 11
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值