eda基于FPGA的波形发生器_第1页
eda基于FPGA的波形发生器_第2页
eda基于FPGA的波形发生器_第3页
eda基于FPGA的波形发生器_第4页
eda基于FPGA的波形发生器_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 EDA实验设计报告 题目:基于FPGA的波形发生器 作者: 学 号: 专业年级: 指导教师: 摘要:本设计是采用了EDA技术设计的函数信号发生器。此函数信号发生器的实现是基于FPGA语言描述各个波形产生模块,然后在Quartus软件上实现波形的编译,仿真和下载到Cyclone芯片上。整个系统由波形产生模块、波形选择模块、波形频率控制和波形幅度控制四个部分组成。最后经过Quartus软件仿真,证明此次设计可以通过波形选择模块的设定来选择波形输出,输出正弦波、方波、三角波等规定波形,并可以通过频率控制和幅度控制改变波形。关键字:VHDL;Quartus;Cyclone;函数信号发生器一、Quar

2、tus II软件简介1.1 Quartus II软件介绍Quartus II 是Alera公司推出的一款功能强大,兼容性最好的EDA工具软件。该软件界面友好、使用便捷、功能强大,是一个完全集成化的可编程逻辑设计环境,具有开放性、与结构无关、多平台完全集成化丰富的设计库、模块化工具、支持多种硬件描述语言及有多种高级编程语言接口等特点。Quartus II是Altera公司推出的CPLD/FPGA开发工具,Quartus II提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,包括:可利用原理图、结构框图、VerilogHDL、AHDL和VHDL完成电路描述,并将其保存为设计实

3、体文件;芯片平面布局连线编辑;功能强大的逻辑综合工具;完备的电路功能仿真与时序逻辑仿真工具;定时/时序分析与关键路径延时分析;可使用SignalTap II逻辑分析工具进行嵌入式的逻辑分析;支持软件源文件的添加和创建,并将它们链接起来生成编程文件;使用组合编译方式可一次完成整体设计流程;自动定位编译错误;高效的期间编程与验证工具;可读入标准的EDIF网表文件、VHDL网表文件和Verilog网表文件;能生成第三方EDA软件使用的VHDL网表文件和Verilog网表文件。1.2 Quartus II软件设计流程(1) 打开Quartus II软件。(2) 选择路径。注意:工作目录名不能有中文。(

4、3) 添加设计文件。(4) 选择FPGA器件。Family选择Cyclone,240,8。(5) 建立原理图或用VHDL语言描述设计电路。(6) 对原理图或用VHDL语言进行编译,无误后进行添加信号。(7) 对上述电路进行仿真。(8) 进行管脚分配。(9) 全局编译。(10) 采用JTAG或AS模式进行下载测试。二DDS波形发生器理论分析2.1 DDS原理简介 DDS基本结构 DDS与大多数的数字信号处理技术一样,它的基础仍然是奈圭斯特采样定理。奈圭斯特采样定理是任何模拟信号进行数字化处理的基础,它描述的是一个带限的模拟信号经抽样变成离散值后可不可以由这些离散值恢复原始模拟信号的问题。 奈圭斯

5、特采样定理告诉我们,当抽样频率大于或者等于模拟信号最高频率的两倍时,可以由抽样得到的离散信号无失真地恢复出原始模拟信号。只不过在DDS技术中,这个过程被颠倒过来了。DDS不是对模拟信号进行抽样,而是一个假定抽样过程已经发生且抽样值已经量化完成,如何通过某种方法把已经量化的数值重建原始信号的问题。 DDS电路一般由参考时钟、相位累加器、波形存储器、D/A转换器(DAC)和低通滤波器(LPF)组成7。其结构框图如图1-1所示。 图2 DDS基本结构框图其中,f为参考时钟频率,K为频率控制字,N为相位累加器位数,A为波形存储器位数,D为波形存储器的数据位字长和D/A转换器位数。 DDS系统中的参考时

