基于VHDL语言的函数发生器的设计_第1页
基于VHDL语言的函数发生器的设计_第2页
基于VHDL语言的函数发生器的设计_第3页
基于VHDL语言的函数发生器的设计_第4页
基于VHDL语言的函数发生器的设计_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

1、基于VHDL语言的函数发生器的设计发布者:刘冬香 发布时间:2007-4-11 10:17:00内容摘要VHDL语言是一种用于数字系统的设计和测试的高级硬件描述语言,函数发生器的设计采用自顶向下的系统设计的方法,通过MAX+plus开发环境进行编辑、综合、波形仿真,并下载到CPLD器件中,采用模块化的设计,对功能的修改和增加,只要修改VHDL源程序,而不必更改硬件电路。实现数字系统硬件的软件化。正文文字大小:大 中小基于VHDL语言的函数发生器的设计刘冬香摘 要: VHDL语言是一种用于数字系统的设计和测试的高级硬件描述语言,函数发生器的设计采用自顶向下的系统设计的方法,通过MAX+plus开

2、发环境进行编辑、综合、波形仿真,并下载到CPLD器件中,采用模块化的设计,对功能的修改和增加,只要修改VHDL源程序,而不必更改硬件电路。实现数字系统硬件的软件化。关键词: VHDL;函数发生器;层次设计;波形仿真;1引言函数发生器可以用模电、数电、单片机等来实现,这里介绍的是由VHDL语言通过CPLD来实现。VHDL语言是随着集成电路系统化和高度集成化的发展而逐步发展起来的,是一种用于数字系统的设计和测试的硬件描述语言。相比传统的电路系统的设计方法,VHDL具有多层次描述系统硬件功能的能力,支持自顶向下和基于库的设计的特点,因此设计者可以不必了解硬件结构。从系统设计入手,在顶层进行系统方框图

3、的划分和结构设计,在方框图一级用VHDL对电路的行为进行描述,并进行仿真和纠错,然后在系统一级进行验证,最后再用逻辑综合优化工具生成具体的门级逻辑电路的网表,下载到具体的CPLD器件中去,从而实现可编程的专用集成电路(ASIC)的设计。2函数发生器的设计思路函数发生器有波形选择开关控制波形的输出,分别能输出正弦波、方波、三角波和锯齿波四种波形,考虑程序的容量,每种波形在一个周期内均取32个取样点。本设计采用自顶向下的设计方法进行设计。系统的框图如下图。CLOCK为系统时钟,CLR为系统清零信号,S是波形选择数码开关,系统获得的数字信号经D/A转换器即可转换成模拟信号输出波形。3顶层设计顶层的设

4、计是把下层各模块连接起来,采用文本输入的方式,通过元件例化的方法,调用各元件,实现函数发生器的设计。其程序如下。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity hanshufasheng isport(clock:in std_logic;clr:in std_logic;s:in std_logic_vector(1 downto 0);qq:out std_logic_vector(7 downto 0);end hanshufasheng;architecture behave

5、 of hanshufasheng iscomponent xuanzeqiport(sel:in std_logic_vector(1 downto 0);d3,d2,d1,d0:in std_logic_vector(7 downto 0);q:out std_logic_vector(7 downto 0);end component xuanzeqi;component zhengxianboport(clk:in std_logic;reset:in std_logic;q:out std_logic_vector(7 downto 0);end component zhengxia

6、nbo;component sanjiaobo1port(clk:in std_logic;reset:in std_logic;q:out std_logic_vector(7 downto 0);end component sanjiaobo1;component juchiboport(clk:in std_logic;reset:in std_logic;q:out std_logic_vector(7 downto 0);end component juchibo;component fangboport(clk:in std_logic;reset:in std_logic;q:o

7、ut std_logic_vector(7 downto 0);end component fangbo;signal t1:std_logic_vector(1 downto 0);signal t2,t3,t4,t5:std_logic_vector(7 downto 0);beginu1:xuanzeqi port map(sel=s,q=qq,d0=t2,d1=t3,d2=t4,d3=t5);u2:zhengxianbo port map(clk=clock,reset=clr,q=t2);u3:sanjiaobo1 port map(clk=clock,reset=clr,q=t3)

8、;u4:fangbo port map(clk=clock,reset=clr,q=t4);u5:juchibo port map(clk=clock,reset=clr,q=t5);end behave;4下层设计41 正弦波的设计CPLD输出的数字信号需要经D/A转换器转换成各种波形输出。而由D/A转换器可知,DAC0832的分辨率是8位,这样,将模拟信号的正弦波在一个周期内平均分成28-1=255份,由于已经确定每周期的取样点数为32 ,即每隔 的间隔取值一次,所取的值为该点对应的正弦值,通过计算可以获得32个取样点的值;也可以通过查表的方法取得32个取样点的值。其程序略:42 方波的设

9、计由于方波的占空比是50%,且只有两个状态,所以方波的取样比较简单。即前16个取样点取值为高电平“”,后16个取样点取值为低电平“”就可以了,程序略。43 三角波的设计三角波在一个周期内具有对称性,而且波形是线性的,前半个周期的取值可以通过公式计算 计算,m的取值是015;后半周期的取值具有对称性,依次类推即可。程序略。44 锯齿波的设计锯齿波在一个周期内的波形也是线性增长的,所以锯齿波的取值可以根据公式 计算得到,m的取值是031。程序略。45 波形选择器的设计设计一个四选一的数据选择器即可,根据外部开关的状态,选择调用上述设计的四种波形模块。程序略。5波形仿真仿真环境是ALTERA公司的MAX+plus软件,设置不同的S的值,实现不同的波形输出,当S=0时,输出正弦波,仿真波形如下图所示,可以看出,输出数据的变化规律是正弦规律。当S=1时,输出为三角波,其仿真波形如图所示,从图中可以看出,波形线性增长到最大值后再线性减少,符合三角波的变化规律。当S=2时,输出方波,从下图的仿真波形可以看出,其数据规律为半周高电平半周低电平的方波的规律。当S=3时,输出锯齿波,从仿真图的数据可以看出,其数据规律是线性增长的斜波,符合锯齿波的变化规律。6小结本文介绍了使用VHDL语言设计函数发生器的方法,并下载到CPLD中组成实际电路,这样可以简化硬件的开发和制造过程,而且使硬件体积大大缩

温馨提示

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

评论

0/150

提交评论