DDS信号发生器:直接数字式频率合成器 (Direct Digital Synthesizer)
1、任意波形
首先参考之前写过的ip_rom这篇文章。 与上述文章不同的是。任意波形,只是将.mif文件替代掉。
https://blog.csdn.net/WJC1997/article/details/118994133?spm=1001.2014.3001.5501
例:生成一个正弦波
① 使用波形生成器软件,生成一个数据长度为256、位宽为8的正弦波后,保存。(保存的格式为.mif格式)
②这里点 Browse 选择 自己生成的 sin.mif 文件替代
③ 其余均参照之前的文章
1、radix—>unsigned 2、format—>auto… 3、format—>custom(max:255——min:0)
2、任意相位:—>改变初始相位(改变初始地址)即可
3、任意频率:
正弦波当前不改变情况下对应频率:
T = 20ns * 256——> f = 1/ T = 1 / (20ns * 256) =1 /20ns*1 /256 =50M / 256 = 195.312Khz
如何改变当前195.31KHz频率?
(1):当前开发板晶振频率50Mhz,改变晶振时钟大小从而改变输出频率(不太现实)
(2):增加地址步进值,之前每次加一时得到频率195.31Khz,如果把地址的步进值设置值+2,意味着地址从0计数到255的时间缩短一半,从而频率增加二倍。(只能得到195.31KHz的整数倍,也不太现实)
(3):增加一个虚拟地址计数器(temp_addr),虚拟地址计数器位宽比8大(8的整数倍),其中虚拟地址计数器作为当前地址的计数,不再为有效地址(addr),虚拟地址计数器每次加多少呢(取决于当前设置的虚拟地址计数器的位宽)?采用真实计数器地址取虚拟地址计数器高8位。
T = 20ns * 256——> f = 1/ T = 1 / (20ns * 256) =1 /20ns*1 /256 =50M / 256 = 195.312Khz
f =50M / 256
195.31Khz = 50M / 256 = 50M / 2^8 *1(地址步进值)
1Khz = 50M/2^16B(地址步进值)—>B = 1Khz * 2^16/50Mhz = 1.31072
1Khz = 50M/2^24B(地址步进值)—>B = 1Khz2^24/ 50Mhz = 335.54432
1Khz = 50M/2^32B(地址步进值)—>B = 1Khz*2^32/50Mhz= 85899.34592
32位虚拟地址计数器位宽,真实地址取32位虚拟地址计数器对应的高8位
32位虚拟地址计数器能够计数的值: 2^32 = 4294967296
32位虚拟地址计数器对应的高8位:2^32 - 2^24 = 4278190080
F输出 = 50Mhz / 2^ N * B
**
测试:
**
16位虚拟地址计数器位宽: Fclk = 763hz
24位虚拟地址计数器位宽: Fclk = 1khz
位宽越高,精度越高,误差越小。
①16位
module addr_ctrl(clk, rst_n, addr);input clk;input rst_n;output [7:0] addr; //控制ROM的地址变化(0~255)reg [15:0] temp_addr;always@ (posedge clk,negedge rst_n)beginif(rst_n == 1'b0)temp_addr <= 16'd0;else if(temp_addr < 2 ** 16 - 1'd1)temp_addr <= temp_addr + 16'd1;elsetemp_addr <= 16'd0;endassign addr = temp_addr[15 : 8];endmodule
②24位
module addr_ctrl(clk, rst_n, addr);input clk;input rst_n;output [7:0] addr; //控制ROM的地址变化(0~255)reg [23:0] temp_addr;always@ (posedge clk,negedge rst_n)beginif(rst_n == 1'b0)temp_addr <= 24'd0;else if(temp_addr < 2 ** 24 - 1'd1)temp_addr <= temp_addr + 24'd336;elsetemp_addr <= 24'd0;endassign addr = temp_addr[23 : 16];endmodule
4、结束语
“忽觉夏深年过半,不知不觉就已立秋了,空气中能捕捉那一丝凉意啦~
但还是最喜欢明媚的夏天,喜欢听着蝉在二重奏入睡,也喜欢烈火般的午后来一口冰凉的西瓜,又或者开一瓶冰汽水,喜欢穿着各色的裙子,那肆意昂扬的青春,小王小王要接着努力,不要偷懒呀~” ——小王随笔
DDS信号发生器:直接数字式频率合成器 (Direct Digital Synthesizer)相关推荐
- 基于FPGA的简易DDS信号发生器的设计与验证
基于FPGA的简易DDS信号发生器的设计与验证 一,理论介绍 补充:举例理解 二,代码实现 1,实验目标 2,MATLAB代码 3,verilog代码及实现思路 一,理论介绍 DDS 是直接数字式频率 ...
- 基于FPGA的简易 DDS 信号发生器的设计
文章目录 前言 一.pandas是什么? 二.ROM 内波形数据写入 1.MIF 2.DDS 模块参考代码 波形仿真 前言 DDS 是直接数字式频率合成器(Direct Digital Synthes ...
- 基于FPGA的DDS信号发生器
基于FPGA的DDS信号发生器 两个礼拜前就像写这个文档了,但是一直鸽到现在,主要是人摆了.还有个技术上的原因是,我想用串口屏显示波形,在串口调试助手上返回的数据是对的,但是发到串口屏上啥反应 ...
- FPGA--简易DDS信号发生器 (内涵DDS与CORDIC IP核详解)附源码
学习内容 简易DDS信号发生器的设计与验证,产生所需的正弦波.方波锯齿波,并进行verilog验证. 实现功能 可以通过按键控制来输出不同的波形. 开发环境 xilinx spartan6开发板.IS ...
- FPGA之简易DDS信号发生器设计
文章目录 前言 一.DDS信号发生器 1.DDS是什么 2.DDS工作原理 二.模块代码 1.调用rom模块储存波形图 2.按键控制模块 2.按键消抖模块 3.DDS生成模块 4.顶层模块 5.RTL ...
- 简易DDS信号发生器记录
简易DDS信号发生器 学习资料:野火 升腾Pro<FPGA Verilog开发实战指南--基于Xilinx Artix7>2021.11.16 1. 理论知识 DDS 是直接数字式频率合成 ...
- 【正点原子FPGA连载】第二十三章 DDS信号发生器实验摘自【正点原子】DFZU2EG/4EV MPSoC 之FPGA开发指南V1.0
1)实验平台:正点原子MPSoC开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=692450874670 3)全套实验源码+手册+视频下载地址: h ...
- 基于FPGA的波、幅、频、相可调DDS信号发生器的设计
声明:本文只对设计原理和过程作粗略的阐述,详细可以研究我贴出来的完整源代码,也可以私信交流. 若干略缩语解释: FPGA(Field Programmable Gate Array):现场可编程逻辑门 ...
- 双通道幅频相可调DDS 信号发生器
DDS 基本原理 DDS(Direct Digital Synthesizer)即数字合成器,是一种新型的频率合成技术,具有相对带宽大,频率转换时间短.分辨率高和相位连续性好等优点.较容易实现频率.相 ...
最新文章
- 在阿里云主机上基于CentOS用vsftpd搭建FTP服务器
- 思科交换机Vlan配置以及VLAN应用场景
- win10系统下安装Navicat for MySql 连接出现错误解决方法
- nullnullC++ LANGUAGE TUTORIAL: CHARACTER ARRAYS...
- Spring:Spring相关知识介绍笔记
- echarts柱图根据值显示不同颜色_视频 | Origin画3D柱图,这篇讲透了!
- Spring Cloud Eureka 属性配置中文说明文档
- 零售连锁专卖信息化解决方案简介之一
- 可视化程序设计基础(team)——采访上届大佬
- IOS发布应用照片大小
- HTML 区块、内联元素
- tr php,?php } ? 啥意思?
- 微型计算机原理与应用彭楚武,微型计算机原理及其应用
- 【MapGIS必备】常见问题处理(第十四期)
- NetSetMan Pro专业网络设置管理器
- win10怎么卸载Edge浏览器
- 黑帽SEO网站优化常用的15种技巧
- 在android studio中制作九宫格图片
- 在建工程直接费用化_​在建工程资本化费用化区别
- seafile-搭建自己的私有云盘
热门文章
- python实用性函数分享_17.【Python学习分享文章】function(函数)1
- Spring bean的自动装配
- YOLO系列目标检测算法-YOLOv7
- Win7系统开机提示Flash Helper Service 已停止工作解决办法!
- JZOJ8.14(C组)帕秋莉·诺雷姬
- 密码打码就安全了吗?这款星标 20K 的去 『马赛克』 开源神器,用 AI 一秒还原高清原图!...
- 汽车美容店会员开卡办理html,洗车店会员卡管理系统线下线上会员一体化?
- linux显示文件的第一行数据库,Linux练习题
- Remote Development Tips and Tricks
- linux mate中文输入法,树莓派3b基于UbuntuMate下载中文输入法(示例代码)