6、钟通常由一个高稳定度的晶体振荡器来产生,用来作为整个系统各个组成部分的同步时钟。频率控制字(Frequency Control Word,FCW)实际上是二进制编码的相位增量值,它作为相位累加器的输入累加值。相位累加器由加法器和寄存器级联构成,它将寄存器的输出反馈到加法器的输入端实现累加的功能。在每一个时钟脉冲f,相位累加器把频率字K累加一次,累加器的输出相应增加一个步长的相位增量,由此可以看出,相位累加器的输出数据实质上是以K为步长的线性递增序列(在相位累加器产生溢出以前),它反映了合成信号的相位信息。相位累加器的输出与波形存储器的地址线相连,相当于对波形存储器进行查表,这样就可以把存储在波

7、形存储器中的信号抽样值(二进制编码值)查出。在系统时钟脉冲的作用下,相位累加器不停的累加,即不停的查表。波形存储器的输出数据送到D/A转换器,D/A转换器将数字量形式的波形幅度值转换成所要求合成频率的模拟量形式信号,从而将波形重新合成出来。若波形存储器中存放的是正弦波幅度量化数据,那么D/A转换器的输出是近似正弦波的阶梯波,还需要后级的低通平滑滤波器进一步抑制不必要的杂波就可以得到频谱比较纯净的正弦波信号。图1-2所示为DDS各个部分的输出信号。 由于受到字长的限制,相位累加器累加到一定值后,就会产生一次累加溢出,这样波形存储器的地址就会循环一次,输出波形循环一周。相位累加器的溢出频率即为合成

8、信号的频率。可见,频率控制字K越大,相位累加器产生溢出的速度越快,输出频率也就越高。故改变频率字(即相位增量),就可以改变相位累加器的溢出时间,在参考频率不变的条件下就可以改变输出信号的频率。图3 DDS各部分输出波形2.2 DDS主要性能指标信号源的一个重要指标就足能输出频率准确町调的所需信号。一般传统的信号发生器采用谐振法,即用具有频率选择性的正反馈州路来产生正弦振荡,获得所需频率信号,但难以产生大量的具有同一稳定度和准确度的不同频率。利用频率合成技术制成的信号发生器,通常被称为频率合成器。频率合成器既要产生所需要的频率,又要获得纯净的信号。频率合成器的主要指标如下:1输出频率范围(fmi

9、nfmax):指的是输出的最小频率和最大频率之问的变化范围。2频率稳定度:指的是输出频率在一定时间间隔内和标准频率偏差的数值,它分长期、短期和瞬时稳定度三种。3频率分辨率:频率合成器的输出频谱通常是不连续的。频率分辨率指的是输出频率的最小间隔。4频率转换时间:频率切换时间指的是输出由一种频率转换成另一频率达到稳定工作所需的时间。5频谱纯度:频谱纯度以杂散分量和相位噪声柬衡量,杂散分量为谐波分量和非谐波分量两种,主要由频率合成过程中的非线性失真产生,相位噪声是衡量输出信号相位抖动大小的参数。6调制性能:指的是频率合成器是否具有调幅(AM)、调频(FM)、调相(PM)等功能。2.3 DDS频率合成

10、器优缺点DDS频率合成器具有以下优点:(1)频率分辨率高,输出频点多,可达2N个频点(假设DDS相位累加器的字长是N);(2)频率切换速度快,可达us量级;(3)频率切换时相位连续;(4)可以输出宽带正交信号;(5)输出相位噪声低,对参考频率源的相位噪声有改善作用;(6)可以产生任意波形;(7)全数字化实现,便于集成,体积小,重量轻。但DDS也有比较明显的缺点:(l)输出信号的杂散比较大;(2)输出信号的带宽受到限制。DDS输出杂散比较大,这是由于信号合成过程中的相位截断误差、D/A转换器的截断误差和D/A转换器的非线性造成的。当然随着技术的发展,这些问题正在逐步得到解决。如通过增加波形ROM

11、的长度以减小相位截断误差,通过增加波形ROM的字长和D/A转换器的精度以减小D/A量化误差等。在比较新的DDS芯片中普遍都采用了12bit的D/A转换器。当然一味靠增加波形ROM的深度和字长的方法来减小杂散对性能的提高总是有限的。已有研究在对DDS输出的频谱做了大量的分析后,总结出了误差的领域分布规律建立了误差模型,在分析DDS频谱特性的基础上又提出了一些降低杂散功率的方法。可以通过采样的方法降低带内误差功率,可以通过随机抖动法提高无杂散动态范围,在D/A转换器的低位上加扰打破DDS输出的周期性,从而把周期性的杂散分量打散使之均匀化。三硬件电路设计3.1设计要求 基于DDS与FPGA技术设计一

