前言

用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的正弦信号发生器设计相关推荐

  1. 【FPGA实例】基于FPGA的DDS信号发生器设计

    原文链接来源:www.runoob.com 基于FPGA的DDS信号发生器设计 DDS 原理 ------DDS(直接频率合成) 技术是根据奈奎斯特抽样定理及数字处理技术,把一系列的模拟信号进行不失真 ...

  2. 基于FPGA的超声波信号发生器设计:程序和电路原理图

    基于FPGA的超声波信号发生器设计:程序和电路原理图,产生方波,正弦波和三角波,双通道. ID:28800618610960372

  3. 基于FPGA的混沌信号发生器设计与实现

    提出基于FPGA设计混沌信号发生器的一种改进方法.首先,采用Euler算法,将连续混沌系统转换为离散混沌系统.其次,基于IEEE-754单精度浮点数标准和模块化设计理念,利用Quartus II软件, ...

  4. 正弦信号发生器设计——VHDL

    一.实验目的 (1)学习并掌握Quartus II的使用方法 (2)学习简单时序电路的设计和硬件测试. (3)学习使用VHDL 语言方法进行逻辑设计输入 (4)进一步熟悉QuartusⅡ及其 LPM_ ...

  5. 基于FPGA的DDS信号发生器

    基于FPGA的DDS信号发生器     两个礼拜前就像写这个文档了,但是一直鸽到现在,主要是人摆了.还有个技术上的原因是,我想用串口屏显示波形,在串口调试助手上返回的数据是对的,但是发到串口屏上啥反应 ...

  6. 基于FPGA的IIR滤波器设计

    基于FPGA的IIR滤波器设计,使用VHDL语言. 本设计是毕设,包括论文 下面是论文目录截图: 各模块VHDL程序 时序控制模块程序 library ieee; use ieee.std_logic ...

  7. 基于FPGA的电子计算器设计(下)

    今天给大侠带来基于FPGA的电子计算器设计,由于篇幅较长,分三篇.今天带来第三篇,下篇,话不多说,上货. 导读 本篇介绍了一个简单计算器的设计,基于 FPGA 硬件描述语言 Verilog HDL,系 ...

  8. 基于FPGA的数字时钟设计

    基于FPGA的数字时钟设计 芯片与开发板 技术指标 1.具有正常的日时分秒技术显示功能,用七个数码管分别显示日,时,分,秒. 2.有按键校日,校时,校分,校秒. 3.利用led模拟整点报时功能. 4. ...

  9. 基于FPGA数字时钟的设计(附源码)

    大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分.大侠可以关注"FPGA技术江湖"微信公众号,在"闯荡江湖"."行侠仗义"栏里获取其 ...

  10. 基于FPGA的LSTM加速器设计(MNIST数据集为例)

    摘要 本文以MNIST手写数字识别任务为例,使用FPGA搭建了一个LSTM网络加速器,并选取MNIST数据集中的10张图片,通过vivado软件进行仿真验证.实验结果表明,本文设计的基于FPGA的LS ...

最新文章

  1. K近邻算法:以同类相吸解决分类问题!
  2. 每天学一点Scala之 伴生类和伴生对象
  3. 最大公约数 最小公倍数
  4. 深入理解openstack网络架构(2)----Basic Use Cases
  5. C#: IntelliSense 貌似做错了一些事情。
  6. SQL中的CASE WHEN语句
  7. outlook 搜索框_日程管理,用 Outlook 也行
  8. 一文弄懂Numpy中ndarray的维度(dimension)/轴数(axis/axes)问题
  9. 解决sublime3不能编辑插件default settings的问题
  10. Mac Postman app使用方法
  11. JAVA内存模型和GC原理
  12. atitit 未来学课程体系.docx
  13. 乐高机器人linux,如何搭建自己的乐高机器人编程环境
  14. 连续翻页浏览器面临的共同问题
  15. android环信删除会话列表,关于会话列表的置顶聊天
  16. 人的感性是否也属于理性的一种
  17. Linux文件搜索命令find、which和whereis应用
  18. 各种校验之MD5校验
  19. java日期格式化为json字符串,看这个就够了
  20. pp模块常用表 sap_SAPpp模块内表..doc

热门文章

  1. python输入逗号_python中 逗号的 用法
  2. 当前安全设置不允许下载该文件的解决办法
  3. 天和流量王v4.69官方版-2011最新绿色版(增加网站流量工具)
  4. SpringBoot之如何自定义一个starter模块
  5. 2021年安徽省大数据与人工智能应用竞赛大数据-本科组赛题
  6. Linux基金会的执行董事Jim Zemlin:开源不能没有“信任”
  7. Java加密套件强度限制引起的SSL handshake_failure
  8. 银河麒麟服务器版显示,银河麒麟服务器设置
  9. Python学习笔记3——条件语句及循环语句
  10. 用k-mer分析进行基因组调查:(六)用KmerGenie一步实现