资源描述:
《课程设计(论文)-基于vhdl的数字密码锁设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、数字设计数字钟的电子设计班级:04通信学号:姓名:16目录1、设计要求2、总体方案设计2.1总体方框图2.2总体电路实现3、分模块设计实现相关功能3.1译码器3.1.1译码器decoder00的VHDL语言3.1.2译码器的仿真波形3.1.3仿真分析3.2移位寄存器3.2.1移位寄存器REGISTER00的VHDL源程序3.2.2移位寄存器的仿真波形3.2.3仿真分析3.3存储器3.3.1存储器memoryLONG的VHDL源程序3.3.2存储器的仿真波形:3.3.3仿真分析3.4比较器3.4.
2、1比较器COMPARE16的VHDL源程序:163.4.2比较器的仿真波形:3.4.3仿真分析:3.5控制器3.5.1控制器CONTROLLONG的VHDL源程序:3.5.2控制器的仿真波形:3.5.3仿真分析:4、实验中遇到的问题和解决办法和设计的体会4.1实验中遇到的问题和解决办法4.2设计的体会附:参考文献及电路图16一、设计目的:1.通过设计,掌握电子设计的一般思路,学习电子设计的一般方法.2.通过设计,学习掌握MAX-PLUS2的使用方法.二、设计选题通过小组成员唐俊,张君峰,李超讨论
3、,决定做数字钟的设计.三、设计要求设计一个能进行时、分、秒计时的十二小时制或二十四小时制的数字钟,并具有定时与闹钟功能,能在设定的时间发出闹铃音,能非常方便地对小时、分钟和秒进行手动调节以校准时间,每逢整点,产生报时音报时。四、分析要求和总体设计1.根据老师所给设计要求规纳有以下需求的功能:[1].计时功能:这是本数字钟设计的基本功能,每隔一秒钟计时一次,并在显示屏上显示当前时间.[2].闹钟功能:如果当前时间与设置的闹钟时间相同,则扬声器发出报警声.[3].校时功能:设置新的时间作为当前时间.
4、[4].设置闹钟:设置闹钟时间.[5].整点报时:每逢整点则报时.2.根据需求分析,我们采用自顶向下的方法确定数字钟的总体实现思路如下:要实现以上的功能,经过分析我们设计了四个模块.分别是:计时模块,校时功能模块,闹钟功能模块和选择显示模块.根据自顶向下的设计方法确定数字钟的设计方案.为完全实现上面的4个功能,我们进一步向下进行功能划分,得到更详细的设计方案如下:16数字钟计时模块校时功能模块闹钟功能模块选择显示模块模24计数器模60计数器数字钟校时闹钟校时显示设置时间显示计数时间显示闹钟1.各
5、模块具体实现的功能及彼此之间的数据流流动方向:[1].计时模块:计时器的设计采用一般的计数器的设计方法,只是模60的秒计数器满60送进位输出,作为分计数器的CLK时钟信号.同理,模60的分计数器满60送进位输出,作为时计数器的CLK时钟信号,这样就实现了电子时钟计数的雏形,以上是计时模块内部的数据流流向;由于要显示,所以必须还要有一个输出来表示现在的计数值,这个计数值应该送到选择显示模块进行显示,这是计时模块与外部的数据交换.[2].校时功能模块:校时电路用来完成对计时时间以及闹钟时间的修改与校
6、正,修改后的时间应该要送到相应的计数模块作为新计数的起始值,所以要有输出端将修改后的数值送到相应的计数模块.[3].闹钟功能模块:比较当时的时间是否与闹钟设置的时间相等,如果相同则应该发出通知,告诉用户时间到了,有点类似于比较器.因此要能从计时模块获得当时时间,从校时模块获得设置的闹钟时间,要能将结果输出作为提示.[4].选择显示模块根据所在的状态,选择输出正在设置的新计数时间或新闹钟时间或当前计数时间.16一、详细设计过程及遇到的困难与解决方法1.计时模块的设计[1].模60的计数器的设计:(
7、a).实现方案:采用一般的计数器的设计方法,每来一个CLK时钟信号(T为1秒),计数值加1;如果计数到59,输出一个进位,表示一个周期.(b).实现过程中的问题及解决方案:通过以上分析,我做了初步的设计,在机子上输入草稿上的程序后,通过提示,发现以下的几个错误:对于第一个提示错误,我通过将SIGNAL中的BUFFER去掉即可,由于我输出的Q_OUT中定义的是BUFFER,所以为了省时间直接拷贝,粗心而导致的错误.因为这里不是在定义引脚,而只是内部的连接线定义,但BUFFER是相当于带输出缓冲器并
8、可以回读的引脚,所以肯定是错误的.上面这个图是我改正了几个小错后才保存的,其它一些错误的提示就没有在上面.还有两个错误是:16我在定义端口时,定义了输出EN,并且在PROCESS的敏感参数表中列出来了,但在后面却没有用到,所以提示出错.在PROCESS的敏感参数表中忘记写CLK信号,却写了一个输出引脚,这是致命性的错误.在输入过程中的手误,将QL=9写成了QL=’9’,提示出错,明显要么写成QL=”1001”.其它,逻辑上倒没有出错,因为这是参照EDA教材上187页的具有异步复位同步置数功能的