12、个函数器,能够以稳定的频率产生三角波、梯形波、正弦波和方波,能够调频,调幅,方波能够调节占空比。设置一个波形选择开关,通过此开关可以选择以上各种不同种类的输出函数波形。3.2 系统方案设计采用DDS技术来合成波形不仅简单可靠、控制方便,而且可以实现可编程和全数字化。目前市场上有很多性能优良的专用DDS芯片,这些DDS芯片不仅有比较高的工作频率,内部集成了高精度的D/A转换器,并且还具备一定的调制功能。但DDS专用芯片中的波形存储器多采用只读存储器(Read Only Memory,ROM),在芯片出产以前已经将波形数据固化到ROM中,无法按用户需求更改波形数据以产生任意波形。采用现场可编程逻辑

13、阵列(Field Programmable Gate Array,FPGA)设计DDS电路比专用DDS芯片更具灵活性。因为只要通过改变FPGA内部波形存储器中的波形数据,就可以实现任意波形输出,这使得用FPGA来实现DDS具有相当大的灵活性。相比之下,FPGA所能实现的功能完全取决于设计需求,可以简单也可以复杂,另外,FPGA芯片还支持在系统升级,虽然在精度和速度上略有不足,但是基本上能满足绝大数系统的要求,并且,将DDS设计嵌入到FPGA内部所构成的系统中,其系统成本并不会增加多少,而专用DDS芯片的价格一般也比FPGA高。因此,采用FPGA来设计DDS系统具有较高的性价比。图4 系统设计流

14、程图3.3 功能模块设计3.3.1分频模块分频模块是将FPGA芯片内部的50兆赫兹的时钟脉冲进行2的从1次方到16次方的分频,然后取出16个中的一个。其部分设计程序如下: begin process(clk) begin if clk'event and clk='1' then if(qi=65535) then qi<="0000000000000000" else qi<=qi+1; end if; end if; end process; q<=qi(5);3.3.2相位累加器相位累加器是整个DDS的核心,它由一个加法器和一

15、个寄存器构成。加法器的一个输入与寄存器输出相连,另一个输入是外部输入的频率控制字。这样,在每个时钟到达时,相位寄存器采样上个时钟周期内相位寄存器的值与频率控制字之和,并作为相位累加器在这一时钟周期的输出。频率控制字决定了相应的相位增量,相位累加器则不断地对该相位增量进行线性累加,当相位累加器加满量时就会产生一次溢出,从而完成一个周期性的动作,这个动作周期即是DDS合成信号的一个频率周期。该模块可使用Altera提供的宏模块LPM_ADD_SUB和LPM_FF生成。图5 相位累加器3.3.3波形ROM查找表波形ROM模块由ROM:1-port宏模块生成,其地址线的位宽为9位,数据线的位宽为8位,

