网站大量收购独家精品文档,联系QQ:2885784924

EDA课程设计-正弦波信号发生器的设计.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
EDA课程设计-正弦波信号发生器的设计

FPGA/CPLD基础 课程设计 课 题: 正弦波信号发生器的设计 学 院: 电气信息工程学院 年 级: 2006级电子信息工程二班 姓 名: 学 号: 1 导 师: 同组人: 二〇〇九年七月 FPGA/CPLD基础课程设计 ——正弦波信号产生器的设计 目录 目录 2 一、摘要 3 二、研究本课题的实际意义 3 三、设计思路 4 3.1 系统功能介绍 4 3.2 波形产生及控制原理 4 四、程序及仿真图 5 4.1 正弦波信号的产生 5 4.2 仿真波形图 8 六、参考文献 9 一、摘要 函数发生器作为电子系统的重要组成部分,在电子设计领域中起着极其重要的作用。应用VHDL语言,在ALTERA公司的QUARTUS Ⅱ软件环境下,完成了频率可调的智能函数发生器的程序设计,并进行了逻辑综合、仿真和硬件下载,产生了正弦波、方波、三角波三种常用信号,系统的软件仿真和实验测试结果满足了设计要求,达到了预期的效果。由于设计采用了EDA技术,不但大大缩短了开发研制周期,提高了设计效率,而且使系统具有结构紧凑、设计灵活,实现简单,性能稳定的特点。 二、研究本课题的实际意义 函数发生器作为电子系统的重要组成部分,广泛应用于电子电路、工业控制、教学科研等领域,它为电子测量和计量工作提供符合技术要求的电信号,在电子设计领域中起着极其重要的作用。Quartus II是Altera公司开发的一种针对其公司的CPLK/FPGA器件的设计、仿真、编程的工具,该软件界面友好,使用便捷,支持各种HDL,可与多种高级编程语言接口,功能齐全,是一个完全集成化的可编程逻辑设计环境。我们正是利用VHDL语言编写程序进行电路硬件描述,借助Quartus II软件平台进行程序编译、综合及波形仿真,最后通过Altera公司的FPGA芯片EPEK30144-3实现智能函数发生器的设计 三、设计思路 智能函数发生器可以由递增斜波产生模块、递减斜波产生模块、方波产生模块、三角波产生模块、正弦波产生模块、阶梯产生模块和输出波形选择模块组成、总体框图如图6-3所示。图中输出Q接在D/A转换的数据端、在D/A转换器的输出端即可得到各种不同的函数波形。 3.1 系统功能介绍 本设计是一种能够产生正弦波、三角波、方波的函数发生器,系统的始终基准频率位12MHz,测频率范围200Hz---2MHz,能够在选择开关的控制下输出相应的波形信号,且生成信号的频率可以通过控制信号的设置进行调整。智能函数发生器的系统框图如图1所示。 3.2 波形产生及控制原理 正弦波的产生原理是基于奈奎斯特采样定律,先对模拟信号进行采集,经量化后存入查找表中,再由累加器产生地址,通过对查找表寻址,得到离散化波形序列,最后经D/A转换输出模拟波形。方波的产生是在输出波形的前半周期输出低电平,后半周期输出高电平,从而得到占空比为50%的方波信号。三角波的产生是在输出波形的前半周期内从0累加到最大值255(8位),在后半周期从最大值减到0来实现的。 四、程序及仿真图 4.1 正弦波信号的产生 正弦波信号产生的VHDL语言为: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY SIN IS PORT(CLK,CLR:IN STD_LOGIC; D:OUT INTEGER RANGE 0 TO 255); END SIN; ARCHITECTURE SIN_ARC OF SIN IS BEGIN PROCESS(CLK,CLR) VARIABLE TMP:INTEGER RANGE 0 TO 63; BEGIN IF CLR=0THEN D=0; ELSIF CLKEVENT AND CLK=1THEN IF TMP=63 THEN TMP:=0; ELSE TMP:=TMP+1; END IF; CASE TMP IS WHEN 00=D=255;WHEN 01=D=254;WHEN 02=D=252; WHEN 03=D=249;WHEN 04=D=245;WHEN 05=D=239; WHEN 06=D=233;WHEN 07=D=225;WHEN 08=D=217; WHEN 09=D=207;WHEN 10=D=197;WHEN 11=D=186;

文档评论(0)

2017meng + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档