基于vhdl的dds频率变高vhdl波形仿真变为阶梯状怎么回事

基于FPGA的幅值可调信号发生器设计
08:58:50来源: 互联网 关键字:
&& 摘要:针对信号发生器时输出频率精度高和幅值可调的要求,采用直接数字频率合成(DDS)技术,提出一种基于的幅值、频率均可调的、高分辨率、高稳定度的信号发生器设计方案。采用AT89S52单片机为控制器,控制FPGA产生波形的数字信号,结合双数模(D/A)转换器及低通滤波器,最终实现输出信号幅值0~5 V可调,分辨率为10 bits;频率范围1 Hz~10 MHz可调,最小分辨率为1 Hz;频率稳定度优于10-4。信号参数可通过键盘进行设置,并在LCD上输出。由于FPGA的可编程性,易于对系统进行升级和优化。关键词:FPGA;信号发生器;DDS;单片机;VHDL&&& 直接数字频率合成(DDS)技术具有相对频带宽、频率转换时间短、频率分辨率高、输出信号相位连续、能够实现全数字自动化控制等优点,已经逐步成为高性能信号发生器的核心技术。现场可编程门阵列(FPGA)器件具有工作速度快、集成度高、可靠性好和现场可编程等优点,在现代电子设备中的应用越来越广。&&& 本文采用DDS技术和FPGA芯片设计了一种频率可调的信号发生器,可输出正弦波、方波、三角波和锯齿波等数字信号,其频率范围广,稳定性好,精度高,系统灵活,易于升级。1 系统总体设计&&& 系统框图如图1所示,它由单片机控制模块、FPGA波形产生模块、幅度控制模块、数模转换(DAC)模块、低通滤波模块、键盘输入和液晶显示模块组成。FPGA模块采用DDS技术,可产生正弦波、方波、三角波或锯齿波的数字信号,经D/A转换、低通滤波后输出。其波形类型及频率大小通过单片机直接控制,输出信号幅度的控制由单片机通过幅度控制模块改变数模转换模块的参考电压来间接实现。
2 功能模块设计2.1 FPGA模块&&& 该模块根据MCU提供的频率控制字K及波形选择字,利用DDS技术产生波形数字信号,通过数模转换器DAC变成阶梯波,再经过低通滤波器平滑后就可以得到合成的信号波形。此模块主要由相位累加器、相位寄存器和波形查找表构成,其原理框图如图2所示。其中,fc为输入基准时钟频率,fo为输出信号频率,K、N、L分别为频率控制字、相位累加/寄存器、波形查找表和D/A转换器的字长。
图中相位累加器是核心,它主要由1个N位二进制累加器和1个由固定时钟控制的N位相位寄存器构成。相位寄存器的输出与累加器的一个输入端相连,MCU送来的频率控制字K加到累加器的另一个输入端。在每个时钟脉冲到达时,相位寄存器将其上一个时钟周期内的值送入累加器并与频率控制字K相加,其结果作为当前时钟周期的输出序列,此输出序列作为波形查找表的地址。波形查找表实质上是一个相位/幅度转换ROM电路,ROM内部存储了一个完整周期波形的相位/幅度值。相位寄存器每寻址一次波形查找表,就输出一个与相位对应的信号幅度值。频率控制字K决定了相应的相位增量,相位累加器则不断的对该相位增量进行线性累加,当累加器产生一次溢出时,就生成一个周期的DDS合成信号。&&& 理想情况下,相位寄存器的N位全部用来寻址,这时DDS的合成频率为:&&& &&& 而DDS的最大输出频率由乃奎斯特采样定理决定,即fmax=fc/2。实际中DDS的最高输出频率由允许输出的杂散水平决定,一般取值为fo≤40%fc。因此,要改变DDS的输出频率,只要改变频率控制字K即可。&&& 这里采用Altra公司的FPGA器件EP1C3T144C8,适合中规模应用,该模块设计由VHDL实现,后级采用10位D/A输出。为便于频率调节,根据式(1)和式(2),我们将输出频率分为两档(1Hz~1 MHz和1~10 MHz),并由FPGA根据键入的频率控制字自动选择。而两档输出的基准时钟fc由50 MHz晶振通过FPGA内部锁相环3分频得到(fc≈16.666 67 MHz),或者再经10倍频得到(fc≈166.666 7 MHz)。若相位累加器字长N为24位,频率控制字K为20位二进制数,则两档输出的最高频率分别为:&&& &&& &&& 可见,即使在输出最高频率时,也能保证每周期波形有16个点,从而有效保证了输出信号波形的逼真度。&&& 将波形数据存储在波形ROM中的方案有2种:一种是在一个完整周期内进行采样,然后将采样值依次存于ROM单元中,这个方案的优点是思路清晰,实现简单;另一种方案是根据周期信号波形的对称性,只对其在1/2或1/4周期上采样并存储,因此可以节省存储空间,但实现上要复杂些。为简化设计,本文采用了第一种方案。2.2 幅度控制模块&&& 输出信号的幅度控制是通过2片DAC芯片实现的,其电路图如图3所示。其中,第1片DAC用来将FPGA输出的波形的数字信号转换为模拟阶梯信号,幅值的调节是通过第2片DAC的输出改变第1片DAC的参考电压来实现。
DAC是本模块的核心器件,其转换速度等特性直接影响整个系统的性能。DAC器件的选择应从分辨率、转换速度、量化误差和线性度等几个方面考虑。因为本系统的工作频率较高,所以首先应选用高速DAC。其次是考虑分辨率和量化误差问题,增大DAC的位数可减小量化误差,提高分辨率。因此,本文采用的DAC器件是德州仪器公司生产的高速低功耗、10位分辨率的DAC芯片THS5651。&&& DAC的参考电压可通过EXTL0端来选择内部或外部。当该端口为低电平时(即:EXTL0=AGND),选择内部参考电压;当该端口为高电平时(即:EXTL0=AVDD),选择外部参考电压。只要改变参考电压的大小,就可以改变输出波形的幅值。THS5651外部参考电压范围为0~5V,因此,采用10位DAC(最小分辨率为4.88x10-2V)。图中第2片THS5651的输出接到第1片THS5651的参考电压输入端EXT10,通过单片机控制第2片THS5651输出,进而控制第1片THS5651的参考电压。2.3 低通滤波模块&&& 经过D/A转换后输出的阶梯波信号通常含有较多的时钟成分及较为陡峭的跃变边缘,为了减少输出波形的抖动、抑制高次谐波、取出主频fo,必须在D/A转换器的输出端接入截止频率为fc/2的低通滤波器。2.4 键盘与显示模块&&& 本系统需要设置并显示输出波形的类型、频率和幅值等参数。为使系统拥有一个友好、便捷、美观的用户界面,设计中采用键盘和液晶显示器作为系统的输入输出模块。键盘输入模块选用8279控制4x4阵列键盘,采用扫描方式由8279得到键盘码并由中断服务程序把数据送给单片机。此方案不用单片机扫描,占用资源少。输出模块采用HZ128-64D20汉显液晶模块,该模块自带一、二级汉字字库点阵,通过串行接口与单片机相连。用液晶显示器可以实现多级菜单,用户界面友好,操作方便。3 系统软件设计&&& FPGA系统采用硬件描述语言VHDL按模块化方式进行设计,并将各模块集成于FPGA芯片中,然后通过QuartusⅡ软件开发平台对设计文件进行编译、优化、综合、布局布线和逻辑仿真,最后对FPGA芯片进行编程,实现系统的设计要求。单片机控制程序采用C语言进行设计,设计中采用了结构化和层次化的设计方法,通过按键判断程序选择进入不同的模式:波形选择、频率设置、幅度设置、波形参数显示4种模式和1个复位模式(图中省略)。在不同的模式下分别执行相应的子程序,最后分别向FPGA写入相应的控制字。该系统程序流程如图4所示。
4 系统测试&&& 由键盘设置输出信号波形的类型、频率和幅度等参数,在50Ω负载下,用示波器测试输出波形的频率和幅值,并与设置值进行比较。由于在FPGA中经分/倍频后的结果与计算时钟存在一定误差,因此,需通过软件进行补偿修正,以便使频率误差降到最低。对于信号幅度的控制,在程序中也采用软件进行补偿修正。经过多次测试和反复改进,最终实现了如下技术指标:&&& 1)输出波形正弦波、方波、三角波、锯齿波。通过对波形查找表ROM的修改,可实现其它波形,易于系统升级。&&& 2)输出频率1 Hz~10MHz。&&& 3)频率分辨率 1Hz~1MHz时为1Hz。1~10MHz时为10Hz。&&& 4)频率稳定度优于10-4。&&& 5)输出电压0~5V。&&& 6)幅度分辨率10bits。5 结束语&&& 本文给出了一种基于FPGA和DDS技术的信号发生器设计方案,解决了输出信号幅值可调的问题,能产生较为理想的正弦波、方波、三角波和锯齿波等信号波形,波形平滑,无明显毛刺,响应速度快,频率范围广,稳定性好,幅值调节精度高。系统实现简单、灵活,易于升级,实用性较强,具有较好的应用前景。
编辑:eeleader
引用地址:
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
关注eeworld公众号快捷获取更多信息
关注eeworld服务号享受更多官方福利
网友正在学习IC视频
EEWORLD网友正在观看&&视频
EEWORLD网友正在观看&&视频
EEWORLD网友正在观看&&视频
EEWORLD网友正在观看&&视频
EEWORLD网友正在观看&&视频
相关关键词
热门关键词
大学堂最新课程
汇总了TI汽车信息娱乐系统方案、优质音频解决方案、汽车娱乐系统和仪表盘参考设计相关的文档、视频等资源
热门资源推荐
频道白皮书
夏宇闻老师专栏
北京航空航天大学教授,国内最早从事复杂数字逻辑和嵌入式系统设计的专家。当前位置:&&
基于FPGA的DDS实现的几种方式鏂瑰紡,鐨勫嚑
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
基于FPGA的DDS实现的几种方式
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='http://jz.docin.com/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口基于FPGA的DDS设计及实现-可编程逻辑-与非网
  随着现代电子技术的不断发展,在通信系统中往往需要在一定频率范围内提供一系列稳定和准确的频率信号,一般的振荡器己不能满足要求,这就需要频率合成技术。直接数字频率合成(Direct Digital Frequency Synthesis,)是把一系列数据量形式的信号通过D/A转换器转换成模拟量形式的信号合成技术。DDS具有相对带宽宽、频率转换时间短、频率分辨率高、输出相位连续、可产生宽带正交信号及其他多种调制信号等优点,已成为现代频率合成技术中的姣姣者。目前在高频领域中,专用DDS芯片在控制方式、频率控制等方面与系统的要求差距很大,利用来设计符合自己需要的DDS系统就是一个很好的解决方法。
  现场可编程门阵列(FPGA)器件具有工作速度快、集成度高、可靠性高和现场可编程等优点,并且FPGA支持系统现场修改和调试,由此设计的DDS电路简单,性能稳定,也基本能满足绝大多数通信系统的使用要求。
  1 DDS的结构原理
  DDS的基本原理是利用有限的离散数据,通过查表法得到信号的幅值,通过数模转换器D/A后生成连续波。DDS的原理框图如图1所示。
  其中:频率控制字为fword;相位累加器的位数为N。相位累加器以步长fword做累加,产生所需的频率控制数据;把得到的频率控制数据作为地址对ROM存储器进行寻址。数据存储器(ROM)实质是一个相位/幅度转换电路,ROM中存储二进制码表示所需合成信号的相位/幅度值,相位寄存器每寻址一次ROM,就输出一个相对应的信号相位/幅度值。
  理想情况下,累加器的N位全部用来寻址时,DDS的合成频率为:
  式中:fword为频率控制字;N为相位累加器位数;fclk为输入时钟。当fworld=1时,得DDS的最小分辨率。如果改变频率控制字,就可以改变合成的频率的频偏。
  2 DDS调频系统在FPGA中的实现
  2.1 累加控制模块的设计
  累加控制模块通过调用QuartusⅡ中模块化库LPM进行设计。即由加法器lpm_add_sub和乘法器lpm_mult及累加器altaccumulate模块构成。若要求DDS系统精度高,相位累加器的位数N须较大。现在大多数专用的DDS芯片的位数都在24~32位之间,这里取N=32。累加控制模块如图2所示。
  ADC转换芯片处理后的8位数字信号,为了使DDS合成的频率较大,末尾补4个O作为参数化模块lpm_add_sub的12位输入datai。由于ADC信号输出的是8位二进制偏移码,与计算机处理的二进制补码形式不同,需将二进制偏移码转换成二进制补码,在这里与另一路输入信号常数2 048做减法,就能达到求补的目的,并输出12位有符号数。
  12位的输出接入lpm_mult模块,lpm_mult的另一路输入为12位任意数输入。乘法器的输出直接影响累加器累加相位的速度。当乘以一个比较大的数,则频率变化加快。
  同理,为了使合成频率较大,乘法器的24位输出在末尾补O成为32位数datab送到累加模块altaccumulate中。为了节省ROM容量,最后取altaccumulate输出的高10位作为ROM查找表的地址信号。累加控制模块的时序仿真如图3所示。
  2.2 ROM查找表的设计
  针对不同的可编程器件,ROM查找表的设计采用的方法也不相同。主要是基于lpm_rom和VHDL选择语句这两种方法。使用lpm_rom的波形存储表只需要产生数据文件*.mif,然后直接在定制lpm_rom时,添加数据文件即可。不过这种方法在FPGA支持内部嵌入式阵列块(EAB)时才可以使用;使用VHDL选择语句比较直观,但当输入数据量大的时候,这种方法是比较繁琐的。此次设计采用第一种方法。
