IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> FPGA自学笔记--DDS ip核的使用(vivado) -> 正文阅读

[网络协议]FPGA自学笔记--DDS ip核的使用(vivado)

学习记录之用。

一、DDS概念

DDS(Direct Digital Frequency Synthesizer)直接数字频率合成器本文主要介绍如何调用Xilinx的DDS?IP核生成某一频率的Sin和Cos信号。

二、频率选择

打开IP核配置,parameter Selection选择System Parameters,有两种选择,

选择System Parameters时,输出频率可以在IP核中直接输入。

选择Hardware Parameter时,可以在IP核中或者程序中输入频率控制字PINC来确定,

如图,

PINC选择的是 1101000110110111 = 53687

由手册公式,

?

?f = (53687*100*10^6)/(2^16) = 81.91986 MHz

我们再看IP核的信息。

?另外,我们也可以在程序中控制PINC。

top.v 如下。

`timescale 1ns / 1ps

module sin_20M(
    input clk,
    input config_tvalid,
    input rst_n,
    input [15:0]        config_data_poff,config_data_pinc,
    output [7:0]       dds_data_sin_0,dds_data_cos_0
    );
   wire m_axis_data_tvalid;
   wire m_axis_phase_tvalid;
   wire [15:0]m_axis_phase_tdata;
  dds_compiler_0 dds_init (
  .aclk(clk),                                  // input wire aclk
  .s_axis_config_tvalid(config_tvalid),  // input wire s_axis_config_tvalid
  .s_axis_config_tdata({16'd0,config_data_pinc}),    // input wire [31 : 0] s_axis_config_tdata
  .m_axis_data_tvalid(m_axis_data_tvalid),      // output wire m_axis_data_tvalid
  .m_axis_data_tdata({ dds_data_sin_0,dds_data_cos_0}),        // output wire [15 : 0] m_axis_data_tdata
  .m_axis_phase_tvalid(m_axis_phase_tvalid),    // output wire m_axis_phase_tvalid
  .m_axis_phase_tdata(m_axis_phase_tdata)      // output wire [15 : 0] m_axis_phase_tdata
);

endmodule


?tb文件如下。

`timescale 1ns / 1ps
//

// 该tb文件中直接输入控制字 66 ----6666
//  f=(PINC*fclk)/(2^phase width)=6666乘100000000/2的16次方=10.17MHz
//


module sintb(
    );
    reg clk;
    always #5 clk<=~clk;
    reg     rst_n;
wire [7:0]       dds_data_sin_0,dds_data_cos_0;
reg [15:0]        config_data_pinc,config_data_poff;
reg               config_tvalid;
sin_20M     dds_001_Init
(
    .clk(clk),
    .rst_n(rst_n),
    .dds_data_sin_0(dds_data_sin_0),
    .dds_data_cos_0(dds_data_cos_0),
    .config_data_poff(config_data_poff),
    .config_data_pinc(config_data_pinc),
    .config_tvalid(config_tvalid)
);
initial
begin
    clk = 0;
    rst_n = 1;
    config_data_poff = 16'h4000;
    config_data_pinc = 16'd66;
    config_tvalid = 1'b1;
    #100000
    config_data_pinc = 16'd6666;
    #100000
    config_data_poff = 16'h8000;
    $stop;
end
endmodule

?输出的波形。

完整工程:https://download.csdn.net/download/lgk1996/83163014

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-03-04 15:57:23  更:2022-03-04 15:59:35 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 7:47:28-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码