使用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
英文地址,請注明出處:http://en.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…