&& & & mif文件是在编译和仿真过程中作为存储器(ROM或RAM)初始化输入的文件,即memory initialization file。创建mif文件的方式有很多种,在这次设计中,在Matlab中采用C语言来生成mif文件。mif文件编写格式如下:
  通常相位累加器的位数N很大,实际设计中受到体积和成本的限制。为了节省ROM的容量采用相位截断的方法,一般只取累加器输出的高几位作为ROM的寻址地址。设计中取累加结果的高10(M=10)位来进行查表,也就是说正余弦ROM有210=1 024个寻址地址,数据宽度为12。如图4所示,设计了2个lpm_rom模块,分别是sin波形存储器和cos波形存储器。
  3 单片机控制电路
  此次选择的FPGA芯片为Altera公司的ACEXlK系列的EPlK30TTl44-2。它可以采用专用的配置器件来配置,也可以采用单片机来配置。前者价格昂贵,而且专用配置器件的ROM为一次性编程,不易实现FPGA的系统功能转换。采用单片机CD对FPGA进行被动串行(PS方式)配置,使用可多次修改的AT24C512(E2PROM)作为配置文件存储器,真正做到&现场可编程&,对提高生产率、降低生产成本均有好处。
  系统的配置电路如图5所示。其电路的工作过程为:经QuartusⅡ编译生成的配置文件(.rbf),利用PC机端的控制程序,通过PC机的串行通信口,经U1存储在U2中,U1再根据系统的要求通过P0.6,P1.O,P1.1,P1.6和P1.7等5个I/O口将其存储在U2中的配置数据下载到电路中的FPGA器件U3中。PC机的控制程序在此略。
  4 设计结果
  累加控制器、ROM查找表组成一个整体,实现了一个基本的DDS系统。DDS系统的最后仿真结果如图6所示。
  图6中的pllclk,acum,dai,daq分别代表时钟输入、累加输出及正弦波和余弦波输出。把O~2&的相位分成3FF段,取出相应的幅度值存储于ROM中。ROM中存储数据如下,相位数据(O~3FF),幅度数据(O~FFF)。从仿真图可以看出dai[11..O]输出从EFF~FFF~0~EFF变化,daq[11..O]输出从FFF~O~FFF变化。最后通过单片机配置FPGA运行,把得出的信号通过D/A转换和滤波能够得到所需的正弦波和余弦波信号。
  5 结语
  给出了基于FPGA的DDS设计的实现方案。通过仿真分析可以看出,DDS输出信号具有如下特点:
  (1)频率稳定性好,转换时间短,分辨率高,相位变化连续。
  (2)设计者只需要通过改变测试输入数据,就能够快速准确地实现不同波形并且验证正确性,使得测试工作更加全面高效,从而提高了调试效率和成功率。
  (3)整个信号实现过程较为简单,实用性较强。
  限于实验条件,此次设计在降低相位截断误差等方面仍有改进的空间,还可以进一步优化,限于篇幅,在此不多做介绍。
