首页 > 其他分享 >m基于FPGA的多功能信号发生器verilog实现,包含testbench,可以调整波形类型,幅度,频率,初始相位等

m基于FPGA的多功能信号发生器verilog实现,包含testbench,可以调整波形类型,幅度,频率,初始相位等

时间:2024-04-24 23:02:01浏览次数:18  
标签:FPGA 波形 clk DDS 累加器 verilog 频率 testbench reg

1.算法仿真效果

vivado2019.2仿真结果如下:

 

 

 

输出正弦,并改变幅度,频率等。

 

 

 

输出方波,并改变幅度,频率等。

 

 

 

输出锯齿波,并改变幅度,频率等。

 

 

 

输出三角波,并改变幅度,频率等。

 

2.算法涉及理论知识概要

       DDS(Direct Digital Synthesis,直接数字频率合成)技术是一种通过高性能数字计数器和查找表技术生成高精度、灵活可控的模拟信号的手段。DDS多功能信号发生器可以输出正弦波、方波、锯齿波、三角波等多种波形,并能够方便地调整波形类型、幅度、频率和初始相位。以下是DDS信号发生器的详细原理及其相关数学公式。

 

2.1 DDS基本原理

DDS信号发生器的核心部件包括高速累加器、波形存储器(查找表)和数模转换器(DAC)。

 

高速累加器:每次时钟周期,累加器都会将输入的频率控制字(Frequency Control Word, FCW)与前一周期的累加结果相加。频率控制字决定了输出信号的频率。

 

ACCUMULATOR:N(t)=N(t−1)+FCW

 

其中,N(t) 是在时间t 时刻的累加器输出,FCW 是频率控制字,决定了输出信号的频率。

 

波形存储器(查找表):累加器的输出值会被当作地址,用于查询预先存储在波形存储器中的幅度数据。对于正弦波,存储器中的数据是对正弦函数的离散采样;对于方波、锯齿波、三角波等其他波形,存储的是这些波形在固定区间内的离散值。

 

LUT:X[N(t)]

 

其中,X 是波形存储器,N(t) 作为地址,取出对应的幅度值。

 

2.2 波形参数调整

 

 

 

       DDS多功能信号发生器利用高速累加器、波形存储器和数模转换器,通过调整频率控制字、波形存储器的内容以及累加器的初始值,可以灵活地生成各种波形,并精确控制其幅度、频率和初始相位。这项技术因其高度的灵活性和优异的频率分辨率,在通信、测量仪器、雷达、声纳等诸多领域有着广泛应用。

 

3.Verilog核心程序

 

