EDA技术课程课件实用数字钟系统设计09_第1页
EDA技术课程课件实用数字钟系统设计09_第2页
EDA技术课程课件实用数字钟系统设计09_第3页
EDA技术课程课件实用数字钟系统设计09_第4页
EDA技术课程课件实用数字钟系统设计09_第5页
已阅读5页,还剩89页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、EDA技术与项目训练1学习子领域学习子领域3 3数字系统的数字系统的EDAEDA设计设计EDA技术与项目训练2EDA技术与项目训练3学习目标学习目标 能正确分析任务要求,并能根据系统任务的要求,分析确定系统方案,拟制实用数字钟系统的顶层结构功能图能正确编制实用数字钟系统各部件的VHDL程序能使用原理图输入法设计系统顶层结构图能在Max+PlusII软件平台上对实用数字钟系统各部件VHDL程序进行调试能在Max+PlusII软件平台上对实用数字钟系统各部件VHDL程序进行功能仿真在Max+PlusII软件平台上对实用数字钟系统进行联调能在Max+PlusII软件平台上对实用数字钟系统进行功能仿真

2、能在EDA实验系统上对实用数字钟系统进行硬件验证、测试能在Max+PlusII软件平台上对实用数字钟系统功能与性能进行完善提高EDA技术与项目训练4主要内容主要内容 较复杂数字系统设计的任务分析方法实用数字钟系统方案的构建方法实用数字钟系统顶层结构功能图的拟制正确编制实用数字钟系统各部件的VHDL程序使用原理图输入法设计系统顶层结构图在Max+PlusII软件平台上对实用数字钟系统各部件VHDL程序进行调试在Max+PlusII软件平台上对实用数字钟系统各部件VHDL程序进行功能仿真在Max+PlusII软件平台上对实用数字钟系统进行联调能在Max+PlusII软件平台上对实用数字钟系统进行功

3、能仿真在EDA实验系统上对实用数字钟系统进行硬件验证、测试在Max+PlusII软件平台上对实用数字钟系统功能与性能进行完善提高EDA技术与项目训练5回顾点评任务与要求:1.使用EDA实验箱上交通灯模块中的12个发光二极管(东西EW方向为主干道,南北NS方向为支干道),指示通行信号。2.使用EDA实验箱上的最左边2个LED数码管显示东西EW方向(主干道)倒计时,最右边2个LED数码管显示南北NS方向(支干道)倒计时。3.使用EDA实验箱上的K1开关设置主干道上的传感器发出的信号,K2开关设置次干道上的传感器发出的信号。EDA技术与项目训练6回顾点评4.一般情况下,如果主干道和支干道均无车辆要求

4、通行,应该保证主干道绿灯亮,支干道红灯亮。此时,若支干道有车辆要求通行,则应允许支干道车辆通行;若主干道、支干道均有车辆要求通行,则应先保证主干道通行30秒钟后,才允许支干道通行。在允许支干道车辆通行前,应先使主干道黄灯亮5秒钟,支干道红灯保持;5秒钟后,才变成主干道红灯亮,支干道绿灯亮。在支干道保持畅通时,若主干道无车辆要求通行,则支干道始终保持畅通;如果此时支干道无车辆要求通行,则应立刻准备使主干道通车,支干道禁止通行;若此时主干道有车辆要求通行,并且支干道通行时间已超过20秒钟,则应该准备使主干道通行。在允许主干道通行前,应先使支干道的黄灯亮5秒钟,主干道红灯保持;5秒钟后,变成主干道绿

5、灯亮,支干道红灯亮。EDA技术与项目训练7回顾点评5.实用交通灯控制系统只能使用单一外部时钟。EDA技术与项目训练8设计方案EDA技术与项目训练9 绝大部分同学都很认真,能完成项目。回顾点评EDA技术与项目训练10项目任务项目任务: :实用数字钟系统设计请根据要求在EDA实验箱上设计实用数字钟系统,要求:使用EDA实验箱上的6个LED数码管从左到右依次显示有时、分、秒计数;使用EDA实验箱上的开关实现十二小时制与二十四小时制切换功能;使用EDA实验箱上的开关实现调时功能,能非常方便地对小时、分钟和秒进行手动调节以校准时间;EDA技术与项目训练11项目任务项目任务: :实用数字钟系统设计使用实验

