欢迎来到天天文库
浏览记录
ID:39548716
大小:465.50 KB
页数:6页
时间:2019-07-06
《eda 实验四61》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验四 EDA技术设计性实验-数字钟的设计林美浪10电信一120101003161一、实验目的为了使学生有效加深对数字系统的分析和设计方法,熟练用EDA工具完成对数字系统的设计及仿真过程;安排本“设计性实验”。本实验由学生自行拟定实验电路、实验步骤并进行独立实验主,学会系统设计、调试、仿真及故障诊断、排除方法。二、实验题目数字钟的设计1.任务要求:(1)设计一个数字钟。(2)具有时,分,秒计数显示功能,以24小时循环计时。(3)具有清零,调节小时、分钟功能。(4)具有整点报时功能,整LED灯花样显示。2.设计说明提示(1)数字钟的原理框图如图S4-1所示。控制器分频器译码驱动显示器键盘
2、系统时钟图S4-1(2)系统时钟可由实验箱上的时钟源经分频得到。功能键可由实验箱上的按键开关实现。三、实验设备及器材:1.GW48EDA/SOPC+PK2实验系统。四、程序设计源码1、秒计数器模块的VHDL语言:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYsecondISPORT(clk,reset,setmin:STD_LOGIC;enmin:OUTSTD_LOGIC;daout:OUTSTD_LOGIC_VECTOR(6DOWNTO0));ENDENTITYsecond;AR
3、CHITECTUREfunOFsecondISSIGNALcount:STD_LOGIC_VECTOR(6DOWNTO0);SIGNALenmin_1,enmin_2:STD_LOGIC;--enmin_1为59秒时的进位信号BEGIN--enmin_2由clk调制后的手动调分脉冲信号串daout<=count;enmin_2<=(setminandclk);--setmin为手动调分控制信号,高电平有效enmin<=(enmin_1orenmin_2);--enmin为向分进位信号PROCESS(clk,reset,setmin)BEGINIF(reset='0')THENcount
4、<="0000000";--若reset为0,则异步清零ELSIF(clk'eventandclk='1')then--否则,若clk上升沿到IF(count(3downto0)="1001")then--若个位计时恰好到"1001"即9IF(count<16#60#)then--又若count小于16#60#,即60HIF(count="1011001")then--又若已到59Denmin_1<='1';count<="0000000";--则置进位为1及count复0ELSE--未到59Dcount<=count+7;--则加7,而+7=+1+6,即作"加6校正"ENDIF;EL
5、SE--若count不小于16#60#(即count等于或大于16#60#)count<="0000000";--count复0ENDIF;--ENDIF(count<16#60#)ELSIF(count<16#60#)then--若个位计数未到"1001"则转此句再判count<=count+1;--若count<16#60#则count加1enmin_1<='0'after100ns;--没有发生进位ELSE--否则,若count不小于16#60#count<="0000000";--则count复0ENDIF;--ENDIF(count(3DOWNTO0)="1001")ENDI
6、F;--ENDIF(reset='0')ENDPROCESS;ENDfun;2、分计数器模块的VHDL语言:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYminuteISPORT(clk,clk1,reset,sethour:INSTD_LOGIC;enhour:OUTSTD_LOGIC;daout:OUTSTD_LOGIC_VECTOR(6DOWNTO0));ENDENTITYminute;ARCHITECTUREfunOFminuteISSIGNALcount:STD_LOGI
7、C_VECTOR(6DOWNTO0);SIGNALenhour_1,enhour_2:STD_LOGIC;--enmin_1为59分时的进位信号BEGIN--enmin_2由clk调制后的手动调时脉冲信号串daout<=count;enhour_2<=(sethourandclk1);--sethour为手动调时控制信号,高电平有效enhour<=(enhour_1orenhour_2);PROCESS(clk,reset,sethour)BE
此文档下载收益归作者所有