`timescale 1ns / 1ps
//
// Company: 
// Engineer: 
// 
// Create Date: 2024/04/01 15:42:00
// Design Name: 
// Module Name: TEST
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
 
module TEST();
reg i_clk;
reg i_rst;
reg[1:0]i_sel;//信号选择00,01,10,11
reg[7:0]i_amp;//调整幅度,设置1~16,小于8缩小,大于8放大,等于8不变
reg[7:0]i_FK; //调整频率,1最慢,逐渐增加
reg[13:0]i_phase;//初始相位
wire signed[15:0]o_dout;
 
tops uut(
.i_clk    (i_clk),
.i_rst    (i_rst),
.i_sel    (i_sel),//信号选择00,01,10,11
.i_amp    (i_amp),
.i_FK     (i_FK),
.i_phase  (i_phase),
.o_dout   (o_dout)
);
 
 
initial
begin
    i_clk   = 1'b1;
    i_rst   = 1'b1;
    i_sel   = 2'b11;
    i_amp   = 5'd10;
    i_FK    = 8'd1;
    i_phase = 14'd0;
    #1000
    i_rst = 1'b0;
    #500000
    i_amp   = 5'd15;
    i_FK    = 8'd4;
  
 
    
end
always #5 i_clk=~i_clk;
endmodule

 

  

 

标签:FPGA,波形,clk,DDS,累加器,verilog,频率,testbench,reg
From: https://www.cnblogs.com/51matlab/p/18156561

相关文章

  • 基于FPGA的图像累积直方图verilog实现,包含tb测试文件和MATLAB辅助验证
    1.算法运行效果图预览    2.算法运行软件版本Vivado2019.2 matlab2022a 3.算法理论概述      图像累积直方图是一种重要的图像特征表示方法,它统计了图像中像素值累加分布的情况,广泛应用于图像增强、对比度调整、颜色校正、图像分割、目标检测等领域。FP......
  • 创新的FPGA:LAV-AT-E70-1CSG841C、LAV-AT-E70-2CSG841C、LAV-AT-E70-3CSG841C旨在实现
    Avant-E专为网络边缘处理而生Avant™-E系列中端FPGA是基于16nmFinFET工艺Avant平台推出的首款产品。该平台经过优化可提供同类FPGA产品中领先的低功耗、小尺寸和高性能。Avant-EFPGA旨在实现低延迟的网络边缘设备,非常适合有着明确时序要求的应用,包括工业环境中的机器视觉、机器......
  • mipi dsi4线720P国产gowin lattice crosslink配套屏Fpga dsi
     1.产品概述    显示屏LCDMIPIDSI4lane,支持分辨率720*1280,60HZ彩色显示。用于对接国产GOWIN的NR-9C的开发板和LATTICE的CROSSLINK开发板,显示MIPIDSI 功能。      MIPIDSI是4-LANE,MIPI速率在480MHZ。支持LP模式初始化和HS模式显示数据发送。    ......
  • 基于EP4CE6F17C8的FPGA矩阵键盘实例(另类方法)
    一、电路模块电路模块参见“基于EP4CE6F17C8的FPGA矩阵键盘实例”部分。二、实验代码本例使用6个数码管依次显示按下按键的键值,每位显示的值可从0~F,对应16个矩阵按键。按键reset为复位键,代码使用Verilog编写,具体如下。先编写数码管实现显示字形解码的程序,模块名称为seg_decode......
  • m基于FPGA的多通道FIR滤波器verilog实现,包含testbench测试文件
    1.算法仿真效果VIVADO2019.2仿真结果如下:   系统RTL结构如下:   2.算法涉及理论知识概要       多通道FIR(FiniteImpulseResponse)滤波器是一种在数字信号处理中广泛应用的线性时不变滤波技术,尤其适用于多通道音频、视频、图像等多维数据的处理。   ......
  • Verilog语言学习(自用
    HDR:硬件描述语言高级程序语言,通不过对数字电路和系统描述,可以对数字集成电路进行设计和验证主要功能:数字集成电路设计工程师可以根据电路的特点,采用层次化的设计结构,将抽象的逻辑功能用电路的方式进行实现。 VerilogHDL(美):思维开放-->语法形式比较灵活,宽松度高(不适合大规模集......
  • SystemVerilog -- 6.2 Interface Bundles
    Introduction涵盖了对接口的需求,如何实例化接口并将其与设计连接起来。设计有两种编写方式:通过使用现有接口名称专门使用该接口通过使用可以将任何接口传递到的泛型接口句柄显然,当接口定义更新到具有不同名称的较新版本时,泛型方法效果最佳,并且需要支持使用它的旧设计。Examp......
  • FPGA器件实现逻辑运算的基本原理是(   )。
    选项:A、采用最小项相加的电路形式实现逻辑运算B、采用与非门电路实现逻辑运算C、采用异或门电路实现逻辑运算D、采用查找表的方式实现逻辑运算答案:D解析:组成FPGA的两个最基本的部分是组合逻辑以及时序逻辑,分别实现这两个基本部分的结构就是FPGA的基本单元。组合逻辑......
  • 具有低功耗、小尺寸和高可靠性,LIFCL-40-9MG121I、LIFCL-40-8MG121I、LIFCL-40-7MG121I
    说明CrossLink-NXFPGA是首款采用Nexus技术平台设计的产品系列,为网络边缘开发工程师提供实现创新的嵌入式视觉解决方案所需的更低功耗、小尺寸和高可靠性。该系列采用低功耗28nmFD-SOI技术,具有小尺寸、高可靠性和出色的性能。该器件适合用于各种应用,包括嵌入式视觉。应用包......
  • FPGA入门笔记013——嵌入式块RAM使用之FIFO
    1、FIFO概述​ FIFO(FirstInFirstOut),即先进先出。FPGA或者ASIC中使用到的FIFO一般指的是对数据的存储具有先进先出特性的一个缓存器,常被用于数据的缓存或者高速异步数据的交互。它与普通存储器的区别是没有外部读写地址线,这样使用起来相对简单,但缺点就是只能顺序写入数据......