FPGA之DDS信号发生器

发布者:cxd88988最新更新时间:2022-07-04 来源: csdn关键字:FPGA  DDS  信号发生器 手机看文章 扫描二维码
随时随地手机看文章

 本文主要涉及以下几个问题


1:频率控制字如何得到


2:DDS的框图


3:用MATLAB得到正弦波的数字量化


4:设计代码


5:仿真代码


6:仿真图


首先将正弦波信号离散化,离散成多少位的根据自己的设计精度要求来定,但最高位一定是符号位,负数用补码来表示;然后用rom或者ram来存储离散后的数据;再由频率控制字的累加来给出地址用于读出ROM或者ram中的数据。


1:相位累加器的位宽设为n,fc/(2^n)称作频率分辨率,这是能分辨出的最小频率,提高相位累加器位宽可以调高频率分辨率。目标频率f=M*fc/2^n ,fc是采样频率,M是频率控制字,由此可以得到频率控制字。


2:DDS框图其中输入到ram中的w是来自相位累加器的值作为ram的地址读取离散化的正弦波数据。

3:八位量化其中最高位是符号位,用MATLAB产生数据并生成mif文件


clc;

clear all;

N=2^8;

s_p=0:255;%正弦波一个周期的采样点数

sin_data=sin(2*pi*s_p/N);

%定点化

fix_p_sin_data=fix(sin_data*127);

for i=1:N

    if fix_p_sin_data(i)<0

        fix_p_sin_data(i)=N+fix_p_sin_data(i);%记住这里是负数用加号即可

    else

        fix_p_sin_data(i)=fix_p_sin_data(i);

    end

end

fid=fopen('sp_ram_256x8.mif','w+');

fprintf(fid,'WIDTH=8;n');

fprintf(fid,'DEPTH=256;n');

fprintf(fid,'ADDRESS_RADIX=UNS;n');

fprintf(fid,'DATA_RADIX=UNS;n');

fprintf(fid,'CONTENT BEGIN n');

for i=1:N

fprintf(fid,'%d:%d; n',i-1,fix_p_sin_data(i));

end

fprintf(fid,'END; n');

fclose(fid);

4:这里加上了1MH和10M正弦波的混合和上下变频其实就是两个波形相乘然后是积化和差的结果


module dds(

input sclk,

input rst_n,

output [7:0] owave_1m,

output [7:0] owave_10m,

output [15:0] owave_mix,

output [7:0] wave,

output [7:0] wave_1a10

);

parameter FRQ_W_1m=32'd85899346;

parameter FRQ_W_10m=32'd858993460;

 

wire [7:0] addr_1m;

wire [7:0] addr_10m;

reg [7:0] addr;

reg [31:0] phase_sum_1m;

reg [31:0] phase_sum_10m;

wire [8:0] oo;

assign addr_1m = phase_sum_1m[31:24];

assign addr_10m = phase_sum_10m[31:24];

 

assign oo={owave_1m[7],owave_1m} + {owave_10m[7],owave_10m};

assign wave_1a10 = oo[8:1];

always @(posedge sclk or negedge rst_n)

