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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

VHDL电路设计论文.docx

1、VHDL电路设计论文 摘 要随着大规模集成电路技术和计算机技术的不断发展,在涉及通信、国防、航天、医学、工业自动化、计算机应用、仪器仪表等领域的电子系统设计工作中EDA技术的含量正以惊人的速度上升;电子类的高新技术项目的开发也逾益依赖于EDA技术的应用。即使是普通的电子产品的开发EDA技术常常使一些原来的技术瓶颈得以轻松突破从而使产品的开发周期大为收缩、性能价格比大幅提高。不言而喻EDA技术将迅速成为电子设计领域中的极其重要的组成部分。100Hz频率计数器的主要功能是在一定时间内对频率的计算。在数字系统中,计数器可以统计输入脉冲的个数,实现计时、计数、分频、定时、产生节拍脉冲和序列脉冲。而本篇

2、论文主要介绍了频率计数器的实现:系统以MAX+PULSLL II为开发环境,通过VHDL语言作为硬件描述语言实现对电路结构的描述。在VHDL语言中采用了一系列的语句,例如:if 语句、case语句、loop语句等。这些语句对程序中的输入输出端口进行了解释,并给出实现代码和仿真波形。相关的一些关键词: 100Hz;分频;计数;MAX+PULSLL II; VHDL; 编译;仿真等。(论文修改) 前 言VHDL是超高速集成电路硬件描述语言(Very High Speed Integrated Circuit Hardware Description Language)的缩写在美国国防部的支持下于1

3、985年正式推出是目前标准化程度最高的硬件描述语言。IEEE(The Institute of Electrical and Electronics Engineers)于1987年将VHDL采纳为IEEE1076标准。它经过十几年的发展、应用和完善以其强大的系统描述能力、规范的程序设计结构、灵活的语言表达风格和多层次的仿真测试手段在电子设计领域受到了普遍的认同和广泛的接受成为现代EDA领域的首选硬件描述语言。目前流行的EDA工具软件全部支持VHDL它在EDA领域的学术交流、电子设计的存档、专用集成电路(ASIC)设计等方面担任着不可缺少的角色。 数字频率计是数字电路中的一个典型应用,实际的硬

4、件设计用到的器件较多,连线比较复杂,而且会产生比较大的延时,造成测量误差、可靠性差。随着复杂可编程逻辑器件(CPLD)的广泛应用,以EDA工具作为开发手段,运用VHDL语言。将使整个系统大大简化。提高整体的性能和可靠性。 本文用VHDL在CPLD器件上实现一种2b数字频率计测频系统,能够用十进制数码显示被测信号的频率,不仅能够测量正弦波、方波和三角波等信号的频率,而且还能对其他多种物理量进行测量。具有体积小、可靠性高、功耗低的特点。 目 录(论文修改)摘要1 前言 2目录 3第一章 设计目的 51.1设计要求 51.2设计意义 5第二章 设计方案 6第三章 产生子模块 7 3.1分频模块 7

5、3.2分频模块源代码 8 3.3 仿真及波形图 9第四章 计数模块 9 4.1计数模块分析 9 4.2计数模块源代码10 4.3计数模块的仿真及波形图 12第五章 显示模块 12 5.1 七段数码管的描述 13 5.2 八进制计数器count8的描述 14 5.3 七段显示译码电路的描述 15 5.4计数位选择电路的描述 16 5.5总体功能描述 18 5.6显示模块的仿真及波形图 19第六章 顶层文件 20 6.1 顶层文件设计源程序 20 6.2顶层文件的仿真及波形图 21 结语 22参考文献 23致谢 24附件 25 第一章 设计目的(毕业论文)1.1 设计要求 a.获得稳定100Hz频

6、率 b.用数码管的显示 c.用VHDL写出设计整个程序1.2 设计意义 a.进一步学习VHDL硬件描述语言的编程方法和步骤。 b.运用VHDL硬件描述语言实现对电子元器件的功能控制 c.熟悉并掌握元件例化语句的使用方法 d.熟悉数字式频率的基本工作原理。 e.熟悉数字频率计中计数显示设计 f.熟悉掌握MAX+PLUS软件的基本使用方法。第二章 设计方案 此系统正常工作时,脉冲发生器提供的1 Hz的输入信号,信号的变换,产生计数信号,被测信号通过信号整形电路产生同频率的矩形波,送入计数模块,计数模块对输入的矩形波进行计数,将计数结果送入锁存器中,保证系统可以稳定显示数据,显示译码驱动电路将二进制