6、箱上的蜂鸣器实现整点报时功能,每逢整点,产生报时音报时;使用实验箱上的蜂鸣器与开关,实现闹钟及闹铃时间设定功能(扩展功能);数字钟系统只能使用单一外部时钟。EDA技术与项目训练12项目分析实用数字钟显示面板图EDA技术与项目训练13项目分析实用数字钟显示面板图EDA技术与项目训练14项目分析实用数字钟显示面板图EDA技术与项目训练15项目分析l 能进行正常的时、分、秒计时功能,分别由6个数码管显示24小时、60分钟、60秒钟的计数器显示。l 能利用扬声器做整点报时:(1)当计时到达59分钟的第“51、53、55、57”秒鸣叫声频为512Hz; (2)当计时到达59分钟的第“59”秒整点报时,频

7、率为1KHz。 EDA技术与项目训练16项目分析l 能利用按键实现“校时”“校分”“闹钟”功能:按下“SET”键时进入秒校时,第二次按下进入分校时,第三次按下小时校时,第四次按下进入闹钟分设定,第五次按下进入闹钟时设定,第六次按下返回正常工作状态。秒校时状态:蜂鸣器发出“滴”的周期为1秒,按住“MODE”键秒钟以3Hz的频率递增计数;分校时状态:蜂鸣器发出“滴” “滴”的周期为1秒,按住“MODE”键秒钟以3Hz的频率递增计数;小时校时状态:蜂鸣器发出“滴” “滴” “滴”的周期为1秒,按住“MODE”键秒钟以3Hz的频率递增计数;闹钟分设置状态:蜂鸣器发出“滴”的周期为1秒,按住“MODE”

8、键秒钟以3Hz的频率递增计数;闹时分设置状态:蜂鸣器发出“滴” “滴”的周期为1秒,按住“MODE”键秒钟以3Hz的频率递增计数;EDA技术与项目训练171 数字钟的设计方案数字钟的设计方案 l 设计采用同步时序逻辑,计数器组中的触发器使用相同的触发信号,按进位条件进行计数。这种方法的时钟信号单一,有利于校时控制,便于消除内部竞争和冒险问题。l 整个系统设计了五个模块:计数器模块、时钟分频模块、状态控制模块、扫描显示模块、报时报警模块。项目分析EDA技术与项目训练18控制电路计数器模块报时报警扫描显示分频电路蜂鸣器SETMODE时钟信号1 数字钟的设计方案数字钟的设计方案 项目分析EDA技术与

9、项目训练19一种一种24小时秒表设计框图小时秒表设计框图60进进制计制计数器数器1hz时钟时钟60进进制计制计数器数器CYSQSAQSB24进进制计制计数器数器CYMQMAQMBQHBQHA61多路多路选择选择器器七段七段显示显示码码显显示示电电路路分频器分频器1K hz约约245 hz的的3位信号位信号译码器译码器约约245 Hz的的3位扫描信号位扫描信号ENReset项目分析EDA技术与项目训练202 数字钟的顶层原理图数字钟的顶层原理图 项目分析EDA技术与项目训练213 数字钟的数字钟的ALARM模块模块 报时报警模块:lB1B2=1时,输出512Hz信号;lB1B3=1时,输出102

10、4Hz信号;lSET_ALARM有信号时,直接输出;项目分析EDA技术与项目训练223 数字钟的数字钟的ALARM模块模块 项目分析EDA技术与项目训练234 数字钟的数字钟的COUNTER模块模块 计数器模块:S2.0=0时,计数器按H1正常记数S2.0=1时,若MODE有效秒钟计数器按H3计数S2.0=2时,若MODE有效分钟计数器按H3计数S2.0=3时,若MODE有效小时计数器按H3计数S2.0=4时,若MODE有效闹钟的分计数器按H3计数S2.0=5时,若MODE有效闹钟的小时计数器按H3计数项目分析EDA技术与项目训练244 数字钟的数字钟的COUNTER模块模块 LIBRARY

11、IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY COUNTER ISPORT(M,H1,H3:IN STD_LOGIC;SET:IN STD_LOGIC_VECTOR(2 DOWNTO 0);HOU:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);MIN:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);SEC:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);B1,B2,B3: OUT STD_LOGIC;N:OUT STD_LOGIC );END

12、 COUNTER;项目分析EDA技术与项目训练254 数字钟的数字钟的COUNTER模块模块 ARCHITECTURE A OF COUNTER ISSIGNAL CLKS,CLKM,CLKH:STD_LOGIC;SIGNAL HOUR1,HOUR0:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL MINI1,MINI0:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL SECO1,SECO0:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL SETH1,SETH0,SETM1,SETM0:STD_LOGIC_VECTOR (

13、3 DOWNTO 0); BEGIN 项目分析EDA技术与项目训练264 数字钟的数字钟的COUNTER模块模块 -SECOND COUNTERCLKS= H1 WHEN SET=0 ELSEH3 WHEN (SET=1 AND M=1)ELSE0; PROCESS(CLKS)BEGINWAIT UNTIL(CLKS=1);IF SECO0=9 THEN SECO0=0000;ELSE SECO0=SECO0+1;END IF;IF SECO0=9 THENIF SECO1=5 THEN SECO1=0000;ELSE SECO1=SECO1+1;END IF;END IF;END PROCE

