EDA设计 数字钟.docx
- 文档编号:29265706
- 上传时间:2023-07-21
- 格式:DOCX
- 页数:14
- 大小:189.86KB
EDA设计 数字钟.docx
《EDA设计 数字钟.docx》由会员分享,可在线阅读,更多相关《EDA设计 数字钟.docx(14页珍藏版)》请在冰豆网上搜索。
EDA设计数字钟
摘要
利用MAX+PLUSⅡ软件,设计一个能进行时、分、秒计时的24制多功能数字钟,使其具有定时与闹钟功能,且能在设定的时间发出闹铃音,能非常方便地对时、分、秒进行手动调节以校准时间,每逢整点,产生报时音效,并在实验板上成功下载,验证后满足要求。
关键词:
EDA;MAX+PLUS2;数字钟;
0引言
随着科学技术的发展,现代电子设计技术已进入一个全新的阶段,传统的电子设计方法、工具和器件在更大的程度上被EDA所取代。
在EDA技术中,最为瞩目的是以现代电子技术为特征的逻辑设计仿真测试技术,该技术的出现,使电子系统设计发生了质的变化,设计速度快、体积小、重量轻、功耗小的集成电路已成为趋势。
本文利用EDA技术,选用ALTERA公司的CPLD器件EPF10K10LC84-4和软件MAX+PLUS2,设计了一个多功能数字钟,提高了系统的整体性能和可靠性,并通过编译、仿真、下载,经验证后已满足要求。
1多功能数字钟设计任务
1.1数字钟设计要求
(1)、设计一个能显示1/10秒、秒、分、时的12小时数字钟。
(2)、熟练掌握各种计数器的使用。
(3)、能用计数器构成十进制、六十进制、十二进制等所需进制的计数器。
(4)、能用低位的进位输出构成高位的计数脉冲。
1.2设计思路
此设计可分为主控电路、计数器模块和扫描显示三大模块。
1.2.1主控电路模块
主控电路状态用表格显示,如下表所列:
模
式
选
择
秒、时、分、
计数器脉
冲
输出状态
备
注
Reset
Reset1
AB
Turn
LD-h
LD-m
LD-alert
0
X
XX
X
X
0
0
0
系统复位
1
X
00
X
CLK
0
0
0
系统计时
1
X
01
0
Change=
分计数器加1
0
1
0
手动
校时
1
X
01
1
Change=
时计数器加1
1
0
0
1
1
10
0
Change=
分计数器加1
0
1
1
设置闹钟
1
1
10
1
Change=
时计数器加1
1
0
1
1
0
XX
X
X
0
0
0
关闭闹钟
1.2.2计数器模块
计数器模块中,分钟和秒用带进位位的60进制功能模块,小时用不带进位位的24进制功能模块(如果考虑到日期的问题,在24进制模块加进位输出即可实现)。
计数器模块均用VerilogHDL语言编写,实现计数逻辑功能。
1.2.3扫描显示模块
扫描显示模块利用VerilogHDL语言编写实现,把三个计数器输出的时、分、秒从左至右依次显示在留个数码管上。
具体见设计部分。
1.3数字钟硬件系统示意图
2多功能数字钟的设计实现
2.1主控电路设计
将主控电路分为输入逻辑控制和输出逻辑控制两部分。
2.1.1输入逻辑控制
用原理图输入法,通过使用各种门电路,按照数字钟主控电路状态表中的逻辑关系,设计并实现具有表格中各种特殊功能的主控电路,设计原理图如下:
2.1.2输出逻辑控制
(1)闹铃比较电路
通过8个2输入同或门、一个8输入与门构成逻辑关系,实现比较功能,电路原理图如下:
若生成简洁的符号体,使用更方便,且电路图更清晰明了。
经编译、仿真、下载,满足要求,然后通过CreateDefaultSymbol,生成符号体,如下左图:
(2)整点报时比较电路
通过门电路来实现,原理图如下:
生成符号体如上右图:
(3)数码管输出比较电路
系统计时和闹铃设置状态均需使用扫描显示电路,该功能由两组扫描显示电路来实现。
因此,需要通过2个2输入与门和1个2输入或门电路对两组扫描显示电路进行控制,完整实现扫描显示功能,生成的符号体如下:
2.2计数器部分
EDA工具的重要特征之一是支持多种输入方式,如原理图输入方式、状态机输入方式、HDL高级语言输入方式等等。
MAX+PLUSⅡ软件平台对以上输入方式都能很好地支持。
此部分的设计即通过VerilogHDL输入方式来实现。
2.2.124进制计数器
用VerilogHDL实现时,代码如下:
modulehour(qh,ql,clk,reset);
output[3:
0]qh;
output[3:
0]ql;
reg[3:
0]qh;
reg[3:
0]ql;
inputclk,reset;
always@(posedgeclkornegedgereset)
begin
if(!
reset){qh,ql}<=0;
elsebegin
if({qh,ql}==8'h23){qh,ql}<=0;
elsebegin
if(ql==9)beginql<=0;
qh<=qh+1;
end
else
ql<=ql+1;
end
end
end
endmodule
输入完毕,经编译、仿真、下载,满足要求。
然后通过CreateDefaultSymbol,生成符号体如下:
2.2.2带进位位的60进制计数器
用VerilogHDL实现时,代码如下:
moduleminute(qh,ql,rco,clk,reset);
output[3:
0]qh;
output[3:
0]ql
outputrco;
reg[3:
0]qh;
reg[3:
0]ql;
regrco;
inputclk,reset;
always@(posedgeclkornegedgereset)
begin
if(~reset){qh,ql}<=0;
else
begin
if({qh,ql}==8'h59)
begin{qh,ql}<=0;rco<=1;
end
else
begin
if(ql==9)
beginql<=0;qh<=qh+1;
end
else
beginql<=ql+1;rco<=0;end
end
end
end
endmodule
输入完毕,经编译、仿真、下载,满足要求。
然后通过CreateDefaultSymbol,生成符号体如下:
同理,秒计时模块生成符号体如下:
2.2.3不带进位位的60进制计数器
用于闹钟的计数器,不需要进位位,另创建符号体如下:
2.3扫描显示模块
用VerilogHDL实现时,代码如下:
modulesel(in1,in2,in3,in4,in5,in6,in7,in8,clk,ms1,ms2,ms3,ms4,ms5,ms6,ms7,ms8,a,b,c,d,e,f,g);
inputclk;
input[3:
0]in1,in2,in3,in4,in5,in6,in7,in8;
outputms1,ms2,ms3,ms4,ms5,ms6,ms7,ms8,a,b,c,d,e,f,g;
regms1,ms2,ms3,ms4,ms5,ms6,ms7,ms8,a,b,c,d,e,f,g;
reg[3:
0]temp,flag;
always@(posedgeclk)
begin
{ms1,ms2,ms3,ms4,ms5,ms6,ms7,ms8}=8'b00000000;
flag=flag+1;
case(flag)
0:
begintemp=in1;ms1=1;end
1:
begintemp=in2;ms2=1;end
2:
begintemp=in3;ms3=1;end
3:
begintemp=in4;ms4=1;end
4:
begintemp=in5;ms5=1;end
5:
begintemp=in6;ms6=1;end
6:
begintemp=in7;ms7=1;end
7:
begintemp=in8;ms8=1;end
endcase
case(temp)
4'd0:
{a,b,c,d,e,f,g}=7'b1111110;
4'd1:
{a,b,c,d,e,f,g}=7'b0110000;
4'd2:
{a,b,c,d,e,f,g}=7'b1101101;
4'd3:
{a,b,c,d,e,f,g}=7'b1111001;
4'd4:
{a,b,c,d,e,f,g}=7'b0110011;
4'd5:
{a,b,c,d,e,f,g}=7'b1011011;
4'd6:
{a,b,c,d,e,f,g}=7'b1011111;
4'd7:
{a,b,c,d,e,f,g}=7'b1110000;
4'd8:
{a,b,c,d,e,f,g}=7'b1111111;
4'd9:
{a,b,c,d,e,f,g}=7'b1111011;
4'hA:
{a,b,c,d,e,f,g}=7'b1110111;
4'hB:
{a,b,c,d,e,f,g}=7'b0011111;
4'hC:
{a,b,c,d,e,f,g}=7'b1001110;
4'hD:
{a,b,c,d,e,f,g}=7'b0111101;
4'hE:
{a,b,c,d,e,f,g}=7'b1001111;
4'hF:
{a,b,c,d,e,f,g}=7'b1000111;
default:
{a,b,c,d,e,f,g}=7'b1111110;
endcase
end
endmodule
输入完毕,经编译、仿真、下载,满足要求。
然后通过CreateDefaultSymbol,生成符号体如下:
至此,三大模块设计工作基本完成,只需将各模块之间按连线规则严格进行连接,必要时添加相应的门电路,定义好相应的I/O管脚和信号线后,即可进行逻辑实现与综合。
多功能数字钟系统.gdf文件如下图:
3结论
EDA提供了良好的逻辑综合与优化功能,它能够将设计人员设计的逻辑级电路图自动地转换为门级电路,并生成相应的网表文件、时序分析文件和各种报表,若设计没有错误,最终可生成可以编程下载的.SOF文件。
本文给出的数字时钟基于MAX+plusⅡ设计,经过软件仿真并下载到硬件(电子EDA实验开发系统)实现,完成了基本的数字钟功能设计,表明本设计是合理可行的。
通过多功能数字钟的设计可知EDA技术及其工具在数字电路系统,包括模拟电路系统中正发挥着越来越重要的作用,有传统的电子设计方法无法比拟的优点。
本次EDA试验为期三天,整个过程紧凑,在仅有的三天时间里,我迅速的掌握了EDA与数字系统设计课程要求的内容,理解并能简单应用VerilogHDL语言。
在数字钟设计过程中,繁琐的主控电路,是整个设计的关键,耗费了我大量的时间和精力。
从许多次的尝试和失败中,我发现在数字电路中逻辑上能够实现的设计,实际应用中却未必正确。
最初设计时,我使用了一个自己利用门电路设计的2输入比较器,经编译、检验无错后,下载到实验板验证时,却无法完全实现数字钟逻辑功能,导致我的设计进度慢了下来。
又因为课程之间时间冲突,经刘春老师允许,我得以另外抽时间前往EDA实验室完成剩余课程设计任务。
经过后来的各种尝试,我终于发现问题恰恰在那个2输入比较器上,当我改用其他逻辑门电路实现它的逻辑功能后,经编译、仿真、下载,验证正确,我的设计才完全成功。
在此,衷心感谢刘春老师和胡存刚老师的指导,使我顺利完成了EDA与数字系统课程设计任务。
通过这门课程的学习,我真正懂得了一个道理:
不要轻易放弃,失败是成功之母!
参考文献:
[1]李国丽,朱维勇,栾铭.EDA与数字系统设计[M].北京:
机械工业出版社,2004.1.
[2]阎石.数字电子技术基础[M].北京:
高等教育出版社,1998.12.
[3]金孟树.基于EDA技术的现代数字系统设计[J].温州职业技术学院学报,2002(3).
[4]周红,刘光蓉,张红武.利用MAX+plusⅡ进行数字逻辑课程设计[J].武汉工业学院学报,2004(4).
[5]董守田,张志杰,欧阳斌林.基于JK2技术的数字系统的设计[J].东北农业大学学报.2003,34(3).
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA设计 数字钟 EDA 设计 数字