1、Xxxxxxxx 大 学课 程 设 计课 程 硬件课程设计 题 目 电子秒表设计 院 系 计算机与信息技术学院 专业班级 计算机科学与技术11-1班学生姓名 学生学号 指导教师 2013年7 月 12日东北石油大学课程设计任务书课程 硬件课程设计题目 电子秒表设计 专业 姓名 学号 主要内容、基本要求等一、主要内容:利用KX_DN教学实验箱、微机和Quartus软件系统,使用VHDL语言输入方法设计数字秒表。它主要由显示译码器、分频器、十进制计数器、报警器和计数器组成。秒共有6个输出显示,分别为百分之一秒、十分之一秒、秒、十秒、分、十分,所以共有6个计数器与之相对应,6个计数器的输出全都为BC
2、D码输出,这样便于同显示译码器的连接。要求可以利用层次设计方法和VHDL语言,完成硬件设计设计和仿真。最后在KX_DN教学实验箱中实现。二、基本要求:1.四个10进制计数器:用来分别对百分之一秒、十分之一秒、秒和分进行计数;2.两个6进制计数器:用来分别对十秒和十分进行计数;3.显示译码器:完成对显示的控制;4. 能任意启动和归零。三、扩展要求1.随意停止及启动2.可以多次记录数据并且可以读出各次对数据按照规范写出论文,要求字数在4000字以上,并进行答辩。论文内容包括概述(学习、调研、分析、设计的内容摘要)、EDA技术的现状和发展趋势、对KX_DN教学实验箱和Quartus软件的掌握程度、数
3、字钟的设计过程(包括原理图或程序设计、编译、仿真分析、硬件测试的全过程),论文中含有原理图、程序、仿真波形图及其分析报告。完成期限 第1920周 指导教师 专业负责人 2013年6 月 25 日摘 要EDA技术是在电子CAD技术基础上发展起来的计算机软件系统,是指以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动设计。 本文通过硬件语言VHDL的描述,完成可以记录两次的秒表的设计和实现,先设计秒表的各个底层模块,运用底层各个模块产生的进位将各个模块连接起来实现一个普通秒表。然后再将两个普通秒表用选择电路连接在一起,完成可以记录两次的秒表。本次
4、设计的目的就是在掌握EDA初步使用的基础上,运用VHDL语言对数字秒表进行设计,将理论和实践相结合,提高与计算机硬件有关设计能力,提高分析、解决计算机技术实际问题的能力。通过课程设计深入理解计算机结构与控制实现的技术,达到课程设计的目标。关键词:电子秒表;电子设计自动化;硬件描述语言;Quartus目 录第1章 概 述11.1 EDA的概念11.2 硬件描述语言VHDL41.3 Quartus II 概述6第2章 实验原理8第3章 电子秒表设计93.1 分频电路设计93.2 10位计数器设计103.3 6位计数器设计113.4 电子秒表设计133.5 扩展功能153.6 电子秒表下载实现18结
5、 论20参考文献21东北石油大学硬件课程设计第1章 概 述1.1 EDA的概念EDA技术是在20世纪60年代中期从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。EDA是电子设计自动化(Electronic Design Automation)的缩写。EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。EDA技术的出现,极大地提高了电路设计的效率和可操作性
6、,减轻了设计者的劳动强度。 EDA是电子技术设计自动化,也就是能够帮助人们设计电子电路或系统的软件工具。该工具可以在电子产品的各个设计阶段发挥作用,使设计更复杂的电路和系统成为可能。在原理图设计阶段,可以使用EDA中的仿真工具论证设计的正确性;在芯片设计阶段,可以使用EDA中的芯片设计工具设计制作芯片的版图;在电路板设计阶段,可以使用EDA中电路板设计工具设计多层电路板。特别是支持硬件描述语言的EDA工具的出现,使复杂数字系统设计自动化成为可能,只要用硬件描述语言将数字系统的行为描述正确,就可以进行该数字系统的芯片设计与制造。21世纪将是EDA技术的高速发展期,EDA技术将是对21世纪产生重大
7、影响的十大技术之一。 利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程的计算机上自动处理完成。硬件描述语言:硬件描述语言(HDL)是一种用于进行电子系统硬件设计的计算机高级语言,它采用软件的设计方法来描述电子系统的逻辑功能、电路结构和连接形式。常用硬件描述语言有HDL、Verilog和VHDL语言。1.1.1 EDA技术及应用现在对EDA的概念或范畴用得很宽。包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用。目前EDA技术已在各大公
8、司、企事业单位和科研教学部门广泛使用。例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到EDA技术。在教学方面:几乎所有理工科的高校都开设了EDA课程。主要是让学生了解EDA的基本原理和基本概念、硬件描述系统逻辑的方法、使用EDA工具进行电子电路课程的模拟仿真实验并在作毕业设计时从事简单电子系统的设计,为今后工作打下基础。在科研方面:主要利用电路仿真工具进行电路设计与仿真;利用虚拟仪器进行产品调试;将FPGA器件的开发应用到仪器设备中。在产品设计与制造方面:从高性能的微处理器、数字信号处理器一直到彩电、音响和电子玩具电路等,EDA技术不单是应用于前期的计算机模拟仿真、产
9、品调试,而且也在后期的制作、电子设备的研制与生产、电路板的焊接、器件的制作过程等有重要作用。 1.1.2 EDA技术发展趋势过去的几年里,可编程器件市场的增长主要来自大容量的可编程逻辑器件CPLD和FPGA,其未来的发展趋势如下:(1)向高密度、高速度、宽频带方向发展设计方法和设计效率的飞跃,带来了器件的巨大需求,这种需求又促使器件生产工艺的不断进步,而每次工艺的改进,可编程逻辑器件的规模都将有很大扩展。(2)向在系统可编程方向发展采用在系统可编程技术,可以像对待软件那样通过编程来配置系统内硬件的功能,从而在电子系统中引入“软硬件”的全新概念。它不仅使电子系统的设计和产品性能的改进和扩充变得十
10、分简便,还使新一代电子系统具有极强的灵活性和适应性,为许多复杂信号的处理和信息加工的实现提供了新的思路和方法。(3)向可预测延时方向发展为了适应未来复杂高速电子系统的要求,可编程逻辑器件的高速可预测延时是非常必要的。(4)向混合可编程技术方向发展已有多家公司开展了这方面的研究,并且推出了各自的模拟与数字混合型的可编程器件,相信在未来几年里,模拟电路及数模混合电路可编程技术将得到更大的发展。(5)向低电压、低功耗方面发展集成技术的飞速发展,工艺水平的不断提高,节能潮流在全世界的兴起,也为半导体工业提出了向降低工作电压、降低功耗的方向发展。1.1.3开发工具的发展趋势(1)具有混合信号处理能力由于
11、数字电路和模拟电路的不同特性,模拟集成电路EDA工具的发展远远落后于数字电路EDA开发工具。(2)高效的仿真工具一方面是要建立合理的仿真算法;另一方面是要更好地解决系统级仿真中,系统模型的建模和电路级仿真中电路模型的建模技术。(3)理想的逻辑综合、优化工具逻辑综合、优化工具就是要把设计者的算法完整高效地生成电路网表。1.1.4系统描述方式的发展趋势(1)描述方式简便化图形化的描述方式具有简单直观、容易掌握的优点,是未来主要的发展趋势。(2)描述方式高效化和统一化随着EDA技术的不断成熟,软件和硬件的概念将日益模糊,使用单一的高级语言直接设计整个系统将是一个统一化的发展趋势。随着科技的进步,电子
12、产品的更新日新月异,EDA技术作为电子产品开发研制的源动力,已成为现代电子设计的核心。特别是EDA技术在我国尚未普及,掌握和普及这一全新的技术,将对我国电子技术的发展具有深远的意义。 1.2 硬件描述语言VHDL1.2.1 VHDL的简介VHDL语言是一种用于电路设计的高级语言。它在80年代的后期出现。最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言 。但是,由于它在一定程度上满足了当时的设计需求,于是他在1987年成为A I/IEEE的标准(IEEE STD 1076-1987)。1993年更进一步修订,变得更加完备,成为A I/IEEE的A I
13、/IEEE STD 1076-1993标准。目前,大多数的CAD厂商出品的EDA软件都兼容了这种标准。自IEEE公布了VHDL的标准版本,IEEE-1076(简称87版)之后,各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本,(简称93版)。现在,VHDL和Verilog作为IEEE的工业标准硬件描述语言,又得到众多ED
14、A公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。有专家认为,在新的世纪中,VHDL于Verilog语言将承担起大部分的数字系统设计任务。1.2.2 VHDL语言的特点VHDL的程序结构特点是将一项工程设计,关于用VHDL和原理图输入进行CPLD/FPGA设计的粗略比较:在设计中,如果采用原理图输入的设计方式是比较直观的。你要设计的是什么,你就直接从库中调出来用就行了。这样比较符合人们的习惯。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。应用VHDL进行工程设计的优点是多方面的。
15、 (1)与其他的硬件描述语言相比,VHDL具有更强的行为描述能力,从而决定了成为系统设计领域最佳的硬件描述语言。强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。 (2)VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。 (3)VHDL语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和已有设计的再利用功能。符合市场需求的大规模系统高效,高速的完成必须有多人甚至多个代发组共同并行工作才能实现。 (4)对于用VHDL完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动的把
16、VHDL描述设计转变成门级网表。 (5)VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计。1.2.3 VHDL的设计流程它主要包括以下几个步骤:1.文本编辑:用任何文本编辑器都可以进行,也可以用专用的HDL编辑环境。通常VHDL文件保存为.vhd文件,Verilog文件保存为.v文件2.功能仿真:将文件调入HDL仿真软件进行功能仿真,检查逻辑功能是否正确(也叫前仿真,对简单的设计可以跳过这一步,只在布线完成以后,进行时序仿真)3.逻辑综合:将源文件调入逻辑综合软件进行综合,即把语言综合成最简的布尔表达式。逻辑综合软件会生成.
17、edf或.edif 的EDA工业标准文件。4.布局布线:将.edf文件调入PLD厂家提供的软件中进行布线,即把设计好的逻辑安放CPLD/FPGA内。5.时序仿真:需要利用在布局布线中获得的精确参数,用仿真软件验证电路的时序。(也叫后仿真) 通常以上过程可以都在CPLD/FPGA厂家提供的开发工具。1.3 Quartus II 概述Quartus II 是Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配
18、置的完整PLD设计流程。 Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。 Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。 此外,Quartus II 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统
19、;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。Maxplus II 作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。目前Altera已经停止了对Maxplus II 的更新支持,Quartus II 与之相比不仅仅是支持器件类型的丰富和图形界面的改变。Altera在Quartus II 中包含了许多诸如SignalTap II、Chip Editor和RTL Viewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了Maxplus II 友好的图形界面及简便的使
20、用方法。Altera Quartus II 作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。1.3.1软件的启动方式方法一、直接双击桌面上的图标 ,可以打开Quartus II 7.2 软件;方法二、执行:【开始】【程序】【Altera】【Quartus II 7.2】【Quartus II 7.2 TalkBack Install】菜单命令,可以打开软件。启动软件后,若你的电脑没有连接到Internet互联网,会出现如下图所示的提示,提示你没有连接到Altera的官方网站,将无法获得更新的资源。点击确定继续,因为这不影响软件的正常使用。
21、图1-1 打开页面第2章 实验原理 根据实验对要求本次的设计是运用VHDL语言在Quartus II 7.2 TalkBack Install环境下设计并运行一个电子秒表。该秒表可以精确到百分之一秒并且记录对范围是00分00秒00毫秒59分59秒99毫秒。在设计的过程中需要运用分层的结构进行,运用例化语句在顶层实体中队各个部件进行例化,使之达到电子秒表的要求。在设计时运用10进制计数器和6进制计数器对秒表的各个位置进行计数和显示,在百分之一秒和十分之一秒对位置各用一个带进位对10进制计数器来对其计数和显示。秒和分的位置也运用一个带进位的10进制计数器对其进行计数,十秒的位置着需要一个带进位的6
22、进制计数器对其进行计数,而十分的位置需要一个不带进位对6进制计数器对其进行计数。将前一个位置的进位接到下一个位置的时钟信号以完成各个位置计数情况和前面位置计数情况的链接。完成位置之间的链接在顶层实体的例化语句中完成。本系统设计采用自顶向下的设计方案,系统的整体组装设计原理图如图2-1所示,它主要由控制模块、时基分频模块,计时模块和显示模块四部分组成。各模块分别完成计时过程的控制功能、计时功能与显示功能。数字秒表计时控制电路控制状态机计时电路显示电路时基分频电路计数器六进制计数器十制计数器 图2-1 系统设计原理框图第3章 电子秒表设计根据实验内容和实验原理,写出各个电路的VHDL语言,并且对各
23、个电路进行仿真,并根据时序仿真图观察设计的电路是否正确。各个电路设计完成之后根据实验内容和实验对扩展的要求设计出合适对顶层实体其中包括可以多次记录的秒表需要的硬件电路的VHDL语言顶层实体描述。3.1 分频电路设计将输入的时钟信号频率改变为我们需要的时钟频率libraby ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all;entity counter is port ( clk: in std_logic ; 输入的时钟信号5MHz co: buffer std_logic); 输出的时钟信号100Hzend
24、counter; architecture bhv of counter is beginprocess(clk)variable coutinterger:=0;begin if clkevent and clk=1 thencout:=cout+1;if cout=25000 then co=0; elsif cout50000 then co 0); elsif clk10event and clk10=1 then if en10=1 then if cqi 0); end if; end if; end if; if cqi=9 then cout10=1; else cout10=
25、0; end if; cq10 0); elsif clk6event and clk6=1 then if en6=1 then if cqi 0); end if; end if; end if; if cqi=5 then cout6=1; else cout6=0; end if; cq6clkk,co=clk1); 例化语句u2:cnt10 port map(clk10=clk1,rst10=rstt,en10=enn,cq10=sett(3downto0),cout10=clk2);u3:cnt10 port map(clk10=clk2,rst10=rstt,en10=enn,c
26、q10=sett(7downto 4),cout10=clk3);u4:cnt10portmap(clk10=clk3,rst10=rstt,en10=enn,cq10=sett(11downto 8),cout10=clk4);u5: cnt6 port map(clk6=clk4,rst6=rstt,en6=enn,cq6=sett(15 downto 12),cout6=clk5);u6:cnt10portmap(clk10=clk5,rst10=rstt,en10=enn,cq10=sett(19downto16),cout10=clk6);u7:cnt6 port map(clk6=
27、clk6,rst6=rstt,en6=enn,cq6=sett(23 downto 20);set=sett;end architecture one; 图3-7 电子秒表RTL图 图3-8 电子秒表时序仿真图3.5 实验扩展根据实验的内容可以适当的添加一些有实际作用和可行性的功能,如可以记录并显示多个数据。根据扩展的内容设计相应的电路和模块来完成扩展的内容。比如记录和显示多个数据,可以用多个秒表进行计数,在秒表电路的后面可以添加一个选择电路,运用选择电路选择需要输出的那个秒表的数值。3.5.1 选择电路设计 根据输入的rea信号,在显示器上显示出不同秒表记录的数值。library ieee;
28、use ieee.std_logic_1164.all;entity choose is port ( lk: in std_logic; 控制信号 s1: in std_logic_vector(23 downto 0); 秒表一的数据 s2: in std_logic_vector(23 downto 0); 秒表二的数据 o : out std_logic_vector(23 downto 0); 输出的数据end entity;architecture one of choose is begin process(lk)begin if lk=1 then o=s1; else ocl
29、k1,enn=enn1,rstt=rst1,set=a); u3: clock port map (clkk=clk1,enn=enn2,rstt=rst1,set=c); u5: choose port map (lk=rea, s1=a,s2=c,o=set1);end architecture one;图3-10 可多次记录秒表RTL图 图3-11 可多次记录秒表时序仿真图3.6 电子秒表下载实现新建一个工程,工程名为clocks,在工程中建立多个VHDL文件包括 :cnt10.vhd、cnt6.vhd、counter.vhd、clock.vhd 和clocks.vhd。编译顶层文件,对
30、编译的结果进行仿真,引脚分配,下载到硬件中等等。1. 编译程序并且验证VHDL语言是否正确无误 ,采用功能仿真。2. 建立波形图文件,并对输入端进行赋值 ,并运行得到如图3-11的波形图。3. 进行引脚分配,如图3-12所示。4. 下载到实验室的芯片(KX_DN系列)中并运行,如图3-13所示。 图3-12 引脚分配图 图3-13 程序下载到芯片效果图结 论通过此次课程设计,让我对EDA这门技术有了更深的体会,并更好的学会了使用Quartus软件进行硬件设计。在编写程序的过程中,遇到了很多问题,使我发现自己以前学习上存在的不足。通过与同学探讨和请教老师,终于把问题都解决了,并加深了对数字时钟原
31、理和设计思路的了解。同时我也掌握了做课程设计的一般流程,为以后的电子设计这块积累了一定的经验,为以后从事相关工作有一些帮助。最终解决了问题,攥写成报告。通过对设计对实现和对报告对撰写,深深体会到了VHDL语言和EDA技术的一些技巧和设计思想,在完成设计的过程中,应该具有很清晰地思路,才可以使电路更完美和简便,要敢想敢做但是不应该有投机取巧的心理。在完成每一步的时候都有意想不到的收获也有可能导致错误,所以在设计对过程中要集中精神。在写报告的过程中,更加凸显了细心二字。不可自认为完美,必须按照格式要求来撰写自己的报告,所以必须做到足够的精确。利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计版图的整个过程的计算机上自动处理完成。在进行设计时并不束缚设计者的想象力,这使得自学、扩展也可