DDS信号发生器波形发生器VHDL
名称:DDS信号发生器波形发生器
软件:Quartus
语言:VHDL
要求:
在EDA平台中使用VHDL语言为工具,设计一个常见信号发生电路,要求:
1. 能够产生锯齿波,方波,三角波,正弦波共四种信号;
2. 信号的频率和幅度可以通过按键调节;
3. 采用模块化设计,包含但不局限于:调频模块,调幅模块,波形的选择与切换模块等;
代码下载:DDS信号发生器波形发生器VHDL_Verilog/VHDL资源下载
代码网:hdlcode.com
部分代码展示
LIBRARY ieee;USE ieee.std_logic_1164.all; USE ieee.std_logic_unsigned.all; --DDS频率等于clk*N/2^13,clk为输入时钟,N为频率控制字frequency;2^13是因为ROM里面存储了8192个点,相位累加器位宽为13位 ENTITY DDS_top ISPORT (clk_in : IN STD_LOGIC;--时钟 rst_p: IN STD_LOGIC;--复位wave_select : IN STD_LOGIC_VECTOR(1 DOWNTO 0);--01输出sin,10输出方波,11输出三角波,00锯齿frequency_key : IN STD_LOGIC;--频率控制按键amplitude_key : IN STD_LOGIC;--幅值控制按键 wave : OUT STD_LOGIC_VECTOR(15 DOWNTO 0)--输出波形); END DDS_top; ARCHITECTURE behave OF DDS_top IS --例化模块 --波形选择模块COMPONENT wave_sel ISPORT (clk_in : IN STD_LOGIC;wave_select : IN STD_LOGIC_VECTOR(1 DOWNTO 0);douta_fangbo : IN STD_LOGIC_VECTOR(7 DOWNTO 0);douta_sanjiao : IN STD_LOGIC_VECTOR(7 DOWNTO 0);douta_sin : IN STD_LOGIC_VECTOR(7 DOWNTO 0); douta_juchi : IN STD_LOGIC_VECTOR(7 DOWNTO 0);wave : OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END COMPONENT;--相位累加器模块COMPONENT Frequency_ctrl ISPORT (clk_in : IN STD_LOGIC;frequency : IN STD_LOGIC_VECTOR(9 DOWNTO 0);addra : OUT STD_LOGIC_VECTOR(12 DOWNTO 0));END COMPONENT; --ROM表 COMPONENT sin_ROM IS PORT ( address: IN STD_LOGIC_VECTOR (12 DOWNTO 0); clock: IN STD_LOGIC := '1'; q: OUT STD_LOGIC_VECTOR (7 DOWNTO 0) ); END COMPONENT; --ROM表 COMPONENT fangbo_ROM IS PORT ( address: IN STD_LOGIC_VECTOR (12 DOWNTO 0); clock: IN STD_LOGIC := '1'; q: OUT STD_LOGIC_VECTOR (7 DOWNTO 0) ); END COMPONENT; --ROM表 COMPONENT sanjiao_ROM IS PORT ( address: IN STD_LOGIC_VECTOR (12 DOWNTO 0); clock: IN STD_LOGIC := '1'; q: OUT STD_LOGIC_VECTOR (7 DOWNTO 0) ); END COMPONENT; --ROM表 COMPONENT juchi_ROM IS PORT ( address: IN STD_LOGIC_VECTOR (12 DOWNTO 0); clock: IN STD_LOGIC := '1'; q: OUT STD_LOGIC_VECTOR (7 DOWNTO 0) ); END COMPONENT; --按键频率控制 COMPONENT Frequency_add ISPORT (clk_in : IN STD_LOGIC;rst_p : IN STD_LOGIC;frequency_key : IN STD_LOGIC;frequency : OUT STD_LOGIC_VECTOR(9 DOWNTO 0)--频率控制字,10位位宽,变化范围可以为1~1000); END COMPONENT; --按键幅值控制 COMPONENT amplitude_add ISPORT (clk_in : IN STD_LOGIC;rst_p : IN STD_LOGIC;amplitude_key : IN STD_LOGIC;amplitude : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)--幅值); END COMPONENT;SIGNAL addra : STD_LOGIC_VECTOR(12 DOWNTO 0);SIGNAL douta_fangbo : STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL douta_sanjiao : STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL douta_sin : STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL douta_juchi : STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL wave_temp : STD_LOGIC_VECTOR(7 DOWNTO 0);--波形SIGNAL frequency : STD_LOGIC_VECTOR(9 DOWNTO 0);--频率控制字,控制输出波形频率,值越大,频率越大SIGNAL amplitude : STD_LOGIC_VECTOR(7 DOWNTO 0);--幅值控制字,值越大,幅值越大 BEGIN --按键频率控制 i_Frequency_add: Frequency_addPORT MAP(clk_in => clk_in,rst_p => rst_p,frequency_key => frequency_key,frequency => frequency--频率控制字,10位位宽,变化范围可以为1~1000); --按键幅值控制 i_amplitude_add: amplitude_addPORT MAP(clk_in => clk_in,rst_p => rst_p,amplitude_key => amplitude_key,amplitude => amplitude--幅值控制字);--方波ROM,存储波形数据i_fangbo_ROM : fangbo_ROMPORT MAP (clock => clk_in,address => addra,q => douta_fangbo);--三角波ROM,存储波形数据i_sanjiao_ROM : sanjiao_ROMPORT MAP (clock => clk_in,address => addra,q => douta_sanjiao);--sin波ROM,存储波形数据i_sin_ROM : sin_ROMPORT MAP (clock => clk_in,address => addra,q => douta_sin);--锯齿波ROM,存储波形数据i_juchi_ROM : juchi_ROMPORT MAP (clock => clk_in,address => addra,q => douta_juchi);--相位累加器i_Frequency_ctrl : Frequency_ctrlPORT MAP (clk_in => clk_in,frequency => frequency,--频率控制字addra => addra--输出地址);--波形选择控制i_wave_sel : wave_selPORT MAP (clk_in => clk_in,wave_select => wave_select,--01输出sin,10输出方波,11输出三角波douta_fangbo => douta_fangbo,--方波douta_sanjiao => douta_sanjiao,--三角douta_sin => douta_sin,--正弦 douta_juchi => douta_juchi,--锯齿wave => wave_temp--输出波形 );wave<=wave_temp*amplitude;--波形乘以幅值 END behave;
设计文档(文档点击可下载):
设计文档.doc
DDS原理
1. 工程文件
2. 程序文件
ROM IP核
3. 程序编译
4. RTL图
5. Testbench
6. 仿真图
整体仿真图
相位累加器模块
波形选择模块
正弦波ROM模块
三角波ROM模块
方波ROM模块
锯齿波ROM模块
按键控制频率信号模块
按键控制幅值信号模块
相关文章:

DDS信号发生器波形发生器VHDL
名称:DDS信号发生器波形发生器 软件:Quartus 语言:VHDL 要求: 在EDA平台中使用VHDL语言为工具,设计一个常见信号发生电路,要求: 1. 能够产生锯齿波,方波,三角波&…...

Python3操作SQLite3创建表主键自增长|CRUD基本操作
Win11查看安装的Python路径及安装的库 Python PEP8 代码规范常见问题及解决方案 Python3操作MySQL8.XX创建表|CRUD基本操作 Python3操作SQLite3创建表主键自增长|CRUD基本操作 anaconda3最新版安装|使用详情|Error: Please select a valid Python interpreter Python函数绘…...

B. Comparison String
题目: 样例: 输入 4 4 <<>> 4 >><< 5 >>>>> 7 <><><><输出 3 3 6 2 思路: 由题意,条件是 又因为要使用尽可能少的数字,这是一道贪心题,所以…...
python端口扫描
扫描所有端口 import socket, threading, os, timedef port_thread(ip, start, step, timeout):for port in range(start, start step):s socket.socket()s.settimeout(timeout)try:s.connect((ip, port))print(f"port[{port}] 可用")except Exception as e:# pri…...
国庆第二天
#include<th.h>#define ERR_MSG(msg) do{\fprintf(stderr,"__%d__",__LINE__);\perror(msg);\ }while(0)#define PORT 6666 #define IP "192.168.2.3"//键盘输入事件 int serverkeyboard(fd_set readfds) {char buf[128] "";int sndfd -…...

Java安全之servlet内存马分析
目录 前言 什么是中间键 了解jsp的本质 理解servlet运行机制 servlet的生命周期 Tomcat总体架构 查看Context 的源码 servlet内存马实现 参考 前言 php和jsp一句话马我想大家都知道,早先就听小伙伴说过一句话木马已经过时了,现在是内存马的天下…...

2023年第二十届中国研究生数学建模竞赛总结与分享
今天是国庆节,祝祖国繁荣富强。正好也学习不下去,就想着写写博客,总结一下自己在参加2023年第20届中国研究生数学建模比赛的一些感受。 目录 1.基本介绍 2.比赛分享 1.基本介绍 1. 竞赛时间:竞赛定于2023年9月22日8:00至2023年9…...
Web前端-Vue2+Vue3基础入门到实战项目-Day1(初始Vue, Vue指令, 小黑记事本)
Web前端-Vue2Vue3基础入门到实战项目-Day1 Vue快速上手创建一个Vue实例插值表达式Vue响应式特性 Vue指令指令初识 和 v-htmlv-show 和 v-ifv-else 和 v-else-ifv-on内联语句methods处理函数调用传参 v-bind案例 - 波仔的学习之旅v-forv-for基本使用案例 - 小黑的书架v-for的key…...

Sentinel学习(2)——sentinel的使用,引入依赖和配置 对消费者进行流控 对生产者进行熔断降级
前言 Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件,主要以流量为切入点,从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性。 本篇博客介绍sentinel的使用&#x…...

