EDA大作业电信

发布 2022-09-02 20:53:28 阅读 1319

《电子设计自动化》大作业。

班级:姓名:

2024年10月。

目录。1设计要求12系统分析23模块设计24系统**85设计小结及课程体会10

1设计要求。

设计综合数字计时器,时钟基准频率为1mhz,要求实现00分00秒到23分59秒的时间计数。基本设计要求:

1.设置使能控制信号en,当en=0正常工作,en=1计时停止;2.设置系统的清零开关clr,当clr=0正常工作,clr=1计数全部清零;

3.利用max+plusⅱ软件模拟各计数器的工作情况。提高部分要求:

1.将计数器的计数范围由分、秒计时扩展到时、分、秒计时;2.提供整点提示功能,当时计数到达每个整点,系统可自动提示;

3.在计数范围内任意预置时间,实现时钟定时提醒的功能;

2系统分析。

系统可以由计时器,整点报时构成。子模块利用vhdl语言设计。显示:

小时采用24进制,而分钟和秒均60进制。根据题目设计要求:系统的整体组装设计原理图如图所示,整个系统设计划分成大模块:

计时模块;整点报警模块。

3模块设计。

1)秒计数器模块vhdl程序。

library ieee ;use ;

use ;entity second is

port (clk ,rd : instd_logic ;

sec1,sec0:out std_logic_vector(3 downto 0);co: out std_logic );end second;

architecture stu of second isbegin

process( clk ,rd)

variable cnt1: std_logic_vector(3 downto 0);variable cnt0: std_logic_vector(3 downto 0);begin

if rd='1' thencnt1:="0000";cnt0:="0000";

elsif clk'event and clk='1' thenif cnt1="0101"and cnt0="1000" thenco<='1';cnt0:="1001";elsif cnt0<"1001" thencnt0:=cnt0+1;else

cnt0:="0000";if cnt1<"0101" thencnt1:=cnt1+1;else

cnt1:="0000";co<='0';end if;end if;end if;sec1<=cnt1;sec0<=cnt0;end process ;endstu;

2)分计数器模块vhdl程序。

library ieee ;

use ;use ;entity minute is

port (clk ,rd : instd_logic ;

min1,min0:out std_logic_vector(3 downto 0)co: out std_logic );

end minute;

architecture m of minute isbegin

process( clk ,rd)

variable cnt1: std_logic_vector(3 downto 0);variable cnt0: std_logic_vector(3 downto 0);begin

if rd='1' thencnt1:="0000";cnt0:="0000";

elsif clk'event and clk='1' thenif cnt1="0101"and cnt0="1000" thenco<='1';cnt0:="1001";elsif cnt0<"1001" thencnt0:=cnt0+1;elsecnt0:

="0000";if cnt1<"0101" thencnt1:=cnt1+1;else

cnt1:="0000";

co<='0';end if;end if;end if;min1<=cnt1;min0<=cnt0;end process ;endm;

3)时计数器模块vhdl程序。

library ieee;

use entity hour is

port(rst,hclk:in std_logic;

hour0,hour1:buffer std_logic_vector(3 downto 0 ) end hour;

architecture bbb of hour isbegin

process(rst,hclk,hour0,hour1)beginif rst='0' then

hour0<="0000";hour1<="0000";

elsif hclk'event and hclk='1' thenif hour0="0011" and hour1="0010" thenhour0<="0000";hour1<="0000";elsif hour0="1001" thenhour0<="0000";hour1<=hour1+1;else

hour0<=hour0+1;end if;end if;

end process;end bbb;

4)整点报警模块vhdl程序。

library ieee ;

use ;entity alert is

port (m1 ,m0,s1,s0: instd_logic_vector(3 downto 0);clk :in std_logic;

q: out std_logic );end alert;

architectureaaa of baojing isbegin

process( clk )begin

if clk'event and clk='1' then

if m1 ="0000" and m0="0000" and s1="0000" and s0="0000" thenq<='1';elseq<='0';end if;end if;end process ;endaaa;

4系统**。

1)秒计时模块**。

利用60进制计数器完成00到59的循环计数功能,当秒计数至59时,再来一个时钟脉冲则产生进位输出,即co=1;rd作为复位信号高电平有效,即低电平时正常循环计数,高电平清零。

2)分计时模块**。

此**用的程序就是秒**的程序。

3)时计时模块**。

利用24进制计数器完成00到23的循环计数功能,当秒计数至23时,再来一个时钟脉冲则产生进位输出,即co=1;rd作为复位信号低电平有效,即高电平时正常循环计数,低电平清零。

4)报警模块**。

当分、秒均为0时,说明一个整点到来产生一个高电平信号,整点报警。

5设计小结及课程体会。

虽然作业早已布置下来,但由于自己惰性,学习过后的好几周之后才进行的本次作业,mus+plus2软件的操作已经忘记的七七八八了,不得不研究和向同学请教它的使用方法,终于完成了本次作业,过程艰辛,但效果还行。本次作业让我们对所学的知识能有一个更高层次的理解,加强我们综合分析问题和解决问题的能力,进一步培养我们的编程和动手能力,让知识掌握的更加牢固,总之,本次作业收获颇丰。感谢老师提供的这次机会,感谢在本次作业中帮助过我的同学!

EDA大作业

eda技术课程大作业。设计题目 4线 16线译码器设计。学生姓名。学号。专业班级 09电子信息1班 2012年5月26日。4线 8线译码器设计。1.设计背景与设计方案。1.1设计背景。译码器是组合逻辑电路的一个重要器件,它是一种将一种编码转换为另一种编码的逻辑电路,在编码时,每一种二进制 都赋予了特...

EDA大作业

eda技术课程大作业。设计题目 双二选一多路选择器。学生姓名 王行智。学号 201002050002 专业班级 电气自动化技术一班。2012 年 5 月 26日。1.设计背景 在很多时候,要完成一项工作,需要进行两次判断和选择,对于机器和人都是如此,这就需要两个选择器,双2选1多路选择器就应运而生了...

EDA大作业

一 设计方案。1 设计一个汽车尾灯控制器,利用eda软件 max plusii 进行编译及 设计输入可采用vhdl硬件描述语言输入法和原理图输入法,通过 查看设计的可行性,因条件有限,只能进行简单的 实验。2 设计要求。1 汽车尾部左右两侧各有多盏指示灯。2 汽车正常行驶时指示灯都不亮。3 汽车右转...