当前位置:主页 > 论文百科 > 书评论文 >

EDA数字电子钟课程设计

发布时间:2017-02-06 20:31

  本文关键词:eda课程设计,由笔耕文化传播整理发布。



一 绪论

1 在信息产业中 EDA 产生的影响
随着大规模集成电路技术和计算机技术的不断发展,在涉及通信、国防、航 天、医学、工业自动化、计算机应用、仪器仪表等领域的电子系统设计工作中, EDA 技术的含量正以惊人的速度上升;电子类的高新技术项目的开发也逾益依赖 于 EDA 技术的应用。即使是普通的电子产品的开发,EDA 技术常常使一些原来 的技术

瓶颈得以轻松突破,从而使产品的开发周期大为缩短、性能价格比大幅提 高。不言而喻,EDA 技术将迅速成为电子设计领域中的极其重要的组成部分。

2 中国国内 EDA 发展情况
从目前的 EDA 技术来看,其发展趋势是政府重视、使用普及、应用文泛、工具 多样、软件功能强大。 中国 EDA 市场已渐趋成熟,不过大部分设计工程师面向的是 PC 主板和小型 ASIC 领域,仅有小部分(约 11%)的设计人员工发复杂的片上系统器件。为了 与台湾和美国的设计工程师形成更有力的竞争,中国的设计队伍有必要购入一 些最新的 EDA 技术。 在信息通信领域,要优先发展高速宽带信息网、深亚微米集成电路、新型元 器件、计算机及软件技术、第三代移动通信技术、信息管理、信息安全技术, 积极开拓以数字技术、网络技术为基础的新一代信息产品,发展新兴产业,培 育新的经济增长点。 要大力推进制造业信息化, 积极开展计算机辅助设计 (CAD) 、 计算机辅助工程(CAE)、计算机辅助工艺(CAPP)、计算机机辅助制造(CAM)、 产品数据管理(PDM)、制造资源计划(MRPII)及企业资源管理(ERP)等。有 条件的企业可开展“网络制造”,便于合作设计、合作制造,参与国内和国际 竞争。开展“数控化”工程和“数字化”工程。自动化仪表的技术发展趋势的 测试技术、控制技术与计算机技术、通信技术进一步融合,形成测量、控制、

第 1 页 共 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 (5) Up 按一下,跳到下一个设置区 按一下,所设置区的数字减 1 按一下,所设置区的数字加 1

4、带有闹钟功能; 5、键盘的设定值要求在 LED 上显示。

一 设计的总体方案 流程图:
第 2 页 共 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;

二 设计的详细原理
第 3 页 共 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 操作。通
第 4 页 共 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
第 5 页 共 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; end if; when 6 => if( k='0' and up='1')then secondL<= secondL +1; elsif( p='0' and down='1')then secondL<= secondL-1; end if; when others=>null; end case; end if;
第 6 页 共 23 页

此模块的主要功能是进行时钟初始时间的设置。

3、设定闹钟模块:
if clk'event and clk = '1' then d<=set; k<=up; p<=down; if time='1' 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 alarm_hourH<= alarm_hourH+1; elsif( p='0' and down='1')then alarm_hourH<= alarm_hourH-1; end if; when 2 => if( k='0' and up='1')then alarm_hourL<= alarm_hourL+1; elsif( p='0' and down='1')then alarm_hourL<= alarm_hourL-1; end if; when 3 => if(k='0' and up='1')then alarm_minuteH<= alarm_minuteH +1; elsif( p='0' and down='1')then alarm_minuteH<= alarm_minuteH -1; end if; when 4 => if( k='0' and up='1')then alarm_minuteL<= alarm_minuteL+1; elsif( p='0' and down='1')then alarm_minuteL<= alarm_minuteL-1; end if; when 5=> if(k='0' and up='1')then alarm_secondH<= alarm_secondH +1; elsif(p='0' and down='1')then alarm_secondH<=alarm_secondH-1; end if; when 6 => if( k='0' and up='1')then alarm_secondL<= alarm_secondL +1; elsif( p='0' and down='1')then
第 7 页 共 23 页

alarm_secondL<= alarm_secondL-1; end if; when others=>null; end case; end if;

