《EDA设计报告》word版 本文关键词:报告,设计,EDA,word
《EDA设计报告》word版 本文简介:HefeiUniversity课程名称在系统编程技术任课教师康南生设计题目数字钟班级08自动化(3)班姓名鲍旭学号0805070284日期2011.6.18目录引言3课题的背景、目的3一、题目分析41、分析设计要求42、总体方框图43、数字钟的工作原理4二、选择方案61、方案选择及设计规划62、系统
《EDA设计报告》word版 本文内容:
Hefei
University
课程名称
在系统编程技术
任课教师
康南生
设计题目
数字钟
班级
08自动化(3)班
姓名
鲍旭
学号
0805070284
日期
2011.6.18
目录
引
言3
课题的背景、目的3
一、题目分析4
1、分析设计要求4
2、总体方框图4
3、数字钟的工作原理4
二、选择方案6
1、方案选择及设计规划6
2、系统顶层图的设计6
三、时、分、秒计数器电路7
1、原理7
2、时、分、秒电路部分代码8
四、编写应用程序并仿真11
1、秒计数器11
2、分钟计数器12
3、小时计数器12
4、整点报时报警模块12
五、硬件测试及说明13
1、数字时钟系统采用模式7进行硬件测试13
2、引脚锁定情况13
3、硬件测试过程与结果分析15
六、实验总结16
七、参考文献目录16
引
言
随着社会的发展,科学技术也在不断的进步。特别是计算机产业,可以说是日新月异,数字钟作为计算机的一个组成也随之逐渐进入人们的生活,从先前的采用半导体技术实现的数字钟到现在广泛应用的采用高集成度芯片实现的数字钟。数字钟正在向着功能强,体积小,重量轻等方向不断发展,本设计主要介绍的是一个基于超高速硬件描述语言VHDL对数字钟中显示电路进行编程实现。
近年来,集成电路和计算机应用得到了高速发展,现代电子设计技术已迈入一个崭新的阶段,具体表现在:(1)电子器件及其技术的发展将更多地趋向于为EDA服务;(2)硬件电路与软件设计过程已高度渗透;(3)电子设计技术将归结为更加标准、规范的EDA工具和硬件描述语言VHDL的运用;(4)数字系统的芯片化实现手段已成主流。因此利用计算机和大规模复杂可编程逻辑器件进行现代电子系统设计已成为电子工程类技术人员必不可少的基本技能之一。
课题的背景、目的
本次设计的目的就是在掌握EDA实验开发系统的初步使用基础上,了解EDA技术,加深对计算机体系结构的理解。通过学习的VHDL语言结合电子电路的设计知识理论联系实际,掌握所学的课程知识,学习VHDL基本单元电路的综合设计应用。通过对实用数字钟的设计,巩固和综合运用计算机原理的基本理论和方法,理论联系实际,提高IC设计能力,提高分析、解决计算机技术实际问题的独立工作能力。通过课程设计深入理解计算机的组成原理,达到课程设计的目标。
一、题目分析
1、分析设计要求
(数字时钟的功能)
1)具有时、分、秒计数显示功能,以24小时循环计时。
2)具有调节小时、分钟及清零的功能。
3)具有整点报时功能。
4)时钟计数显示时有LED灯的花样显示。
2、总体方框图
数字时钟
小时计数显示功能模块
分钟计数显示功能模块
秒钟计数显示功能模块
整点报时功能模块
3、数字钟的工作原理
数字钟是一个将“时”,“分”,“秒”显示于人的视觉器官的计时装置。它的计时周期为24小时,显示满刻度为23时59分59秒,另外应有校时功能和一些显示星期、报时、停电查看时间等附加功能。因此,一个基本的数字钟电路主要由译码显示器、“时”,“分”,“秒”,“星期”计数器、校时电路、报时电路和振荡器组成。干电路系统由秒信号发生器、“时、分、秒、星期”计数器、译码器及显示器、校时电路、整点报时电路组成。秒信号产生器是整个系统的时基信号,它直接决定计时系统的精度,一般用石英晶体振荡器加分频器来实现。将标准秒信号送入“秒计数器”,“秒计数器”采用60进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分计数器”的时钟脉冲。“分计数器”也采用60进制计数器,每累计60分钟,发出一个“时脉冲”信号,该信号将被送到“时计数器”。“时计数器”采用24进制计时器,可实现对一天24小时的累计。每累计24小时,发出一个“星期脉冲”信号,该信号将被送到“星期计数器”,“星期计数器”
采用7进制计时器,可实现对一周7天的累计。工作原理图如图所示。
数字钟的工作原理图
二、选择方案
1、方案选择及设计规划
根据总体方框图及各部分分配的功能可知,本系统可以由四个子模块(即秒计数器、分钟计数器、小时计数器、整点报时)和一个顶层文件构成。采用自顶向下的设计方法,子模块利用VHDL语言设计,顶层文件用原理图的设计方法。
2、系统顶层图的设计
系统顶层设计图如上所示,由图知:
1)对外端口引脚名称:
输入:clk,reset,setmin,sethour;
输出:speaker,hour[50],minute[60],second[60],lamp[30]。
2)底层文件名称:
秒计时器(second)是由一个60进制的计数器构成的,具有清0、置数和计数功能。其中reset为清0信号,当reset为0时,秒计时器清0;clk为系统时钟信号;setmin是分钟的设置信号;enmin为秒计时器的进位信号,作为下一级的输入信号;daout是秒计数值。
分计时器(minute)是由一个60进制的计数器构成的,具有清0、置数和计数功能。其中reset为清0信号,当reset为0时,分计时器清0;clk为系统时钟信号;clk1为设置时钟信号;sethour时设置信号;enhour为分计时器的进位信号,作为下一级的输入信号。
时计时器(hour)是由一个24进制的计数器构成的,具有清0、置数和计数功能。其中reset为清0信号,当reset为0时,时计时器清0;clk为时计数时钟信号;daout为时计数值。
报时模块(alarm)的功能是整点时,报时持续1分钟,dain为分计数值;speak为蜂鸣器报警;lamp为花样显示灯。
3)
实验连线:reset、setmin、hour连接拨动开关;计数时钟信号clk接1HZ/4HZ时钟信号;speak与扬声器驱动speaker相连;lamp与三个发光二极管相连;hour[50]、minute[60]、second[60]分别与七段LED数码管相连。
三、时、分、秒计数器电路
1、原理
时、分、秒计数器电路有相似的地方,用两个74LS161组成一个二十四进制计数器,显示0~23时。由分计数器送来的进位脉冲送入时个位计数器,计10小时清零并向时十位计数器送进位脉冲,当十位输出为二,个位输出为四时将整个电路清零并向下一级的星期显示电路送进位脉冲。本电路也可理解为用两个74LS161组成一个一百进制计数器显示0~99,当计数到24是将整个电路清零。
时、分、秒计数器都需要用译码电路和LED数码管进行译码和显示。时、分、秒计数
器电路如图所示。
时、分、秒计数器电路
2、时、分、秒电路部分代码
library
ieee;
use
ieee.std_logic_1164.all;
use
ieee.std_logic_unsigned.all;
entity
second
is
port(clk:in
std_logic;
reset:in
std_logic;
setmin:in
std_logic;
enmin:out
std_logic;
daout:out
std_logic_vector(6
downto
0));
end
entity
second;
architecture
art
of
second
is
signal
count:std_logic_vector(6
downto
0);
signal
enmin_1,enmin_2:std_logic;
begin
daout<=count;
enmin_2<=(setmin
and
clk);
enmin<=(enmin_1
or
enmin_2);
process(clk,reset,setmin)
begin
if(reset=
0
)then
count<=“0000000“;
enmin_1<=
0
;
elsif(clk
event
and
clk=
1
)then
if(count(3
downto
0)=“1001“)
then
if(count<16#60#)then
if(count=“101101“)then
enmin_1<=
1
;count<=“0000000“;
else
count<=count+7;
end
if;
else
count<=“0000000“;
end
if;
elsif
(count<16#60#)then
count<=count+1;
enmin_1<=
0
;
else
count<=“0000000“;enmin_1<=
0
;
end
if;
end
if;
end
process;
end
art;
数字钟
控制电路
显示电路
小时
分钟
秒钟
调分
24进制计数
60进制计数
60进制计数
调时
整点报时
四、编写应用程序并仿真
1、秒计数器(文件名:second.vhd)
1)VHDL语言描述程序见附录
2)秒计数器的仿真波形图
3)波形分析
由仿真波形图知秒计数模块功能是利用60进制计数器完成00到59的循环计数功能,当秒计数至59时,再来一个时钟脉冲则产生进位输出,即enmin=1;reset作为复位信号低电平有效,即高电平时正常循环计数,低电平清零。
2、分钟计数器(文件名:minute.vhd)
1)VHDL语言描述程序见附录
2)分钟计数器的仿真波形图
3)波形分析
由波形图可知该模块实现了分钟计数的功能,调时信号sethour高电平有效。计数循环从00到59.
3、小时计数器(文件名:hour.vhd)
1)VHDL语言描述程序见附录
2)小时计数器的仿真波形图
3)波形分析
小时计数模块利用24进制计数器,通过分钟的进位信号的输入可实现从00到23的循环计数。
4、整点报时报警模块(文件名:alert.vhd)
1)VHDL语言描述程序见附录
2)整点报时模块仿真波形图
3)波形分析
由图知对于整点报时模块,当分钟计数至59时来一个时钟脉冲则产生一个进位信号,分钟计数到00,此时产生报警信号持续一分钟。当有时钟脉冲时lamp显示灯就闪烁轮续点亮。
五、硬件测试及说明
1、数字时钟系统采用模式7进行硬件测试
2、引脚锁定情况
信号名
引脚号
按键及显示
clk
PIN_93
内部时钟信号clock0
1HZ
hour[0]
PIN_73
LED8
hour
[1]
PIN_74
hour
[2]
PIN_75
hour
[3]
PIN_76
hour
[4]
PIN_77
LED7
hour
[5]
PIN_78
min[0]
PIN_51
LED5
min
[1]
PIN_52
min
[2]
PIN_67
min
[3]
PIN_68
min
[4]
PIN_69
LED4
min
[5]
PIN_70
min
[6]
PIN_71
second[0]
PIN_39
LED2
second
[1]
PIN_40
second
[2]
PIN_41
second
[3]
PIN_42
second
[4]
PIN_47
LED1
second
[5]
PIN_48
second
[6]
PIN_49
lamp[0]
PIN_103
D6
lamp[1]
PIN_105
D7
lamp[3]
PIN_106
D8
sethour
PIN_7
键7
setmin
PIN_4
键4
speaker
PIN_129
蜂鸣器SPEAKER
reset
PIN_10
键8
3、硬件测试过程与结果分析
1)硬件测试:
实验硬件
GW48实验系统
cyclone
EP1C3T144C8
测试模式
NO.7
测试方式clock选用clock0,短路帽选4HZ;
键8控制reset,键7控制sethour,键4控制setminute,
D8、D7、D6显示花样灯lamp;
数码管8、7用作小时显示,高位是小时的十位,低位是小时的个位;
数码管5、4用作分钟显示,高位是分钟的十位,低位是分钟的个位;
数码管2、1用作秒钟显示,高位是秒钟的十位,低位是秒钟的个位;
测试过程
(灯亮为高电平,灯灭为低电平)
reset低电平清零复位,按键8使灯亮则时钟开始从00-00-00计时,秒钟计时到59时向分钟进1,分钟计时到59时向小时进1;
键7用做调小时每来一个脉冲调一次调节范围00-——23;
键4用做调分钟每来一个脉冲调一次调节范围00—59;
lamp灯显的三个灯轮回亮;
当时钟为00则蜂鸣器开始整点报时一分钟。
2)结果分析:由测试过程及结果可知所设计的数字时钟系统完成了预定的实验设计要求。
六、实验总结
由上可知,该数字钟系统实现了计时、时间重置、整点报时的功能。在给数字钟重置时间后,数字钟便开始从所置的时间计时,计数到59秒时,秒计时器回到00秒,并且给分钟加1;当分钟计数到59分时,分计时器回到00分钟,小时显示加1,与此同时报时装置输出高电平,并且持续1分钟。当小时计数到23小时时,当分钟及秒钟都达到59时,下一脉冲来时时钟回到00小时。当分钟到达59分,分计时器回到00时。
通过仿真和硬件测试,让我认识到调试和硬件测试手段的多样化,对于同一功能的电路可以采用多种模式进行硬件测试,但要选择一个最佳方案,从而进行信号引脚的锁定并与相应功能块的硬件电路接口相连。课程设计中要求要有耐心和毅力,还要细心,稍有不慎,一个小小的错误就会导致结果的不正确,而对错误的检查要求我要有足够的耐心,通过这次设计和设计中遇到的问题,也积累了一定的经验,对以后从事集成电路设计工作会有一定的帮助。在应用VHDL的过程中让我真正领会到了其并行运行与其他软件(C语言)顺序执行的差别及其在电路设计上的优越性。用VHDL硬件描述语言的形式来进行数字系统的设计方便灵活,利用EDA软件进行编译优化仿真极大地减少了电路设计时间和可能发生的错误,降低了开发成本,这种设计方法必将在未来的数字系统设计中发挥越来越重要的作用。
七、参考文献目录
1.《EDA技术基础》
主编
赵明富
李季军
北京大学出版社
2.《可编程器件EDA技术与实践》
主编
沈明山
李国洪
机械工业出版社
3.《EDA工程实践技术》
主编
付家才,郭殿林
化学工业出版社
17