硬件课程设计数字时钟设计.docx
- 文档编号:7244816
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:27
- 大小:605.89KB
硬件课程设计数字时钟设计.docx
《硬件课程设计数字时钟设计.docx》由会员分享,可在线阅读,更多相关《硬件课程设计数字时钟设计.docx(27页珍藏版)》请在冰豆网上搜索。
硬件课程设计数字时钟设计
东北石油大学
课程设计
课程硬件课程设计
题目数字钟设计
院系计算机与信息技术学院
专业班级
学生姓名
学生学号
指导教师
2009年7月10日
东北石油大学课程设计任务书
课程硬件课程设计
题目数字钟设计
专业计算机姓名学号
主要内容、基本要求等
一、主要内容:
利用EL教学实验箱、微机和QuartusⅡ软件系统,使用VHDL语言输入方法设计数字钟。
可以利用层次设计方法和VHDL语言,完成硬件设计设计和仿真。
最后在EL教学实验箱中实现。
二、基本要求:
1.具有时,分,秒,计数显示功能,以24小时循环计时。
2.具有清零功能。
三、扩展要求
1.调节小时、分钟功能。
2.整点报时功能,整点报时的同时LED灯花样显示。
按照规范写出论文,要求字数在4000字以上,并进行答辩。
论文内容包括概述(学习、调研、分析、设计的内容摘要)、EDA技术的现状和发展趋势、对EL教学实验箱和QuartusⅡ软件的掌握程度、数字钟的设计过程(包括原理图或程序设计、编译、仿真分析、硬件测试的全过程),论文中含有原理图、程序、仿真波形图及其分析报告。
完成期限2周
指导教师梁吉胜
专业负责人富宇
2012年6月10日
东北石油大学课程设计成绩评价表
课程名称
硬件课程设计
题目名称
数字钟设计
学生姓名
学号
指导教师姓名
梁吉胜
职称
讲师
序号
评价项目
指标(优秀)
满分
评分
1
选题难度
选题难度较高,或者对原题目进行了相当程度的改进。
10
2
工作量、工作态度和出勤率
工作量饱满,工作努力,遵守纪律,出勤率高,工作作风严谨,善于与他人合作。
10
3
课程设计质量
按期圆满的完成了规定的任务,方案设计合理,思考问题全面,系统功能完善。
40
4
报告质量
问题论述思路清晰,结构严谨,文理通顺,撰写规范,图表完备正确。
30
5
回答问题
在进行课程设计程序系统检查时,能正确回答指导教师所提出的问题。
10
6
创新(加分项)
工作中有创新意识,对前人工作有改进或有应用价值。
在进行系统检查时能对创新性进行说明,并在报告中有相应的论述。
+5
总分
评语:
指导教师:
梁吉胜2012年6月10日
摘要
本文介绍了利用EDA-V硬件系统和微机上的Quartus7.2-II等软件系统。
VHDL的英文全名是Very-High-SpeedIntegratedCircuitHardwareDescriptionLanguage,诞生于1982年。
1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言。
自IEEE公布了VHDL的标准版本,IEEE-1076(简称87版)之后,各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。
此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。
有专家认为,在新的世纪中,VHDL于Verilog语言将承担起大部分的数字系统设计任务。
本文设计主要利用VHDL语言在EDA平台上设计一个电子数字钟,它的计时周期为24小时,显示满刻度为23时59分59秒,另外还具有校时功能和闹钟功能。
总的程序由几个各具不同功能的单元模块程序拼接而成,其中包括分频程序模块、时分秒计数和设置程序模块、比较器程序模块、三输入数据选择器程序模块、译码显示程序模块和拼接程序模块。
并且使用Quartus7.2-II软件进行电路波形仿真,下载到EDA实验箱进行验证。
关键词:
EDA(电子设计自动化);VHDL(硬件描述语言),数字钟。
目 录
1.3EDA的发展趋势……………………………………………………………………………4
5.1数字钟的调试……………………………………………………………………..21
第1章概述
1.1EDA的概念
EDA是电子设计自动化ElectronicDesignAutomation的缩写。
EDA技术是以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方式设计电子系统到硬件系统的一门新技术。
可以实现逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化,逻辑布局布线、逻辑仿真。
完成对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片。
1.1.1EDA技术及应用
电子设计技术的核心就是EDA技术,EDA是指以计算机为工作平台,融合应用电子技术、计算机技术、智能化技术最新成果而研制成的电子CAD通用软件包,主要能辅助进行三方面的设计工作,即IC设计、电子电路设计和PCB设计。
EDA技术已有30年的发展历程,大致可分为三个阶段。
70年代为计算机辅助设计(CAD)阶段,人们开始用计算机辅助进行IC版图编辑、PCB布局布线,取代了手工操作。
80年代为计算机辅助工程(CAE)阶段。
与CAD相比,CAE除了有纯粹的图形绘制功能外,又增加了电路功能设计和结构设计,并且通过电气连接网络表将两者结合在一起,实现了工程设计。
CAE的主要功能是:
原理图输人,逻辑仿真,电路分析,自动布局布线,PCB后分析。
90年代为电子系统设计自动化(EDA)阶段[3]。
EDA技术发展迅猛,逐渐在教学、科研、产品设计与制造等各方面都发挥着巨大的作用。
在教学方面:
几乎所有理工科(特别是电子信息)类的高校都开设了EDA课程。
主要是让学生了解EDA的基本原理和基本概念、鳞握用佃L描述系统逻辑的方法、使用扔A工具进行电子电路课程的模拟仿真实验并在作毕业设计时从事简单电子系统的设计,为今后工作打下基础。
具有代表性的是全国每两年举办一次大学生电子设计竞赛活动。
在科研方面:
主要利用电路仿真工具(EwB或PSPICE、VLOL等)进行电路设计与仿真;利用虚拟仪器进行产品调试;将O)LI)/FPGA器件的开发应用到仪器设备中。
例如在CDMA无线通信系统中,所有移动手机和无线基站都工作在相同的频谱,为区别不同的呼叫,每个手机有一个唯一的码序列,CDMA基站必须能判别这些不同观点的码序列才能分辨出不同的传呼进程;这一判别是通过匹配滤波器的输出显示在输人数据流中探调到特定的码序列;FPGA能提供良好的滤波器设计,而且能完成DSP高级数据处理功能,因而FPGA在现代通信领域方面获得广泛应用[4]。
在产品设计与制造方面:
从高性能的微处理器、数字信号处理器一直到彩电、音响和电子玩具电路等,EDA技术不单是应用于前期的计算机模拟仿真、产品调试,而且也在批量制作、电子设备的研制与生产、电路板的焊接等有重要作用。
可以说电子EDA技术已经成为电子工业领域不可缺少的技术支持。
电子技术全方位纳入EDA领域,EDA使得电子领域各学科的界限更加模糊,更加互为包容,突出表现在以下几个方面:
使电子设计成果以自主知识产权的方式得以明确表达和确认成为可能;基于EDA工具的ASIC设计标准单元已涵盖大规模电子系统及IP核模块;软硬件IP核在电子行业的产业领域、技术领域和设计应用领域得到进一步确认;SoC高效低成本设计技术的成熟。
随着半导体技术、集成技术和计算机技术的迅猛发展,电子系统的设计方法和设计手段都发生了很大的变化。
可以说电子EDA技术是电子设计领域的一场革命。
传统的“固定功能集成块十连线”的设计方法正逐步地退出历史舞台,而基于芯片的设计方法正成为现代电子系统设计的主流。
作为高等院校有关专业的学生和广大的电子工程师了解和掌握这一先进技术是势在必行,这不仅是提高设计效率的需要,更是时代发展的需求,只有攀握了EDA技术才有能力参与世界电子工业市场的竞争,才能生存与发展。
随着科技的进步,电子产品的更新日新月异,EDA技术作为电子产品开发研制的源动力,已成为现代电子设计的核心。
所以发展EDA技术将是电子设计领域和电子产业界的一场重大的技术革命,同时也对电类课程的教学和科研提出了更深更高的要求。
特别是EDA技术在我国尚未普及,掌握和普及这一全新的技术,将对我国电子技术的发展具有深远的意义。
1.2EDA的工作平台
1.2.1EDA硬件工作平台
1.计算机。
2.EDA实验开发系统:
EDA-V。
1.2.2EDA的软件工作平台
PLD(ProgrammableLogicDevice)是一种由用户根据需要而自行构造逻辑功能的数字集成电路。
目前主要有两大类型:
CPLD(ComplexPLD)和FPGA(FieldProgrammableGateArray)。
它们的基本设计方法是借助于EDA软件,用原理图、状态机、布尔表达式、硬件描述语言等方法,生成相应的目标文件,最后用编程器或下载电缆,由目标器件实现。
生产PLD的厂家很多,但最有代表性的PLD厂家为Altera、Xilinx和Lattice公司。
1.3EDA的发展趋势
面对当今飞速发展的电子产品市场,设计师需要更加实用、快捷的EDA工具,使用统一的集成化设计环境,改变传统设计思路,将精力集中到设计构思、方案比较和寻找优化设计等方面,需要以最快的速度,开发出性能优良、质量一流的电子产品,对EDA技术提出了更高的要求[3]。
未来的EDA技术将在仿真、时序分析、集成电路自动测试、高速印刷电路板设计及开发操作平台的扩展等方面取得新的突破,向着功能强大、简单易学、使用方便的方向发展。
可编程逻辑器件已经成为当今世界上最富吸引力的半导体器件,在现代电子系统设计中扮演着越来越重要的角色。
过去的几年里,可编程器件市场的增长主要来自大容量的可编程逻辑器件CPLD和FPGA,其未来的发展趋势如下:
向高密度、高速度、宽频带方向发展。
在电子系统的发展过程中,工程师的系统设计理念要受到其能够选择的电子器件的限制,而器件的发展又促进了设计方法的更新。
随着电子系统复杂度的提高,高密度、高速度和宽频带的可编程逻辑产品已经成为主流器件,[3]其规模也不断扩大,从最初的几百门到现在的上百万门,有些已具备了片上系统集成的能力。
这些高密度、大容量的可编程逻辑器件的出现,给现代电子系统(复杂系统)的设计与实现带来了巨大的帮助。
设计方法和设计效率的飞跃,带来了器件的巨大需求,这种需求又促使器件生产工艺的不断进步,而每次工艺的改进,可编程逻辑器件的规模都将有很大扩展。
[3]
向在系统可编程方向发展。
在系统可编程是指程序(或算法)在置入用户系统后仍具有改变其内部功能的能力[4]。
采用在系统可编程技术,可以像对待软件那样通过编程来配置系统内硬件的功能,从而在电子系统中引入“软硬件”的全新概念。
它不仅使电子系统的设计和产品性能的改进和扩充变得十分简便,还使新一代电子系统具有极强的灵活性和适应性,为许多复杂信号的处理和信息加工的实现提供了新的思路和方法。
向可预测延时方向发展。
当前的数字系统中,由于数据处理量的激增,要求其具有大的数据吞吐量,加之多媒体技术的迅速发展,要求能够对图像进行实时处理,就要求有高速的系统硬件系统[5]。
为了保证高速系统的稳定性,可编程逻辑器件的延时可预测性是十分重要的。
用户在进行系统重构的同时,担心的是延时特性会不会因为重新布线而改变,延时特性的改变将导致重构系统的不可靠,这对高速的数字系统而言将是非常可怕的。
因此,为了适应未来复杂高速电子系统的要求,可编程逻辑器件的高速可预测延时是非常必要的。
向混合可编程技术方向发展。
[3]可编程逻辑器件为电子产品的开发带来了极大的方便,它的广泛应用使得电子系统的构成和设计方法均发生了很大的变化。
但是,有关可编程器件的研究和开发工作多数都集中在数字逻辑电路上,直到1999年11月,Lattice公司推出了在系统可编程模拟电路,为EDA技术的应用开拓了更广阔的前景。
其允许设计者使用开发软件在计算机中设计、修改模拟电路,进行电路特性仿真,最后通过编程电缆将设计方案下载至芯片中。
已有多家公司开展了这方面的研究,并且推出了各自的模拟与数字混合型的可编程器件,相信在未来几年里,模拟电路及数模混合电路可编程技术将得到更大的发展。
向低电压、低功耗方面发展。
集成技术的飞速发展,工艺水平的不断提高,节能潮流在全世界的兴起,也为半导体工业提出了向降低工作电压、降低功耗的方向发展。
面对当今飞速发展的电子产品市场,电子设计人员需要更加实用、快捷的开发工具,使用统一的集成化设计环境,改变优先考虑具体物理实现方式的传统设计思路,将精力集中到设计构思、方案比较和寻找优化设计等方面,以最快的速度开发出性能优良、质量一流的电子产品。
开发工具的发展趋势如下:
具有混合信号处理能力。
由于数字电路和模拟电路的不同特性,模拟集成电路EDA工具的发展远远落后于数字电路EDA开发工具。
但是,由于物理量本身多以模拟形式存在,实现高性能复杂电子系统的设计必然离不开模拟信号。
20世纪90年代以来,EDA工具厂商都比较重视数模混合信号设计工具的开发。
美国Cadence、Synopsys等公司开发的EDA工具已经具有了数模混合设计能力,这些EDA开发工具能完成含有模数变换、数字信号处理、专用集成电路宏单元、数模变换和各种压控振荡器在内的混合系统设计。
高效的仿真工具。
在整个电子系统设计过程中,仿真是花费时间最多的工作,也是占用EAD工具时间最多的一个环节。
可以将电子系统设计的仿真过程分为两个阶段:
设计前期的系统级仿真和设计过程中的电路级仿真。
系统级仿真主要验证系统的功能,如验证设计的有效性等;电路级仿真主要验证系统的性能,决定怎样实现设计,如测试设计的精度、处理和保证设计要求等。
要提高仿真的效率,一方面是要建立合理的仿真算法;另一方面是要更好地解决系统级仿真中,系统模型的建模和电路级仿真中电路模型的建模技术[8]。
在未来的EDA技术中,仿真工具将有较大的发展空间。
理想的逻辑综合、优化工具。
逻辑综合功能是将高层次系统行为设计自动翻译成门级逻辑的电路描述,做到了实际与工艺的独立。
优化则是对于上述综合生成的电路网表,根据逻辑方程功能等效的原则,用更小、更快的综合结果替代一些复杂的逻辑电路单元,根据指定目标库映射成新的网表。
随着电子系统的集成规模越来越大,几乎不可能直接面向电路图做设计,要将设计者的精力从繁琐的逻辑图设计和分析中转移到设计前期算法开发上。
逻辑综合、优化工具就是要把设计者的算法完整高效地生成电路网表。
第2章数字钟的系统分析
2.1设计目的
1.掌握多位计数器相连的设计方法。
2.掌握十进制,六进制,二十四进制计数器的设计方法。
3.继续巩固多位共阴极扫描显示数码管的驱动,及编码。
4.掌握扬声器的驱动。
5.LED灯的花样显示。
6.掌握CPLD技术的层次化设计方法。
2.2功能说明
1.具有时,分,秒,计数显示功能,以24小时循环计时。
2.具有清零,调节小时、分钟功能。
3.具有整点报时功能,整点报时的同时LED灯花样显示。
2.3实验原理
在同一EPLD芯片EPF10K10上集成了如下电路模块:
1.时钟计数:
秒——60进制BCD码计数;
分——60进制BCDD码计数;
时——24进制BCDD码计数;
同时整个计数器有清零,调分,调时功能。
在接近整数时间能提供报时信号。
2.具有驱动8位八段共阴扫描数码管的片选驱动信号输出和八段字形译码输出。
编码和扫描可参照“实验四”。
3.扬生器在整点时有报时驱动信号产生。
4.LED灯按个人口味在整点时有花样显示信号产生。
2.4系统硬件
1.主芯片EPF10K10LC84-4。
2.8个LED灯。
3.扬声器。
4.8位八段扫描共阴级数码显示管。
5.三个按键开关(清零,调小时,调分钟)。
第3章数字钟的底层电路设计
3.1设计规划
该数字钟可以实现3个功能:
计时功能、整点报时功能和重置时间功能,因此有3个子模块:
计时、报时(alarm1)、重置时间(setmin1、sethour1)。
其中计时模块有3部分构成:
秒计时器(second1)、分计时器(minute1)、时计时器(hour1)。
1.秒计数模块:
秒计数,在频率为1HZ的时钟下以60次为循环计数,并产生进位信号影响分计数。
2.分计数模块:
分计数,在秒进位信号为高电平时,计数一次,同样以60次为一个循环计数,同时产生分进位信号影响时计数。
3.时计数模块:
时计数,在分进位信号为高电平时,计数一次,以24次为一个循环计数。
4.时间显示模块:
通过选中不同的数码管,同时进行一定频率的扫描显示时,分,秒。
5.时间设置模块:
设置调试使能端,可以调时,分。
基本功能是在使能端为高电平时,可以使时和分循环计数;
6.整点报时模块:
在秒计数到50秒时,同时分计数到59分开始,丰鸣器产生每个2秒的鸣叫(500HZ),到整点是产生750HZ的鸣叫。
7.闹钟模块:
在设定闹钟闹铃时间后,当闹钟使能端有效时,可在闹铃时间闹铃,并有彩灯显示。
3.2设计说明
首先分析数字时钟,得出进位法则大体相同,故所得时分秒进位方式语法基本相同,因此可以将时分秒定义成六位输出端口,即分别将时分秒定义为3个component,分别给予设计。
3.3底层电路程序
3.3.1秒计时器(VHDL语言编译)
其代码如下:
(VHDL语言):
LIBRARYieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
ENTITYsecondIS
PORT(
clk,reset,setmin:
INSTD_LOGIC;
enmin:
OUTSTD_LOGIC;
daout:
outstd_logic_vector(6downto0));
ENDentitysecond;
ARCHITECTUREfunOFsecondIS
SIGNALcount:
STD_LOGIC_VECTOR(6downto0);
BEGIN
daout<=count;
process(clk,reset,setmin)
begin
--enmin<=k;
if(reset='0')then
count<="0000000";
elsif(setmin='0')then
enmin<=clk;
elsif(clk'eventandclk='1')then
if(count(3downto0)="1001")then
if(count<16#60#)then
if(count="1011001")then
enmin<='1';
count<="0000000";
ELSE
count<=count+7;
endif;
else
count<="0000000";
endif;
elsif(count<16#60#)then
count<=count+1;
enmin<='0'after100ns;
else
count<="0000000";
endif;
endif;
endprocess;
ENDfun;
在秒计时器的clk输入一个周期为5ns的时钟信号;清0端(reset)前面一小段(100ns)为低电平,后面均为高电平;置数端(set)前面一小段(200ns)为低电平,后面均为高电平;秒重置端(s1)可设置数值为50秒,保存波形图,进行仿真,产生如下波形:
图3-15na时钟信号
由上述波形可以清楚的看到:
当清0信号(reset)无效时,秒计时器置数,从50秒开始计数,到59秒时回到0,并且输出一个高电平。
3.3.2分计时器(VHDL语言编译)
其代码(VHDL语言)如下:
LIBRARYieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
ENTITYminuteIS
PORT(
clk,clk1,reset,sethour:
INSTD_LOGIC;
enhour:
OUTSTD_LOGIC;
daout:
outstd_logic_vector(6downto0));
ENDentityminute;
ARCHITECTUREfunOFminuteIS
SIGNALcount:
STD_LOGIC_VECTOR(6downto0);
BEGIN
daout<=count;
process(clk,reset,sethour)
begin
if(reset='0')then
count<="0000000";
elsif(sethour='0')then
enhour<=clk1;
elsif(clk'eventandclk='1')then
if(count(3downto0)="1001")then
if(count<16#60#)then
if(count="1011001")then
enhour<='1';
count<="0000000";
ELSE
count<=count+7;
endif;
else
count<="0000000";
endif;
elsif(count<16#60#)then
count<=count+1;
enhour<='0'after100ns;
else
count<="0000000";
endif;
endif;
endprocess;
ENDfun;
在分计时器的clkm输入一个周期为5ns的时钟信号;清0端(reset)前面一小段(100ns)为低电平,后面均为高电平;置数端(set)前面一小段(200ns)为低电平,后面均为高电平;分重置端(m1)可设置数值为50分,保存波形图,进行仿真,产生如下波形:
图3-2分计时器信号
由上述波形可以清楚的看到:
当清0信号(reset)无效时,分计时器置数,从50分开始计数,到59秒时回到0,并且从enmin输出一个高电平。
3、时计时器(hour)
在时计时器的clkh输入一个周期为5ns的时钟信号;清0端(reset)前面一小段(100ns)为低电平,后面均为高电平;置数端(set)前面一小段(200ns)为低电平,后面均为高电平;时重置端(h1)可设置数值为20时,保存波形图,进行仿真,产生如下波形:
图3-3时计时器信号
由上述波形可以清楚的看到:
当清0信号(reset)无效时,时计时器置数,从20时开始计数,到23时回到0,并且从enhour输出一个高电平。
3.3.3时计时器(VHDL语言)
代码如下:
LIBRARYieee;
useieee.std_logic_1164.all;
useieee.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 硬件 课程设计 数字 时钟 设计