此模块完成闹钟的设定。

4、显示模块设计
if (time='0') then ahourH<=hourH; ahourL<=hourL; aminuteH<=minuteH; aminuteL<=minuteL; asecondH<=secondH; asecondL<=secondL; elsif(time='1')then ahourH<=alarm_hourH; ahourL<= alarm_hourL; aminuteH<= alarm_minuteH; aminuteL<= alarm_minuteL; asecondH<= alarm_secondH; asecondL<= alarm_secondL; end if; case cnt is -- To display the time. when 0 => L<="000"; -- Enable the leftmost display. case ahourH is when 0 => dled<=X"FC";--0 when 1 => dled<=X"60";--1 when 2 => dled<=X"DA";--2 when others => null; end case; when 1 => L<="001"; -- Enable the second display. case ahourL is when 0 => dled<=X"FC";--0 when 1 => dled<=X"60";--1 when 2 => dled<=X"DA";--2 when 3 => dled<=X"F2";--3 when 4 => dled<=X"66";--4 when 5 => dled<=X"B6";--5 when 6 => dled<=X"BE";--6 when 7 => dled<=X"E0";--7 when 8 => dled<=X"FE";--8
第 8 页 共 23 页

when 9 => dled<=X"F6";--9 when others => null; end case; when 2 => L<="010"; -- Enable the third display. dled<=X"01"; -- Blanked. when 3 => L<="011"; -- Enable the fourth display. case aminuteH is when 0 => dled<=X"FC";--0 when 1 => dled<=X"60";--1 when 2 => dled<=X"DA";--2 when 3 => dled<=X"F2";--3 when 4 => dled<=X"66";--4 when 5 => dled<=X"B6";--5 when others => null; end case; when 4 => L<="100"; -- Enable the fifth display. case aminuteL is when 0 => dled<=X"FC";--0 when 1 => dled<=X"60";--1 when 2 => dled<=X"DA";--2 when 3 => dled<=X"F2";--3 when 4 => dled<=X"66";--4 when 5 => dled<=X"B6";--5 when 6 => dled<=X"BE";--6 when 7 => dled<=X"E0";--7 when 8 => dled<=X"FE";--8 when 9 => dled<=X"F6";--9 when others => null; end case; when 5 => L<="101"; -- Enable the sixth display. dled<=X"01"; -- Blanked. when 6 => L<="110"; -- Enable the seventh display. case asecondH is when 0 => dled<=X"FC";--0 when 1 => dled<=X"60";--1 when 2 => dled<=X"DA";--2 when 3 => dled<=X"F2";--3 when 4 => dled<=X"66";--4 when 5 => dled<=X"B6";--5 when others => null; end case; when 7 => L<="111"; -- Enable the rightmost display case asecondL is when 0 => dled<=X"FC";--0
第 9 页 共 23 页

when 1 => dled<=X"60";--1 when 2 => dled<=X"DA";--2 when 3 => dled<=X"F2";--3 when 4 => dled<=X"66";--4 when 5 => dled<=X"B6";--5 when 6 => dled<=X"BE";--6 when 7 => dled<=X"E0";--7 when 8 => dled<=X"FE";--8 when 9 => dled<=X"F6";--9 when others => null; end case; end case; 此模块实现数字钟的显示及闹钟设定时的显示。

五、蜂鸣器模块设计
if ((hourH = alarm_hourH) and (hourL= alarm_hourL) and (minuteH = alarm_minuteH) and (minuteL = alarm_minuteL)) or ((minuteH=0)and(minuteL=0) )then sound<='1'; end if; if (naozhong='1')then sound<='0'; end if;

此模块实现闹钟蜂鸣以及整点蜂鸣报时。

四、设计的仿真和运行结果
(1)将 time 键置于‘0’ ,输入 clk 信号,可以得到时钟输出波形为:

此时时钟自动计时, 并且将计时数据传送至显示管显示。 如上图 asecond=second; (2)将 time 键置于‘0’ ,输入 clk 信号,并将 set 改为 20 分频信号,up 与 down
第 10 页 共 23 页

信号交叉为 1,得到时钟输出波形为:

如图所示此时时间不是正常变化, 因为有手动设置进行 up (+1) 操作和 down (-1) 操作,并且将时间由数码管显示。 (3)将 time 键置于‘1’ ,则显示闹钟初始调节状态:

第 11 页 共 23 页

此时 secondl,secondH,minuteL,minuteH,hourL,hourH 不受影响,均自动计时,但 是并不由数码管进行显示,此时显示的是闹钟初定时间,这时均为 0。由于 set 变化,stat 顺序发生变化。 (4)将 time 置于‘1’ ,并可以改变 set 键进行数码管选择,并用 up(+1)操作 和 down(-1)操作,进行闹钟的初步设定。

此时可以得到时钟的初步设定。 (5)外部硬件的链接方法如图

(6)时钟显示如下图

第 12 页 共 23 页

时钟图如上

闹钟初定时间如上图

第 13 页 共 23 页

五 课程设计的心得体会

EDA 的课程设计持续了两周,但我却觉得仿佛还是当日,真是挥指之间, 时光已匆匆流逝。在这整整两个星期的日子里,我感受到了既是成功做出一个模 块的欢喜,也是修改那无限 errors 时的忧愁,可以说是无数次的苦尽甘来,换来 了最后的成功。 本身我就对动手的实验相当有兴趣,这次能够拥有两周的课程设计时间, 我甚是欣慰。从第一天开始知道我的多功能时钟课题开始,我就第一时间跑去图 书馆借资料,回去反复研究,从看懂程序开始入手。虽然开始有些棘手,但我觉 得特别的兴奋,我不把困难当成拦路虎,反而成为我前进的动力,遇到困难不会 就翻书,找不到就问同学,再不行就上网搜,实在不行再问老师,总之想尽一切 办法找到解决方案。可是事与愿违,我的设计总是出那么一点点的小问题,有时 候编译只出现 1 个 error ,但一改就成了 20 个 errors 了,真是让人哭笑不得,望 天兴叹呀! 经过两三天的基础训练,我终于能够完整的看懂程序。首先我将老师给我 们基本的时钟程序进行编译,封锁引脚,然后在硬件上得到正确的数码管显示。 通过这个最基本的操作,我将大体流程映入脑海,可以举一反三,再困难的程序 也不怕。 整点报时自然是最简单的,我首先就加到程序内部,其次我在网上找到了 闹钟程序,因为跟要求差距过大,所以我先读懂程序,然后根据自己理解,一步 步的加进初始的时钟程序。这个看似很简单的过程,却整整费了 4 天的时间,期 间错误百出。我先是运用了多个 process,进行模块化的处理,通过这里面出现 的问题我才知道敏感参数列表是不能乱设置的,single 是全局变量,而 variable 只能在一个 process 中使用等等。后来慢慢理解了其中的原委,发现我的程序竟 如此之长,我决定要大量的删减,于是我又把多个 process 改成了一个,看似好 像我是又回到了出发点,但我觉得这绝对是一次质的飞跃,是我能够依照我的想 法自由变换程序的映照。当我自认为要成功的时候,我却遇到了一个相当棘手的 问题,此时 error 显示 unkown problem internal error:”widthe mismatch in relation opreator”in ebuildbinaryop an line 1347 of file,虽然只有一个问题,但这个问题却
第 14 页 共 23 页

无法定位,以至于我找了很久都没找到。那几天我心里很压抑,明明对的程序, 为什么就出现这样的问题,让我真的很头疼,差点绝望放弃。直至周二,我决定 从新回到起点,再写一次,一个模块一个模块往里加。终于在我不倦的努力下, 我找出了错误的语句,并用其他语句替换了它,然后轻松地加入比较简单的校时 模块、蜂鸣模块。终于在周四之前将程序顺利的完成,本想再将秒表加进来,但 看到程序比较繁琐,就此作罢。看到最后程序的各个模块正确的运行,心情真是 无法言语… 通过这次独立的课程设计,我学到了很多书本上学不到的东西,尤其是在 改正错误的时候,我能更加深入的了解 VHDL 语言的精妙之处。比如同一个 process 下不能使用不同信号进行 event 跳变,single 与 variable 之间的差别等等 等等。通过这一次一次的亲身体验,我仿佛发生了一次洗礼,经过了一个质的飞 跃。现在的我已经基本能看懂 VHDL 程序,改正其中出现的错误。