if(rst_n == 1'b0)

addr <= 'd0;

else 

addr <= addr + 1'b1;

 

always @(posedge sclk or negedge rst_n)

if(rst_n == 1'b0)

phase_sum_1m <= 'd0;

else

phase_sum_1m <= phase_sum_1m + FRQ_W_1m;

 

always @(posedge sclk or negedge rst_n)

if(rst_n == 1'b0)

phase_sum_10m <= 'd0;

else

phase_sum_10m <= phase_sum_10m + FRQ_W_10m;

sp_ram_256x8 sp_ram_256x8_inst_1m (

.address (addr_1m),

.clock (sclk),

.data (8'd0),

.wren (1'b0),

.q (owave_1m)

);

 

sp_ram_256x8 sp_ram_256x8_inst_10m (

.address (addr_10m),

.clock (sclk),

.data (8'd0),

.wren (1'b0),

.q (owave_10m)

);

sp_ram_256x8 sp_ram_256x8_inst (

.address (addr),

.clock (sclk),

.data (8'd0),

.wren (1'b0),

.q (wave)

);

 

mult_8x8 mult_8x8_inst (

.dataa ( owave_1m),

.datab (owave_10m),

.result (owave_mix )

);

 

endmodule

5:仿真代码


`timescale 1ns/1ns

module tb_dds;

reg sclk;

reg rst_n;

wire [7:0] owave_1m;

wire [7:0] owave_10m;

wire [15:0] owave_mix;

wire [7:0] wave;

initial begin

rst_n = 0;

sclk = 0;

#100

rst_n = 1;

end

 

 

always #10 sclk = ~sclk;

 

dds dds_inst(

.sclk (sclk),

.rst_n (rst_n),

.owave_1m (owave_1m),

.owave_10m (owave_10m),

.owave_mix (owave_mix),

.wave (wave),

.wave_1a10 ()

);      

 

endmodule


6:仿真结果

关键字:FPGA  DDS  信号发生器 引用地址:FPGA之DDS信号发生器

上一篇:Verilog实现序列信号发生器
下一篇:简易数字合成信号发生器

推荐阅读最新更新时间:2024-11-12 10:20

莱迪思全新FPGA赋予3D新含义
“3D这个‘D’是Defense、防卫,不是‘三维’这个意思。全新的防卫功能是通过硬件和信任来增加安全性的。”莱迪思半导体公司近日宣布推出MachXO3D FPGA,用于在各类应用中保障系统安全。莱迪思半导体亚太区业务发展(BD)总监陈英仁先生,在发布会上对3D进行了解释。 搭配硬件可信根极大提升安全性 不安全的系统会导致数据和设计盗窃、产品克隆和过度构建以及设备篡改或劫持等问题。OEM可以使用MachXO3D轻松实现可靠、全面、灵活的基于硬件的安全机制,保障所有系统固件的安全。MachXO3D可以在系统生命周期的各个阶段(从生产到系统报废),组件固件遭到未经授权的访问时,对其保护、检测和恢复。 “我们的方式
[嵌入式]
莱迪思全新<font color='red'>FPGA</font>赋予3D新含义
如何通过信道校正优化宽带宽信号的性能
当您使用信号发生器(信号源) 输出连续波时,信号发生器在射频输出端口确认其输出幅度精度。由于温度会随时间而升高,信号发生器通过自动电平控制 (ALC)电路或外部电平控制功能来监控和调节其输出功率。 但是,我们在之前发表的文章中提到的内容适用于特定的频率点幅度补偿。在不同的频率点上,针对幅度平坦度要应用不同的偏置值。如果信号是调制过的信号,这个信号会占用一定的带宽。只对信号应用一个偏置值,不能校正整个信号带宽的平坦度效应。这些效应不仅包括幅度平坦度,还包括相位平坦度。 心得1:使用内部信道校正 大多数新款矢量信号发生器都支持内部校准程序,这个程序会在整个射频频率和功率电平范围内收集基带和射频幅度和相位误差的校正数据。校正数据
[测试测量]
如何通过信道校正优化宽带宽信号的性能
1020万个逻辑单元,大容量Stratix® 10 GX 10M FPGA问市
全新英特尔Stratix® 10 GX 10M FPGA拥有 1020 万个逻辑单元,针对ASIC原型设计和仿真市场 本文作者:英特尔网络和自定义逻辑事业部副总裁兼FPGA 和电源产品营销总经理Patrick Dorsey 早前,多家客户已经收到 全新 英特尔 ® Stratix® 10 GX 10M FPGA样片,该产品是全球密度最高的FPGA,拥有1020 万个逻辑单元,现已量产。该款元件密度极高的FPGA,是基于现有的英特尔 Stratix 10 FPGA 架构以及英特尔先进的嵌入式多芯片互连桥接 (EMIB) 技术。其利用EMIB 技术融合了两个高密度英特尔 Stra
[嵌入式]
1020万个逻辑单元,大容量Stratix® 10 GX 10M <font color='red'>FPGA</font>问市
Altera全球业务开发总监:数字电源跃居FPGA SoC设计新宠
20/14奈米现场可编程闸阵列(FPGA)将加速改搭数位电源。FPGA迈向20/14奈米先进制程,导致电路复杂度和电源供应需求激增,相关晶片商已开始导入高整合、可编程,且支援大电流的数位电源解决方案,从而提升FPGA核心电源轨的供电效能,同时改善系统整体功耗、占位空间和散热机制,以满足系统业者日益严格的节能设计要求。 Altera全球业务开发总监Patrick Wadden强调,资料中心业者将更加注重伺服器核心处理器功耗。 Altera全球业务开发总监Patrick Wadden表示,基地台、伺服器正扩大导入20奈米以下先进制程,并整合各种处理核心的FPGA系统单晶片(SoC),然而,随着FPGA SoC性能攀升、内部逻
[嵌入式]
详析单片机、ARM、FPGA嵌入式的特点及区别
  单片机的特点:   (1)受集成度限制,片内存储器容量较小,一般内ROM:8KB以下;   (2)内RAM:256KB以内。   (3)可靠性高   (4)易扩展   (5)控制功能强   (6)易于开发   ARM的特点:   (1) 自带廉价的程序存储器(FLASH)和非易失的数据存储器(EEPROM)。这些存储器可多次电擦写,使程序开发实验更加方便,工作更可靠。   (2) 高速度,低功耗。在和M51单片机外接相同晶振条件下,AVR单片机的工作速度是M51单片机的30-40倍;并且增加了休眠功能及CMOS技术,使其功耗远低于M51单片机。   (3) 工业级产品。具有大电流输出可直接驱动SSR和继电器,有看门狗定时器
[单片机]
分享罗德与施瓦茨信号发生器自检自校准方法
罗德与施瓦茨信号发生器在信号质量、灵活性和可用性方面表现优异。因此定期就要对仪器进行自检自检准操作,安泰信号发生器维修中心分享罗德与施瓦茨信号发生器自检自校准方法: 信号发生器 一、SMW200A/SMBV100B/SMA100B/SMB100B 1 自校准 System Config Setup General Internal Adjustments Adjust All 2 固件检查、升级或修复 System Config Setup Instrument Assembly Versions / Options Firmware FW version显示firmware版本。 存储firmware的U盘
[测试测量]
为什么智能汽车用到的FPGA越来越多
以智能化、电动化、网联化、共享化为代表的汽车“新四化”时代,正在加速推进汽车行业技术和架构的快速演进。 例如,传统的分布式方案将被集成式方案取代,包括ECU、传感器在内的硬件会得到高度整合;汽车OEM会更关注客户在接口软件层面上的创新,以及为终端客户提供差异化产品的能力。 同时,电动汽车、自动驾驶、高级驾驶辅助系统(ADAS)和车载信息娱乐系统等市场需求的猛增,也大大增加了OEM厂商对汽车系统电子组件的依赖。根据德勤(Deloitte)的预计,到2030年,电子系统将占据新车成本的45%左右。 但可能有一些不太被了解的事实是,FPGA在当今最新的汽车设计中发挥着至关重要的作用。 对于技术先进的汽车来说,采用多达10-12片
[嵌入式]
为什么智能汽车用到的<font color='red'>FPGA</font>越来越多
从MCU到FPGA:第2部分
最近,我在做一个项目,该项目要求我这个MCU迷,转向FPGA开发。在这个系列博客中,我将介绍如何将现有的MCU知识和经验运用到FPGA的开发中。在第一部分中,我介绍了FPGA的优缺点,以及Terasic DE10 nano开发套件,并且探讨了影响FPGA设计的关键因素。现在,在第2部分,我将分析示例代码并发现更多的有用的资源。 MCU和FPGA之间的区别类似于摩托车和汽车之间的差异:尽管两者都可以让你从A点到达B点,但是机制却有着根本的不同。我认为这个类比在描述MCU和FPGA的引脚模式、引脚类型以及串并行处理时非常贴切,在这些方面,两者是完全不同的。 最初,我从Terasic的设置和指导实践开始,但是一直处于困境中。每次
[嵌入式]
小广播
最新测试测量文章
换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved