1、EDA大作业电信电子设计自动化大作业班级:姓名:2014年10月目 录1 设计要求 12 系统分析 23 模块设计 24系统仿真 25 设计小结及课程体会 21 设计要求设计综合数字计时器,时钟基准频率为1MHZ,要求实现00分00秒到23分59秒的时间计数。基本设计要求:1. 设置使能控制信号en,当en=0正常工作,en=1计时停止;2. 设置系统的清零开关clr,当clr=0正常工作,clr=1计数全部清零;3. 利用MAX+PLUS软件模拟各计数器的工作情况。提高部分要求:1. 将计数器的计数范围由分、秒计时扩展到时、分、秒计时;2. 提供整点提示功能,当时计数到达每个整点,系统可自动
2、提示;3. 在计数范围内任意预置时间,实现时钟定时提醒的功能;2 系统分析系统可以由计时器,整点报时构成。子模块利用VHDL语言设计。显示:小时采用24进制,而分钟和秒均60进制。根据题目设计要求:系统的整体组装设计原理图如图所示,整个系统设计划分成大模块:计时模块;整点报警模块。3 模块设计(1)秒计数器模块VHDL程序LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; USE IEEE.STD_LOGIC_UNSIGNED.ALL ; ENTITY second ISPORT (CLK ,RD : IN STD_LOGIC ; SEC1,SEC0: O
3、UT STD_LOGIC_VECTOR(3 DOWNTO 0) ; CO: OUT STD_LOGIC ); END second; ARCHITECTURE stu OF second ISBEGINPROCESS( CLK ,RD)VARIABLE cnt1: STD_LOGIC_VECTOR(3 DOWNTO 0);VARIABLE cnt0: STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN IF RD=1 THEN cnt1:=0000; cnt0:=0000; ELSIF CLKEVENT AND CLK=1 THEN IF cnt1=0101AND cnt0=
4、1000 THEN CO=1; cnt0:=1001; ELSIF cnt01001 THEN cnt0:=cnt0+1; ELSE cnt0:=0000; IF cnt10101 THEN cnt1:=cnt1+1; ELSE cnt1:=0000; CO=0; END IF; END IF;END IF;SEC1=cnt1;SEC0=cnt0;END PROCESS ;END stu;(2)分计数器模块VHDL程序LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; USE IEEE.STD_LOGIC_UNSIGNED.ALL ; ENTITY min
5、ute ISPORT (CLK ,RD : IN STD_LOGIC ; min1,min0: OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ; CO: OUT STD_LOGIC ); END minute; ARCHITECTURE m OF minute ISBEGINPROCESS( CLK ,RD)VARIABLE cnt1: STD_LOGIC_VECTOR(3 DOWNTO 0);VARIABLE cnt0: STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN IF RD=1 THEN cnt1:=0000; cnt0:=0000; ELSI
6、F CLKEVENT AND CLK=1 THEN IF cnt1=0101AND cnt0=1000 THEN CO=1; cnt0:=1001; ELSIF cnt01001 THEN cnt0:=cnt0+1; ELSE cnt0:=0000; IF cnt10101 THEN cnt1:=cnt1+1; ELSE cnt1:=0000; CO=0; END IF; END IF;END IF;min1=cnt1;min0=cnt0;END PROCESS ;END m;(3)时计数器模块VHDL程序library ieee;use ieee.std_logic_1164.all;use
7、 ieee.std_logic_unsigned.all;entity hour isport(rst,hclk:in std_logic; hour0,hour1:buffer std_logic_vector(3 downto 0 ) );end hour;architecture bbb of hour is beginprocess(rst,hclk,hour0,hour1) begin if rst=0 then hour0=0000; hour1=0000; elsif hclkevent and hclk=1 then if hour0=0011 and hour1=0010 t
8、hen hour0=0000; hour1=0000; elsif hour0=1001 then hour0=0000; hour1=hour1+1; else hour0=hour0+1; end if; end if; end process ; end bbb; (4)整点报警模块VHDL程序 LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; ENTITY alert ISPORT (m1 ,m0,s1,s0: IN STD_LOGIC_VECTOR(3 DOWNTO 0); CLK : IN STD_LOGIC ; Q: OUT STD_LOG
9、IC ); END alert; ARCHITECTURe aaa OF baojing ISBEGINPROCESS( CLK ) BEGINIF CLKEVENT AND CLK=1 THEN IF m1 =0000 AND m0=0000 AND s1=0000 AND s0=0000 THEN Q=1; ELSE Q=0;END IF; END IF;END PROCESS ;END aaa;4系统仿真(1)秒计时模块仿真利用60进制计数器完成00到59的循环计数功能,当秒计数至59时,再来一个时钟脉冲则产生进位输出,即CO=1;RD作为复位信号高电平有效,即低电平时正常循环计数,高电
10、平清零。(2)分计时模块仿真此仿真用的程序就是秒仿真的程序(3)时计时模块仿真利用24进制计数器完成00到23的循环计数功能,当秒计数至23时,再来一个时钟脉冲则产生进位输出,即CO=1;rd作为复位信号低电平有效,即高电平时正常循环计数,低电平清零。(4)报警模块仿真当分、秒均为0时,说明一个整点到来产生一个高电平信号,整点报警。5设计小结及课程体会虽然作业早已布置下来,但由于自己惰性,学习过后的好几周之后才进行的本次作业,MUS+PLUS2软件的操作已经忘记的七七八八了,不得不研究和向同学请教它的使用方法,终于完成了本次作业,过程艰辛,但效果还行。本次作业让我们对所学的知识能有一个更高层次的理解,加强我们综合分析问题和解决问题的能力,进一步培养我们的编程和动手能力,让知识掌握的更加牢固,总之,本次作业收获颇丰。感谢老师提供的这次机会,感谢在本次作业中帮助过我的同学!
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2