《电子设计自动化》大作业。
班级:姓名:
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 汽车右转...