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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

10进制计数器.docx

1、10进制计数器 课程设计任务书学生姓名: 黄思羽 专业班级: 自动化0607 指导教师: 李向舜 工作单位: 自动化学院 题 目: 10进制计数器 初始条件:1. Quartus4.1以上版本软件;2. 课程设计辅导资料:“数字电路EDA入门”、“VHDL程序实例集”、“EDA技术与VHDL”、“EDA与数字系统设计”等;3. 先修课程:电路、电子设计EDA、电子技术基础等。4. 主要涉及的知识点: 门电路、组合逻辑电路、时序逻辑电路等。要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1. 课程设计时间:1周;2. 课程设计内容:根据指导老师给定的题目,按规定

2、选择其中1套完成; 3. 本课程设计统一技术要求:研读辅导资料对应章节,对选定的设计题目进行理论分析,针对具体设计部分的原理分析、建模、必要的推导和可行性分析,画出程序设计框图,编写程序代码(含注释),上机调试运行程序,记录实验结果(仿真结果),并对实验结果进行分析和总结。具体设计要求包括:1 复习EDA的相关技术与方法;2 掌握VHDL或者Verilog语言,并要求能编写程序。3 Quartus软件的使用:掌握程序编辑、编译、调试、仿真方法。4 设计相关简单的电路,完成既定的功能。4. 课程设计说明书按学校“课程设计工作规范”中的“统一书写格式”撰写,具体包括:1 目录;2 计数器相关的理论

3、分析、归纳和总结;3 10进制计数器的结构组成及原理分析。4 程序设计框图、程序代码(含注释);5 给出程序中主要函数或者语句的功能说明和使用说明;6 给出程序仿真运行结果和图表、以及实验结果分析和总结;7 课程设计的心得体会(至少500字);8 参考文献;9 其它必要内容等。时间安排:具体时间设计内容8月3日指导老师就课程设计内容、设计要求、进度安排、评分标准等做具体介绍。学生确定选题,明确设计要求8月4日开始查阅资料,完成相关电路原理分析、代码或原理图设计。8月5日采用VHDL或Verilog语言编程,上机调试,得出实验结果8月6日撰写课程设计说明书8月7日上交课程设计说明书,并进行答辩

4、指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日摘 要本次能力拓展训练是作出一个十进制加法计数器,递增计数,有进位、清零、保持功能。需要按要求编写出十进制计数器的VHDL程序,调试、编译程序并绘制出仿真波形图,结果应能实现计数功能。本次能力拓展训练意义在于复习EDA的相关技术与方法;掌握VHDL或者Verilog语言,并要求能编写程序。Quartus软件的使用:掌握程序编辑、编译、调试、仿真方法。 关键词:十进制计数器 VHDL Quartus II 9.0目 录1设计内容与要求 12 VHDL语言介绍 23 计数器设计 43.1 设计原理 43.2 程序设计框图 43.3 程

5、序代码设计 54 程序仿真 94.1 仿真软件介绍 94.2 仿真结果 94.3 仿真结果分析 115 心得体会 12参考文献 13十进制计数器1设计内容与要求设计一个10进制计数器,对计数器相关的理论进行分析、归纳和总结;10进制计数器的结构组成及原理分析。程序设计框图、程序代码(含注释);给出程序中主要函数或者语句的功能说明和使用说明;给出程序仿真运行结果和图表、以及实验结果分析和总结。具体设计要求包括:复习EDA的相关技术与方法;掌握VHDL或者Verilog语言,并要求能编写程序。Quartus软件的使用:掌握程序编辑、编译、调试、仿真方法。设计相关简单的电路,完成既定的功能。2 VH

6、DL语言介绍VHDL的英文全名是Very-High-Speed Integrated Circuit Hardware Description Language,诞生于1982年。1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言 。自IEEE公布了VHDL的标准版本,IEEE-1076(简称87版)之后,各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本

7、的VHDL,即IEEE标准的1076-1993版本,(简称93版)。现在,VHDL和Verilog作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。有专家认为,在新的世纪中,VHDL于Verilog语言将承担起大部分的数字系统设计任务。 VHDL语言是一种用于电路设计的高级语言。它在80年代的后期出现。最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言 。VHDL的英文全写是:VHSIC(Very High Speed Integrated Circuit)Hardware Descrip

