ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:583.39KB ,
资源ID:9716052      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9716052.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于FPGA的正弦波信号发生器的设计.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于FPGA的正弦波信号发生器的设计.docx

1、基于FPGA的正弦波信号发生器的设计基于FPGA的正弦波信号发生器的设计 EDA 课程设计题目名称:基于FPGA的正弦信号发生器班 级: 姓 名: 学 号: 日 期: 2012/07/06 基于FPGA的正弦信号发生器设计1.1 引言直接数字频率合成(Digital Direct Frequency Synthesis)是一种比较新颖的频率合成方法。这个理论早在20世纪70年代就被提出,它的基本原理就是利用采样定理,通过查表法产生波形。1.2 方案比较与确定设计要求:利用EDA技术,建立正弦信号DDS产生模型,编写源程序,达到频率输出范围1KHz-10MHz、频率步进100Hz、频率稳定度优于

2、10、带50负载输出电压峰峰值大于1V等要求,完成硬件实现与测试。【方案一】 采用分立元件模拟直接合成法。这种方法转换速度快,频率分辨率高,但其转换量程靠手动来实现,不仅体积大难以集成,而且可靠性和准确度很难进一步提高。【方案二】 采用MAX038芯片来产生正弦波信号。该集成块的输出波形种类多,频率覆盖范围广。它采用的是RC充放电振荡结构。第一,由于模拟器件元件分散性太大,外接的电阻、电容对参数的影响很大,因而产生的频率稳定度差,只能达到。第二,它的频率控制是通过充放电流的大小来实现。因而要达到步进100HZ,所需的电流变化量非常小,精度要求很高。所以采用MAX038芯片难以实现设计要求。【方

3、案三】 采用锁相环合成方法。采用该方案设计输出信号的频率可达到超高频甚至微波段,且输出信号频谱纯度较高。由于锁相环技图3.1 信号发生器结构框图图3.1为本次设计总体结构框图,其中相位累加器和波形存储器构成信号发生器核 心部分。该部分又与频率字控制模块共同构成信号发生器主模块。而显示模块,D/A转换器和滤波电路则作为信号发生器外围硬件设计。下面就分主模块软件设计和外围硬件设计两大部分来说明信号发生器的设计。3.2 主模块软件设计3.2.1 相位累加器的设计 图3.2 相位累加器图3.2为相位累加器内部结构图,它有一个N位的全加器和一个寄存器构成。当系统时钟上升沿到来的时候,上一个时钟周期的相位

4、值与频率字的相加值被送入累加寄存器,并输出高W位至波形存储器的地址线,同时相位值又被送回全加器进行相位累加。 相位累加器流程图如图3.3所示 开 始 时钟上升沿到? NO YES 相位累加 累加值寄存 高W位输出 结 束 图3.3 相位累加器流程图 设计要求输出频率范围为50HZ200HZ,频率步进为50HZ。根据前面介绍最高输出一般是系统时钟的40%。经过计算,设计选用系统时钟为40MHZ时能实现设计要求。 确定相位累加字长时,考虑到频率分辨率要等于或小于频率步进值,而且累加器字长一般为8的整数倍。由第二章公式2.2计算后得出符合设计要求的累加器字长为N=24。 3.2.2 波形ROM的设计

5、 这个模块是一个相对简单的模块。首先要确定波形ROM的地址线位数和数据的字长,根据噪声功率的角度看波形ROM的地址线位数应该等于或略大于字长。由于设计选择的DAC位数为8,这样ROM的字长很明显该和DAC的字长相一致。而地址线的位数同样确定为8位。波形存储器利用相位累加器输出的高8位作为地址线来对其进行寻址,最后输出该相位对应的二进制正弦幅值。将得出的结果转化为8位的二进制数据,起幅值对应在00000000-11111111区间内。最后利用得到的二进制数据用VHDL编写程序实现正弦ROM的设计。 图3.4为正弦波形ROM模块。图3.4 正弦波形ROM3.2.3 频率控制模块的设计 设计要求频率

6、步进为50HZ,在频率控制模块中,增加了4个附加的频率步进按钮。分别为最小步进(50HZ)的1倍、2倍、3倍和4倍即50HZ、100HZ、150HZ和200HZ。这样从大到小地利用频率步进值便可很快地调到所需要的频点。 由于设计要求频率输出范围为50HZ-200HZ,则K值的最小值为21,最大值为84。设系统其始和复位时K的初值为21,即初始化频率为50HZ。然后再根据所要输出的频率调整相应的步进量。图3.5为VHDL设计的频率控制模块。 图3.5为VHDL设计的频率控制模块3.3 外围硬件设计3.3.1 D/A转换器实现数字量转化为模拟信号的转换电路称为D/A转换器(DAC)。D/A转换器是

7、把数字量转换成模拟量的线性电路器件,已做成集成芯片。由于实现这种转换的原理和电路结构及工艺技术有所不同,因而出现各种各样的D/A转换器。目前,国外市场已有上百种产品出售,他们在转换速度、转换精度、分辨率以及使用价值上都各具特色。 衡量一个D/A转换器的性能的主要参数有: (1)分辨率:是指D/A转换器能够转换的二进制数的位数,位数多分辨率也就越高。 (2)转换时间:指数字量输入到完成转换,输出达到最终值并稳定为止所需的时间。电流型D/A转换较快,一般在几ns到几百ns之间。电压型D/A转换较慢,取决于运算放大器的响应时间。 (3)精度:指D/A转换器实际输出电压与理论值之间的误差,一般采用数字

