CPLD大作业电子时钟进制(两种实现方法)_第1页
CPLD大作业电子时钟进制(两种实现方法)_第2页
CPLD大作业电子时钟进制(两种实现方法)_第3页
CPLD大作业电子时钟进制(两种实现方法)_第4页
CPLD大作业电子时钟进制(两种实现方法)_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、CPLD大作业报告 电子时钟设计姓名:班级:控制专研-15学号:实验日期:2015年12月15日一、实验内容:1.使用CPLD设计电子钟电路框图,并对主要功能进行解释;2.设计小时、分、秒处理功能模块的VHDL程序;二、实验要求:1.编写小时、分、秒处理功能模块编程。2.对仿真图形进行分析,对关键处的时序进行解释。3.每个人的小时、分、秒数都不同。根据任务布置,本设计的小时、分、秒数分别为24、43、43。三、 模块设计1. 一个模块实现的数字钟设计方案(1)时钟VHDL源程序LIBRARY ieee; USE ieee.std_logic_1164.all;ENTITY clk43 ISPO

2、RT( CLRN,LDN,EN,CLK : IN STD_LOGIC; Sa, Ma, Ha : IN INTEGER RANGE 0 TO 9; Sb, Mb : IN INTEGER RANGE 0 TO 4; Hb : IN INTEGER RANGE 0 TO 2; QSa,QMa,QHa : OUT INTEGER RANGE 0 TO 9; QSb,QMb : OUT INTEGER RANGE 0 TO 4; QHb : OUT INTEGER RANGE 0 TO 2 );END clk43;ARCHITECTURE a OF clk43 ISBEGINPROCESS (CLK

3、)VARIABLE tmpsa,tmpma,tmpha : INTEGER RANGE 0 TO 9;VARIABLE tmpsb, tmpmb : INTEGER RANGE 0 TO 4;VARIABLE tmphb : INTEGER RANGE 0 TO 2; BEGIN IF CLRN='0' THEN tmpsb := 0; tmpsa := 0; tmpmb := 0; tmpma := 0; tmphb := 0; tmpha := 0; ELSE IF (CLK'event AND CLK='1') THEN IF LDN='0

4、' THEN tmpsa:=Sa; tmpsb:=Sb; tmpma:=Ma; tmpmb:=Mb; tmpha:=Ha; tmphb:=Hb; ELSIF EN='1' THEN IF (tmpsb=4 AND tmpsa=2 AND tmpmb=4 AND tmpma=2) THEN IF (tmphb=2 AND tmpha=3) THEN tmpha:=0; tmphb:=0 ; ELSIF tmpha=9 THEN tmpha:=0; tmphb:=tmphb+1; ELSE tmpha:=tmpha+1; END IF; END IF; IF (tmpsb=

5、4 AND tmpsa=2) THEN IF (tmpmb=4 AND tmpma=2) THEN tmpmb:=0; tmpma:=0; ELSIF tmpma=9 THEN tmpma:=0;tmpmb:=tmpmb+1; ELSE tmpma:=tmpma+1; END IF; END IF; IF (tmpsb=4 AND tmpsa=2) THEN tmpsa:=0;tmpsb:=0; ELSIF tmpsa=9 THEN tmpsa:=0;tmpsb:= tmpsb+1; ELSE tmpsa := tmpsa+1; END IF; END IF; END IF; END IF;

6、QSa<=tmpsa; QSb<=tmpsb; QMa<=tmpma; QMb<=tmpmb; Qha<=tmpha; Qhb<=tmphb;END PROCESS ;END a;以上程序实现了,用统一化整体模块完成了对时钟的时、分、秒的相应的进制设计。其中,在时钟模块的功能端“CLRN”、 “LDN”、“EN”同时为1时,在“CLK”有一个时钟信号的上升沿时,输出“QSa”自行加1,每到加至43时,自行向分的个位进1,同时秒的十位和个位置为0,分钟和小时的计数功能与之类似。当“LDN”为0,“CLRN”为1,“EN”为1时,时钟模块实现加载功能。(2)原理

7、连接图图1 时钟原理接线图(3)波形仿真输出端口自下而上分别是:QSb(秒的十位)、QSa(秒的个位)、QMb(分的十位)、QMa(分的个位)、QHb(时的十位)、QMa(时的个位)。时钟电路秒的进制仿真图(9s到10s)时钟电路秒的进制仿真图(43s到1min)时钟电路秒的进制仿真图(42min:42s到1h)时钟电路秒的进制仿真图(23:42:42到00:00:00)2. 三个模块实现的数字钟设计方案(1)时钟VHDL源程序程序1(24进制(时)计数器)LIBRARY ieee; USE ieee.std_logic_1164.all;USE ieee.std_logic_unsigned