14、SS;项目分析EDA技术与项目训练274 数字钟的数字钟的COUNTER模块模块 -MINUTE COUNTER CLKM= H1 WHEN SET=0 ELSEH3 WHEN (SET=2 AND M=1)ELSE0; PROCESS(CLKM) BEGINWAIT UNTIL(CLKM=1);IF (SECO1=5 AND SECO0=9 )OR (SET=2 AND M=1) THENIF MINI0=9 THEN MINI0=0000;ELSE MINI0=MINI0+1;END IF;IF MINI0=9 THENIF MINI1=5 THEN MINI1=0000;ELSE MIN

15、I1=MINI1+1;END IF;END IF;END IF; END PROCESS;项目分析EDA技术与项目训练284 数字钟的数字钟的COUNTER模块模块 -HOUR COUNTERCLKH= H1 WHEN SET=0 ELSEH3 WHEN (SET=3 AND M=1)ELSE0; PROCESS(CLKH)BEGINWAIT UNTIL(CLKH=1);IF (SECO1=5 AND SECO0=9) AND (MINI1=5 AND MINI0=9)OR (SET=3 AND M=1) THENIF( HOUR1=2 AND HOUR0=3)THEN HOUR1=0000;

16、HOUR0=0000;ELSIF HOUR0=9 THENHOUR0=0000;HOUR1=HOUR1+1;ELSE HOUR0=HOUR0+1;END IF;END IF;END PROCESS;项目分析EDA技术与项目训练294 数字钟的数字钟的COUNTER模块模块 - ALARM SETTINGPROCESS(H3)BEGINWAIT UNTIL(H3=1);IF (M=1AND SET=4) THENIF SETM0=9 THEN SETM0=0000;ELSE SETM0=SETM0+1;END IF;IF SETM0=9 THENIF SETM1=5 THEN SETM1=000

17、0;ELSE SETM1=SETM1+1;END IF;END IF;END IF;项目分析EDA技术与项目训练30-HOUR COUNTERIF (M=1 AND SET=5) THENIF( SETH1=2 AND SETH0=3)THENSETH1=0000;SETH0=0000;ELSIF SETH0=9 THEN SETH0=0000;SETH1=SETH1+1;ELSE SETH0=SETH0+1;END IF;END IF;END PROCESS;4 数字钟的数字钟的COUNTER模块模块 项目分析EDA技术与项目训练31-LED DISPLAYPROCESS(SET)BEGIN

18、IF SET4 THENHOU(7 DOWNTO 4)=HOUR1;HOU(3 DOWNTO 0)=HOUR0;MIN(7 DOWNTO 4)=MINI1;MIN(3 DOWNTO 0)=MINI0;SEC(7 DOWNTO 4)=SECO1;SEC(3 DOWNTO 0)=SECO0;ELSEHOU(7 DOWNTO 4)=SETH1;HOU(3 DOWNTO 0)=SETH0;MIN(7 DOWNTO 4)=SETM1;MIN(3 DOWNTO 0)=SETM0;SEC(7 DOWNTO 4)=0000;SEC(3 DOWNTO 0)=0000;END IF;END PROCESS;4 数