8、量的最低有效位作为衡量单位。 (4)线性度:当数字量变化时,D/A转换器输出的模拟量按比例关系变化的程度。理想的D/A转换器是线性的,但是实际上是有误差的,模拟输出偏离理想输出的最大值称为线性误差。 目前,D/A转换器芯片种类较多,对于一般的使用者而言,只需掌握DAC芯片性能及其与计算机之间接口的基本要求,就可根据应用系统的要求合理选用DAC芯片,并配置适当的接口电路。3.3.2 滤波及放大电路在由数字信号至模拟信号这一过程转换好以后,得出的信号仍然是在时间上离散的点,需要将其用低通滤波器进行平滑处理,滤除高次频率的杂波,得到平滑标准的正弦波。结束语随着信息技术高速发展,集成电路的大规模使用,

9、电子系统已经进入了一个高速发展的全新时段。特别是EDA技术的日趋成熟的今天,通过计算机辅助设计,可以很好地完成电子设计的自动化。在设计过程中,可根据需要随时改变器件的内部逻辑功能和管脚的信号方式,EDA技术借助于大规模集成的FPGA/CPLD和高效的设计软件,用户不仅可通过直接对芯片结构的设计实行多种数字逻辑系统功能,而且由于管脚定义的灵活性,大大减轻了电路图设计和电路板设计的工作量及难度,同时,这种基于可编程芯片的设计大大减少了系统芯片的数量,缩小了系统的体积,提高了系统的可靠性。基于DDS的信号发生器是最为理想的信号产生模型,DDS系统有着其他信号发生器所无法比拟的优势。今天DDS广泛用于

10、接受机本振、信号发生器、仪器、通信系统、雷达系统等,尤其适合跳频无线电通信系统。基于FPGA的正弦信号发生器结合了的EDA技术和DDS理论,在EDA技术高速、高效、高可靠性的前提下得到了更优的设计效果。但是系统的功能还没有得到完全利用,由于DDS技术是利用查表法来产生波形的,则在基于FPGA设计时只要把ROM改成RAM变可实现任意波形的产生。参考文献1 张玉兴. DDS高稳高纯频谱频率源技术J. 系统工程与电子技术. 1997(2)24-282 冯 程. 用直接数字频率合成器产生正弦波J. 华中科技大学本科生论文. 2003. 7-273 周国富. 利用FPGA实现DDS专用集成电路J. 电子

11、技术应用. No.2.1998. 18-20波形截图:50Hz100Hz150Hz200Hz程序vhdl代码:-顶层模块library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity sin256 isport(clk : in std_logic; rst : in std_logic; set : in std_logic_vector(1 downto 0);-设置频率 q : out std_logic_vector(7 downto

12、 0) );end sin256;architecture Behavioral of sin256 is component adder port(a,b : in std_logic_vector(23 downto 0); c : out std_logic_vector(23 downto 0) ); end component; component D port(clk : in std_logic; rst : in std_logic; d : in std_logic_vector(23 downto 0); q : out std_logic_vector(23 downto

13、 0) ); end component; component sin_rom8_8 PORT(ADDER:IN STD_LOGIC_VECTOR(7 DOWNTO 0); DAOUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); end component; component setkp port(set : in std_logic_vector(1 downto 0); k : out std_logic_vector(23 downto 0); p : out std_logic_vector(23 downto 0) ); end component; sig

14、nal k,p : std_logic_vector(23 downto 0); signal tmp1,tmp2,tmp3 : std_logic_vector(23 downto 0);begin setk : setkp port map(set,k,p); add1: adder port map(k,tmp2,tmp1); d1 : D port map(clk,rst,tmp1,tmp2); add2: adder port map(tmp2,p,tmp3); sin_rom: sin_rom8_8 port map(tmp3(23 downto 16),q);end Behavi

15、oral;-频率控制模块library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity setkp isport(set : in std_logic_vector(1 downto 0); k : out std_logic_vector(23 downto 0); p : out std_logic_vector(23 downto 0) );end setkp;architecture Behavioral of setkp isbeg

16、in process(set) begin case set is when 00=kkkkk=000000000000000000010101; end case;end process; p=000000000000000000000000;end Behavioral;-相位累加模块,由加法器和D触发器组成-加法器library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity adder isport(a,b : in std_logi

17、c_vector(23 downto 0); c : out std_logic_vector(23 downto 0) );end adder;architecture Behavioral of adder isbegin c=a+b;end Behavioral;-D触发器library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity D isport(clk : in std_logic; rst : in std_logic; d

18、: in std_logic_vector(23 downto 0); q : out std_logic_vector(23 downto 0) );end D;architecture Behavioral of D isbegin process(clk,rst) begin if rst=1 then q0); elsif clkevent and clk=1 then qDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAO

19、UTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUT=11011111; when

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1