当前位置:   article > 正文

如何用FPGA输出正弦波、三角波等_fpga产生波形

fpga产生波形

如何用FPGA输出正弦波、三角波等

一、开发工具

1、 软件平台:Quartus ll
2、芯片:不重要

二、步骤

1、设置ROM IP核

设置ROM IP核,根据使用的DA芯片选择对应的位数和数据量,选择生成好的mif文件,一个存储波形的ROM IP核就创建好了。
下面是详细步骤:
1、点击Tool
2、点击MegaWizard,出现下图,点击Next。
3、在框中输入ROM选择ROM:1-PORT,左边框中选择保存地址和创建文件名。选择完毕点击Next进入IP核设置界面。
4、根据DA选择相应的位宽和容量。
5、红框里面是是否优化,我一般取消勾选。
在这里插入图片描述
6、在file name处选择需要用到的数组.mif文件,剩下就是一路点击next,这样一个ROM IP核就创建好了。
在这里插入图片描述

2、程序编写

开始编写程序调用ROM IP核,根据之前设定的参数,软件会自动生成相应的代码,至于代码怎么写我们不用管,我们只需要了解三个参数就够了,分别是:address(数据地址)、clock(时钟)、q(读出的数据),顶层文件编写如图,将信号链接到需要使用ROM IP核的模块。
ROM IP核顶层文件
对于这三个参数,clock可以使用系统时钟,所以直接关联到系统时钟就可以了,address是ROM核中数据存放的地址,由于我们是输出的正弦波是连续信号,所以地址直接累加就可以了,q是ROM核根据输入的地址读出的数据,也就是我们想要的数据,这个数据是可以直接发给DA芯片的。
下面展示一些 ROM IP核的读代码

module da_wave_send(
    input                 clk         ,  //时钟
    input                 rst_n       ,  //复位信号,低电平有效
    
    input        [11:0]    rd_data     ,  //ROM读出的数据
    output  reg  [11:0]    rd_addr     ,  //读ROM地址
    output       [11:0]    da_data1        //输出给DA的数据  
);
parameter  FREQ_ADJ = 12'd900;  //频率调节
reg    [11:0]    freq_cnt  ;
assign da_data1 = rd_data;
always @(posedge clk or negedge rst_n) begin
    if(rst_n == 1'b0)
        freq_cnt <= 12'd0;
    else if(freq_cnt == FREQ_ADJ)    
        freq_cnt <= 12'd0;
    else         
        freq_cnt <= freq_cnt + 12'd1;
end
always @(posedge clk or negedge rst_n) begin
    if(rst_n == 1'b0)
        rd_addr <= 1'd0;
    else begin
        if(freq_cnt == FREQ_ADJ) begin
            rd_addr <= rd_addr + 1'b1;
        end    
end     
endmodule
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

上面这些代码就是将ROM IP核中的数据读出的程序,其中包括了发送到DA芯片驱动的接口。将这些读出的数据通过DA芯片输出就是一个完整的波形了。波形文件用的是正点原子自带的软件生成的,发出什么样的波形是根据你生成什么文件决定的。
之所以用调用ROM IP核的方法去输出波形,是因为这种方法相对简单一点。其实也可以使用CORDIC 算法,没有基础就使用这个算法是相当吃力的,所以还是怎么简单怎么来呗。
DA芯片使用的是TLV5614,一个十二位多通道的芯片,速度还凑活,比不上高速的DA芯片,正常使用只要驱动调好了就没问题。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/酷酷是懒虫/article/detail/974292
推荐阅读
相关标签
  

闽ICP备14008679号