8、tiong Language.翻译成中文就是超高速集成电路硬件描述语言。因此它的应用主要是应用在数字电路的设计中。目前,它在中国的应用多数是用在FPGA/CPLD/EPLD的设计中。当然在一些实力较为雄厚的单位,它也被用来设计ASIC。VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义

9、了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点 与其他硬件描述语言相比,VHDL具有以下特点:功能强大、设计灵活。VHDL具有功能强大的语言结构,可以用简洁明确的源代码来描述复杂的逻辑控制。它具有多层次的设计描述功能,层层细化,最后可直接生成电路级描述。VHDL支持同步电路、异步电路和随机电路的设计,这是其他硬件描述语言虽不能比拟的。VHDL还支持各种设计方法,既支持自底向上的设计,又支持自顶向下的设计;既支持模块化设计,又支持层次化设计。支持广泛、易于修改。由于VHDL已经成为IEEE标准所规范的硬件描述语言,

10、目前大多数EDA工具几乎都支持VHDL,这为VHDL的进一步推广和广泛应用奠定了基础。在硬件电路设计过程中,主要的设计文件是用VHDL编写的源代码,因为VHDL易读和结构化,所以易于修改设计。强大的系统硬件描述能力。VHDL具有多层次的设计描述功能,既可以描述系统级电路,又可以描述门级电路。而描述既可以采用行为描述、寄存器传输描述或结构描述,也可以采用三者混合的混合级描述。另外,VHDL支持惯性延迟和传输延迟,还可以准确地建立硬件电路模型。VHDL支持预定义的和自定义的数据类型,给硬件描述带来较大的自由度,使设计人员能够方便地创建高层次的系统模型。独立于器件的设计、与工艺无关。设计人员用VHD

11、L进行设计时,不需要首先考虑选择完成设计的器件,就可以集中精力进行设计的优化。当设计描述完成后,可以用多种不同的器件结构来实现其功能。很强的移植能力。VHDL是一种标准化的硬件描述语言,同一个设计描述可以被不同的工具所支持,使得设计描述的移植成为可能。易于共享和复用。VHDL采用基于库(Library)的设计方法,可以建立各种可再次利用的模块。这些模块可以预先设计或使用以前设计中的存档模块,将这些模块存放到库中,就可以在以后的设计中进行复用,可以使设计成果在设计人员之间进行交流和共享,减少硬件电路设计。3 计数器设计3.1 设计原理计数器的输入信号是计数信号(Clk),门控信号是手动清零信号(

12、Rest)、手动允许计数(En)。清零信号Rest为1时,保持在异步清零状态,计数脉冲上升沿无效;允许计数端为0时,为保持状态,这时保持至最后一个计数,计数脉冲上升沿无效;清零信号为0,允许计数信号为1时,计数器上升沿脉冲计数。计数器的逻辑功能表如表3-1所示:表3-1 计数器的逻辑功能表控制端工作状态Clk(计数脉冲)En(允许计数信号)Rest(清零信号)XX1异步清零上升沿10计数X00保持输出总线信号是二进制BCD码输出(Dout)一个进位输出端Cy。当计数器输出00001000时,Cy=0,只有当计数器输出1001时,Cy=1。以上分析可知,可以完全完成10进制计数功能。3.2 程序

13、设计框图10进制计数器程序的流程可以这样叙述:首先判断是否处于异步清零状态,若是,则计数位和进位信号都是0;若不是,则继续判断计数脉冲是否达到上升沿,并判断手动允许计数信号是否为1,若是,则可开始计数,计数信号达到9之前,连续累加1,达到9之后,清零并进位1。接着继续进入程序进行运算。10进制计数器程序的流程图如图3-1所示:图3-1 10进制计数器程序流程图3.3 程序代码设计一个VHDL语言的设计程序描述的是一个电路单元,这个电路单元可以是一个门电路,或者是一个计数器,也可以是一个CPU。一段完整的VHDL代码主要由以下几部分组成:第一部分是程序包,程序包是用 VHDL 语言编写的共享文件

14、,定义在设计结构体和实体中将用到的常数、数据类型、子程序和设计好的电路单元等,放在文件目录名称为IEEE的程序包库中。 第二部分是程序的实体,定义电路单元的输入/输出引脚信号。程序的实体名称是任意取的,但是必须与VHDL程序的文件名称相同。实体的标识符是ENTITY,实体以 ENTITY开头,以END结束。 第三部分是程序的结构体,具体描述电路的内部结构和逻辑功能。结构体有三种描述方式,分别是行为(BEHAVIOR)描述方式、数据流(DATAFLOW)描述方式和结构(STRUCTURE)描述方式。其中数据流(DATAFLOW)描述方式又称为寄存器描述方式。结构体以标识符ARCHITECTURE

