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

  • 一、开发工具
  • 二、步骤
    • 1、设置ROM IP核
    • 2、程序编写

一、开发工具

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核的模块。

对于这三个参数,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) beginif(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) beginif(rst_n == 1'b0)rd_addr <= 1'd0;else beginif(freq_cnt == FREQ_ADJ) beginrd_addr <= rd_addr + 1'b1;end
end
endmodule

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

如何用FPGA输出正弦波、三角波等相关推荐

  1. dac0832三角波c语言程序,单片机控制DAC0832输出正弦波三角波汇编程序

    org 0000h LJMP MAIN ORG 0003H LJMP L0 MAIN:MOV R2,#0aH                    ;调幅倍数 MOV R4,#01H          ...

  2. STM32单片机可变频率幅度DDS信号发生器正弦波三角波方波AD9833

    实践制作DIY- GC0094-DDS信号发生器 一.功能说明: 基于STM32单片机设计-DDS信号发生器 功能介绍: 硬件组成:STM32F103C系列最小系统板 +LCD1602显示器+AD98 ...

  3. dac0832产生梯形波程序C语言,在8086系统中用DAC0832输出一个三角波,一个梯形波,和一个正弦波。...

    满意答案 晓玫1022 2014.09.28 采纳率:57%    等级:13 已帮助:8429人 MOV DX,PORTD MOV AL,0FFH Repeat:INC AL OUT DX,AL J ...

  4. python面试题之如何用Python输出一个斐波那契数列

    so eary! 1 a,b = 0, 1 2 while b<100: 3 print (b), 4 a, b = b, a+b 本文转载自:python黑洞网 原文链接:http://www ...

  5. dac0832三角波c语言程序,单片机驱动dac0832输出方波三角波正玄波程序

    电路图 仿真文件及完整的源代码下载地址:http://www.51hei.com/bbs/dpj-20395-1.html 下面是汇编程序源码,可以用按键来控制 org 0000h ajmp main ...

  6. python输出斐波那契数列_python面试题之如何用Python输出一个斐波那契数列

    [BZOJ1623] [Usaco2008 Open]Cow Cars 奶牛飞车 贪心 SB贪心,一开始还想着用二分,看了眼黄学长的blog,发现自己SB了... 最小道路=已选取的奶牛/道路总数. ...

  7. python正弦波和等腰三角波_51proteus仿真:生成方波、正弦波、锯齿波和三角波

    51proteus仿真:生成方波.正弦波.锯齿波和三角波 这个proteus仿真是一个网友做的,该仿真可以生成方波.正弦波.锯齿波和三角波,并且还可以用按键调整波形. 不过,对初学者来讲,可能有点复杂 ...

  8. c语言编程三角波,STM32 三角波输出

    原标题:STM32 三角波输出 还可以生成三角波,跟之前的生成正弦波和阶梯波不同,它不需要DMA帮助描点来画出波形,而是自己就可以生成三角波,因为三角波非常简单,只是线性的波形,所以对于DAC来说完全 ...

  9. 51proteus仿真:生成方波、正弦波、锯齿波和三角波

    51proteus仿真:生成方波.正弦波.锯齿波和三角波 这个proteus仿真是一个网友做的,该仿真可以生成方波.正弦波.锯齿波和三角波,并且还可以用按键调整波形. 不过,对初学者来讲,可能有点复杂 ...

最新文章

  1. [ACTF新生赛2020]fungame
  2. html5列表去掉符号,从Python字符串中删除不在允许列表中的HTML标记
  3. win10专业版占多少空间_win10技巧:使用win10轻松自动恢复系统!
  4. Faster-RCNN训练自己数据集遇到的问题集锦
  5. iOS 开发周报:Apple 发布 iPhone 7 / 7 Plus 、Apple Watch 2 等新品
  6. 利用Python随机或暴力生成密码
  7. ReactNative——打包发布
  8. 解压mysql server_2018-05-09 MySql-server解压缩版安装及配置
  9. mdadm命令参数详解
  10. C# Invoke 使用 异步委托
  11. inster into java_SELECT INTO 和 INSERT INTO SELECT 两种表复制语句
  12. Android应用开发提高篇(6)-----FaceDetector(人脸检测)
  13. Java 将Excel转为XML
  14. php抽奖中了奖品后怎么处理,抽奖程序,求思路.该怎么处理
  15. qgis比例尺级别设置
  16. CS5211:EDP转LVDS转换器,可替代PS8622,PS8625,CH7511等芯片!
  17. tcl电视显示服务器异常1500,TCL 智能液晶电视常见故障分析检修实例
  18. 计算机中0和1的表示
  19. Cloud Native 演进可行性研究
  20. C++中read和write的区别

热门文章

  1. 阿里笔试题(2017在线编程题)-- 数串分组 --Java实现
  2. 《常规自然推广方法以及推广方案》
  3. 全国计算机模拟手机,2021年9月份全国计算机等级考试[计算机基础及MS Office应用]全真模拟题及答案(手机版)...
  4. web漏洞挖掘指南-前端跨域漏洞
  5. vant 索引城市不对_vue,vant,使用过程中 Swipe 轮播自定义大小遇到的坑
  6. 7-2 I Love GPLT (5 分)
  7. 用Stirling公式的应用
  8. winform的子窗体关闭刷新主窗体绑定数据以及刷新的总结
  9. 第二课:Mstar-Non-OS方案(二)——驱动LVDS显示屏
  10. 计算机组成mod2是什么意思,计算机组成原理常见概念计算