基于FPGA的正弦信号发生器设计
前言
用FPGA做正弦信号发生器是我上大学期间在实验室里做的,主要用的ROM-IP和DA数模转化芯片,将数字信号转为模拟信号后,通过示波器进行显示。
我记得当时用FPGA做了正弦、三角波、方波信号,然后通过DA输出在示波器上显示信号........现在回想起来,自己感觉挺有意思的,当时学习时确实花费了不少时间去搞它。
好多同学通过关注《FPGA的故事》公众号,咨询我是不是可以讲一下正弦信号发生器的设计?
为了感谢大家对《FPGA的故事》公众号的关注,我把一些上学期间做的小实验慢慢分享给大家,希望对大家学习FPGA有帮助!
希望大家继续关注《FPGA的故事》,你们的支持就是我最大的动力!
应用知识储备说明
用FPGA做正弦信号发生器,从专业学科角度来说它属于通信行业了。在通信行业里,信号的处理肯定要用到两种信号类型:模拟信号和数字信号(这个概念大家可以自己上网查一下,这里不详细介绍)。这两种信号之间如何进行转化呢,就要用到AD芯片和DA芯片。
我想大家都知道AD和DA这两个名词吧,我们现在就用正弦信号发生器做个说明吧。
我把上大学期间做个实验给大家讲一下,如上图所展示的一样。当时我是通过信号发生器产生一定频率的正弦信号,然后再通过AD芯片(模拟转数字)将信号发生器输出的模拟信号转为数字信号;再将转化后的数字信号通过FPGA进行采集,把采集到的数据传递给DA芯片(数字转模拟),最后通过示波器观察信号是不是正弦波。
今天我们要做的实验,由于没有真实额信号源发生器,以及AD、DA和示波器;只能通过在FPGA中模拟正弦波的数字信号来搞了,然后通过仿真软件进行测试。
程序设计
我们这里要用到FPGA的ROM-IP来做实验,原理就是把正弦信号波形的数据存储到ROM中,然后从里面读出来就行了,如下图所示。
注意:由于大家使用的FPGA芯片不同(alter 或者Xilinx),生成的ROM操作流程也不同,这里不再介绍。
我们使用波形软件生成自己想要的波形参数,然后把生成的数据转换为coe文件,如下图所示。
这些准备后,我们调用一个ROM-IP将参数导入,就可以写代码控制ROM了。(此时,感觉自己又回到了大学时代,心情激动.......)
- top程序接口
名称 |
方向 |
位宽 |
说明 |
clk |
Input |
1 |
工作时钟 |
reset |
Input |
1 |
复位信号(active high) |
data |
Output |
8 |
波形数据 |
代码:
测试文件:
仿真结果:如下图所示,对data_out通过鼠标右键选择为模拟信号,数据信号就会变成正弦波形模式。
基于FPGA的正弦信号发生器设计相关推荐
- 【FPGA实例】基于FPGA的DDS信号发生器设计
原文链接来源:www.runoob.com 基于FPGA的DDS信号发生器设计 DDS 原理 ------DDS(直接频率合成) 技术是根据奈奎斯特抽样定理及数字处理技术,把一系列的模拟信号进行不失真 ...
- 基于FPGA的超声波信号发生器设计:程序和电路原理图
基于FPGA的超声波信号发生器设计:程序和电路原理图,产生方波,正弦波和三角波,双通道. ID:28800618610960372
- 基于FPGA的混沌信号发生器设计与实现
提出基于FPGA设计混沌信号发生器的一种改进方法.首先,采用Euler算法,将连续混沌系统转换为离散混沌系统.其次,基于IEEE-754单精度浮点数标准和模块化设计理念,利用Quartus II软件, ...
- 正弦信号发生器设计——VHDL
一.实验目的 (1)学习并掌握Quartus II的使用方法 (2)学习简单时序电路的设计和硬件测试. (3)学习使用VHDL 语言方法进行逻辑设计输入 (4)进一步熟悉QuartusⅡ及其 LPM_ ...
- 基于FPGA的DDS信号发生器
基于FPGA的DDS信号发生器 两个礼拜前就像写这个文档了,但是一直鸽到现在,主要是人摆了.还有个技术上的原因是,我想用串口屏显示波形,在串口调试助手上返回的数据是对的,但是发到串口屏上啥反应 ...
- 基于FPGA的IIR滤波器设计
基于FPGA的IIR滤波器设计,使用VHDL语言. 本设计是毕设,包括论文 下面是论文目录截图: 各模块VHDL程序 时序控制模块程序 library ieee; use ieee.std_logic ...
- 基于FPGA的电子计算器设计(下)
今天给大侠带来基于FPGA的电子计算器设计,由于篇幅较长,分三篇.今天带来第三篇,下篇,话不多说,上货. 导读 本篇介绍了一个简单计算器的设计,基于 FPGA 硬件描述语言 Verilog HDL,系 ...
- 基于FPGA的数字时钟设计
基于FPGA的数字时钟设计 芯片与开发板 技术指标 1.具有正常的日时分秒技术显示功能,用七个数码管分别显示日,时,分,秒. 2.有按键校日,校时,校分,校秒. 3.利用led模拟整点报时功能. 4. ...
- 基于FPGA数字时钟的设计(附源码)
大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分.大侠可以关注"FPGA技术江湖"微信公众号,在"闯荡江湖"."行侠仗义"栏里获取其 ...
- 基于FPGA的LSTM加速器设计(MNIST数据集为例)
摘要 本文以MNIST手写数字识别任务为例,使用FPGA搭建了一个LSTM网络加速器,并选取MNIST数据集中的10张图片,通过vivado软件进行仿真验证.实验结果表明,本文设计的基于FPGA的LS ...
最新文章
- K近邻算法:以同类相吸解决分类问题!
- 每天学一点Scala之 伴生类和伴生对象
- 最大公约数 最小公倍数
- 深入理解openstack网络架构(2)----Basic Use Cases
- C#: IntelliSense 貌似做错了一些事情。
- SQL中的CASE WHEN语句
- outlook 搜索框_日程管理,用 Outlook 也行
- 一文弄懂Numpy中ndarray的维度(dimension)/轴数(axis/axes)问题
- 解决sublime3不能编辑插件default settings的问题
- Mac Postman app使用方法
- JAVA内存模型和GC原理
- atitit 未来学课程体系.docx
- 乐高机器人linux,如何搭建自己的乐高机器人编程环境
- 连续翻页浏览器面临的共同问题
- android环信删除会话列表,关于会话列表的置顶聊天
- 人的感性是否也属于理性的一种
- Linux文件搜索命令find、which和whereis应用
- 各种校验之MD5校验
- java日期格式化为json字符串,看这个就够了
- pp模块常用表 sap_SAPpp模块内表..doc
热门文章
- python输入逗号_python中 逗号的 用法
- 当前安全设置不允许下载该文件的解决办法
- 天和流量王v4.69官方版-2011最新绿色版(增加网站流量工具)
- SpringBoot之如何自定义一个starter模块
- 2021年安徽省大数据与人工智能应用竞赛大数据-本科组赛题
- Linux基金会的执行董事Jim Zemlin:开源不能没有“信任”
- Java加密套件强度限制引起的SSL handshake_failure
- 银河麒麟服务器版显示,银河麒麟服务器设置
- Python学习笔记3——条件语句及循环语句
- 用k-mer分析进行基因组调查:(六)用KmerGenie一步实现