三位计时电路设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
EDA技术与应用
实验报告
实验名称:三位计时电路设计
姓名:
学号:
班级:
实验时间:
南京理工大学紫金学院电光系
一、实验目的
1、学习利用顺序语句描述电路的方法。
2、学习进程、常用顺序语句的使用。
3、掌握分频电路的设计;掌握利用不完整条件语句构成时序逻辑电路的方法。
二、实验原理
实验内容1
设计三位计时器,计时范围0秒-9分59秒,要求电路具有启动、停止、复位三个按钮,时钟频率为1Hz,要求计时器的时间能在数码管上显示。
三位计时器1框图:
clk clr start stop sec1[3..0] sec0[3..0] min0[3..0]
clock
inst
其中“clk”为时钟脉冲输入端口,“clr”为清零(或复位)端口,“start”为启动端口,“stop”为停止端口,“min0”、“sec0”、“sec1”为输出端口,连接到数码管显示。
三位计时器1时序:
该计时电路的结构体主要由两个个进程构成,各进程作用如下: 进程1:在该进程中主要设置计时器计时和保持的功能。
进程2:该进程中设置异步清零,设置秒十位、秒个位、分个位的计时。
利用模式5验证电路的正确性
输入、输出管脚 clk start stop reset 数码管1 数码管2
数码管3
原理图管脚 PIO0 PIO1 PIO2
PIO16~PIO19
PIO20~PIO23
PIO24~PIO27
器件管脚 93
1
2
3
39、40、41、42
47、48、49、50
51、52、67、68
实验内容2
三位计时器2,计时范围0秒-9分59秒,要求同一个按钮实现启动、停止功能,若连续按该按钮超过2秒,电路将清零。时钟频率为1024Hz ,要求计时器的时间能在七段数码管上显示。 三位计时器2时序:
不计
计时 保持
计时
sta sto clr
da 清零
保 持
cl
该计时电路的结构体主要由三个进程构成,各进程作用如下: 进程1:该进程中主要设置分频。 由于在实际情况中不存在1Hz 的时钟频率源,故要将外部的频率为1024Hz 的脉冲分频成1Hz 的脉冲,以满足计时器电路中所需的时钟脉冲。
进程2:该进程主要控制计时和保持两种状态。
在该进程中可以利用一个信号(如“converse ”)控制计时器的工作状态(计时器计时或处于保持状态)。当复位信号有效时“converse ”为低电平,当为高电平时计时器工作,当“converse ”为低电平时计时器不工作,处于保持状态;我们可以设置在“start ”的下降沿使信号“converse ”实现高低电平的翻转。
进程3:该进程主要设置计时器的复位功能。
要求连续按该按钮超过2秒,电路将复位。也就是说“start ”按钮高电平维持的时间要超过2s 才能实现复位。可以定义一个变量,时钟脉冲每来一个上升沿,变量加计数一次,当变量值大于2047时(即时间大于2s 时),“reset ”为高电平,此时计时器复位,否则“reset ”为低电平。在该进程中主要利用嵌套的if 语句实现复位功能。 进程4:该进程主要实现计时以及显示。
主要利用嵌套的if 语句实现计时。利用case 语句实现七段数码管显示。 利用模式2验证电路的正确性 输入、输出管脚 clk
start
数码管5
数码管6
数码管7
原理图管脚
PIO48
PIO16~PIO22
PIO24~PIO30
PIO32~PIO38
器件管脚
16
107
39、40、41、42、47、48、49
51、52、67、68、69、70、71
73、74、75、76、77、78、83
不计时 计时
data 保持
计时
start 清零
clk 保持
三、实验内容
实验内容1
实验内容2
library ieee; //声明使用ieee库
use ieee.std_logic_1164.all; //声明使用ieee库中std_logic_1164包集的所有内容
use ieee.std_logic_unsigned.all; //声明使用ieee库中std_logic_unsigned包集的所有内容
entity clock1 is //定义实体,名称为clock1
port(ck,start:in std_logic; //定义时钟端口,为std_logic类型
sec0,sec1,min0:out std_logic_vector(0 to 6)); //定义秒个位,秒十位,
分个位,为逻辑矢量,位宽为7 end clock1; //结束实体
architecture rhg of clock1 is //结构体,描述实体的功能
signal clk1:std_logic; //定义信号clk1,为std_logic类型
signal reset:std_logic; //定义信号reset,为std_logic类型
signal converse:std_logic; //定义信号converse,为std_logic类型
signal clk:std_logic; //定义信号clk,为std_logic类型