希望以后能多多进行这样的实习,让自己的能力越来越高。 参考书目:
[1] 阎石 主编, 《数字电子技术基础》 ,高等教育出版社,1998 [2] 谭会生等主编, 《EDA 技术及应用》 ,西安电子科技大学出版社,2001 [3] 廖裕评等主编, 《CPLD 数字电路设计——使用 MAX+plusⅡ入门篇》 ,清华大 学出版社,2001 [4] 冯涛等主编, 《可编程逻辑器件开发技术:MAX+plusⅡ入门与提高》 ,人民邮 电出版社,2002 [5] 杨崇志, 《特殊新型电子元件手册》 ,辽宁科学技术出版社,1999 [6] 彭介华, 《电子技术课程设计指导》高等教育出版社.2000 年出版. [7] Mark Zwolinski, Digital System Design with VHDL, 电子工业出版社, 2002 [8] Alan B. Marcovitz Introduction to logic Design, 电子工业出版社,2002

第 15 页 共 23 页

附录 1:
总程序如下:
library IEEE; use IEEE.std_logic_1164.all; entity timer is port(clk : in std_logic; -- System clock input port(250KHz). naozhong:in std_logic; L : out std_logic_vector(2 downto 0); -- 8 seven-segment displays selection ports. dled: out std_logic_vector(7 downto 0); -- Digits display ports. time:in std_logic; sound: out std_logic; clk_1:in std_logic; clk_2:in std_logic; clk_3:in std_logic); end timer; architecture display of timer is signal cnt: integer range 0 to 7; -- 8 seven-segment displays seletion counter. signal ct:integer range 0 to 250000 ; -- 1 second generator counter. signal hourH,ahourH,alarm_hourH: integer range 0 to 2; signal minuteH,secondH,aminuteH,asecondH,alarm_minuteH,alarm_secondH: integer range 0 to 6;
第 16 页 共 23 页

signal hourL,minuteL,secondL,ahourL,aminuteL,asecondL,alarm_hourL,alarm_minuteL,alarm_secondL: integer range 0 to 10; signal set : integer range 0 to 7; signal d,k,p: std_logic; begin process (clk) begin if clk'event and clk = '1' then sound<='1'; cnt<=cnt+1; ct<=ct+1; if ct=250000 then -- 1 second ct<=0; secondL<=secondL+1; end if; if secondL=10 then -- 10 seconds secondL<=0; secondH<=secondH+1; end if; if secondH=6 then -- 60 seconds(1 minute) secondH<=0; minuteL<=minuteL+1; end if; if minuteL=10 then -- 10 minutes minuteL<=0; minuteH<=minuteH+1; end if; if minuteH=6 then -- 60 minutes(1 hour) minuteH<=0; hourL<=hourL+1; end if; if hourL=10 then -- 10 hours hourL<=0; hourH<=hourH+1; end if; if hourH=2 and hourL =4 then -- 24 hours hourH<=0; hourL<=0; end if;

第 17 页 共 23 页

if (time='0') then ahourH<=hourH; ahourL<=hourL; aminuteH<=minuteH; aminuteL<=minuteL; asecondH<=secondH; asecondL<=secondL; elsif(time='1')then ahourH<=alarm_hourH; ahourL<= alarm_hourL; aminuteH<= alarm_minuteH; aminuteL<= alarm_minuteL; asecondH<= alarm_secondH; asecondL<= alarm_secondL; end if; case cnt is -- To display the time. when 0 => L<="000"; -- Enable the leftmost display. case ahourH is when 0 => dled<=X"FC";--0 when 1 => dled<=X"60";--1 when 2 => dled<=X"DA";--2 when others => null; end case; when 1 => L<="001"; -- Enable the second display. case ahourL is when 0 => dled<=X"FC";--0 when 1 => dled<=X"60";--1 when 2 => dled<=X"DA";--2 when 3 => dled<=X"F2";--3 when 4 => dled<=X"66";--4 when 5 => dled<=X"B6";--5 when 6 => dled<=X"BE";--6 when 7 => dled<=X"E0";--7 when 8 => dled<=X"FE";--8 when 9 => dled<=X"F6";--9 when others => null; end case; when 2 => L<="010"; -- Enable the third display. dled<=X"01"; -- Blanked. when 3 => L<="011"; -- Enable the fourth display. case aminuteH is when 0 => dled<=X"FC";--0 when 1 => dled<=X"60";--1
第 18 页 共 23 页

