使用DDR4控制器实现多通道数据读写(十八)

一、 概述
在之前已经使用interconnect IP 实现了DDR4的多通道读写功能,接下来为了更能接近实用性和更直观的展现多通道读写的功能,使用DDS IP 核生成两组正弦波信号,将两组正弦波信号通过其中两个通道存储到DDR4中,再使用另外两个通道将两组正弦波读取出来。

二、DDS IP 配置
在这里插入图片描述
在DDS IP 的配置界面中,选择两个通道,参数选择硬件参数,可以直观看到DDS中的数字累加器的位宽,和输出的数据位宽。
在手册中可以看到输出频率和相位宽度,相位角增量之间的关系。如图2所示。
在这里插入图片描述
在建立的IP工程中,每个通道的时钟频率为100MHz,相位的宽度为16位宽。想要输出2MHz的波形时,计算相位角增量。
在这里插入图片描述
另一个通道输出5MHz的波形:
在这里插入图片描述
在DDS IP核中,相位角增量配置如图3所示。
在这里插入图片描述
我们需要输出sin波形,在output selection选项中选择输出sine。
在这里插入图片描述
在补充说明界面中可以看到输出了两组数据,频率分别为50MHz和25MHz。
在这里插入图片描述
三、 DDS仿真波形示例代码
因为m_axis_data_tvalid始终为高,而且m_axis_data_tdata中包含了两路数据,两路通道的数据交替输出。把数据m_axis_data_tdata分解为两路。
1、dds输出波形代码:
module dds_top(
input wire aclk
);
reg [7:0] chnl_0;
reg [7:0] chnl_1;
wire m_axis_data_tvalid;
wire [7 : 0] m_axis_data_tdata;
reg chnl_flag = 0;
always @(posedge aclk ) begin
chnl_flag <= ~chnl_flag;
end

always @(posedge aclk ) begin
if (chnl_flag) begin
chnl_0 <= m_axis_data_tdata;
end
end

always @(posedge aclk ) begin
if (chnl_flag == 0) begin
chnl_1 <= m_axis_data_tdata;
end
end

dds_compiler_0 dds_compiler_0 (
.aclk(aclk), // input wire aclk
.m_axis_data_tvalid(m_axis_data_tvalid), // output wire m_axis_data_tvalid
.m_axis_data_tdata(m_axis_data_tdata) // output wire [7 : 0] m_axis_data_tdata
);

