欢迎来到天天文库
浏览记录
ID:1351765
大小:1.20 MB
页数:48页
时间:2017-11-10
《用vhdl语言实现数字钟的设计方案》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、用VHDL语言实现数字钟的设计方案课程设计目的(1)VHDL程序设计、输入——在ise平台上用VHDL描述系统的功能(2)逻辑综合——将源程序编译后,为设计系统选择一个电路实现方案,按照这个方案进行逻辑综合和优化,生成1个电路网表文件(3)功能仿真——检查自己的设计是否达到和完成要求的逻辑功能(4)设计实现——布局、布线及配置,最后生成可以写到芯片中的目标文件(5)时序仿真——是适配到选定的芯片后进行的仿真,它模拟芯片的实际动作,仿真时间模型严格将门级延时计算在内,可以分析出竞争与冒险,时序仿真验证过的电路
2、与实际电路基本上已致。2、课程设计内容及要求2.1设计任务设计实现一个具有带预置数的数字钟,具有显示年月日时分秒的功能。用6个数码管显示时分秒,set按钮产生第一个脉冲时,显示切换年月日,第2个脉冲到来时可预置年份,第3个脉冲到来时可预置月份,依次第4、5、6、7个脉冲到来时分别可预置日期、时、分、秒,第8个脉冲到来后预置结束,正常工作,显示的是时分秒。tn为高电平时,setup有脉冲到达时,预置位加1.否则减1。2.2提高的内容及要求(1)可以采用与教材上不同的设计方法完成以上基本内容。(2)可以在基本内
3、容的基础上增加其它功能。483、VHDL程序设计3.1设计方案VHDL数字钟的设计可采用多种设计方法,各个设计方法各有其优缺点。一,采用一个结构体,多个进程的设计方法。其优点是速度快,但是一个结构体,各个进程的逻辑关系比较复杂,而且代码的可读性,可移植性较差。二,状态机的设计方法,状态机结构简单,当各个状态之间的转换不易处理。三,元件例化的设计方法,元件例化使各个模块之间分得更加有层次,易于读,缺点有可能使各个模块之间存在逻辑关系的冲突。本课程设计,主要采用了元件例化的设计方法实现。3.1.1分频模块直接将
4、实验箱的频率用于数字钟的计数,可能会导致错误,实验箱直接给出的1hz频率可能不够稳定,故需要将1khz的频率输出进行1000分频。本模块直接采用单进程实现设计,本模块还包括一个置数脉冲的设置upd0,upd0按下一次lock加1,lock为000时显示时分秒,为001时显示年月日,为010对年进行置数,为011对月进行置数,为100对日进行置数,为101对时进行置数,为110对分进行置数,为111对秒进行置数,lock,也连接着后面四个计数,置数,模块的lock,以进行模块显示的选择。fclk设置的周期为5
5、ns,在2.5us处实现1000分频,1000分频后的f_clk连接时分秒,年月日计数模块的计数时钟,置数时钟则直接输入,连接两个置数模块。以下程序是实体部分entityfenpinisport(upd0:instd_logic;clk:instd_logic;f_clk:outstd_logic;lock:outstd_logic_vector(2downto0)48);endfenpin;RTL图如下:3.1.2时分秒计数模块时分秒可选用多进程或者单进程的方法,多进程速度快,但是结构复杂。故本设计选用单
6、进程方法。当秒计数到59时向分进位,分计到59且秒为59时向时进位,当计到23时59分59秒时向天进位,同时对时分秒进行清零。程序中主要使用了ifelsifendif;的语句。最后验证表明此设计方法可实现题目要求的功能。以下是程序的实体部分entitys_m_hourisport(clk0:instd_logic;--clk0工作时钟,clk1预置脉冲lock:instd_logic_vector(2downto0);--工作模式选择s0,s1:outstd_logic_vector(3downto0);m
7、0,m1:outstd_logic_vector(3downto0);h0,h1:outstd_logic_vector(3downto0);co:outstd_logic;--_vector(2downto0);--hour产生进位en:instd_logic;co1:outstd_logic----整小时b报时输出);ends_m_hour;RTL图如下:483.1.3时分秒置数模块时分秒置数模块不同于计数模块,置数模块我选用了另一个置数时钟,也可以说是置数脉冲。时分秒置数有使能端口en(高有效),置数
8、使能端口tn,通过tn(tn=0时置数是减1模式,tn=1时是加1模式)判定是加1还是减1。当输入长度为三位的lock为101时对时进行置数,当lock为110时对分进行置数,当lock为111时对秒进行置数。时分秒的置数实现方式可有多种方法,可用状态机,多进程和单进程等方法实现,相比于别的设计方法,单进程的设计方法易于实现,没有复杂的对应关系,而且本功能的实现不许过于复杂的逻辑关系。本设计使用了单进程内部使用嵌
此文档下载收益归作者所有