when 2 => dled<=X"DA";--2 when 3 => dled<=X"F2";--3 when 4 => dled<=X"66";--4 when 5 => dled<=X"B6";--5 when others => null; end case; when 4 => L<="100"; -- Enable the fifth display. case aminuteL is when 0 => dled<=X"FC";--0 when 1 => dled<=X"60";--1 when 2 => dled<=X"DA";--2 when 3 => dled<=X"F2";--3 when 4 => dled<=X"66";--4 when 5 => dled<=X"B6";--5 when 6 => dled<=X"BE";--6 when 7 => dled<=X"E0";--7 when 8 => dled<=X"FE";--8 when 9 => dled<=X"F6";--9 when others => null; end case; when 5 => L<="101"; -- Enable the sixth display. dled<=X"01"; -- Blanked. when 6 => L<="110"; -- Enable the seventh display. case asecondH is when 0 => dled<=X"FC";--0 when 1 => dled<=X"60";--1 when 2 => dled<=X"DA";--2 when 3 => dled<=X"F2";--3 when 4 => dled<=X"66";--4 when 5 => dled<=X"B6";--5 when others => null; end case; when 7 => L<="111"; -- Enable the rightmost display case asecondL is when 0 => dled<=X"FC";--0 when 1 => dled<=X"60";--1 when 2 => dled<=X"DA";--2 when 3 => dled<=X"F2";--3 when 4 => dled<=X"66";--4 when 5 => dled<=X"B6";--5 when 6 => dled<=X"BE";--6 when 7 => dled<=X"E0";--7 when 8 => dled<=X"FE";--8 when 9 => dled<=X"F6";--9
第 19 页 共 23 页

when others => null; end case; end case; d<=clk_1; k<=clk_2; p<=clk_3; if time='1' then if ( d='0' and clk_1='1')then set<=set+1; end if; case set is when 1 => if(k='0' and clk_2='1')then alarm_hourH<= alarm_hourH+1; elsif( p='0' and clk_3='1')then alarm_hourH<= alarm_hourH-1; end if; when 2 => if( k='0' and clk_2='1')then alarm_hourL<= alarm_hourL+1; elsif( p='0' and clk_3='1')then alarm_hourL<= alarm_hourL-1; end if; when 3 => if(k='0' and clk_2='1')then alarm_minuteH<= alarm_minuteH +1; elsif( p='0' and clk_3='1')then alarm_minuteH<= alarm_minuteH -1; end if; when 4 => if( k='0' and clk_2='1')then alarm_minuteL<= alarm_minuteL+1; elsif( p='0' and clk_3='1')then alarm_minuteL<= alarm_minuteL-1; end if; when 5=> if(k='0' and clk_2='1')then alarm_secondH<= alarm_secondH +1; elsif(p='0' and clk_3='1')then alarm_secondH<=alarm_secondH-1; end if; when 6 => if( k='0' and clk_2='1')then alarm_secondL<= alarm_secondL +1; elsif( p='0' and clk_3='1')then alarm_secondL<= alarm_secondL-1;
第 20 页 共 23 页

end if; when others=>null; end case; end if; if time='0' then if ( d='0' and clk_1='1')then set<=set+1; end if; case set is when 1 => if(k='0' and clk_2='1')then hourH<=hourH+1; elsif( p='0' and clk_3='1')then hourH<= hourH-1; end if; when 2 => if( k='0' and clk_2='1')then hourL<= hourL+1; elsif( p='0' and clk_3='1')then hourL<= hourL-1; end if; when 3 => if(k='0' and clk_2='1')then minuteH<= minuteH +1; elsif( p='0' and clk_3='1')then minuteH<= minuteH -1; end if; when 4 => if( k='0' and clk_2='1')then minuteL<= minuteL+1; elsif( p='0' and clk_3='1')then minuteL<= minuteL-1; end if; when 5=> if(k='0' and clk_2='1')then secondH<= secondH +1; elsif(p='0' and clk_3='1')then secondH<= secondH-1; end if; when 6 => if( k='0' and clk_2='1')then secondL<= secondL +1; elsif( p='0' and clk_3='1')then secondL<= secondL-1; end if; when others=>null; end case;
第 21 页 共 23 页

