VHDL___WAVE简易波形发生器课程设计报告.doc

VHDL___WAVE简易波形发生器课程设计报告.doc

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
华南理工大学广州学院 数字系统设计(VHDL)课程报告 题目:简易波形发生器 姓 名: 曾祥安 学 号: 201130085225 序 号: 1 学 院: 电子信息工程学院 班 级: 11级电信2班 指导老师: 李 欣 完成时间: 2014-01-02 简易波形发生器 功能及原理介绍 本课设选择了“简易波形发生器”作为课设题目。波形的产生有很多种方法,比如有DDS芯片产生波形,单片机产生波形,可编程逻辑器件产生等。FPGA是可编程门阵列,它能通过硬件描述语言如VHDL和Verilog对实体器件的功能描述实现各种功能的电路模块。从规模上说,小到可以点一盏灯,大到可以做出一个复杂的芯片内核。作为FPGA的课程设计,我当然是要选用FPGA来实现波形的产生的了。课设并没有使用实验室的实验箱作为硬件平台,而是选用了自己买的板,使用的芯片是Cyclone II的EP2C8Q208C8N。 在我的设计中,我产生了五种波形,分别是方波、三角波、减锯齿波、增锯齿波还有正弦波。其中前四种波形是直接通过编写VHDL文件来实现的,而正弦波的实现则通过LPM_ROM的方法间接产生的。LPM_ROM的方法是在Quartus ii的开发界面中按照一定的操作步骤先建立一个ROM,我设定的ROM大小为128*8Byte,即是说这个ROM能放128个字节。通过MIF maker软件生成包含128个正弦波数据点的mif文件,然后把这个文件在创建ROM的某个步骤中选中,把这些数据在生成ROM的同时也把波形数据烧写进去,于是乎ROM里面就含有了正弦波的数据了。要想产生正弦波就需要在7根地址线上通过ROM地址自增器由0000000到1111111的线性递增来实现。选中波形存储的某个单元,某个单元的数据就会被输出,于是就能达到产生正弦波的目的。除了五个波形产生的模块,还需要一个数据选择器来对五路波形有选择性地单个输出。在我的FPGA开发板上,我使用了四个拨码开关,三个用来选择波形,一个用来控制异步复位信号。 VHDL编程实现 (1)方波 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity square is port(clk,reset: in std_logic; q:out std_logic_vector(7 downto 0)); end square; architecture behav of square is signal a:std_logic; begin process(clk,reset) variable tmp:std_logic_vector(7 downto 0); begin if reset=0then a=0; elsif rising_edge(clk) then if tmphen tmp: else tmp:=tmp+1; end if; if tmphen a=1; else a=0; end if; end if; end process; process(clk,a) begin if rising_edge(clk)then if a=1 then q else q end if; end if; end process; end behav; (2)三角波 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; --程序包 entity triangle is --定义三角波实体 port(clk,reset:in std_logic; q:out std_logic_vector(7 downto 0)); end triangle; architecture behav of triangle is --定义三角波结构体 begin process(clk,reset) --进程开始 variable tmp:std_logic_vector(7 downto 0);

文档评论(0)

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

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

1亿VIP精品文档

相关文档