16、即一个周期的波形数据有512个,每个数据占8位,其输出可直接DAC0832。ROM中的MIF数据文件可使用Mif_Maker2010.exe软件生成。图6 正弦波ROM查找表图7 三角波ROM查找表图8 方波ROM查找表3.3.4三选一输出波形选择器 该波形选择器由两位输入拨码开关控制,用于输出波形的选择。当WS为00时,输出正弦波;当WS为01时,输出方波;当WS为10时,输出三角波;当WS为11时,不输出波形。图9 三选一输出波形选择器程序如下:port (keya,keyb:in std_logic; d_in1,d_in2,d_in3,:in std_logic_vector(7 do

17、wnto 0); d_out:out std_logic_vector( 7 downto 0);end wav_sel;architecture behave of wav_sel issignal key:std_logic_vector(1 downto 0);beginkey<=keya&keyb;with key select d_out<=d_in1 when "00", d_in2 when "01", d_in3 when "10", "00000000" when others

18、; 3.3.5数模转换模块8位dac的程序及Symbol:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity dac0832 isport(clk :in std_logic;WR_n :out std_logic;datin:in std_logic_vector(7 downto 0);Analog_D:out std_logic_vector(7 downto 0);end dac0832;architecture rt1

19、of DAC0832 isbeginWR_n <= '0' ;process (clk )beginif clk'event and clk = '1' thenAnalog_D <=datin;end if;end process ;end rt1;图10 数模转换模块图11系统整体原理图截图四 软件仿真 4.1方波模块部分程序如下:port(fclk:in std_logic; reset:in std_logic; d_out:out std_logic_vector(7 downto 0);end fangbo;architectur

20、e arch of fangbo issignal da:std_logic_vector(7 downto 0);beginprocess(da)begin if da<127 then d_out<="00000000" else d_out<="11111111" end if;end process;process(fclk,reset,da)begin if reset='1' then da<="00000000" else if fclk'event and fclk=&#

21、39;1' then if da="11111111" then da<="00000000" else da<=da+1;4.2三角波模块部分程序如下: port (fclk:in std_logic; reset:in std_logic; d_out : out std_logic_vector(7 downto 0);end sanjiao;architecture arch of sanjiao is signal da : std_logic_vector(7 downto 0);begin process (fclk,r

22、eset,da)variable porn :std_logic;begin if reset='1' then da<="00000000" d_out<="00000000"porn:='0'else if fclk='1' and fclk'event then if porn='0' then if da<=126 then da<=da+1; else porn:='1'end if;else if da>0 then da&l

23、t;=da-1; else porn:='0'其波形图如下:4.3正弦波模块设计程序如下:case tmp iswhen 00=>d_out<=255; when 01=>d_out<=254; when 02=>d_out<=252;when 03=>d_out<=249; when 04=>d_out<=245; when 05=>d_out<=239;when 06=>d_out<=233; when 07=>d_out<=225; when 08=>d_out<=

24、217;when 09=>d_out<=207; when 10=>d_out<=197; when 11=>d_out<=186;when 12=>d_out<=174; when 13=>d_out<=162; when 14=>d_out<=150;when 15=>d_out<=137; when 16=>d_out<=124; when 17=>d_out<=112;when 18=>d_out<=99; when 19=>d_out<=87; when

25、 20=>d_out<=75;when 21=>d_out<=64; when 22=>d_out<=53; when 23=>d_out<=43;when 24=>d_out<=34; when 25=>d_out<=26; when 26=>d_out<=19;when 27=>d_out<=13; when 28=>d_out<=8; when 29=>d_out<=4;when 30=>d_out<=1; when 31=>d_out<=0;

26、when 32=>d_out<=0;when 33=>d_out<=1; when 34=>d_out<=4; when 35=>d_out<=8;when 36=>d_out<=13; when 37=>d_out<=19; when 38=>d_out<=26;when 39=>d_out<=34; when 40=>d_out<=43; when 41=>d_out<=53;when 42=>d_out<=64; when 43=>d_out<=

27、75; when 44=>d_out<=87;when 45=>d_out<=99; when 46=>d_out<=112; when 47=>d_out<=124;when 48=>d_out<=137; when 49=>d_out<=150; when 50=>d_out<=162;when 51=>d_out<=174; when 52=>d_out<=186; when 53=>d_out<=197;when 54=>d_out<=207; when

28、55=>d_out<=217; when 56=>d_out<=225;when 57=>d_out<=233; when 58=>d_out<=239; when 59=>d_out<=245;when 60=>d_out<=249; when 61=>d_out<=252; when 62=>d_out<=254;when 63=>d_out<=255; when others=>null;end case;end if;d<=conv_std_logic_vector(d_out,8);end process;end sin_arc;其波形图如下:五系统调试5.1 嵌入式逻辑分析 随着逻辑设计复杂性的不断增加,仅依赖于软件方式的仿真测试来了了解设计系统的硬件功能和存在的问题已远远不够了,而需要重复进行的硬件系统的测试也变得更为困难。为了解决这些问题,设计者可以将一种高效的硬件测试手段和传统的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论