15、开头,以END结尾。 根据上述原则编写程序代码如下所示:-*-程序包library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;-*-实体ENTITY cnt10 is-Cn 计数脉冲-Rest 清零信号- En 允许计数信号-Dout3.0 十进制BCD码- Cy 进位码 port(Cn,Rest,En :in std_logic;Dout : out std_logic_VECTOR ( 3 Downto 0 );Cy : out std_logic);end cnt10 ;-*-结构体architect

16、ure sun1 of cnt10 isbeginProcess (Cn,Rest,En)Variable Cqi : std_logic_VECTOR ( 3 Downto 0 );BeginIf Rest =1 Then Cqi :=(Others =0);Cy=0;Elsif CnEvent and Cn=1 thenIf En=1 thenIf Cqi 1001 thenCqi :=Cqi+1; Cy=0; elsif cqi=1001then Cy0);end If;end If;end If;Dout=Cqi;END Process;End sun1;-*IEEE标准库是存放用VH

17、DL语言编写的多个标准程序包的目录,IEEE库中的程序包有: STD_LOGIC_1164,STD_LOGIC_ARITH,STD_LOGIC_UNSIGNED, 其中 STD_LOGIC_1164是IEEE标准的程序包,定义了STD_LOGIC和STD_LOGIC_VECTOR等多种数据类型,以及多种逻辑运算符子程序和数据类型转换子程序等。STD_LOGIC_ARITH和STD_LOGIC_UNSIGNED等程序包是SYNOPSYS公司提供的,包中定义了SIGNED和UNSIGNED数据类型以及基于这些数据类型的运算符子程序。用户在用到标准程序包中内容时 , 除了 STANDARD 程序包以

18、外 , 都要在设计程序中加以说明 , 首先用 LIBRARY 语句说明程序包所在的库名 , 再用 USE 语句说明具体使用哪 一个程序包和具体的子程序名。实体是VHDL程序设计中最基本的组成部分,在实体中定义了该设计芯片中所需要的输入/输出信号引脚。端口信号名称表示芯片的输入/输出信号的引脚名,这种端口信号通常被称为外部信号,信号的输入/输出状态被称为端口模式,在实体中还定义信号的数据类型。端口信号名称可以表示一个信号,也可以表示一组信号(BUS),由数据类型定义。EN,REST,CN,Cy 分别表示计数允许信号、异步清零信号、时钟输入信号和进位输出信号。Dout是一组输出信号,用来表示四位同

19、步二进制计数器的四位计数输出信号。端口信号输入/输出状态IN/OUT分别表示信号进入电路单元和信号从电路单元输出。结构体是VHDL程序设计中的最主要组成部分,是描述设计单元的具体结构和功能,程序中,结构体放在实体的后面。每一个结构体都有名称,结构体的名称是由设计者任取的,结构体是以标识符ARCHITECTURE开头,以END结尾。不同的结构体采用不同的描述语句。 ARCHITECTURE结构体名OF实体名称IS 说明语句BEGIN 电路描述语句END 结构体名 ; 结构体说明语句是对结构体中用到的数据对象的数据类型、元件和子程序等加以说明。电路描述语句用并行语句来描述电路的各种功能,这些并行语

20、句包括并行信号赋值语句、条件赋值(WHEN-ELSE)语句、进程(PROCESS)语句和子程序调用语句等。结构体的名称是sun1,该结构体属于行为描述方式,采用多种描述语句,如进程(PROCRESS)语句、条件赋值语句(WHEN-ELSE)、顺序语句(IF-ELSE)等。 4 程序仿真4.1 仿真软件介绍Altera QuartusII 作为一种可编程逻辑的设计环境,由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。QuartusII design 是最高级和复杂的,用于system on a programmable chip (SOPC)的设计环境。QuartusII

21、design提供完善的timing closure和LogicLock基于块的设计流程。QuartusII design是唯一一个包括以timing closure和基于块的设计流为基本特征的programmable logic device (PLD)的软件。QuartusII设计软件改进了性能、提升了功能性、解决了潜在的设计延迟等,在工业领域率先提供FPGA与mask-programmed devices开发的统一工作流程。Altera QuartusII(3.0和更高版本)设计软件是业界唯一提供FPGA和固定功能HardCopy器件统一设计流程的设计工具。工程师使用同样的低价位工具对St