19、字钟的数字钟的COUNTER模块模块 项目分析EDA技术与项目训练32-ALARM N= 1 when (HOUR1=SETH1 AND HOUR0=SETH0 AND MINI1 =SETM1 AND MINI0=SETM0)ELSE0;B1=1 WHEN (MINI1=5 AND MINI0=9)ELSE0;B2=1 WHEN (SECO1=5 AND (SECO0=1 OR SECO0=3 OR SECO0=5 OR SECO0=7)ELSE0;B3 -set=000;if set_key=0 then present=s0;else present -set=001;if set_ke

20、y=0 then present=s2;else present -set=001;if set_key=0 then present=s2;else present -set=010;if set_key=0 then present=s4;else present -set=010;if set_key=0 then present=s4;else present -set=011;if set_key=0 then present=s6;else present -set=011;if set_key=0 then present=s6; else present -set=100;if

21、 set_key=0 then present=s8;else present -set=100;if set_key=0 then present=s8;else present -set=101;if set_key=0 then present=s10; else present-set=101;if set_key=0 then present=s10; else present-set=000;if set_key=0 then present=s0;else present set set set set set set set set set set set set=000;en

22、d case;end process;end a; 5 数字钟的数字钟的SET_MODE模块模块 项目分析EDA技术与项目训练386 数字钟的数字钟的CLK_SOUR模块模块 时钟分频模块: 对输入信号进行分频,提供系统所需的全部时钟信号、报时信号、扫描显示信号和校时提示信号。项目分析EDA技术与项目训练396 数字钟的数字钟的CLK_SOUR模块模块 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CLK_SOUR ISPORT( SIGNAL_IN:IN STD_LOGIC;SE

23、T:IN STD_LOGIC_VECTOR(2 DOWNTO 0);H1,H3,A3:OUT STD_LOGIC;H128,H512,H1024:OUT STD_LOGIC;SET_ALARM:OUT STD_LOGIC);END CLK_SOUR;项目分析EDA技术与项目训练406 数字钟的数字钟的CLK_SOUR模块模块 ARCHITECTURE A OF CLK_SOUR ISSIGNAL COUNT:STD_LOGIC_VECTOR(9 DOWNTO 0);BEGIN-1024 COUNTERPROCESS(SIGNAL_IN)BEGINIF (SIGNAL_INEVENT AND S

24、IGNAL_IN=1) THENCOUNT=COUNT+1;END IF;END PROCESS;-1Hz,3Hz,4Hz.H1=1 WHEN COUNT=8 ELSE0;H3=1 WHEN (COUNT=8 OR COUNT=344 OR COUNT=680) ELSE0;A3=COUNT(7);H128=COUNT(2);H512=COUNT(0);H1024=SIGNAL_IN;项目分析EDA技术与项目训练416 数字钟的数字钟的CLK_SOUR模块模块 - ALARM SIGNALSET_ALARM=8) AND (COUNT=8) AND (COUNT=136) AND (COUNT

25、=8) AND (COUNT=136) AND (COUNT=264) AND (COUNT=8) AND (COUNT=8) AND (COUNT=136) AND (COUNT=199)ELSE0;END A;项目分析EDA技术与项目训练427 数字钟的数字钟的DISPLAY模块模块 扫描显示模块:实现小时、分、秒的动态扫描显示;SEL2.0为数码管的位选择信号;A,B,C,D,E,F,G为数码管段选择信号;项目分析EDA技术与项目训练437 数字钟的数字钟的DISPLAY模块模块 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_

26、LOGIC_UNSIGNED.ALL;ENTITY display ISPORT(h512: IN STD_LOGIC;-扫描信号扫描信号 hou,min,sec: IN STD_LOGIC_VECTOR(7 DOWNTO 0); sel:BUFFER STD_LOGIC_VECTOR(2 DOWNTO 0);-扫描位选择信号扫描位选择信号 A,B,C,D,E,F,G: OUT STD_LOGIC); -数码管段信号数码管段信号a,b,c,d,e,f,gEND display;ARCHITECTURE one OF display ISSIGNAL S: STD_LOGIC_VECTOR(6

27、DOWNTO 0);SIGNAL Din: STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN项目分析EDA技术与项目训练447 数字钟的数字钟的DISPLAY模块模块 PROCESS(h512) -显示扫描信号显示扫描信号 BEGIN IF h512event AND h512=1 THEN sel Din Din Din Din Din Din Din Din din S S S S S S S S S S S S=1111111;END CASE; END PROCESS; A=S(6); B=S(5); C=S(4); D=S(3); E=S(2); F=S(1);

28、G=S(0);END one;项目分析EDA技术与项目训练46项目案例分析:数字钟及校园打铃系统设计项目案例分析:数字钟及校园打铃系统设计设计目标: 1、基本的数字钟计时功能、校时功能; 2、定时闹钟功能; 可以任意设定闹钟时间,闹铃时间为1分钟。 3、校园打铃功能; (1)正常教学打铃:分夏季作息时间和春季作息时间打铃,响铃时间20秒。两季作息时间通过开关切换。 (2)考试时间打铃,响铃时间20秒。 (3)正常教学打铃和考试打铃通过开关切换。EDA技术与项目训练47一、基本的数字钟计时功能、校时功能电路设计1、基本计时功能电路设计60进制计数器元件外部引脚功能图元件外部引脚功能图说明:说明:

29、1、EN1时,正常计数,时,正常计数,0时,停止计数。时,停止计数。 2、CLRN0时,复位清零,时,复位清零,1时,正常计数。时,正常计数。 3、CLK时钟信号,上升沿触发。时钟信号,上升沿触发。 4、QSA:60进制个位输出;进制个位输出; QSB:60进制十位输出。进制十位输出。EDA技术与项目训练48LIBRARY ieee; USE ieee.std_logic_1164.all;ENTITY clock_60 ISPORT( CLRN,EN,CLK: IN STD_LOGIC; cout1: out STD_LOGIC; Qsa : OUT INTEGER RANGE 0 TO 9

30、; Qsb : OUT INTEGER RANGE 0 TO 5);END clock_60;ARCHITECTURE a OF clock_60 IS BEGIN PROCESS(CLK,CLRN) VARIABLE tmpsa: INTEGER RANGE 0 TO 9; VARIABLE tmpsb: INTEGER RANGE 0 TO 5; 60进制计数器设计(VHDL程序)EDA技术与项目训练49BEGIN IF CLRN=0 THEN tmpsb := 0; tmpsa := 0; ELSIF CLKevent AND CLK=1 THEN IF EN=1 THEN IF tmp

31、sb=5 AND tmpsa=9 THEN tmpSa:=0; tmpSb:=0 ;COUT1=1; ELSIF tmpSa=9 THEN tmpSa:=0; tmpSb:=tmpSb+1; ELSE tmpSa:=tmpSa+1; END IF; END IF; END IF ; QSA=tmpsa;QSB=tmpsb; END PROCESS ;END a;EDA技术与项目训练5024进制计数器设计元件外部引脚功能图:说明:说明:1、EN1时,正常计数,时,正常计数,0时,停止计数。时,停止计数。 2、CLRN0时,复位清零,时,复位清零,1时,正常计数。时,正常计数。 3、CLK时钟信号

32、,上升沿触发。时钟信号,上升沿触发。 4、QHA:24进制个位输出;进制个位输出;QHB:24进制十位输出。进制十位输出。EDA技术与项目训练51LIBRARY ieee; USE ieee.std_logic_1164.all;ENTITY clock_24 ISPORT( CLRN,EN,CLK: IN STD_LOGIC; cout: out STD_LOGIC; Qha : OUT INTEGER RANGE 0 TO 9; Qhb : OUT INTEGER RANGE 0 TO 2);END clock_24;ARCHITECTURE a OF clock_24 IS BEGIN

33、PROCESS(CLK,CLRN) VARIABLE tmpha: INTEGER RANGE 0 TO 9; VARIABLE tmphb: INTEGER RANGE 0 TO 2; 24进制计数器设计EDA技术与项目训练52BEGIN IF CLRN=0 THEN tmphb := 0; tmpha := 0; ELSIF CLKevent AND CLK=1 THEN IF EN=1 THEN IF tmphb=2 AND tmpha=3 THEN tmpha:=0; tmphb:=0 ;COUT=1; ELSIF tmpha=9 THEN tmpha:=0; tmphb:=tmphb

34、+1; ELSE tmpha:=tmpha+1; END IF; END IF; END IF ; QHA=tmpha;QHB=tmphb; END PROCESS ;END a;EDA技术与项目训练53数字钟实体EDA技术与项目训练54 LIBRARY ieee; USE ieee.std_logic_1164.all;ENTITY clock_v ISPORT( EN,CLK,CLRN : IN STD_LOGIC; QSa,QMa,QHa : OUT INTEGER RANGE 0 TO 9; QSb,QMb : OUT INTEGER RANGE 0 TO 5; QHb : OUT I

35、NTEGER RANGE 0 TO 2 ; cout: out std_logic );END clock_v;数字钟实体EDA技术与项目训练55ARCHITECTURE a OF clock_v IS signal cout1,cout2,COUT3:STD_LOGIC; BEGINu60s: PROCESS(CLK,CLRN) VARIABLE tmpsa: INTEGER RANGE 0 TO 9; VARIABLE tmpsb: INTEGER RANGE 0 TO 5; BEGIN IF CLRN=0 THEN tmpsb := 0; tmpsa := 0; ELSIF CLKeve

36、nt AND CLK=1 THEN IF EN=1 THEN IF tmpsb=5 AND tmpsa=9 THEN tmpSa:=0; tmpSb:=0 ;COUT1=1; ELSIF tmpSa=9 THEN tmpSa:=0; tmpSb:=tmpSb+1; COUT1=0; ELSE tmpSa:=tmpSa+1;COUT1=0; END IF; END IF; END IF ; QSA=tmpsa;QSB=tmpsb; END PROCESS u60s; 数字钟VHDL程序的结构体部分接下页EDA技术与项目训练56u60M: PROCESS(cout1,CLRN) VARIABLE