关注与非网微信 ( ee-focus )
限量版产业观察、行业动态、技术大餐每日推荐
享受快时代的精品慢阅读
未来几年,人工智能芯片的需求将急剧上升。联合市场研究公司(Allied Market Research)预估,未来5年,人工智能芯片的需求将以每年近50%的速度增长,因为该技术将在汽车、医疗保健等多个领域得到广泛应用。
发表于: 16:42:15
未来几年,人工智能芯片的需求将急剧上升。联合市场研究公司(Allied Market Research)预估,未来5年,人工智能芯片的需求将以每年近50%的速度增长,因为该技术将在汽车、医疗保健等多个领域得到广泛应用。
发表于: 18:23:21
随着信息技术的发展,特别是各种数字处理器处理速度的提高,人们对数据采集系统的要求越来越高,特别是在一些需要在极短时间内完成大量数据采集的场合,对数据采集系统的速度提出了非常高的要求。
发表于: 16:20:01
日常生活中我们经常见到数字图像水印的存在。例如图1所示。数字图像水印在日常生活中也起到非常重要的作用。
发表于: 16:19:29
NFV产业链上的相关厂商都在为5G做哪些准备?在MWCS 2018展会期间,英特尔可编程解决方案事业部偕同联想、赛特斯一起宣布了针对NFV领域的战略合作,而这三方也正好可以作为硬件、设备和软件商的代表就上面的问题给出他们的解读。
发表于: 12:37:49
云计算在企业运营中的基本工作原理是将计算分布在大量分布式计算机中,从而使企业数据中心的运行和互联网更为相似。通过云计算的运维管理,企业不仅能够实现对IT资源的统一,根据用户的需求提供可量化的存储服务与计算,而且还能有效将资源切换到实际需要的应用中,提高了IT资源的利用率,降低了系统的成本。
发表于: 16:41:21
人工智能的风潮从技术一路蔓延到硬件,让“芯片”成为今年行业里盛极一时的主题。人们关注通用芯片领域里CPU和GPU不断刷新的基准(benchmark),更对专用芯片(ASIC)领域不同场景下不断问世的解决方案表示出了空前的热情。
发表于: 17:04:14
近年来,ASIC设计规模的增大带来了前所未有的芯片原型验证问题,单颗大容量的FPGA通常已不足以容下千万门级、甚至上亿门级的逻辑设计。现今,将整个验证设计分割到多个采用最新工艺大容量FPGA中,FPGA通过高速总线互联,成为大规模ASIC或SOC原型验证的极佳选择。
发表于: 17:03:51
机器学习既是一门科学,也是一种艺术。纵观各类机器学习算法,并没有一种普适的解决方案或方法。事实上,有几个因素会影响你对机器学习算法的选择。
发表于: 16:56:33
verilog实现反相器,2输入与门、2输入或门、2输入与非门、2输入或非门、2输入异或门、2输入同或门。
发表于: 17:26:01
& 2010 - 2018 苏州灵动帧格网络科技有限公司 版权所有.
ICP经营许可证 苏B2-&}

我要回帖

更多关于 dds数字频率合成器 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信