




已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课 程 设 计题 目多功能波形发生器地设计学 院信息工程学院专 业班 级姓 名指导教师年月日摘要3Abstract4多功能波形发生器地设计41.课题简介61.1 课设目地61.2课设要求62设计方案82.1方案选择82.2 设计原理82.3设计流程93仿真结果153.1编译警告153.2编译结果163.3建立仿真文件163.4仿真结果183.5 RTL视图194程序分析214.1VHDL语言分析214.2主要函数语句分析215小结236参考文献247附录源程序代码25摘要 多功能信号发生器已成为现代测试领域应用最为广泛地通用仪器之一,代表了信号源地发展方向.直接数字频率合成(DDS)是二十世纪七十年代初提出地一种全数字地频率合成技术,其查表合成波形地方法可以满足产生任意波形地要求.由于现场可编程门阵列(FPGA)具有高集成度、高速度、可实现大容量存储器功能地特性,能有效地实现DDS技术,极大地提高函数发生器地性能,降低生产成本. 本文首先介绍了函数信号发生器地研究背景和DDS地理论.然后详尽地叙述了利用VHDL语言描述DDS模块地设计过程,以及设计过程中应注意地问题.文中详细地介绍了多种信号地发生理论、实现方法、实现过程、部分VHDL代码以及利用Quartus仿真地结果. 文中还介绍了Altera公司地DE2多媒体开发平台地部分功能及使用,并最终利用DE2平台完成了多功能信号发生器地大部分功能.包括由LCD显示和按键输入构成地人机界面和多种信号地发生.数字模拟转换器是BURR-BROWN公司生产地DAC902.该信号发生器能输出8种不同地信号,并且能对输出信号地频率、相位以及调制信号地频率进行修改设定.关键词:VHDL D/A接口 Abstract Multi function signal generator has become the most widely used in modern testing field of general instrument, and has represented one of the development direction of the source. Direct digital frequency synthesis (DDS) is a totaly digital frequency synthesis technology, which been put forward in the early 1970s. Using a look-up table method to synthetic waveform, it can satisfy any requirement of waveform produce. Due to the field programmable gates array (FPGA) with high integrity, high speed, and large storage properties, it can realize the DDS technology effectively, increase signal generators performance and reduce production costs. Firstly, this article introduced the function signal generator of the research background and DDS theory. Then, it described how to design a DDS module by VHDL, and introduced various signal occurs theory, method and the implementation process, VHDL code and simulation results. This paper also introduces the function of DE2 multimedia development platform, and completed most of the functions of multi-function signal generator on DE2 platform finally. Including the occurrence of multiple signal and the man-machine interface which composed by LCD display and key input. Digital-to-analog converters is DAC902, which produced by company BURR-BROWN. This signal generator can output eight different kinds of signals, and the frequency of the output signal, phase and modulation frequency signal also can be modifyed. Keywords: VHDL D/A Interface 多功能波形发生器地设计信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛地应用.它能够产生多种波形,如三角波、锯齿波、矩形波(含方波)、正弦波等,在电路实验和设备检测中具有十分广泛地用途.例如在通信、广播、电视系统中,都需要射频(高频)发射,这里地射频波就是载波,把音频(低频)、视频信号或脉冲信号运载出去,就需要能够产生高频地振荡器.在工业、农业、生物医学等领域内,如高频感应加热、熔炼、淬火、超声诊断、核磁共振成像等,都需要功率或大或小、频率或高或低地信号发生器. 传统地信号发生器主要有两类:正弦波和脉冲波信号发生器,而函数发生器介于两类之间.它能够提供正弦波、锯齿波、方波、三角波等几种常用标准波形,产生其它波形时,需要采用较复杂地电路和机电结合地方法.这个时期地波形发生器多采用模拟电子技术,但是模拟器件构成地电路存在着尺寸大、价格贵、功耗大等缺点.而且要产生地信号波形越复杂,则电路结构也会越复杂.同时还有两个突出问题,一是通过电位器地调节来实现输出频率地调节,因此很难将频率调到某一固定值;二是脉冲地占空比不可调节. 现代科学技术地飞速发展对信号源提出了越来越高地要求.这些要求主要表现在高分辨率、高输出频率、任意波形等方面.此时传统地信号发生器已经无法满足要求. 直接数字频率合成(Direct Digital Synthesizer简称DDS)技术是一种新地全数字地频率合成原理,它从相位地角度出发直接合成所需波形.这种技术由美国学者JTiercy,MRader和BGold于1971年首次提出,但限于当时地技术和工艺水平,DDS技术仅仅在理论上进行了一些探讨,而没有应用到实际中去.但是随着电子技术地飞速发展,微处理器性能大幅提高,高速地D/A以及随机存储器大量涌现,DDS技术已经变得很容易实现.它已广泛应用于通讯、雷达、遥控测试、电子对抗以及现代化地仪器仪表工业等许多领域.将其与简单电路相结合就可以精确模拟仿真各种信号. 不论是在生产、实验还是在科研与教案上,多功能信号发生器都是用于仿真实验地最佳工具.随着我国经济和科技地发展,对相应地测试仪器和测试手段也提出了更高地要求,多功能信号生器己成为测试仪器中至关重要地一类,因此开发多功能信号发生器具有重大意义.1.课题简介1.1 课设目地(1)懂得多功能波形发生器地结构组成(2)懂得利用FPGA芯片实现多种波形地产生方法(3)懂得一种复杂FPGA电路地设计 1.2课设要求 设计一个多功能波形发生器.该波形发生器能产生正弦波、方波、三角波和由用户编辑地特定形状波形.具体要求如下: (1) 具有产生正弦波、方波、三角波、锯齿波4种周期性波形地功能. (2) 用键盘输入编辑生成上述4种波形(同周期)地线性组合波形. (3)具有波形存储功能. (4)输出波形地频率范围为100Hz200kHz;重复频率可调,频率步进间隔100Hz. (5)输出波形幅度范围05V(峰-峰值),可按步进0.1V(峰-峰值)调整. (6)具有显示输出波形地类型、重复频率(周期)和幅度地功能. (7)用键盘或其他输入装置产生任意波形.多功能波形发生器系统由以下四部分组成:输入部分、FPGA部分、DAC、显示部分组成. 图1 多功能波形发生器系统框图1.3课设工具本次设计是基于Altera公司地QuartusII软件.Quartus II 是Altera公司地综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有地综合器以及仿真器,可以完成从设计输入到硬件配置地完整PLD设计流程.QuartusII支持Altera地IP核,包含了LPM/MegaFuction宏功能模块库,使用它,可以简化设计地复杂性,加快设计速度.QuartusII平台支持一个工作组环境下地设计要求,其中包括支持基于Internet地协作设计.此外,QuartusII通过和DSP Builder工具与Matlab/SIMULINK相结合,可以方便地实现各种DSP应用系统;支持Altera地片上可编程系统开发,集系统级设计、嵌入式软件设计、可编程逻辑设计于一体,是一种综性地开发平台.2设计方案2.1方案选择1、模拟锁相环实现模拟锁相环技术是一项比较成熟地技术.应用模拟锁相环,可将基准频率倍频,或分频得到所需地频率,且调节精度可以做到相当高、稳定性也比较好.但模拟锁相环模拟电路复杂,不易调节,成本较高,且由于受模拟器件地影响,波形变换调节时间较长,输出波形地毛刺较多,因此模拟锁相环实现在低频(0500KHz)信号发生系统中不是很好地方案.2、直接数字频率合成实现直接数字频率合成(DDFS)技术是经典地数字频率合成技术.由于数字量地可操作性远远高于模拟量,采用DDFS地优点在于频率精度高、波形调节方便、且输出波形毛刺少等.基于单片机地数字波形发生系统受单片机指令频率地限制,输出波形频率较低,而基于FPGA地波形发生系统就不存在这样地问题,其输出频带较单片机实现有很大地展宽.本系统设计选定以FPGA作为系统控制核心地直接数字频率合成实现方案.2.2 设计原理采用DDS技术可以很方便地产生各种高质量地波形.DDS技术是从相位概念出发之结合成所需要波形地一种频率合成技术.以正弦波为例,首先要按照一定地采样点数将正弦波形一个周期地数据信息存于ROM表中,表中包含着一个周期正弦波地数字幅度信息,每个地址对应正弦波中0到360度范围内地一个相位点地幅度值,查找表时即是把输入地地址相位信息映射成正弦波幅度地数字量信号,通过设置地输出端口输出.在实物设计中,可以使用D/A接口来实现波形信号地输出.为简化设计过程,本设计并未采用DDS技术,而是采用描点输出地方式,实现波形发生器地设计.程序中设置一个波形地起始点,经过比较、计算得出波形地其他数值,将这些点依次连续输出,从而实现波形地仿真.以递增锯齿波为例,首先定义初始点为 tmp=“00000000”;在时钟上升沿到来时,执行tmp lcd(7 downto 1) lcd(7 downto 1) lcd(7 downto 1) lcd(7 downto 1) lcd(7 downto 1) lcd(7 downto 1) lcd(7 downto 1) lcd(7 downto 1) lcd(7 downto 1) lcd(7 downto 1) lcd(7 downto 1)=0000001。 end case。end process。综合时,信号y被添加到敏感信号表中.第二个警告,认为引脚p180直接到正电源了.port(clk : in std_logic。 -时钟信号输入 set, clr, up, down, zu, zd : in std_logic。 -各个波形特征地调节触发信号 posting : in std_logic。 -任意波键盘置入信号 u0,d0,sw : in std_logic。 -方波A、B地切换sw,和方波B地幅度调节按键 ss : in std_logic_vector( 3 downto 0 )。 -档位选择信号 sss : in std_logic_vector( 4 downto 0 )。 -波形选择信号 Data3, Data2, Data1,Data0 : in std_logic_vector(3 downto 0)。 -BCD码输入 p180 : out std_logic。 -预留接口 lcd : out std_logic_vector(7 downto 0)。 -显示输出 shift : out std_logic_vector(3 downto 0)。 -位码输出 dd, a : out std_logic_vector( 7 downto 0)。 -波形、幅度数据输出但实际上引脚p180是预留接口未用.3.2编译结果 图9 编译结果3.3建立仿真文件 在编译通过后,要建立后缀为vwf地仿真波形文件.执行菜单命令,选择new,再选择需要地Vector Waveform File,单击ok.在波形文件编辑方式下,右键选择insert添加信号节点,设置相应地参数.如下图所示. 图10 仿真波形文件建立 图11 仿真波形参数设置3.4仿真结果仿真结果如下图所示 图12仿真波形3.5 RTL视图生成地RTL视图如下 图13 RTL视图4程序分析4.1VHDL语言分析一个VHDL语言地设计程序描述地是一个电路单元,这个电路单元可以是一个门电路,或者是一个计数器,也可以是一个CPU,一般情况下,一个完整地VHDL语言程序至少包括实体、结构体和程序包三个部分.实体给出电路单元地外部输入输出接口信号和引用信息,结构体给出了电路单元地内部结构和信号地行为特点,程序包定义在设计结构体和实体中将用到地常数、数据类型、子程序和设计好地电路单元等.第一部分是程序包,程序包是用VHDL语言编写地共享文件,定义在设计结构体和实体中将要用到地常数、数据类型、子程序和设计好地电路单元等,放在文件目录名称为IEEE地程序包库中.library ieee。use ieee.std_logic_1164.all。use ieee.std_logic_arith.all。use ieee.std_logic_unsigned.all。第二部分是程序地实体,定义电路单元地输入/输出引脚名称.程序地实体名称可以任意取,但必须与VHDL程序地文件名称相同.实体地标示符是ENTITY,实体以ENTITY开头,以END结束.ENTITY fulladder ISPORT(a,b,Ci:in std_logic。Co,s: out std_logic_vector(7 downto 0)。END fulladder。其中,定义了a,b, Ci为输入信号引脚,定义Co,s为输出信号引脚.第三部分是程序地结构体,具体描述电路地内部结构和逻辑功能.结构体有三种描述方式,分别是行为(BEHAVIOR)描述方式、数据流(DATAFLOW)描述方式和结构描述方式.其中数据流描述方式又被称为寄存器(RTL)描述方式.结构体以表示ARCHITECHTURE开头,以END结尾.结构体地名称可以任取.architecture behav of fulladder isBEGINs=a xor b xor Ci。Co 顺序语句When 选择值 = 顺序语句.END CASE 当执行到CASE语句时,首先计算表达式地值,然后根据条件句中与之相同地选择值.执行对应地顺序语句,最后结束 CASE语句.表达式可以是一个整数类型或枚举类型地值,也可以是由这些数据类型地值构成地数组.5小结通过这次FPGA课程设计,我对FPGA地基本原理有了进一步地认识.FPGA地基础就是数字电路和VHDL语言,其开发需要从顶层设计、模块分层、逻辑实现、软硬件调试等多方面着手.开发环境常用地有Altera公司地Quartus II和Xilinx公司地ISE,本次课程设计选用地是Quartus II.此次课程设计暴露了我平时学习中地许多不足.在设计地过程中我遇到了一些问题,比如对Quartus软件地使用还不太熟悉,在编译地时候出现地错误不知道怎么解决,请教了很多同学才弄明白.还有进行仿真之前需要自己建立仿真波形文件,才能进行仿真等等,但在和老师、同学地交流下,最后我都解决了问题.另一方面我也感受到动手实践地重要性.动手实践是理论知识得以灵活运用地必要前提,也是今后走上工作岗位之后能够很好地完成设计工作地技术保证.FPGA是实用性很强地课程,只有多学多用,边学边用,才能促进提高自己地能力.虽然课设完成了,但是我意识到,我对FPGA技术仅仅只是停留在入门地阶段,想要有更大地发展,更深入地研究,还需要更多地努力与实践.6参考文献【1】潘松 黄继业. EDA技术与VHDL(第二版).北京:清华大学出版社,2005.7【2】康华光.电子技术基础.北京:高等教育出版社.2006.1【3】付家才. EDA工程实践技术.北京:化学工业出版社,2007.1【4】汉泽西. EDA技术及其应用.北京:北京航空航天大学出版社,2004.5【5】赵刚.EDA技术简明教程.成都:四川大学出版社,2004.6【6】章彬宏 周正林.EDA应用技术.北京:北京理工大学出版社,2007.7【7】刘艳萍 高振斌 李志平.EDA实用技术及应用.北京:国防工业出版社,2006.17附录源程序代码library ieee。use ieee.std_logic_1164.all。use ieee.std_logic_arith.all。use ieee.std_logic_unsigned.all。entity keshe isport(clk : in std_logic。 -时钟信号输入 set, clr, up, down, zu, zd : in std_logic。 -各个波形特征地调节触发信号 posting : in std_logic。 -任意波键盘置入信号 u0,d0,sw : in std_logic。 -方波A、B地切换sw,和方波B地幅度调节按键 ss : in std_logic_vector( 3 downto 0 )。 -档位选择信号 sss : in std_logic_vector( 4 downto 0 )。 -波形选择信号 Data3, Data2, Data1,Data0 : in std_logic_vector(3 downto 0)。 -BCD码输入 p180 : out std_logic。 -预留接口 lcd : out std_logic_vector(7 downto 0)。 -显示输出 shift : out std_logic_vector(3 downto 0)。 -位码输出 dd, a : out std_logic_vector( 7 downto 0)。 -波形、幅度数据输出end keshe。architecture behav of keshe issubtype word is std_logic_vector( 7 downto 0 )。type unit is array(63 downto 0) of word。signal ram : unit。signal qqq : integer range 0 to 250000000。signal qq : integer range 0 to 78125000。signal tmp : integer range 0 to 9999。signal coun : integer range 0 to 78125000。signal coun0 : integer range 0 to 250000000。signal b : integer range 0 to 78125000。signal c : integer range 0 to 500000000。signal z, con : integer range 0 to 63。signal f : std_logic_vector( 7 downto 0 )。signal amp, amp0, d : std_logic_vector(7 downto 0)。signal bcd0,bcd1,bcd2,bcd3 : integer range 0 to 9。signal bcd01,bcd11,bcd21,bcd31 : integer range 0 to 9。signal bcd00,bcd10,bcd20,bcd30 : integer range 0 to 9。signal y : integer range 0 to 9。signal addr : integer range 0 to 63。beginqq=781250 when ss=1000 else 7812500 when ss=0100 else 78125000 when ss=0010 else 78125。-qq信号对应SW=0时地档位选择信号SS,实现方波A和其他三种波形地频率预置qqq= 500000 when ss=1000 else 5000000 when ss=0100 else 50000000 when ss=0010 else50000。-qqq信号对应SW=1时地档位选择信号SS,实现方波B地频率预置process(clk) -此进程分别描述了各种波形地频率、幅度(方波A地占空比)调节以及各种波形地任意线-形叠加等.variable count4 : integer range 0 to 6250000。variable count : integer range 0 to 78125000。variable count3 : integer range 0 to 250000000。variable count1 : integer range 0 to 12500000。variable count0 : integer range 0 to 3249999。variable ddd : std_logic_vector(9 downto 0)。variable dd0,dd1,dd2,dd3,dd4 : integer range 0 to 255。variable adr : integer range 0 to 63。beginif rising_edge(clk) then if posting=1 then if count4=6249999 then count4:=0。 adr:=conv_integer(Data3)*10+conv_integer(Data2)。-存储单位地址 if adr64 then if set=1 then ram(adr)=conv_std_logic_vector(conv_integer(Data1)*10+conv_integer(Data0)*2,8)。 -对置入地任意波形数据进行储存 elsif clr=1 then adr:=0。 -存储器所有单元清零 for i in 0 to 63 loopram(i)0)。end loop。 end if。 end if。 else count4:=count4+1。 end if。 else if set=1 then coun=0。 b=0。 coun0=0。c=0。z=31。amp0=01111111。 addr=0。tmp=conv_integer(Data3)*1000+conv_integer(Data2)*100+conv_integer(Data1)*10+conv_integer(Data0)。 -频率数据 amp0 then if sw=0 then if counqq then coun=coun+tmp。 b=b+1。 -频率到采样点间隔脉冲数转换 else if count=b then count:=1。 if f=63 then f=00000000。 else f=f+1。 end if。 if sss=00010 then -方波A if con=z then dd=amp0。 con=con+1。 elsif con=63 then con=0。 dd=00000000。 else con=con+1。 dd=00000000。 end if。 elsif sss=10000 then dd=d。 -正弦波 elsif sss=00100 then dd31 then dd=(111111-f(5 downto 0)&00。 else dd=f(5 downto 0)&00。 end if。 elsif sss=00001 then -任意波 if addr63 then dd=ram(addr)。 addr=addr+1。 elsif addr=63 then dd=ram(63)。 addr=0。 end if。 else -完成5种波形地线形叠加 if sss(1)=1 then if con=z then con=con+1。 dd0:=conv_integer(amp0)。 -方波波形数据dd0 else con31 then dd3:=conv_integer(111111-f(5 downto 0)&00)。 else dd3:=conv_integer(f(5 downto 0)&00)。 -三角波波形数据dd3 end if。 end if。 if sss(0)=1 then if addr63 then dd4:=conv_integer(ram(addr)。 addr=addr+1。 elsif addr=63 then dd4:=conv_integer(ram(63)。 addr=0。 end if。 -任意波波形数据dd4 end if。 ddd:=conv_std_logic_vector(dd0+dd1+dd2+dd3+dd4),10)。-波形线形叠加输出dd=ddd(9 downto 2)。 end if。 else count:=count+1。 end if。 end if。 else if coun0qqq then coun0=coun0+tmp。 c=c+1。 else if count3=c/2 then count3:=count3+1。 dd=amp0。 elsif count3=c then count3:=1。dd=00000000。 else count3:=count3+1。 dd=00000000。 end if。 end if。 end if。 end if。 if count1=12499999 then count1:=0。 -调方波A地占空比 if zu=1 then if z63 then z=z+1。 else z0 then z=z-1。 else z=0。 end if。 end if。 else count1:=count1+1。 end if。 if count0=3249999 then count0:=0。-up、down对4种波形幅度调节
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年汽车维修工职业技能鉴定试卷案例分析及习题
- 2025年青岛市事业单位招聘考试教师美术学科专业知识模拟试卷
- 2025年四川省事业单位招聘考试综合类专业能力测试试卷(统计类)试题
- 2025年事业单位招聘考试综合类专业能力测试试卷(统计类)统计图表制作与解读试题
- 2025年无损检测员职业技能鉴定模拟试题库及真题模拟
- 期中考试初三数学试卷
- 学生消防安全意识培养活动计划
- 2025年化工原料供应链金融支持与风险控制合作协议
- 2025年无损检测资格证考试红外热像检测理论与试卷
- 2025年起重机械安装维修人员考试试卷:起重机械法规与标准试题
- 申克振动筛操作和维护手册
- 儿科-维生素D缺乏性手足搐搦症课件
- 三晶变频器说明书SAJ8000系列简约版
- 燃料电池课件
- 循环系统-超声诊断
- 《风力机理论与设计》全套教学课件
- 项目策划工作检查考核表
- 六年级上册数学课件-4.1 圆的周长 |冀教版 (共27张PPT)
- (标准版)康复治疗技术专业《 康复心理学 》课程标准
- 身体六大排毒PPT
- 在职人员报考(统招、在职)研究生申请表
评论
0/150
提交评论