没有合适的资源?快使用搜索试试~ 我知道了~
首页基于FPGA的任意波形发生器设计和实现
基于FPGA的任意波形发生器设计和实现
717 浏览量
更新于2023-05-26
评论 2
收藏 297KB PDF 举报
波形发生器是一种数据信号发生器,在调试硬件时,常常需要加入一些信号,以观察电路工作是否正常。用一般的信号发生器,不但笨重,而且只发一些简单的波形,不能满足需要。例如用户要调试串口通信程序时,就要在计算机上写好一段程序,再用线连接计算机和用户实验板,如果不正常,不知道是通讯线有问题还是程序有问题。用E2000/L的波形发生器功能,就可以定义串口数据。通过逻辑探勾输出,调试起来简单快捷。任意波形发生器是目前电子测量仪器中发展最为快速的产品之一。它既可输出标准函数信号,也可以产生由用户定义的非标准函数波形(任意波形)信号,并且有丰富的模拟调制(AM,FM,PM)和数字调制(FSK,PSK)功能,能为
资源详情
资源评论
资源推荐

基于基于FPGA的任意波形发生器设计和实现的任意波形发生器设计和实现
波形发生器是一种数据信号发生器,在调试硬件时,常常需要加入一些信号,以观察电路工作是否正常。用一
般的信号发生器,不但笨重,而且只发一些简单的波形,不能满足需要。例如用户要调试串口通信程序时,就
要在计算机上写好一段程序,再用线连接计算机和用户实验板,如果不正常,不知道是通讯线有问题还是程序
有问题。用E2000/L的波形发生器功能,就可以定义串口数据。通过逻辑探勾输出,调试起来简单快捷。任意波
形发生器是目前电子测量仪器中发展最为快速的产品之一。它既可输出标准函数信号,也可以产生由用户定义
的非标准函数波形(任意波形)信号,并且有丰富的模拟调制(AM,FM,PM)和数字调制(FSK,PSK)功能,
能为
波形发生器是一种数据信号发生器,在调试硬件时,常常需要加入一些信号,以观察电路工作是否正常。用一般的信号发
生器,不但笨重,而且只发一些简单的波形,不能满足需要。例如用户要调试串口通信程序时,就要在计算机上写好一段程
序,再用线连接计算机和用户实验板,如果不正常,不知道是通讯线有问题还是程序有问题。用E2000/L的波形发生器功能,
就可以定义串口数据。通过逻辑探勾输出,调试起来简单快捷。任意波形发生器是目前电子测量仪器中发展最为快速的产品之
一。它既可输出标准函数信号,也可以产生由用户定义的非标准函数波形(任意波形)信号,并且有丰富的模拟调制
(AM,FM,PM)和数字调制(FSK,PSK)功能,能为不同的应用领域提供各种标准或非标准信号,尤其在水下声纳、通信、
雷达导航、电子对抗等装备的研制、生产、维修中,是必不可少的信号发生器。
1 任意波形发生器的任意波形发生器的FPGA实现实现
FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进
一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了
原有可编程器件门电路数有限的缺点。FPGA一般来说比ASIC(专用集成芯片)的速度要慢,无法完成复杂的设计,而且消
耗更多的电能。但是他们也有很多的优点比如可以快速成品,可以被修改来改正程序中的错误和更便宜的造价。厂商也可能会
提供便宜的但是编辑能力差的FPGA.因为这些芯片有比较差的可编辑能力,所以这些设计的开发是在普通的FPGA上完成的,
然后将设计转移到一个类似于ASIC的芯片上。另外一种方法是用CPLD(复杂可编程逻辑器件备)。
系统框架如图1所示,上位机产生任意波形数据,经USB2.0控制器CY7C68013A与FPGA(现场可编程门阵列)相连。将
数据下载到FPGA的RAM当中,再通过硬件电路依次从波形存储器中读取出来,经D/A转换及滤波后得到所需信号波形输出。
关于DDS的基本原理与结构在这里就不再加以阐述,用FPGA按照DDS的基本原理和结构设计和实现一个任意波形发生
器,所以DDS的几个基本部分都是应当具备的。实现任意波形发生的关键在于把存放波形量化表的ROM换成了可以改写的
RAM,这样通过与RAM的接口可以改变存放在波形RAM中的数据从而实现任意波形发生。这里主要介绍控制部分、相位累加
器、波形RAM几个模块来叙述任意波形发生器的实现。
1.1 控制部分控制部分
这个部分主要是要解决DDS模块与单片机的接口问题。在FPGA的实现中,主要设计了2个模块,一个是输入寄存器模
块,为了接收单片机写入的频率控制字。另外一个是地址分配模块,这样单片机就可以通过不同的地址来选通FPGA各个模块
工作。设计中DDS采用了32位的相位累加器。这样对于一个频率控制字,单片机要分4次分别写入4个字节;基于这样的要
求,设计了输入寄存器模块如图2,这个部分主要是要解决DDS模块与单片机的接口问题。
din[70]是该模块与单片机数据线的接口,clr是低电平异步清零,en是高电平使能,elk为数据写入时钟,dout[31O]是寄存
器输出的32位频率控制字。该模块工作过程为:当en为高电平,clr也为高电平时,elk的上升沿将输入的8位数据锁存进该模
块中,当锁存完4个字节的数据后,自动将该4个字节的数据按照先写入的在高位的顺序组合成一个32 bit的数据输出到
dout[310].
该模块的功能仿真图如图3所示,看到当clr='1'并且en='1'时,经过4个时钟,dout上将前4个时钟的值'00'、'01'、'02'、
'03'组成32位的'00010203'数值输出在dout上。














安全验证
文档复制为VIP权益,开通VIP直接复制

评论0