37、tmpMa: INTEGER RANGE 0 TO 9; VARIABLE tmpMb: INTEGER RANGE 0 TO 5; BEGIN IF CLRN=0 THEN tmpMb := 0; tmpMa := 0; ELSIF COUT1event AND COUT1=1 THEN IF EN=1 THEN IF tmpMb=5 AND tmpMa=9 THEN tmpMa:=0; tmpMb:=0 ;COUT2=1; ELSIF tmpMa=9 THEN tmpMa:=0; tmpMb:=tmpMb+1; COUT2=0; ELSE tmpMa:=tmpMa+1;COUT2=0; E

38、ND IF; END IF; END IF ; QMA=tmpMa;QMB=tmpMb; END PROCESS u60M;数字钟分计数器接下页EDA技术与项目训练57 u24H: PROCESS(COUT2,CLRN) VARIABLE tmpHa: INTEGER RANGE 0 TO 9; VARIABLE tmpHb: INTEGER RANGE 0 TO 2; BEGIN IF CLRN=0 THEN tmpHb := 0; tmpHa := 0; ELSIF COUT2event AND COUT2=1 THEN IF EN=1 THEN IF tmpHb=2 AND tmpHa=

39、3 THEN tmpHa:=0; tmpHb:=0 ;COUT3=1; ELSIF tmpHa=9 THEN tmpHa:=0; tmpHb:=tmpHb+1; COUT3=0; ELSE tmpHa:=tmpHa+1;COUT3=0; END IF; END IF; END IF ; QHA=tmpHa;QHB=tmpHb;COUT=COUT3; END PROCESS u24H;END a;数字钟时计数器EDA技术与项目训练58D16D15D14D13D12D11D9D8PIO47D7PIO46D6PIO45D5PIO44D4PIO43D3PIO42D2PIO41PIO40D1NO.7实验

40、电路结构图SPEAKER扬声器FPGA/CPLD目标芯片12345678PIO0PIO2PIO3PIO4PIO5PIO6PIO7单脉冲单脉冲单脉冲键1键2键3键4键5键6键7键8PIO47-PIO40PIO39-PIO36PIO35-PIO32PIO31-PIO28PIO27-PIO24PIO23-PIO20PIO19-PIO16译码器译码器译码器译码器译码器译码器EDA技术与项目训练59数字钟时计数器结构图结构图NO.7NO.7:此电路适合于设计时钟、定时器、秒表等。因为可利用键8和键5分别控制时钟的清零和设置时间的使能;利用键7、5和1进行时、分、秒的设置。EDA技术与项目训练60原理图设

41、计方法EDA技术与项目训练61带校时电路的数字钟电路设计EDA技术与项目训练62状态机状态图EDA技术与项目训练632选1多路选择器VHDL程序ENTITY mux21a IS PORT( a, b : IN BIT ; k : IN BIT; c : OUT BIT ) ;END ENTITY mux21a ;ARCHITECTURE one OF mux21a IS BEGIN c = a WHEN k = 1 ELSE b ;END ARCHITECTURE one ;EDA技术与项目训练64状态机程序LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;E

