网站大量收购独家精品文档,联系QQ:2885784924

《EDA技术及应用》第6章VHDL设计应用实例讲义.ppt

《EDA技术及应用》第6章VHDL设计应用实例讲义.ppt

  1. 1、本文档共195页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《EDA技术及应用》第6章VHDL设计应用实例讲义

第6章 VHDL设计应用实例 1 教学内容: 6.1 8位加法器的设计 6.4 正负脉宽数控调制信号发生器的设计 6.5 数字频率计的设计 6.6 数字秒表的设计 2 教学重点: 各设计实例的设计思想,程序设计要点。 3 教学难点:各设计实例的设计思想,程序设计要点。 4 教学要求:在概括讲解各设计实例的设计思想、程序设计要点的基础上,通过统一安排的实验或自行上机与实践,增加学生的综合设计能力和调试能力。 5 课后作业:根据本章讲课内容自拟1~2个左右的作业题。 6.12.2 VHDL源程序 1. 闹钟控制器的设计 1)设计思路 闹钟控制器的外部端口如图6.38所示,各端口的作用如下: (1) ?CLK为外部时钟信号,RESET为复位信号。 (2) 当KEY为高电平(KEY=‘1’)时,表示用户按下数字键(“0”~“9”)。 (3) 当ALARM_BUTTON为高电平时,表示用户按下“ALARM”键。 (4) 当TIME_BUTTON为高电平时,表示用户按下“TIME”键。 (5) 当LOAD_NEW_A为高电平时,控制(闹钟时间寄存器)加载新的闹钟时间值。 (6) 当LOAD_NEW_C为高电平时,控制(时钟计数器)设置新的时间值。 (7) 当SHOW_NEW_TIME为高电平时,控制(8段数码显示电路)显示新的时间值,即用户输入的预置时间;否则,当SHOW_NEW_TIME为低电平时,根据SHOW_A信号的值控制显示当前时间或闹钟时间。此时,当SHOW_A为高电平时,控制显示闹钟时间,否则,显示当前时间。 图6.38 闹钟控制器的外部端口 控制器的功能可以通过有限状态自动机(FSM)的方式来实现。根据设计要求及端口设置,需要五个状态来实现: S0:表示电路初态即正常时钟计数状态,完成计时功能。 S1:接收预置数字输入状态。在状态S0时用户按下“YES”键后进入此状态。在此状态下,显示屏上显示的是用户预置的数字。 S2:设置新的闹钟时间。在状态S1时用户按下“ALARM”键后进入此状态。 S3:设置新的计时器时间。在状态S1时用户按下“TIME”键后进入此状态。 S4:显示闹钟时间。在状态S0时用户直接按下“ALARM”键后进入此状态。在此状态下,显示屏上显示的是所设置的闹钟时间。注意:在此状态下,用户按下“ALARM”键后,显示屏上保持显示闹钟时间,经过一段时间以后,再返回状态S0显示计时器时间。 相应的状态转换及控制如表6.2所示。 表6.2中没有显式说明的控制信号赋值,表示信号的值为零。例如在状态S0,当信号YES =‘1’时,SHOW_NEW_TIME信号的赋值为‘1’,而其他信号LOAD_NEW_A、LOAD_NEW_C和SHOW_A的值此时都赋为‘0’。另外,表中关于“超时”判断处理的处理细节见VHDL源程序中的有关部分。 由于在整个系统中有多个模块需要用到自行设计的数据类型,并且这些数据类型大部分相同,因此我们为了使用上的方便,可设计一个程序包P_ALARM,该程序既可加在调用该程序包的程序前面,也可加在整个系统的顶层设计程序的前面。但是对于一个比较复杂系统的设计,一般是分模块进行设计和调试,所以加在各个调用该程序包的程序前面会比较方便些。程序包P_ALARM的具体设计如下: 2)VHDL源程序 --整个设计中将要用到的程序包定义程序P_ALARM.VHD LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; PACKAGE P_ALARM IS SUBTYPE T_DIGITAL IS INTEGER RANGE 0 TO 9; SUBTYPE T_SHORT IS INTEGER RANGE 0 TO 65535; TYPE T_CLOCK_TIME IS ARRAY (5 DOWNTO 0) OF T_DIGITAL; TYPE T_DISPLAY IS ARRAY (5 DOWNTO 0) OF T_DIGITAL; END PACKAGE P_ALARM; --闹钟控制器源程序CONTROL.VHD LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE WORK.P_ALARM.ALL; ENTITY CONTROL IS PORT(KEY: IN STD

文档评论(0)

2299972 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档