教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 专业资料 >

基于-EDA的万年历设计(2)

来源:网络收集 时间:2026-09-13
导读: BEGIN IF CLKEVENT AND CLK=1 THEN Q11=Q11+1; IF Q11=9 THEN Q11=(OTHERS=0); Q22=Q22+1; END IF; IF Q22=2 AND Q11=3 THEN Q22=0000;Q11=0000;COUT=1; ELSE COUT=0; END IF; END IF; 10 / 30 11 / 30 END PROCESS

BEGIN

IF CLK'EVENT AND CLK='1' THEN

Q11<=Q11+1;

IF Q11=9 THEN Q11<=(OTHERS=>'0');

Q22<=Q22+1;

END IF;

IF Q22=2 AND Q11=3 THEN

Q22<="0000";Q11<="0000";COUT<='1';

ELSE COUT<='0';

END IF;

END IF;

10 / 30

11 / 30

END PROCESS; Q1<=Q11;Q2<=Q22;

END;

(2

)时序仿真

由上时序仿真图所示,记满24个时钟脉冲,COUT 输出一个进位脉冲,正确,满足设计要求。

(3)元件图

3.1.3天计时模块

(1)VHDL 程序

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY TIAN IS

PORT( PANDUAN :IN STD_LOGIC_VECTOR(1 DOWNTO 0);

CLK :IN STD_LOGIC;

CQ1 :OUT STD_LOGIC_VECTOR (3 DOWNTO 0);

CQ2 :OUT STD_LOGIC_VECTOR (3 DOWNTO 0);

COUT :OUT STD_LOGIC);

END;

ARCHITECTURE ONE OF TIAN IS

SIGNAL CQ3,CQ4:STD_LOGIC_VECTOR(3 DOWNTO 0);

SIGNAL PAN:STD_LOGIC_VECTOR(1 DOWNTO 0);

BEGIN

PROCESS(CLK,PANDUAN)

BEGIN

IF CLK'EVENT AND CLK='1' THEN

CQ3<=CQ3+1;

IF CQ3=9 THEN CQ3<=(OTHERS=>'0');

CQ4<=CQ4+1;

END IF;

PAN<=PANDUAN;

CASE PAN IS

WHEN "00"=>IF CQ3="0001" AND CQ4="0011" THEN CQ3<="0001";CQ4<="0000";COUT<='1';ELSE COUT<='0';END IF;

WHEN "01"=>IF CQ3="0000" AND CQ4="0011" THEN CQ3<="0001";CQ4<="0000";COUT<='1';ELSE COUT<='0';END IF;

WHEN "10"=>IF CQ3="1000" AND CQ4="0010" THEN CQ3<="0001";CQ4<="0000";COUT<='1';ELSE COUT<='0';END IF;

WHEN "11"=>IF CQ3="1001" AND CQ4="0010" THEN CQ3<="0001";CQ4<="0000";COUT<='1';ELSE COUT<='0';END IF;

WHEN OTHERS=>NULL;

12 / 30

END CASE;

END IF;

CQ1<=CQ3;

CQ2<=CQ4;

END PROCESS;

END;

(2)时序仿真

当PUANDUAN=‘00’时,计满31个时钟脉冲,COUT输出一个进位脉冲,正确,满足设计要求;

当PUANDUAN=‘01’时,计满30个时钟脉冲,COUT输出一个进位脉冲,正确,满足设计要求;

当PUANDUAN=‘10’时,计满29个时钟脉冲,COUT输出一个进位脉冲,正

13 / 30

14 / 30 确,满足设计要求;

当PUANDUAN=‘10’时,计满

28个时钟脉冲,COUT 输出一个进位脉冲,正确,满足设计要求;

(3)元件图

3.1.4月计时模块

(1)VHDL 程序

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY MONTH IS

port(clk :IN STD_LOGIC;

run :IN STD_LOGIC;

cout :OUT STD_LOGIC;

pan :OUT STD_LOGIC_VECTOR(1 DOWNTO 0);

cq1,cq2 :OUT STD_LOGIC_VECTOR(3 DOWNTO 0));

END ;

ARCHITECTURE behav OF MONTH IS

signal cq3,cq4: STD_LOGIC_VECTOR (3 DOWNTO 0);

signal cq5: STD_LOGIC_VECTOR (7 DOWNTO 0);

BEGIN

PROCESS(clk)

BEGIN

IF clk'EVENT and clk='1' THEN

cq3<=cq3+1;

IF cq3=9 THEN cq4<=cq4+1;cq3<="0000"; END IF;

IF cq3=2 and cq4=1 THEN cq3<="0001";cq4<="0000";cout<='1';ELSE cout<='0';

END IF;

END IF;

cq5<=cq4&cq3;

CASE cq5 IS

WHEN "00000001"=>pan<="00"; --一月

WHEN "00000010"=>if run='1' then pan<="11";else pan<="10";end if; --—二月WHEN "00000011"=>pan<="00"; --三月

WHEN "00000100"=>pan<="01"; --四月

WHEN "00000101"=>pan<="00"; --五月

WHEN "00000110"=>pan<="01"; --六月

15 / 30

WHEN "00000111"=>pan<="00"; --七月

WHEN "00001000"=>pan<="00"; --八月

WHEN "00001001"=>pan<="01"; --九旁

WHEN "00010000"=>pan<="00"; --十月

WHEN "00010001"=>pan<="01"; --十一月

WHEN "00010010"=>pan<="00"; --十二月

WHEN others=>NULL;

END CASE;

cq1<=cq3;

cq2<=cq4;

END PROCESS;

END;

(2)时序仿真

从仿真图中可以看出,计满12时钟有一个进位,当run=0(即平年)时,输出pun=‘10’(即二月为28天),当run=1(即闰年)时,输出pun=‘11’(即二月为29天),当月份为1,3,5,7,8,10,12时输出pun=‘00’(即该月为31天),

16 / 30

当月份为4,6,9,11时,输出pun=‘01’(即该月为30天)。正确,满足设计要求。

3.1.5年低位计时模块

(1)VHDL程序

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY YEAR IS

PORT(CLK:IN STD_LOGIC;

Y1,Y2:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);

RUN,COUT:OUT STD_LOGIC);

END YEAR;

ARCHITECTURE ONE OF YEAR IS

SIGNAL Q1,Q2,Q3:STD_LOGIC_VECTOR(3 DOWNTO 0);

BEGIN

PROCESS(CLK)

BEGIN

IF CLK'EVENT AND CLK='1' THEN

Q1<=Q1+1;

IF Q1=9 THEN Q1<=(OTHERS=>'0');

Q2<=Q2+1;

END IF;

IF Q2=9 AND Q1=9 THEN

Q2<="0000";Q1<="0000";COUT<='1';

ELSE COUT<='0';

END IF;

17 / 30

END IF;

END PROCESS;

PROCESS(CLK)

BEGIN

IF CLK'EVENT AND CLK='1' THEN --每记四次数为闰年

Q3<=Q3+1;

IF Q3=3 THEN Q3<=(OTHERS=>'0');

RUN<='1';

ELSE RUN <='0';

END IF;

END IF;

Y1<=Q1;Y2<=Q2;

END PROCESS;

END;

(2)时序仿真

…… 此处隐藏:2706字,全部文档内容请下载后查看。喜欢就下载吧 ……

基于-EDA的万年历设计(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/265410.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)