2、仿真代码:
`timescale 1ps / 1ps

module dds_top_tb( );
reg aclk;
initial begin
aclk = 0;
end
always #2500 aclk = ~ aclk;
dds_top inst_dds_top (.aclk(aclk));
endmodule
四、仿真波形
在这里插入图片描述
可以看到m_axis_data_tdata包含了两路数据,想要去除单通道的数据,需要将数据交替取出,并赋值给单通道的数据信号,从而得到两路数据chnl_0和chnl_1。
五、总结
在今天的工程中,使用了dds产生两组输出正弦波,后边会截取一部分波形,将这两个波形放到ddr4中存储。

本文章由威三学社出品
对课程感兴趣可以私信联系

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/87383.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/87383.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于Vue.js + Node.js + MySQL实现的图书销售管理系统

图书销售管理系统 项目概述 图书销售管理系统是一个基于Vue.js Node.js MySQL的全栈Web应用程序&#xff0c;专为数据库课程设计而开发。该系统实现了完整的图书销售业务流程管理&#xff0c;包括图书信息管理、库存管理、采购管理、销售管理和统计分析等功能模块。 项目背…

工业路由器赋能智慧电力储能柜实时通讯,构建电力智能化新生态

在电力行业迈向智能化的进程中&#xff0c;智慧电力储能柜作为实现电力灵活调配与高效存储的关键设施&#xff0c;其重要性日益凸显。然而复杂多变的应用环境、多样的设备接入需求、严苛的数据传输要求以及严峻的网络安全威胁&#xff0c;给储能柜的实时通讯带来诸多挑战。工业…

命令模式 - Flutter中的操作封装大师,把“动作“变成可管理的对象!

痛点场景&#xff1a;绘图应用的操作管理 假设你在开发一个绘图App&#xff0c;需要支持&#xff1a; 添加/删除图形修改图形属性撤销/重做操作批量执行命令 传统实现方式&#xff1a; void _handleAddShape(ShapeType type) {final shape _createShape(type);setState(()…

AI大模型应用开发完整学习体系

&#x1f3af; AI大模型应用开发完整学习体系 第一部分&#xff1a;课程核心内容 本课程系统化构建AI大模型应用开发能力体系&#xff0c;涵盖五大核心模块&#xff1a; 1️⃣ AI大模型开发基础 深入理解大模型架构&#xff08;如DeepSeek&#xff09;、Prompt工程优化、Cu…

UG NX二次开发(C#)-读取PMI对象的名称

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1、前言2、在UG NX中设置PMI对象名称3、采用NXOpen获取PMI对象名称1、前言 PMI对象是UG NX的一个很重要的对象,其获取主要是通过NXOpen来实现,在QQ群有群友问下如何获取PMI的对象名称,我们这篇…

大数据时代UI前端的智能决策支持:基于数据驱动的产品优化

hello宝子们...我们是艾斯视觉擅长ui设计、前端开发、数字孪生、大数据、三维建模、三维动画10年经验!希望我的分享能帮助到您!如需帮助可以评论关注私信我们一起探讨!致敬感谢感恩! 一、引言&#xff1a;数据驱动决策的前端智能化变革 在数字化转型的浪潮中&#xff0c;UI 前…

服务器性能调优实战:如何在高负载下维持系统稳定性?

更多云服务器知识&#xff0c;尽在hostol.com 当服务器遭遇高负载时&#xff0c;它就像一个拼命运转的发动机&#xff0c;任何小小的波动都可能导致系统崩溃。你也许会看到 CPU 突然飙升、内存紧张、响应延迟增加&#xff0c;甚至进程挂掉。而这一切往往发生得悄无声息&#x…

CSS `@scope` 实战指南:开启局部样式隔离新时代

&#x1f9ec; CSS scope 实战指南&#xff1a;开启局部样式隔离新时代 你是否曾担心组件样式被全局覆盖&#xff1f;是否为命名空间冲突而头痛&#xff1f;CSS scope 是原生支持的作用域样式机制&#xff0c;让你不再依赖 BEM、CSS Modules、Scoped CSS 等方案&#xff0c;也能…

spring-ai-alibaba 1.0.0.2 学习(六)——DocumentReader与DocumentParser

spring-ai-alibaba提供了许多读取外部文档的包&#xff0c;例如语雀、飞书、notion笔记等 这些包以spring-ai-alibaba-starter-document-reader开头&#xff0c;实现了spring-ai的DocumentReader接口 最简单样例 我们一起来看一个最简单的例子&#xff0c;以spring-ai-aliba…

在银河麒麟V10 SP1上手动安装与配置高版本Docker的完整指南

原文链接&#xff1a;在银河麒麟V10 SP1上手动安装与配置高版本Docker的完整指南 Hello&#xff0c;大家好啊&#xff0c;今天给大家带来一篇银河麒麟桌面操作系统&#xff08;Kylin V10 SP1&#xff09;上安装与配置Docker的文章&#xff0c;详细介绍从下载安装到运行容器的每…

如何在电脑上完全抹去历史记录

要在电脑上‌完全抹去历史记录‌&#xff08;包括浏览记录、文件痕迹、系统日志等&#xff09;&#xff0c;需根据需求选择不同级别的清理方案。以下是分步骤的彻底清理指南&#xff1a; ‌一、基础清理&#xff1a;删除常见痕迹‌ ‌1. 浏览器记录清除‌ ‌Chrome/Firefox/E…

大数据环境搭建指南:基于 Docker 构建 Hadoop、Hive、HBase 等服务

大数据环境搭建指南&#xff1a;基于 Docker 构建 Hadoop、Hive、HBase 等服务 说明大数据环境搭建指南&#xff1a;基于 Docker 构建 Hadoop、Hive、HBase 等服务一、引言二、项目概述三、搭建步骤3.1 下载文件3.2 构建镜像3.2.1 构建基础层镜像3.2.2 并行构建 HBase/Hive/Spa…

AWS WebRTC:根据viewer端拉流日志推算视频帧率和音频帧率

viewer端拉流日志是这样的&#xff1a; 07:19:26.263 VERBOSE sampleAudioFrameHandler(): Audio Frame received. TrackId: 140092278368896, Size: 160, Flags 3210729368 2025-06-12 07:19:26.283 VERBOSE sampleAudioFrameHandler(): Audio Frame received. TrackId: 14009…

Vue.js——组件基础

目录 选项式API和组合式API 选项式API 组合式API 语法糖 选项式API和组合式API的关系 生命周期函数 组合式API的生命周期函数 选项式API的生命周期函数 组件的注册和引用 注册组件 全局注册 局部注册 引用组件 解决组件之间的样式冲突 scoped属性 深度选择器 …

Yii2 安装-yii2-imagine

#composer 安装-如已安装跳过 php -r "copy(https://install.phpcomposer.com/installer, composer-setup.php);" php composer-setup.php sudo mv composer.phar /usr/local/bin/composer#执行安装 composer require --prefer-dist yiisoft/yii2-imagine#报错 Updat…

C#程序设计简介

一、发展历史 C#的主要作者是丹麦计算机科学家安德斯海尔斯伯格&#xff08;Anders Hejlsberg&#xff09;&#xff0c;他是该语言的首席设计师&#xff0c;同时也是Turbo Pascal&#xff08;Pascal 语言编译器&#xff09;、Delphi&#xff08;由 Borland&#xff08;后被 Em…

JavaWeb笔记03

七、Maven1_概述Maven 是专门用于管理和构建 Java 项目的工具&#xff0c;它的主要功能有: 提供了一套标准化的项目结构 提供了一套标准化的构建流程&#xff08;编译&#xff0c;测试&#xff0c;打包&#xff0c;发布……&#xff09; 提供了一套依赖管理机制1.标准化的项目结…

AIGC自我介绍笔记

AIGC&#xff08;人工智能生成内容&#xff09;项目是指利用人工智能技术&#xff08;如深度学习、生成对抗网络、大规模预训练模型等&#xff09;自动生成文本、图像、音频、视频等多模态内容的系统性工程。这类项目通过算法模型学习海量数据&#xff0c;实现内容的自动化、个…

从docker-compose快速入门Docker

不得不提容器化技术是未来的一个发展方向&#xff0c;它彻底释放了计算虚拟化的威力&#xff0c;极大提高了应用的运行效率&#xff0c;降低了云计算资源供应的成本&#xff01;使用 Docker&#xff0c;可以让应用的部署、测试和分发都变得前所未有的高效和轻松&#xff01;无论…

【BERT_Pretrain】Wikipedia_Bookcorpus数据预处理(二)

上一篇介绍了wikipedia和bookcopus数据集&#xff0c;这一篇主要讲一下如何预处理数据&#xff0c;使其可以用于BERT的Pretrain任务MLM和NSP。 MLM是类似于完形填空的任务&#xff0c;NSP是判断两个句子是否连着。因此数据预处理的方式不同。首先&#xff0c;拿到原始数据集&a…