22、ratix FPGA进行功能验证和原型设计,又可以设计HardCopy Stratix器件用于批量成品。系统设计者现在能够用QuartusII软件评估HardCopy Stratix器件的性能和功耗,相应地进行最大吞吐量设计。Altera的QuartusII可编程逻辑软件属于第四代PLD开发平台。该平台支持一个工作组环境下的设计要求,其中包括支持基于Internet的协作设计。Quartus平台与Cadence、ExemplarLogic、MentorGraphics、Synopsys和Synplicity等EDA供应商的开发工具相兼容。改进了软件的LogicLock模块设计功能,增添了Fas

23、tFit编译选项,推进了网络编辑性能,而且提升了调试能力。4.2 仿真结果打开Quartus II9.0,建立新工程,再新建一个VHDL文件,在该窗口输入源程序,然后对源程序进行编译运行。新建一个波形文件,在波形文件中加入所需观察波形的管脚,给输入管脚指定仿真波形,编辑待仿真波形文件,如图4-1所示,点击按钮,进行波形仿真。图4-1 带仿真波形图仿真后的10进制计数器波形如图4-2所示:图4-2 十进制计数器仿真波形自动得到十进制计数器的电路图的图形文件,如图4-3所示:图4-3 十进制计数器的电路图4.3 仿真结果分析由仿真结果可知,手动允许计数信号为1,清零信号为0,计数开始。十进制BCD

24、码从0000开始计数,Rest清零信号有效后,计数为7,BCD码为0111,之后计数清零。Rest清零信号为0后,计数再次开始,BCD码由0000到1001,计数由0到9,完成一次计数,之后进位并清零,再次开始。手动计数信号无效后,停止计数,保持最后一位计数值。由上述分析可知,仿真结果完全符合真值表内容,结果正确。5 心得体会这次能力拓展训练历时一个星期左右,通过这一个星期的学习,发现了自己的很多不足,自己知识的很多漏洞,看到了自己的实践经验还是比较缺乏,理论联系实际的能力还急需提高。在一开始题目发下来的时候,本来以为是比较容易的一道题,但是真正做起来才发现一系列的比较分析其实更具挑战性。在学

25、习EDA这门课的时候,我已经学会了使用Max plusII软件,本以为在做本次训练会简单许多,但事实和想象总是有差距的。编程都是一样,这给我减轻了许多负担,但是在绘制仿真波形图时,却出现了问题,程序编译无错误,但是仿真却不能计数,在仔细查阅了相关书籍并调试了多次后,终于出来了结果。经过不断的摸索,终于还是解决了问题。这次能力拓展训练终于完成了,在设计的过程中,可以说算是困难重重。回顾此次能力拓展训练,至今我仍感慨颇多,的确,从选题到定稿,从理论到实践,在整整一星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的

26、知识。这毕竟第一次做的,难免会遇到过各种各样的问题,比如有时候被一些小的,细的问题挡住前进的步伐,让我总是为了解决一个小问题而花费很长的时间。最后还要查阅其他的书籍才能找出解决的办法。并且我在做设计的过程中发现有很多东西,也知道了自己的不足之处,知道自己对以前所学过的知识理解得不够深刻,掌握得不够牢固。通过本次十进制计数器的设计,我对Quartus II9.0的功能有了更深刻的认识。同时,一方面认识到了自己这学期来学习电子设计自动化这门课有所得,但掌握地并不全面,不透彻,对于完成训练来说还远远不够;同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,以后我

27、会更加努力。今后,在学习中,我要端正自己的态度努力学习,只有这样我们才能真正的掌握好知识。与此同时在设计的过程中得到了指导老师和同学们的关心和帮助,才能顺利完成本次课程设计,在此表示感谢。参考文献1侯伯亨、顾新.VHDL硬件描述语言与数字逻辑电路设计.西安电子科技大学出版社,2001.22卢毅等.VHDL与数字电路设计.北京: 科学出版社,2001.43李景华、杜玉远.可编程逻辑器件与EDA技术.东北大学出版社,2001.3 4谭会生、张昌志.EDA技术及应用.西安电子科技大学出版,2001.75王锁平.电子设计自动化(EDA)教程.电子科技大学出版社,2000.36潘松,黄蛀生.EDA技术实用教程.北京:科学出版社,2002.10

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

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