end if; if ((hourH = alarm_hourH) and (hourL= alarm_hourL) and (minuteH = alarm_minuteH) and (minuteL = alarm_minuteL)) or ((minuteH=0)and(minuteL=0) )then sound<='1'; end if; if (secondH=1)or(naozhong='1')then sound<='0'; end if; end if; end process; end architecture display;

附录 2: 仿真波形

第 22 页 共 23 页


更多相关文档:

EDA 数字钟设计 (内容较全面)

EDA设计II-多功能数字时... 24页 1下载券 EDA数字时钟课程设计 10页 免费 ...​I​I​与​F​P​G​A​,​制​作​数​字​钟...

基于EDA技术的数字时钟设计

电子系统课程设计任务书设计题目:基于 EDA 技术的数字时钟设计 设计题目 设计目的:课程设计是一种复杂的学习实践过程。设计过程采用系统 设计目的 设计的方法, 先...

EDA数字电子钟课程设计

一 绪论 1 在信息产业中 EDA 产生的影响随着大规模集成电路技术和计算机技术的不断发展,在涉及通信、国防、航天、医学、工业自动化、计算机应用、仪器仪表等领域的...

多功能数字时钟课程设计

多功能数字时钟课程设计_工学_高等教育_教育专区。VHDL课程设计 EDA 技术课程设计设计题目: 学号: 专业年级: 学院: 姓名: 指导教师: 时间: 多功能数字钟设计 ...

数字电子钟课程设计报告

关键词:数字电子钟 校时 报时 子系统 一、设计要求本案例将在 QuartusII 开发系统中用可编程逻辑器件,完成简易数字钟的 EDA 设计, 具体要求为: 1 数字钟功能:...

数字电子钟.eda课程设计

※※※ 2008 级学生 EDA 课程设计 ※※ ※※※ EDA 课程设计报告书 课题名称 姓学院专名号系业 数字电子钟熊静平 0812201-41 物理与电信工程系 电子信息...

eda课程设计数字钟

EDA课程设计 数字时钟 12页 免费 EDA数字钟设计论文 14页 免费 数字钟课程设计报告 10页 5财富值 eda课程设计报告_数字钟 18页 5财富值如要投诉违规内容,请到...

eda课程设计-多功能数字钟

eda课程设计-多功能数字钟_电子/电路_工程科技_专业资料。多功能数字钟 EDA 课程设计实用多功能数字钟 学专班学姓 院: 业: 级: 号: 名: 机械与电子工程学院...

电子钟课程设计_图文

湖南商学院《电子技术》课程设计报告题 目 数字电子钟的设计 姓学专班 名: ...构思设计方案; 3) 组建功能框图,完成整机电路的系统设计; 4) 应用 EDA 软件 ...

EDA课设数字钟设计

EDA课设数字钟设计_电子/电路_工程科技_专业资料。课程设计报告 课程名称 课题名称 数字系统与逻辑设计 数字钟设计 专班学姓 业级号名 通信工程 指导教师 乔汇东...

更多相关标签:

eda电子钟课程设计 | 数字电子钟课程设计 | 数字电子钟的课程设计 | eda数字时钟课程设计 | eda课程设计数字钟 | eda数字秒表课程设计 | 数字电子钟eda | 单片机电子钟课程设计 |


  本文关键词:eda课程设计,由笔耕文化传播整理发布。



本文编号:240584

资料下载
论文发表

本文链接:https://www.wllwen.com/wenshubaike/kcsz/240584.html

上一篇:EDA电子密码锁(1)  
下一篇:EDA课程设计论文

Copyright(c)文论论文网All Rights Reserved | 网站地图 |

版权申明:资料由用户2f75a***提供,本站仅收录摘要或目录,作者需要删除请E-mail邮箱bigeng88@qq.com