EDA数字电子钟课程设计
- 格式:doc
- 大小:2.30 MB
- 文档页数:22
第 1 页 共 23 页
一 绪论
1 在信息产业中EDA产生的影响
随着大规模集成电路技术和计算机技术的不断发展,在涉及通信、国防、航天、医学、工业自动化、计算机应用、仪器仪表等领域的电子系统设计工作中,EDA技术的含量正以惊人的速度上升;电子类的高新技术项目的开发也逾益依赖于EDA技术的应用。即使是普通的电子产品的开发,EDA技术常常使一些原来的技术瓶颈得以轻松突破,从而使产品的开发周期大为缩短、性能价格比大幅提高。不言而喻,EDA技术将迅速成为电子设计领域中的极其重要的组成部分。
2 中国国内EDA发展情况
从目前的EDA技术来看,其发展趋势是政府重视、使用普及、应用文泛、工具多样、软件功能强大。
中国EDA市场已渐趋成熟,不过大部分设计工程师面向的是PC主板和小型ASIC领域,仅有小部分(约11%)的设计人员工发复杂的片上系统器件。为了与台湾和美国的设计工程师形成更有力的竞争,中国的设计队伍有必要购入一些最新的EDA技术。
在信息通信领域,要优先发展高速宽带信息网、深亚微米集成电路、新型元器件、计算机及软件技术、第三代移动通信技术、信息管理、信息安全技术,积极开拓以数字技术、网络技术为基础的新一代信息产品,发展新兴产业,培育新的经济增长点。要大力推进制造业信息化,积极开展计算机辅助设计(CAD)、计算机辅助工程(CAE)、计算机辅助工艺(CAPP)、计算机机辅助制造(CAM)、产品数据管理(PDM)、制造资源计划(MRPII)及企业资源管理(ERP)等。有条件的企业可开展“网络制造”,便于合作设计、合作制造,参与国内和国际竞争。开展“数控化”工程和“数字化”工程。自动化仪表的技术发展趋势的测试技术、控制技术与计算机技术、通信技术进一步融合,形成测量、控制、
第 2 页 共 23 页
通信与计算机(M3C)结构。在ASIC和PLD设计方面,向超高速、高密度、低功耗、低电压方向发展。
3 课程设计目的
(1)加深对VHDL语言设计的理解。
(2)通过对多功能数字时钟的设计加深对EDA课程的理解
(3)通过对多功能数字时钟的设计了解简易集成电路的设计思路
(4)熟悉MAX+PLUS II仿真软件的工作方法及应用技术
4 课题设计内容
本次课程设计的主要目的旨在通过独立完成一个 “电子时钟”的设计,达到对EDA技术的熟练掌握,提升对《EDA技术及应用》课程所学内容的掌握和应用。
在本次课程设计中使用Altera公司的EPF10K10系列的FPGA芯片,基于实验室现有的EDA实验箱,实现“电子时钟”的设计要求。
1、计数24小时的时钟
2、六位数码管显示“时-分-秒”
3、五个功能键
(1) Timer 从其它状态放回时钟状态
(2) Alarm 切换到闹钟时间的设定
(3) Set 按一下,跳到下一个设置区
(4) Down 按一下,所设置区的数字减1
(5) Up 按一下,所设置区的数字加1
4、带有闹钟功能;
5、键盘的设定值要求在LED上显示。
一 设计的总体方案
流程图:
第 3 页 共 23 页
本多功能数字时钟由三个模块组成:
(1)时间显示模式:
24小时制显示当前时间:小时用8与7数码管,分钟用5与4位数码管,秒由2与1位数码管表示,小时与分钟之间、分钟与秒之间用3和6位数码管显示“—”,总计八位七段数码显示管。此模式下显示当前时间。
(2)校时模式:
将time键置于‘0’,运用功能键set键对八位数码管进行选择,并由功能键up键进行+1与down键进行-1操作,通过此4个功能键进行校时设置。
Set->数码管7-> Set->数码管6-> Set->数码管5-> Set->数码管4-> Set->数码管3-> Set->数码管2-> Set->数码管1
Up->+1;down->-1;
(3)闹钟设定模式:
将time键置于‘1’,设定模式与校时时设定一样,运用功能键set键对八位数码管进行选择,并由功能键up键进行+1与down键进行-1操作,通过此4个功能键进行校时设置。
Set->数码管7-> Set->数码管6-> Set->数码管5-> Set->数码管4-> Set->数码管3-> Set->数码管2-> Set->数码管1
Up->+1;down->-1;
二 设计的详细原理
第 4 页 共 23 页
此多功能数字时钟是由多个模块组成,各个模块实现各自不同的作用,综合起来,便是多功能数字时钟。
1、主要模块如下:
(1)输入一个250KHZ的方波信号
(2)计时模块:
将time键置于‘0’,用软件设计,当脉冲累计2500000次时secondl自动+1,以此类推,可得出数字时钟,并用8位7段对各时间进行显示。
输入:250KHz脉冲,控制键time等
输出:秒、分、小时
(3)校时模块:
将time键置于‘0’, 运用功能键set键对八位数码管进行选择,并由功能键up键进行+1与down键进行-1操作,通过此4个功能键进行校时设置。
输入:time状态转换键,set数码管选定键,up+1键,down-1键
输出:设定后的 秒,分,小时
(4)设定闹钟模块:
与校时操作类似,只是先将time键置于‘1’, 再运用功能键set键对八位数码管进行选择,并由功能键up键进行+1与down键进行-1操作,通过此4个功能键进行校时设置
输入:time状态转换键,set数码管选定键,up+1键,down-1键
输出:所定的闹钟时间 秒,分,小时
(5)整点蜂鸣报时
运用软件进行设置,当minuteH与minuteL均为零时,蜂鸣器响,也就是没次整点时,蜂鸣器自动响一分钟,如果想设置响的时间,可以手动改即可。并且可以手动按下功能键naozhong,这样就可以手动关闭蜂鸣器。
输入:naozhong关闭蜂鸣器键
输出:蜂鸣器发出蜂鸣声
2、功能概述
输入一个250KHZ的方波信号,运用VHDL语言对其进行编译,用计数器对方波信号进行技术,当 cnt=2500000时,secondl自动+1,不断进行累加,可以达到实现数字钟自动计时功能。并且此多功能数字钟设有5个功能键,(1)time键控制显示状态,可以选择时钟状态与闹钟状态的转换(2)naozhong键可以手动关闭蜂鸣器(3) set键可以选择需要改变的数码管,以便进行调时与设定闹钟(4)up键对对应的数据进行+1操作(5)down键对对应的数据进行-1操作。通
第 5 页 共 23 页
过次5个功能键,便可实现多功能数字时钟,拥有计时/校时功能,设定闹钟功能,整点报时功能。
四 设计的步骤和过程
1 计时模块:
if clk_1k'event and clk_1k = '1' then
cnt:=cnt+1;
ct:=ct+1;
if ct=1000 then -- 1 秒计时。
ct:=0;
secondL:=secondL+1;
if secondL=10 then -- 10 秒计时。
secondL:=0;
secondH:=secondH+1;
end if;
if secondH=6 then -- 1 分钟计时。
secondH:=0;
minuteL:=minuteL+1;
end if;
if minuteL=10 then -- 10 分钟计时。
minuteL:=0;
minuteH:=minuteH+1;
end if;
if minuteH=6 then -- 1 小计时时。
minuteH:=0;
hourL:=hourL+1;
end if;
if hourL=10 then -- 10 小时计时。
hourL:=0;
hourH:=hourH+1;
end if;
if hourH=2 and hourL =4 then -- 24 小时计时
hourH:=0;
hourL:=0;
end if;
次模块的主要作用是完成24小时的即时显示。
2校时模块
if clk'event and clk = '1' then
第 6 页 共 23 页
d<=set;
k<=up;
p<=down
if time='0' then
if ( d='0' and set='1')then
stat<=stat+1;
end if;
case stat is
when 1 =>
if(k='0' and up='1')then
hourH<=hourH+1;
elsif( p='0' and down='1')then
hourH<= hourH-1;
end if;
when 2 => if( k='0' and up='1')then
hourL<= hourL+1;
elsif( p='0' and down='1')then
hourL<= hourL-1;
end if;
when 3 => if(k='0' and up='1')then
minuteH<= minuteH +1;
elsif( p='0' and down='1')then
minuteH<= minuteH -1;
end if;
when 4 => if( k='0' and up='1')then
minuteL<= minuteL+1;
elsif( p='0' and down='1')then
minuteL<= minuteL-1;
end if;
when 5=>
if(k='0' and up='1')then
secondH<= secondH +1;
elsif(p='0' and down='1')then
secondH<= secondH-1;