7、表示的计数结果转换成相应的能够在七段数码显示管上可以显示的十进制结果。在数码显示管上可以看到计数结果。在这个100HZ频率计的设计中一共分为3大模块:产生子模块、计数模块、显示模块。产生子模块是为此100赫兹频率计提供1Hz的时钟脉冲信号,为了实现严格的同步,在这个模块中采用了同步计数电路。计数模块是实现从0到99的计数。显示模块是将计数模块程序中产生的数值通过2个七段数码管表达出来,使大家对此频率计有一个更直观的认识。 此100HZ频率计的设计中,这3个大的模块是核心部分,这个3个大的模块会在后面的分析设计中给出详细的介绍。 频率计的工作原理是通过在一定时间内对外部信号进行计数,计数值与时间

8、的比值,从而得到输入信号的频率,通过二个数码管作为频率值的输出。对系统进行分析后,确定采用模块设计,基本框架图如CLK 计数系统 显示系统图1第三章 产生子模块3.1 分频模块 分频模块的功能是将输入的外部信号clk进行分频,分频成计数器所需要的计数信号, 使计数器在计数信号有效的时间对外部信号进行计数。根据频率计测量的范围,确定了分频至1Hz,从而得到频率值. 图2555定时器(如图2)是一种模拟电路与数字电路相结合的中规模集成电路,它在信号产生、整形、延时(定时)、控制等方面获得了广泛的应用。虽说555定时器应用领域十分广泛,但其电路结构归纳起来有三种基本形式,即多谐振荡器、单稳态触发器、

9、施密特触发器由于双极型555和CMOS型555的制作工艺和流程不同,生产出的555集成电路的性能指标是有差异的。 CMOS型555的功耗仅为双极型的几十分之一,静态电流仅为300uA左右,为微功耗电路。CMOS型555的输出脉冲的上升沿和下降沿比双极型的要陡,转换时间短。CMOS型555的在传输过度时间里产生的尖峰电流小,仅为2-3mA,而双极型555的尖峰电流高达300-400mA。3.2分频程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY clk_div1000 ISPO

10、RT(clk:IN STD_LOGIC; clk_div:out STD_LOGIC);END clk_div1000;ARCHITECTURE rt1 OF clk_div1000 ISSIGNAL q_tmp:integer range 0 to 999;BEGINprocess(clk)beginIF(clkevent and clk=1)then if(q_tmp=999)then q_tmp=0; else q_tmp=q_tmp+1; end if;end if;end process;process(clk)beginIF(clkevent and clk=1)then if(q

11、_tmp=999)then clk_div=1; else clk_div=0; end if;end if;end process;end rt1;在程序3.2中我们将外部信号clk进行10次分频输入信号为clk,输出信号为clk_div. 3.3 仿真及波形图 图3图4图4 第四章 计数模块4.1计数模块分析经分析可知,此频率计计数模块分为2个子模块,即个位显示模块、十位显示模块。详细分析如下:计数模块的个位可以用1个十进制计数器表示。计数模块的十位可以用1个十进制计数器表示。频率计的计数模块主要来实现频率计数器内部的计数功能,计数器的内部计数信号clk和频率计数器的使能信号enable.

