版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、广西工学院 课程设计论文课程设计论文 课题名称课题名称 微波炉控制器的 FPGA 实现 系 别 理学院 专 业 电子信息科学与技术 班 级 学 号 姓 名 指导教师 韦艳霞 2012 年 9 月 14 日 目 录 第一章 绪 论.1 第一节 课题背景介绍.1 第二章 电子设计自动化概述.2 第一节 VHDL 简介.2 第三章 总体设计.5 第一节 课题的主要内容及基本要求.5 第二节 设计思路.5 第三节 设计方案.6 第四章 模块分析.8 第一节 状态控制电路模块.9 第二节 数据装载电路模块.10 第三节 计时器模块.11 第五章 程序设计及仿真.12 第一节 程序简要说明.12 第二节
2、仿真时序图.13 第六章 硬件调试.13 总 结 .16 致 谢 .17 参考文献.18 附录一 原理图.19 附录二 源程序.20 摘摘 要要 该设计用语言在软件平台上通过编译、模 拟仿真,完成了微波炉控制功能,实现了微波炉的测试、时间设置、烹调计时、 完成提示等设计,并对时钟分频作了一定的探讨。此设计采用了现场可编程逻 辑器件的设计,由控制模块、装载模块、计时模块和显示 模块四大模块组成,而且它可以将所有器件集成在一块芯片上,体积大大减小, 且外围电路很简单,易于实现。 关键词:;微波炉控制器;仿真 , , , , , , , , :;:; ; 第一章 绪 论 第一节 课题背景介绍 一、产
3、品背景介绍 Percy L.Spencer 在 1946 年构想出微波炉的概念,在 1950 年取得专利。 微波炉的运作机制为微波在水中能产生摩擦热的原理。早期微波炉尺码庞大, 重量超过 300 公斤和高度超过 1.5 米,所以主要在大型餐厅和食物市场使用。 第一部家用微波炉是在 1965 年由 Raytheon 集团生产。 二、国内产品发展现状 现在,中国已成为全球最大的微波炉生产基地,据估计,中国微波炉年产 量已达 2000 万台左右,从 2001 年中国市场的需求量来看,约在 700 万台左右。 中国微波炉市场经过前几年的洗牌,已由前几年的 300 多家减少至目前的 100 多家,其中在
4、市场上可统计的仅 30 多家。 洋品牌在早期的微波炉市场份额,几乎占据了绝大部分的市场。但初期由 于微波炉市场属于导入期,价格高,消费者接受的少,自 1996 年以后,惠而浦、 松下等大部分都退出了中国市场,主要以出口为主。1998 年后,外资品牌中以 韩国品牌 LG、三星表现较为突出,逐渐跨入第 2、第 3 名,微波炉第一品牌为 格兰仕。2000 年,美的介入,迅速崛起成为行业第三,三星也逐渐退出市场。 经过 60 年的发展,微波炉已经成为人们日用生活中的必不可少的厨房电器, 大大降低了家庭妇女的工作量和工作强度。据统计,微波炉目前在日本、美国、 西欧等发达国家地区的普及率高达 98%,在中
5、国城镇的普及率也已近 90%。这个 数字甚至超过了彩电和洗衣机的普及程度。 三、产品发展趋势 随着人们生活水平的提高和信息化的发展,家用电器层出不穷,各种功能 也越来越完善,其中微波炉是现代家庭的必备产品,它的质量和性能的高低,将 会极大的影响人们的生活水平和质量。为此,设计一个高质量的微波炉控制系 统是非常有必要的。 微波炉开始进入越来越多的家庭,他给人们的生活带来了极大的方便。微 波炉由 2450MHz 的超高频来加热食物。他省时、省电、方便和卫生,作为现代 的烹饪工具,微波炉的控制器体现着他的重要性能指标。目前大部分微波炉控 制器采用单片机进行设计,带南路比较复杂性能不够灵活。本文采用先
6、进的 EDA 技术,利用 QuartusII 工作平台和 VHDL 设计语言,设计了一种新型的微波 炉控制器芯片,该芯片具有系统复位、时间设定和烹饪计时的功能,用一片 FPGA 芯片实现,所以能设计出一款方便安全操作的微波炉是非常有必要的。 第二章 电子设计自动化概述 第一节 VHDL 简介 随着VLSI、EDA( Electronic Design Automation )工具的迅速发展,用户系 统的设计从单纯的ASIC(Application Specific Integrated Circuit)设计向着系 统单片化SOC(System On a Chip)设计的方向发展。同时网络技术的
7、发展,共享 IP 知识产权的开放式系统设计成为新模式,芯片工艺物理设计与系统设计相分 离,使用户系统设计人员可直接从事芯片设计。多种技术的融合,系统的功能 复合化程度越来越高;对系统设计方法学和工具的要求更高;系统设计日趋软 件硬化、硬件软化,并使两者得到了有机的融合,形成了更为强大的 ESDA( Electronic System Design Automation ) 。 VHDL(Very High Speed Integrated Circuit Hardware Description Language)是 IEEE(Institute of Electrical and Elect
8、ronics Engineers)标准的硬件描述语言,是现代电子系统设计的首选硬件设计计算机 语言。本篇介绍 VHDL 的语法基础、用 VHDL 进行系统设计的基本方法、以及 VHDL 的设计实例等。 从宏观的角度看,VHDL 的语法构成了程序的各组成部分;微观上看 VHDL 的语法是各种语句的运用细节。本章在 VHDL 的特性之后,从这两个角度简要介 绍 VHDL 的语法基础。 硬件描述语言 HDL(Hardware Description Language)诞生于 1962 年。 HDL 是用形式化的方法描述数字电路和设计数字逻辑系统的语言。主要用于描 述离散电子系统的结构和行为。与 SD
9、L(Software Description Language)相 似,经历了从机器码(晶体管和焊接) 、汇编(网表) 、到高级语言(HDL)的过 程。 20 世纪 80 年代美国国防部开发 Very High Speed Integrated Circuit VHSIC,用于描述集成电路的结构和功能。此后,硬件描述语言向标准化方向发 展,1987 年成为 IEEE Standard 1076,称为 VHDL 语言。它也是美国国防部标 准(MIL-STD-454L) 。1993 年该标准增修为 IEEE1164 标准。1996 年,再次加入 电路合成的标准程序和规格,成为 IEEE1076.3
10、 标准。 1995 年 VerilogHDL 也成为 IEEE 标准。VHDL 与 VerilogHDL 一起成为业界 主选的硬件描述语言。 一、VHDL 的特点 应用 VHDL 进行系统设计,有以下几方面的特点。 (一)功能强大 VHDL 具有功能强大的语言结构。它可以用明确的代码描述复杂的控制逻辑 设计。并且具有多层次的设计描述功能,支持设计库和可重复使用的元件生成。 VHDL 是一种设计、仿真和综合的标准硬件描述语言。 (二)可移植性 VHDL 语言是一个标准语言,其设计描述可以为不同的 EDA 工具支持。它可 以从一个仿真工具移植到另一个仿真工具,从一个综合工具移植到另一个综合 工具,
11、从一个工作平台移植到另一个工作平台。此外,通过更换库再重新综合 很容易移植为 ASIC 设计。 (三)独立性 VHDL 的硬件描述与具体的工艺技术和硬件结构无关。设计者可以不懂硬件 的结构,也不必管最终设计实现的目标器件是什么,而进行独立的设计。程序 设计的硬件目标器件有广阔的选择范围,可以是各系列的 CPLD、FPGA 及各种门 阵列器件。 (四)可操作性 由于 VHDL 具有类属描述语句和子程序调用等功能,对于已完成的设计,在 不改变源程序的条件下,只需改变端口类属参量或函数,就能轻易地改变设计 的规模和结构。 (五)灵活性 VHDL 最初是作为一种仿真标准格式出现的,有着丰富的仿真语句和
12、库函数。 使其在任何大系统的设计中,随时可对设计进行仿真模拟。所以,即使在远离 门级的高层次(即使设计尚未完成时) ,设计者就能够对整个工程设计的结构和 功能的可行性进行查验,并做出决策。 二、VHDL 的设计步骤 采用 VHDL 的系统设计,一般有以下 6 个步骤。 (1)要求的功能模块划分; (2)VHDL 的设计描述(设计输入) ; (3)代码仿真模拟(前仿真) ; (4)计综合、优化和布局布线; (5)布局布线后的仿真模拟(后仿真) ; (6)设计的实现(下载到目标器件) 。 三、VHDL 的设计简述 VHDL 描述数字电路系统设计的行为、功能、输入和输出。它在语法上与现 代编程语言相
13、似,但包含了许多与硬件有特殊关系的结构。 VHDL 将一个设计称为一个实体 Entity(元件、电路或者系统) ,并且将它 分成外部的可见部分(实体名、连接)和内部的隐藏部分(实体算法、实现) 。 当定义了一个设计的实体之后,其他实体可以利用该实体,也可以开发一个实 体库。所以,内部和外部的概念对系统设计的 VHDL 是十分重要的。 外部的实体名或连接由实体声明 Entity 来描述。而内部的实体算法或实现 则由结构体 Architecture 来描述。结构体可以包含相连的多个进程 process 或 者组建 component 等其他并行结构。需要说明的是,它们在硬件中都是并行运 行的。 V
14、HDL 程序设计的基本结构如下: 库、程序包 实体 Entity 结构体 Architecture、 进程 process、 组件 component 等 配置 Configuration 表 1 VHDL 程序设计的基本结构 一个实体可以对应一个或者多个结构体。结构体可以包含一个或者多个进 程或者组件。 四、VHDL 的描述风格 设计实体的逻辑功能由 VHDL 的结构体具体描述。用户可以使用不同程度的 语句类型和抽象方式来描述不同程度的设计。例如系统级的、板级的、芯片级 的或者模块级的设计。对于相同的逻辑行为可以有不同的语句表达方式。在 VHDL 结构体中这种不同的描述方式或者说建模方法,通
15、常可归纳为行为 (Behavioral)级描述、数据流(Dataflow)级描述和结构(Structural)级 描述。 (一)行为级描述 通过一组串行的 VHDL 进程,反映设计的功能和算法,而没有直接指明或涉 及实现这些行为的硬件结构,包括硬件特性、连线方式和逻辑行为方式。行为 级描述主要指顺序语句描述,即通常是指含有进程的非结构化的逻辑描述。 (二)数据流级描述 将数据看成从设计的输入端流到输出端,反映从输入数据到输出数据所发 生的立即变换。数据流描述主要是指非结构化的并行语句描述;是建立在用并 行信号赋值语句描述基础上的。数据流描述方式可比较直观地表达底层逻辑行 为。 (三)结构级描述
16、 将设计看成多个功能块的相互连接,并且主要通过功能块的组件例化来表 示。结构级描述方式采用了结构化、模块化的设计思想,适合于大型复杂性设 计。 VHDL 通过这三种描述方法或称描述风格,从不同的侧面描述结构体的行为 方式。其中,行为描述的抽象程度最高,最能体现 VHDL 描述高层次结构和系 统的能力。正是 VHDL 语言的行为描述能力使自顶向下的设计方式成为可能。 在实际应用中,为了能兼顾整个设计的功能、资源和性能几方面的因素, 通常将以上三种描述方式混合使用。 第三章 总体设计 第一节 课题的主要内容及基本要求 要求采用 EDA 技术设计一个微波炉控制器,可完成以下功能: (1)可控制烹调的
17、开关; (2)可设置烹调时间, (假设系统最长的烹调时间为 59 分 59 秒) ; (3)可显示烹调的剩余时间。 第二节 设计思路 现代数字系统设计一般采用自顶向下的方法,其过程大致可分为三个大的 步骤:系统调研;模块的划分;模块的实现。承接一个数字系统设计的课题后, 一般不要急于动手设计,而应对课题作充分的分析和调研,然后确定初步的方 案。 分析:课题的任务、要求、原理和使用条件等。 调研:课题现状并和相同或相近课题进行比较。 现代数字系统设计一般是将其划分为控制器和受控电路两大部分,控制器 由 ASM 图或 MDS 图决定,而受控电路则使用各种通用模块实现。 下面分析微波炉定时器的工作过
18、程及基本要求: 上电后,系统处于复位状态。工作时首先进行烹调时间设置,并使用数码 管显示时间信息,设要求最长的烹调时间为 59 分 59 秒,时间设置完毕后系统 自动回到初始状态;按开始烹调按键进入烹调状态,时间显示数码管按每秒减 1 的倒计时方式显示剩余烹调时间;烹调结束后,系统回到复位状态。 系统要求分析及初步方案的确定: 根据系统的基本要求,着重应考虑如下问题: (1)计时电路的设计:芯片内部产生和外部提供。本例中由外部时钟电路 以 BCD 码的形式提供。 (2)时间设置出错及工作过程的取消等情况的处理:设置一个复位按键。 (3)数码管状态的检测:设置数码管检测按键,按动该按键后,数码管
19、能 够显示“8888”的信息。 (4)时间显示电路:采用 4 位 7 段显示数码管显示,并由芯片直接驱动。 (5)微波管的驱动:设置一个输出驱动控制烹调状态的继电器即可。 第三节 设计方案 微波炉控制器系统可由以下三个电路模块组成:状态控制电路,其功能是 控制微波炉工作过程中的状态转换,并发出相关控制信号;数据装载电路,其 功能是根据控制信号选择定时时间,测试数据或计时完成信息的载入;计时器 电路,其功能是对时钟进行减法计数,提供烹调完成时的状态信号。 微波炉控制器的系统框图如图 1 所示。其中,CLK 为时钟输入信号,时钟 上升沿敏感;RESET 为复位信号,高电平有效时系统复位清零;TES
20、T 为数码显 示管测试信号,高电平有效系统显示 8888;SET_T 高电平有效时允许设置烹饪 时间;KEY 为定时时间输入信号,用于设置烹饪时间的长短,其高到低分别表 示时间分、秒的十位、个位;START 为烹调开始信号,高电平有效时开始烹调; 输出信号 COOK 指示微波炉状态,高电平时表示烹调进行时;SEC0 、SEC1、MIN0、MIN1 分别表示秒个位、秒十位、分个位、分十位。 图 1 微波炉控制器系统框图 微波炉控制器的工作流程图如图 2 所示。 时间输入 时钟输入 复位输入 时间设置 输入 开始按键 数码管测 试输入 分秒 信号 输 出 驱动烹调输出 显示设置时间和 烹饪时间信号
21、 接通电源 初始状态 时间设置 显示 8888 烹调 完成 SET_T TEST? START ? 时间到? N Y N Y N Y N Y 图 2 工作流程图 首先,对系统进行复位清零,使其各电路模块均处于初始状态;当烹饪时 间设置信号 SET_T 有效时,读入时间信号 KEY3.0的取值,此时系统显示设 置的时间信息,再按下 SET_T 确定设置时间完成。按下开始键 START,系统进入 烹调状态,COOK 信号变为高电平,时钟计数器开始减法计数, MIN1、MIN0、SEC1、SEC0 显示剩余烹调时间。烹调结束,系统恢复初始状态。 当系统处于复位清零状态时,按下显像管测试按钮 TEST
22、,将对显像管是否 正常工作进行测试,正常工作时,显像管输出全 8。 第四章 模块分析 第一节 状态控制电路模块 状态控制器的功能根据输入信号和自身当时所处的状态完成状态的转换和 输出相应的控制信号,其模块框图如图 3 所示。其中,输出信号 LD_DONE 指示 数据装载电路载入的烹调结束的状态信息的显示的驱动信息数据;LD_CLK 显示 数据装载电路的设置的时间数据;LD_TEST 指示数据装载电路载入的用于测试 的数据,以显示驱动信息数据;COOK 指示烹饪的状态,并提示计时器进行减法 计算;KEY 为定时时间输入信号,用于设置烹饪时间的长短,其高到低分别表 示时间分、秒的十位、个位。当 L
23、D_DONE 有效时,输出烹调结束数据。当 LD_CLK 有效时,输出烹调的设置时间数据。当 LD_TEST 有效时,输出数码管测 试数据包括 6 个输入信号和 4 个输出信号。 图 3 状态控制电路模块框图 根据微波炉工作流程的描述,分析状态转换条件及输出信号,可以得到如 图 4 所示的微波炉控制器的状态转换图。 TEST/LD_TEST RESET 初 始 状 态 IDLE SET_ CLOCK LAMP_ TEST DONE_ MSG TIMER START USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; USE
24、 IEEE.STD_LOGIC_ARITH.ALL; ENTITY controllor IS PORT( RESET:IN STD_LOGIC; -复位信号 KEY: IN STD_LOGIC_VECTOR(3 DOWNTO 0);-输入时间 SET_T:IN STD_LOGIC;-时间设置信号 START:IN STD_LOGIC;-开始烹调信号 TEST:IN STD_LOGIC;-显示电路测试信号 CLK:IN STD_LOGIC; -时钟脉冲 DONE:IN STD_LOGIC;-完成信号 COOK:OUT STD_LOGIC;-指示烹调状态,提示计时器开始计数 LD_TEST:OU
25、T STD_LOGIC; -指示数据装载电路载入的用于测试的数据 LD_CLK:OUT STD_LOGIC; -指示数据装载电路载入设置时间数据 DATA:OUT STD_LOGIC_VECTOR(15 DOWNTO 0);-16 位数据 LED_SET_T:OUT STD_LOGIC; -LED 显示状态 LD_DONE:OUT STD_LOGIC -LED 显示完成 ); END controllor; ARCHITECTURE rtl OF controllor IS TYPE STATES IS(IDLE,LAMP_TEST,SET_CLOCK,TIMER,DONE_MSG); SIG
26、NAL NXT,CUR:STATES; -2 个信号:下一状态、当前状态 SIGNAL DATATMP:STD_LOGIC_VECTOR(15 DOWNTO 0); SIGNAL SET_T0: STD_LOGIC; -设置时间信号 BEGIN PROCESS(CLK,RESET) -时钟和复位的进程 BEGIN IF RESET=1 THEN -复位时将 IDLE(显示 0000)赋予当前状态 CUR=IDLE; ELSIF CLKEVENT AND CLK=1 THEN CUR=NXT; -如果不是,遇到上边沿则自动跳转下一状态 END IF; END PROCESS; PROCESS(R
27、ESET,KEY) -复位和输入的进程 BEGIN -可以让输入 4 位数字 显示时间 IF RESET = 1 THEN -复位时不论任何状态数码管都将显示 0000 DATATMP 0); ELSE IF KEY(3)EVENT AND KEY(3) = 1 THEN -设置分的十位 IF DATATMP(15 DOWNTO 12) = 0101 THEN -5 自动跳转到 0 DATATMP(15 DOWNTO 12) = 0000; ELSE DATATMP(15 DOWNTO 12) = DATATMP(15 DOWNTO 12) + 1; END IF; -否则自动加 1 END
28、IF; IF KEY(2)EVENT AND KEY(2) = 1 THEN -设置分的个位 IF DATATMP(11 DOWNTO 8) = 1001 THEN -9 自动跳转到 0 DATATMP(11 DOWNTO 8) = 0000; ELSE DATATMP(11 DOWNTO 8) = DATATMP(11 DOWNTO 8) + 1; END IF; -否则自动加 1 END IF; IF KEY(1)EVENT AND KEY(1) = 1 THEN -设置秒的十位 IF DATATMP(7 DOWNTO 4) = 0101 THEN -5 自动跳转到 0 DATATMP(7
29、 DOWNTO 4) = 0000; ELSE DATATMP(7 DOWNTO 4) = DATATMP(7 DOWNTO 4) + 1; END IF; -否则自动加 1 END IF; IF KEY(0)EVENT AND KEY(0) = 1 THEN -设置秒的个位 IF DATATMP(3 DOWNTO 0) = 1001 THEN -9 自动跳转到 0 DATATMP(3 DOWNTO 0) = 0000; ELSE DATATMP(3 DOWNTO 0) = DATATMP(3 DOWNTO 0) + 1; END IF; END IF; -否则自动加 1 END IF; DA
30、TA = DATATMP; END PROCESS; PROCESS(SET_T,RESET) -设置时间和复位进程 BEGIN IF RESET = 1 THEN -复位时设置时间变为低电平 SET_T0 = 0; ELSIF SET_TEVENT AND SET_T = 1 THEN -按下 SET_T 键时 SET_T0 = NOT SET_T0; -SET_T 非它前之状态 END IF; IF SET_T0 = 1 THEN LED_SET_T = 1; -赋予 SET_T 持续电平 ELSE LED_SET_T = 0; -赋予 SET_T 持续电平 END IF; END PRO
31、CESS; PROCESS(CLK,CUR,SET_T,START,TEST,DONE) IS BEGIN NXT=IDLE; -将 IDLE 载入 NXT LD_TEST=0; -复位 LD_DONE=0; LD_CLK=0; COOK -译码器显示测试状态 LD_TEST=1; COOK -烹调时间测试状态 LD_CLK=1; COOK -完成信息显示状态 LD_DONE=0; COOK -初始状态定义 IF TEST=1 THEN NXT=LAMP_TEST; -设置 TEST LD_TEST=1; ELSIF SET_T0=1 THEN -设置 SET_T NXT=SET_CLOCK;
32、 LD_CLK=1; ELSIF START=1 AND DONE=0 THEN -设置计时模式 NXT=TIMER; COOK IF DONE=1 THEN -设置计时完成 NXT=DONE_MSG; LD_DONE=0; ELSE NXT=TIMER; COOKNULL; END CASE; END PROCESS; END rtl; - -数据装载电路的 VHDL 实现如下: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; ENTITY loader IS PORT( DATAIN:IN S
33、TD_LOGIC_VECTOR(15 DOWNTO 0); -输入 16 位数据 LD_TEST:IN STD_LOGIC; LD_CLK:IN STD_LOGIC; LD_DONE:IN STD_LOGIC; DATAOUT:OUT STD_LOGIC_VECTOR(15 DOWNTO 0); -输出 16 位数据 LOAD:OUT STD_LOGIC -选择状态 ); END loader; ARCHITECTURE rtl OF loader IS BEGIN PROCESS(DATAIN,LD_TEST,LD_CLK,LD_DONE) CONSTANT ALLS:STD_LOGIC_V
34、ECTOR(15 DOWNTO 0)-测试信息 :=01000; -显示 8888 CONSTANT DONE:STD_LOGIC_VECTOR(15 DOWNTO 0)-烹调完成信息 :=01101; VARIABLE TEMP:STD_LOGIC_VECTOR(2 DOWNTO 0); BEGIN LOAD-测试 DATAOUT-烹调完成 DATAOUT DATAOUTNULL; END CASE; END PROCESS; END rtl; - -十进制计数器 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UN
35、SIGNED.ALL; ENTITY cnt10 IS PORT( CLK:IN STD_LOGIC; LOAD,CLR:IN STD_LOGIC; -CLR:清除数据 EN:IN STD_LOGIC; -信号使能 DATAIN:IN STD_LOGIC_VECTOR(3 DOWNTO 0); -输入的 4 位数据 Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); -输出的 4 位数据 CARRY_OUT:OUT STD_LOGIC -数据装载 ); END cnt10; ARCHITECTURE rtl OF cnt10 IS SIGNAL TMP:STD_LOGIC_
36、VECTOR(3 DOWNTO 0); -链接输入输出 BEGIN -数据的信号 PROCESS(CLK,LOAD,CLR,EN) BEGIN IF CLR = 1 THEN -当 CLR 高电平,数据变为 0000 TMP= 0000; ELSIF LOAD=1THEN -否则装载输入的数据 TMP=DATAIN; ELSIF CLKEVENT AND CLK=0THEN -上升沿时,执行 10 进制减法 IF EN=1THEN IF TMP=0000THEN -0 跳转到 9 TMP=1001; ELSE -自动减 1 TMP=TMP-1; END IF; END IF; END IF;
37、IF TMP=0000THEN CARRY_OUT=1; -COOK=CARRY_OUT ELSE CARRY_OUT=0; END IF; END PROCESS; Q=TMP; END rtl; - -六进制减法计数器 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY cnt6 IS PORT( CLK:IN STD_LOGIC; LOAD,CLR:IN STD_LOGIC; EN:IN STD_LOGIC; DATAIN:IN STD_LOGIC_VECTOR(3 DOWN
38、TO 0); Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); CARRY_OUT:OUT STD_LOGIC ); END cnt6; ARCHITECTURE rtl OF cnt6 IS SIGNAL TMP:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN PROCESS(CLK,LOAD,CLR,EN) BEGIN IF CLR = 1 THEN TMP= 0000; ELSIF LOAD=1 THEN TMP=DATAIN; ELSIF CLKEVENT AND CLK=0THEN -上升沿时进行 6 进制减法 IF EN=1THEN I
39、F TMP=0000THEN -0 自动跳转到 5 TMP=0101; ELSE TMP=TMP-1; -否则自动减 1 END IF; END IF; END IF; IF TMP=0000THEN CARRY_OUT=1; -赋值给 COOK ELSE CARRY_OUT=0; END IF; END PROCESS; Q=TMP; END rtl; - -计时电路的 VHDL 实现如下: -计数器电路模块设计 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY counter IS PORT( COOK:IN STD_LOGIC; LOAD
40、,CLR:IN STD_LOGIC; CLK:IN STD_LOGIC; DATA:IN STD_LOGIC_VECTOR(15 DOWNTO 0); SEC0:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); -秒个位 SEC1:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); -秒十位 MIN0:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); -分个位 MIN1:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); -分十位 DONE:OUT STD_LOGIC -完成 ); END counter; ARCHITECT
41、URE rtl OF counter IS -定义十进制和六进制计数器电路模块 COMPONENT cnt10 IS PORT( CLK:IN STD_LOGIC; LOAD,CLR:IN STD_LOGIC; EN:IN STD_LOGIC; DATAIN:IN STD_LOGIC_VECTOR(3 DOWNTO 0); -输入 Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); -输出 CARRY_OUT:OUT STD_LOGIC -状态 ); END COMPONENT cnt10; COMPONENT cnt6 IS PORT( CLK:IN STD_LOGIC;
42、 LOAD,CLR:IN STD_LOGIC; EN:IN STD_LOGIC; DATAIN:IN STD_LOGIC_VECTOR(3 DOWNTO 0); Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); CARRY_OUT:OUT STD_LOGIC ); END COMPONENT cnt6; SIGNAL CLK0:STD_LOGIC; SIGNAL S0:STD_LOGIC; SIGNAL S1:STD_LOGIC; SIGNAL S2:STD_LOGIC; SIGNAL S3:STD_LOGIC; BEGIN -元件例化 CLK0 = NOT CLK; U
43、1:cnt10 PORT MAP(CLK0,LOAD,CLR,COOK,DATA(3 DOWNTO 0),SEC0,S0); U2:cnt6 PORT MAP(S0,LOAD,CLR,COOK,DATA(7 DOWNTO 4),SEC1,S1); U3:cnt10 PORT MAP(S1,LOAD,CLR,COOK,DATA(11 DOWNTO 8),MIN0,S2); U4:cnt6 PORT MAP(S2,LOAD,CLR,COOK,DATA(15 DOWNTO 12),MIN1,S3); DONE=S0 AND S1 AND S2 AND S3; END rtl; - -顶层模块的 VH
44、DL 实现如下: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY top IS PORT( KEY: IN STD_LOGIC_VECTOR(3 DOWNTO 0); -输入 4 位 16 进制 RESET:IN STD_LOGIC; -复位键 SET_T:IN STD_LOGIC; -设置时间 START:IN STD_LOGIC; -开始计时 TEST:IN STD_LOGIC; -测试模式 CLK :IN STD_LOGIC; -输入脉冲 COOK:OUT STD_LOGIC; -烹调状态 LED2:OUT STD_LOGIC_VECTOR(1 DOWNTO 0); -LED 显示状态 SEC0:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); SEC1:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); MIN0:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); MIN1:OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ); END top; ARCHITECTURE rtl OF top
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026贵州黔西南州兴义市峰兴食品有限公司招聘米粉生产工1人备考题库及答案详解(全优)
- 2026浙江绍兴市越城区调解协会选拔专职人民调解员(储备)备考题库及答案详解(必刷)
- 2026白银有色集团股份有限公司所属企业技能操作岗招聘15人备考题库及答案详解(基础+提升)
- 2026河南电力医院社会化招聘7人考试模拟试题及答案解析
- 2026文化和旅游部直属事业单位招聘应届毕业生93人(三北京)考试参考题库及答案解析
- 2026四川阿坝州阿坝县移动公司招聘4人考试参考题库及答案解析
- 2026河北秦皇岛山海关中国长城博物馆招聘见习人员6人考试模拟试题及答案解析
- 2026新疆兵团第四师医共体医院招聘74人笔试备考题库及答案解析
- 2026年光学低通滤波器行业分析报告及未来发展趋势报告
- 2026四川自贡市沿滩区就业创业促进中心招聘第二批次沿滩区公益性岗备考题库附答案详解(轻巧夺冠)
- 机关工会财务审批制度
- 八年级义务教育劳动国测模拟试题
- 2026年职工职业技能竞赛(泵站运行工赛项)参考试指导题库(含答案)
- 招商运营部制度汇编范本
- 影像三基三严培训课件
- 2026年中考物理全真模拟试卷及答案(共五套)
- 68多彩立体卡通风格的六一儿童节游戏总动员模板
- 气象局数据安全制度规范
- 肝内胆管癌护理查房
- 肺结核诊疗指南(2025版)
- 消防官兵交友课件
评论
0/150
提交评论