springboot 简单配置mongodb多数据源
准备工作: 本地mongodb一个创建两个数据库 student 和 student-two 所需jar包: # springboot基于的版本 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId>&l…...

西门子S7-1200使用LRCF通信库与安川机器人进行EthernetIP通信的具体方法示例
西门子S7-1200使用LRCF通信库与安川机器人进行EthernetIP通信的具体方法示例 准备条件: PLC:S7-1200 1214C DC/DC/DC 系统版本4.5及以上。 机器人控制柜:安川YRC1000。 软件:TIA V17 PLC做主站,机器人做从站。 具体方法可参考以下内容: 使用的库文件为西门子 1200系列…...

pytorch第一天(tensor数据和csv数据的预处理)lm老师版
tensor数据: import torch import numpyx torch.arange(12) print(x) print(x.shape) print(x.numel())X x.reshape(3, 4) print(X)zeros torch.zeros((2, 3, 4)) print(zeros)ones torch.ones((2,3,4)) print(ones)randon torch.randn(3,4) print(randon)a …...

CSP-J第二轮试题-2021年-1.2题
文章目录 参考:总结 [CSP-J 2021] 分糖果题目背景题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 样例 #2样例输入 #2样例输出 #2 样例 #3样例输入 #3样例输出 #3 提示答案1答案2-优化 [CSP-J 2021] 插入排序题目描述输入格式输出格式样例 #1样例输入 #1样…...

怒刷LeetCode的第16天(Java版)
目录 第一题 题目来源 题目内容 解决方法 方法一:迭代 方法二:模拟 方法三:循环模拟 方法四:传递 第二题 题目来源 题目内容 解决方法 方法一:回溯 方法二:枚举优化 第三题 题目来源 题目…...

让大脑自由
前言 作者写这本书的目的是什么? 教会我们如何让大脑更好地为自己工作。 1 大脑的运行机制是怎样的? 大脑的基本运行机制是神经元之间通过突触传递信息,神经元的兴奋和抑制状态决定了神经网络的运行和信息处理,神经网络可以通过…...

Arcgis克里金插值报错:ERROR 010079: 无法估算半变异函数。 执行(Kriging)失败。
Arcgis克里金插值报错:ERROR 010079: 无法估算半变异函数。 执行(Kriging)失败。 问题描述: 原因: shape文件的问题,此图可以看出,待插值的点有好几个都超出了地理范围之外,这个不知道是坐标系配准的问…...
Docker Compose安装
title: “Docker Compose安装” createTime: 2022-01-04T19:08:1508:00 updateTime: 2022-01-04T19:08:1508:00 draft: false author: “name” tags: [“docker”,“docker-compose”] categories: [“install”] description: “测试的” docker-compose安装步骤 1.下载 u…...

机器人过程自动化(RPA)入门 7. 处理用户事件和助手机器人
在UiPath中,有两种类型的Robot用于自动化任何流程。一个是后台机器人,它在后台工作。它独立工作,这意味着它不需要用户的输入或任何用户交互。另一个是前台机器人,也被称为助理机器人。 本章介绍前台机器人。在这里,我们将了解自动化过程中通过简单按键、单击鼠标等触发事…...

在linux下预览markdown的方法,转换成html和pdf
背景 markdown是一种便于编写和版本控制的格式,但却不便于预览——特别是包含表格等复杂内容时,单纯的语法高亮是远远不够的——这样就不能边预览边调整内容,需要找到一种预览方法。 思路 linux下有个工具,叫pandoc,…...

AIOT入门指南:探索人工智能与物联网的交汇点
AIOT入门指南:探索人工智能与物联网的交汇点 1. 引言 随着技术的快速发展,人工智能(AI)和物联网(IoT)已经成为当今最热门的技术领域。当这两个领域交汇时,我们得到了AIOT - 一个结合了AI的智能…...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

智慧医疗能源事业线深度画像分析(上)
引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...

高频面试之3Zookeeper
高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制࿰…...
1688商品列表API与其他数据源的对接思路
将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...
条件运算符
C中的三目运算符(也称条件运算符,英文:ternary operator)是一种简洁的条件选择语句,语法如下: 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true,则整个表达式的结果为“表达式1”…...

12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...

C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。
1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj,再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...
Angular微前端架构:Module Federation + ngx-build-plus (Webpack)
以下是一个完整的 Angular 微前端示例,其中使用的是 Module Federation 和 npx-build-plus 实现了主应用(Shell)与子应用(Remote)的集成。 🛠️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问(基础概念问题) 1. 请解释Spring框架的核心容器是什么?它在Spring中起到什么作用? Spring框架的核心容器是IoC容器&#…...

LLMs 系列实操科普(1)
写在前面: 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容,原视频时长 ~130 分钟,以实操演示主流的一些 LLMs 的使用,由于涉及到实操,实际上并不适合以文字整理,但还是决定尽量整理一份笔…...