42、NTITY zhuantaiji ISPORT ( CLK 0,reset: IN STD_LOGIC; y : OUT STD_LOGIC_VECTOR(2 DOWNTO 0);END zhuantaiji;EDA技术与项目训练65状态机程序ARCHITECTURE behav OF zhuantaiji IS TYPE states IS (st0, st1, st2, st3,st4); SIGNAL stx : states ; BEGIN COMREG : PROCESS(CLK,RESET) BEGIN -决定转换状态的进程决定转换状态的进程 IF RESET =1 THEN ST

43、X STX STX STX STX STX y y y y Q=“111 ; END CASE ; END PROCESS COM1 ; END behav;EDA技术与项目训练67二、定时闹钟功能电路设计定时器控制电路定时器控制电路复位复位定时时间存储电路定时时间存储电路调时或调调时或调分选择开分选择开关关“”键键分分输输出出时时输输出出基本数字钟电路基本数字钟电路秒脉冲秒脉冲时时输输出出分分输输出出校时校时校时功能切换校时功能切换复位复位秒秒输输出出七段数码管译码器及显示器七段数码管译码器及显示器正常计时时间和定时时间输出选择切换电路正常计时时间和定时时间输出选择切换电路时时输输出出分分输

44、输出出秒秒输输出出VCCK1K1闭合,显示正常计时时间闭合,显示正常计时时间K1断开,显示定时器时间断开,显示定时器时间思考:在正思考:在正常显示时间常显示时间时,如何使时,如何使定时器定时器“”键失效,以键失效,以保证在正常保证在正常计时时定时计时时定时时间不被修时间不被修改?改?EDA技术与项目训练68正常计时时间和闹铃时间比较器电路连接正常计时“时”信号输出连接正常计时“分”信号输出连接闹铃时间“时”信号输出连接闹铃时间“分”信号输出与门电路两时间相等,输出高电平512Hz周期信号思考:响铃思考:响铃时间为时间为1秒,秒,如何保证?如何保证?EDA技术与项目训练69数字钟电路设计将上一讲

45、中的数字钟包装成一个元件,引脚定义如下图所示。将上一讲中的数字钟包装成一个元件,引脚定义如下图所示。EDA技术与项目训练70定时器控制电路及定时时间存储电路设计定时器控制电路定时器控制电路复位复位定时时间存储电路定时时间存储电路调时或调调时或调分选择开分选择开关关“”键键分分输输出出时时输输出出定时器控制电定时器控制电路及定时时间路及定时时间存储电路存储电路Ctrl_memoresetk1Up_key“+”键Q_houra3.0Q_hourb1.0Q_minuea3.0Q_minueb2.0EDA技术与项目训练71定时器控制电路及定时时间存储电路VHDL程序LIBRARY ieee; USE

46、ieee.std_logic_1164.all;ENTITY ctrl_memo ISPORT( reset,k1,up_key: IN STD_LOGIC; -k1高电平为调时,低电平为高电平为调时,低电平为调分调分 Q_hourb : OUT INTEGER RANGE 0 TO 2;-“时时”高位高位 Q_houra : OUT INTEGER RANGE 0 TO 9;-“时时”低位低位 Q_minueb : OUT INTEGER RANGE 0 TO 5; Q_minuea : OUT INTEGER RANGE 0 TO 9);END ctrl_memo;ARCHITECTURE

47、 a OF ctrl_memo IS BEGIN PROCESS(reset,k1,up_key) VARIABLE Q_tmpma: INTEGER RANGE 0 TO 9; VARIABLE Q_tmpmb: INTEGER RANGE 0 TO 5; VARIABLE Q_tmpha: INTEGER RANGE 0 TO 9; VARIABLE Q_tmphb: INTEGER RANGE 0 TO 2;EDA技术与项目训练72BEGIN IF reset=0 THEN Q_tmpma:= 0; Q_tmpmb:= 0;Q_tmpha:= 0; Q_tmphb:= 0; ELSIF

48、up_keyevent AND up_key=1 THEN IF k1=1 THEN IF Q_tmphb=2 AND Q_tmpha=3 THEN Q_tmphb:=0; Q_tmpha:=0 ; ELSIF Q_tmpha=9 THEN Q_tmpha:=0; Q_tmphb:=Q_tmphb+1; ELSE Q_tmpha:=Q_tmpha+1; END IF; else IF Q_tmpmb=5 AND Q_tmpma=9 THEN Q_tmpmb:=0; Q_tmpma:=0 ; ELSIF Q_tmpma=9 THEN Q_tmpma:=0; Q_tmpmb:=Q_tmpmb+1;

49、 ELSE Q_tmpma:=Q_tmpma+1; END IF; END IF; END IF ; Q_hourb=Q_tmphb; Q_houra=Q_tmpha; Q_minueb=Q_tmpmb; Q_minuea=Q_tmpma; END PROCESS ;END a;EDA技术与项目训练73正常计时时间和定时时间输出选择切换电路QHAI5.0正常计时时间和定时时间输出选择切换电路正常计时时间和定时时间输出选择切换电路 NOR_ARM_CTL.VHDk2Q_HAO3.0Q_HBO1.0Q_MAO3.0Q_MBO2.0Q_SAO3.0Q_SBO2.0QSAI6.0QMAI6.0QH_A

50、RM5.0QM_ARM6.0正常时间输入,接时钟输出正常时间输入,接时钟输出闹钟时间输入,接闹钟定时输出闹钟时间输入,接闹钟定时输出K2为高电平时显示正常时间EDA技术与项目训练74仿真波形EDA技术与项目训练75正常计时时间和定时时间输出选择切换电路 VHDL程序LIBRARY ieee; USE ieee.std_logic_1164.all;ENTITY NOR_ARM_CTL ISPORT( k2: IN STD_LOGIC; QSAI,QMAI,QHAI:IN INTEGER RANGE 0 TO 9; QSBI,QMBI:IN INTEGER RANGE 0 TO 5; QHBI:

51、IN INTEGER RANGE 0 TO 2; QH_ARM_A,QM_ARM_A: IN INTEGER RANGE 0 TO 9; QH_ARM_B: IN INTEGER RANGE 0 TO 2; QM_ARM_B: IN INTEGER RANGE 0 TO 5; Q_HAO,Q_MAO,Q_SAO:OUT INTEGER RANGE 0 TO 9; Q_HBO: OUT INTEGER RANGE 0 TO 2; Q_MBO,Q_SBO : OUT INTEGER RANGE 0 TO 5);END NOR_ARM_CTL;EDA技术与项目训练76ARCHITECTURE a O

52、F NOR_ARM_CTL IS BEGIN Q_HAO=QHAI WHEN K2=1 ELSE QH_ARM_A; Q_HBO=QHBI WHEN K2=1 ELSE QH_ARM_B; Q_MAO=QMAI WHEN K2=1 ELSE QM_ARM_A; Q_MBO=QMBI WHEN K2=1 ELSE QM_ARM_B; Q_SAO=QSAI WHEN K2=1 ELSE 0; Q_SBO=QSBI WHEN K2=1 ELSE 0;END a;EDA技术与项目训练77仿真波形EDA技术与项目训练78正常计时时间和闹铃时间比较器电路 BIJIAOQI.VHD与门电路两时间相等,输出高

53、电平512Hz周期信号正常计时时间和闹铃时间比较器电路设计clk0speakQH_AQH_BQM_AQM_BHARM_A HARM_B MARM_AMARM_BYEDA技术与项目训练79正常计时时间和闹铃时间比较器电路VHDL程序LIBRARY ieee; USE ieee.std_logic_1164.all;ENTITY BIJIAOQI ISPORT( CLk0: IN STD_LOGIC; QH_A,QM_A: IN INTEGER RANGE 0 TO 9; QH_B: IN INTEGER RANGE 0 TO 2; QM_B: IN INTEGER RANGE 0 TO 5; H

54、ARM_A,MARM_A: IN INTEGER RANGE 0 TO 9; HARM_B: IN INTEGER RANGE 0 TO 2; MARM_B: IN INTEGER RANGE 0 TO 5; SPEAK: OUT STD_LOGIC);END BIJIAOQI;ARCHITECTURE a OF BIJIAOQI IS SIGNAL Y: STD_LOGIC; BEGIN SPEAK=CLK0 AND Y; Y=1 WHEN (QH_A=HARM_A) AND (QM_A=MARM_A) AND (QH_B=HARM_B) AND (QM_B=MARM_B) ELSE 0;E

55、ND a;EDA技术与项目训练80仿真波形EDA技术与项目训练81总电路图总电路图EDA技术与项目训练82三、校园打铃系统功能电路设计方案二:地址发生器及外置存储器方式方案二:地址发生器及外置存储器方式方案一:直接数据比较方法方案一:直接数据比较方法EDA技术与项目训练83方案一:直接数据比较方法春季作息时间夏季作息时间6:50起床6:40起床7:40预备7:30预备7:50第一节上课7:40第一节上课8:35第一节下课8:25第一节下课8:45第二节上课8:35第二节上课9:30第二节下课9:20第二节下课9:50第三节上课9:40第三节上课10:35第三节下课10:25第三节下课10:45

56、第四节上课10:35第四节上课11:30第四节下课11:20第四节下课14:00预备14:20预备14:10下午第一节上课14:30下午第一节上课14:55下午第一节下课15:15下午第一节下课15:05下午第二节上课15:25下午第二节上课15:50下午第二节下课16:10下午第二节下课16:00下午第三节上课 16:20下午第三节上课16:45下午第三节下课 17:05下午第三节下课16:55下午第四节上课 17:15下午第四节上课17:40下午第四节下课 18:00下午第四节下课19:00晚上第一节上课 19:10晚上第一节上课19:45晚上第一节下课 19:55晚上第一节下课19:55

57、晚上第二节上课 20:05晚上第二节上课20:40晚上第二节下课 21:00晚上第二节下课EDA技术与项目训练84将“时分”并置,得到下列数据:春季作息时间 夏季作息时间0650064007400730075007400830082508450835093009200950094010351025104510351130112014001420141014301455151515051525155016101600162016451705165517151740180019001810194519551955200520402100EDA技术与项目训练85将数字钟输出的时间(时和分)将数字钟输出的时间(时和分)逐一与上表中的数据进行比较,逐一与上表中的数据进行比较,如果相等,则如果相等,则Q_YQ_Y输出高电平,输出高电平,否则输出低电平。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论