Verilog HDL DDS设计(作业3)

本文档详述了一项FPGA实验,设计了一个DDS模块,使用50MHz时钟合成不同频率的正弦波。实验涵盖了Verilog代码、MATLAB生成的波表ROM、SignalTap分析及MATLAB频谱分析。通过改变频率控制字,实现了500KHz、1MHz和3MHz的正弦波,并展示了MATLAB中对SignalTap数据的处理和频谱绘制过程。
摘要由CSDN通过智能技术生成

实验内容

在FPGA上设计一个DDS模块,在DE0 开发板上运行,在FPGA芯片内部合成出数字波形即可。不用输出模拟信号,本模块满足以下条件:

  • 使用板载晶振的50MHz时钟,合成以下频率的信号
  • 1、500KHz 正弦波信号。 2、1MHz 正弦波信号。 3、3MHz 正弦波信号。
  • 频率字字长32位,波表ROM尺寸为 10比特地址,1024个word
  • 波形格式为2补码格式,12比特量化
  • 每个CLK输出一个有效样点。
  • 输入信号为频率字和频率字输入使能信号
  • 使用板载的拨码开关(Switch)控制生成的波形信号的不同频率。

注:波表ROM代码是用matlab或C打印生成的。不要手写

实验要求

  • 人工绘制的 电路结构RTL设计图,该图片用于说明你设计电路时的想法,注意要在RTL图中画出Verilog代码中的 生成D触发器 reg 变量
  • Quartus扫描生成的电路RTL图,该图片用于说明Quartus的电路编译结果
  • 相位累加器的输出,SignalTap截图
  • 波表ROM的输入地址,SignalTap截图
  • 至少捕获 一个完整的输出正弦波形周期的上述数据数值的SignalTap截图。
  • 输出正弦波的样值波形,SignalTap截图
  • 提交Verilog、相关MATLAB 代码,请使用博客中提供的代码块功能
  • 分析输出的正弦波信号的频谱,Matlab 截图

Visio绘制的RTL

VisioRTL

Quartus扫描生成的RTL

  • 顶层RTL

顶层RTL

  • SwitchRTL

switchRTL

  • dds_core RTL

ddscoreRTL

  • RAM RTL

ramRTL

SignalTap截图

  • 频率控制字FQWD=10:

ADD10
注:此时正弦波一个周期采样102个点,50MHz下采样周期0.02us,输出正弦波频率约为 f=11020.020.5(MHz)

  • 频率控制字FQWD=20:

ADD20
注:此时正弦波一个周期采样52个点,50MHz下采样周期0.02us,输出正弦波频率约为 f=1520.02

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值