8、.all;ENTITY cout24_v ISPORT( CLRN,LDN,EN,CLK: IN STD_LOGIC; Da: IN STD_LOGIC_VECTOR(3 downto 0); Db: IN STD_LOGIC_VECTOR(2 downto 0); Qa : OUT STD_LOGIC_VECTOR(3 downto 0); Qb : OUT STD_LOGIC_VECTOR(2 downto 0) );END cout24_v;ARCHITECTURE a OF cout24_v IS BEGIN PROCESS (Clk) VARIABLE tmpa :STD_LOGIC

9、_VECTOR(3 downto 0); VARIABLE tmpb :STD_LOGIC_VECTOR(2 downto 0); BEGINIF CLRN='0' THEN tmpb := "000" tmpa := "0000" ELSE IF (CLK'event AND CLK='1') THEN IF LDN='0' THEN tmpa :=Da; tmpb:=Db; ELSIF EN='1' THEN IF tmpa="1001" THEN tmpa:

10、="0000" tmpb:=tmpb+1; ELSIF (tmpb="010" AND tmpa="0011") THEN tmpb:="000" tmpa:="0000" ELSE tmpa := tmpa+1; END IF; END IF; END IF; END IF; Qa <= tmpa; Qb <= tmpb; END PROCESS ;END a;程序2(43进制(分)计数器)LIBRARY ieee; USE ieee.std_logic_1164.all;USE

11、ieee.std_logic_unsigned.all;ENTITY cout43_min ISPORT( CLRN,LDN,EN,CLK: IN STD_LOGIC; Da: IN STD_LOGIC_VECTOR(3 downto 0); Db: IN STD_LOGIC_VECTOR(2 downto 0); BQa : OUT STD_LOGIC_VECTOR(3 downto 0); BQb : OUT STD_LOGIC_VECTOR(2 downto 0); BRCO : OUT STD_LOGIC );END cout43_min;ARCHITECTURE clck_43 OF

12、 cout43_min IS BEGIN PROCESS (Clk) VARIABLE tmpa :STD_LOGIC_VECTOR(3 downto 0); VARIABLE tmpb :STD_LOGIC_VECTOR(2 downto 0); BEGINIF CLRN='0' THEN tmpb := "000" tmpa := "0000" ELSE IF (Clk'event AND Clk='1') THEN IF LDN='0' THEN tmpa :=Da; tmpb:=Db; EL

13、SIF EN='1' THEN IF tmpa="1001" THEN tmpa:="0000" tmpb:=tmpb+1; ELSIF (tmpb="100" AND tmpa="0010") THEN tmpb:="000" tmpa:="0000" ELSE tmpa := tmpa+1; END IF; END IF; END IF; END IF; BQa <= tmpa; BQb <= tmpb; IF (tmpb="000&

14、quot; AND tmpa="0000" AND EN='1' AND LDN='1' AND CLRN='1') THEN BRCO<= '1'ELSEBRCO<='0'END IF; END PROCESS ;END clck_43;程序3(43进制(秒)计数器)LIBRARY ieee; USE ieee.std_logic_1164.all;USE ieee.std_logic_unsigned.all;ENTITY cout43_sec ISPORT( CLRN,LDN,

15、EN,CLK: IN STD_LOGIC; Da: IN STD_LOGIC_VECTOR(3 downto 0); Db: IN STD_LOGIC_VECTOR(2 downto 0); AQa : OUT STD_LOGIC_VECTOR(3 downto 0); AQb : OUT STD_LOGIC_VECTOR(2 downto 0); ARCO : OUT STD_LOGIC );END cout43_sec;ARCHITECTURE clck_43 OF cout43_sec IS BEGIN PROCESS (Clk) VARIABLE tmpa :STD_LOGIC_VEC

16、TOR(3 downto 0); VARIABLE tmpb :STD_LOGIC_VECTOR(2 downto 0); BEGINIF CLRN='0' THEN tmpb := "000" tmpa := "0000" ELSE IF (Clk'event AND Clk='1') THEN IF LDN='0' THEN tmpa :=Da; tmpb:=Db; ELSIF EN='1' THEN IF tmpa="1001" THEN tmpa:=&qu

17、ot;0000" tmpb:=tmpb+1; ELSIF (tmpb="100" AND tmpa="0010") THEN tmpb:="000" tmpa:="0000" ELSE tmpa := tmpa+1; END IF; END IF; END IF; END IF; AQa <= tmpa; AQb <= tmpb; IF (tmpb="000" AND tmpa="0000" AND EN='1' AND LDN='1' AND CLRN='1') THEN ARCO<= '1'ELSEARCO<='0'END IF; END PROCESS ;END clck_43;以上程序实现了,用模块化完成了对时钟的时、分、秒的相应的进制设计。其中,在时钟模块的功能端“CLRN”、“LDN”、“EN”同时为1时,在

温馨提示

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

评论

0/150

提交评论