12、 频率计数器的计数模块的输出信号就是个位sec,十位sec10电路图如下: 图5十进制计数器,它的输入端口主要包括使能端口enable计数输入端口clk, 输出端口主要包括计数输出端口q和进位输出端口cout.4.2计数模块的程序如下:毕业论文LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY count10 ISPORT( enable:IN STD_LOGIC; clk:IN STD_LOGIC; cout:out STD_LOGIC; q:OUT STD_LOGIC_VECTOR(

13、3 DOWNTO 0);END count10;ARCHITECTURE rt1 OF count10 ISSIGNAL q_tmp:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINprocess(clk)beginIF(clkevent and clk=1)then if(enable=1)then if(q_tmp=1001)then q_tmp=0000; else q_tmp=q_tmp+1; end if; end if;end if;q=q_tmp;end process;cout=1when q_tmp=1001and enable=1 else0;-cout

14、=1when q_tmp=1001 else0;end rt1;描述了上述的十进制计数器后,我们就可以根据图三所示的结构框图来进行频率计数器计数模块的VHDL描述了.在频率计数器计数模块的VHDL描述中,我们引用元件的形式调用上面描述的十进制计数器.从而得到频率计数器的计数功能,程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY time_counter ISPORT( enable:IN STD_LOGIC; clk0:IN STD_LOGIC; sec10:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); sec:OU

15、T STD_LOGIC_VECTOR(3 DOWNTO 0);END time_counter;ARCHITECTURE rt1 OF time_counter ISCOMPONENT count10PORT( enable:IN STD_LOGIC; clk:IN STD_LOGIC; cout:out STD_LOGIC; q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);end COMPONENT;SIGNAL co1,co2:STD_LOGIC;BEGINU1:count10 PORT MAP(enable,clk0,co1,sec);U2:count10 PORT

16、 MAP(co1,clk0,co2,sec10);end rt1;4.3计数模块的仿真及波形图 图6图7第五章 显示模块有了计数模块还不能满足设计的要求,任何一个设计都是需要一定的硬件设备来表达。否则,只有一个理论的程序是不足以来证明一个设计的完整性。在参考一些资料和根据实验提供的条件,我在这个设计中采用2个七段数码管来对这个频率计进行实际的表达。频率计数器要将计数的结果显示出来,就必需设计一个计数显示模块来完成该显示功能.频频计数器的显示模块的输入信号主要来自于频频计数器计数模块的计数信息,它的输出信号是choose和segment,以用来驱动计数显示的8个LED七段显示数码管,在输出信号中

17、,为了节省资源,我们采用循环点亮LED七段显示数码管的方法来显示频率计数器的计数输出.我们通过信号choose(7downto0)来进行8个LED七段显示数码管的选择,从而将输出信号segment(6downto0)送到相应的LED七段显示数码管上以完成频率计数的显示.计数显示模块的结构框图如图8所示:原创论文 图8从图4以看出,计数显示模块可由三个部分组成:八进制计数器,计数位选择电路,七段显示译码电路.下面描述一下计数显示模块的工作过程:在外部计数信号clk的作用下,八进制计数器的输出从000到111按顺序循环变化,输出信号为sel.信号sel 作为计数位选择电路的选择信号,用来选择对应位

18、的数据并将其转换为四位位矢量.最后将计数位选择电路的输出信号q送到七段显示译码电路的输入端口,将其转化成用来点燃LED七段显示数码管的segment信号.5.1 七段数码管的描述我们所使用实验箱中的8个七段数码管有这样一个特点,8个数码管中每一个数码管中相同的段都是连在一根线上的。如图所示: 图9故只要有一个数码管的一段亮,则8个数码管中相同的段都会亮。则,在选用了数码管后就我们需要考虑一个问题了,就是如何在每个数码管上正确的显示程序中每一位要显示的数据呢?也就是如何将前面的计数模块中要显示的数字准确地表达在数码管上。在这里就运用了人体生理学的一个结论,人的眼睛能分辨的时间是1/16秒,即频率

19、为25Hz左右。有了这个结论后,我们就可以解决正确显示的问题了,应用动态扫描的方法,只要我们在显示模块中所使用的频率大于25Hz就可以让每个数码管正确的显示程序中所要求的数字了。因此,在显示模块中首先要设计一个分频器,实验提供的脉冲是1KHz,我们只要设计的分频器所分出来的频率大于25Hz即可,在此我选择一个8分频器。8分频器的输入信号为clk,输出信号为sel(2 DOWNTO 0).5.2 八进制计数器count8的描述我们来描述下三个子电路,然后再描述显示模块的总体功能.先来讨论下八进制计数器count8,这个八进制计数器除了没有使能端enable和进位输出端口cout之外,它的描述结构

20、与前面描述的计数器的结构完全相同,用VHDL描述如下: 8分频器模块设计程序如下: LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY count8 ISPORT( clk:IN STD_LOGIC; sel:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);END count8;ARCHITECTURE rt1 OF count8 ISSIGNAL sel_tmp:STD_LOGIC_VECTOR(2 DOWNTO 0);BEGINprocess(clk)beginIF

21、(clkevent and clk=1)then if(sel_tmp=111)then sel_tmp0); else sel_tmp=sel_tmp+1; end if;end if;selsegmentsegmentsegmentsegmentsegmentsegmentsegmentsegmentsegmentsegmentsegmentqqqchoosechoosechoosechoosechoosechoosechoosechoosechoose=XXXXXXXX;-END CASE;-END PROCESS;-END rt1;5.5总体功能描述 对计数器的显示模块的四个子电路描述以后,我们就可以进行计数器的总体功能描述了.在计数器显示模块的VHDL描述中,我们引用元件的形式来调用上面描述过的四个子电路,秒表显示

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

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