EDA课程设计《基于VHDL微波炉课程设计》 韦燕霞.doc_第1页
EDA课程设计《基于VHDL微波炉课程设计》 韦燕霞.doc_第2页
EDA课程设计《基于VHDL微波炉课程设计》 韦燕霞.doc_第3页
EDA课程设计《基于VHDL微波炉课程设计》 韦燕霞.doc_第4页
EDA课程设计《基于VHDL微波炉课程设计》 韦燕霞.doc_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

广西工学院 课程设计论文课程设计论文 课题名称课题名称 微波炉控制器的 FPGA 实现 系 别 理学院 专 业 电子信息科学与技术 班 级 学 号 姓 名 指导教师 韦艳霞 2012 年 9 月 14 日 目 录 第一章 绪 论 1 第一节 课题背景介绍 1 第二章 电子设计自动化概述 2 第一节 VHDL 简介 2 第三章 总体设计 5 第一节 课题的主要内容及基本要求 5 第二节 设计思路 5 第三节 设计方案 6 第四章 模块分析 8 第一节 状态控制电路模块 9 第二节 数据装载电路模块 10 第三节 计时器模块 11 第五章 程序设计及仿真 12 第一节 程序简要说明 12 第二节 仿真时序图 13 第六章 硬件调试 13 总 结 16 致 谢 17 参考文献 18 附录一 原理图 19 附录二 源程序 20 摘摘 要要 该设计用 语言在 软件平台上通过编译 模 拟仿真 完成了微波炉控制功能 实现了微波炉的测试 时间设置 烹调计时 完成提示等设计 并对时钟分频作了一定的探讨 此设计采用了现场可编程逻 辑器件 的 设计 由控制模块 装载模块 计时模块和显示 模块四大模块组成 而且它可以将所有器件集成在一块芯片上 体积大大减小 且外围电路很简单 易于实现 关键词 微波炉控制器 仿真 1 第一章 绪 论 第一节 课题背景介绍 一 产品背景介绍 Percy L Spencer 在 1946 年构想出微波炉的概念 在 1950 年取得专利 微波炉的运作机制为微波在水中能产生摩擦热的原理 早期微波炉尺码庞大 重量超过 300 公斤和高度超过 1 5 米 所以主要在大型餐厅和食物市场使用 第一部家用微波炉是在 1965 年由 Raytheon 集团生产 二 国内产品发展现状 现在 中国已成为全球最大的微波炉生产基地 据估计 中国微波炉年产 量已达 2000 万台左右 从 2001 年中国市场的需求量来看 约在 700 万台左右 中国微波炉市场经过前几年的洗牌 已由前几年的 300 多家减少至目前的 100 多家 其中在市场上可统计的仅 30 多家 洋品牌在早期的微波炉市场份额 几乎占据了绝大部分的市场 但初期由 于微波炉市场属于导入期 价格高 消费者接受的少 自 1996 年以后 惠而浦 松下等大部分都退出了中国市场 主要以出口为主 1998 年后 外资品牌中以 韩国品牌 LG 三星表现较为突出 逐渐跨入第 2 第 3 名 微波炉第一品牌为 格兰仕 2000 年 美的介入 迅速崛起成为行业第三 三星也逐渐退出市场 经过 60 年的发展 微波炉已经成为人们日用生活中的必不可少的厨房电器 大大降低了家庭妇女的工作量和工作强度 据统计 微波炉目前在日本 美国 西欧等发达国家地区的普及率高达 98 在中国城镇的普及率也已近 90 这个 数字甚至超过了彩电和洗衣机的普及程度 三 产品发展趋势 随着人们生活水平的提高和信息化的发展 家用电器层出不穷 各种功能 也越来越完善 其中微波炉是现代家庭的必备产品 它的质量和性能的高低 将 会极大的影响人们的生活水平和质量 为此 设计一个高质量的微波炉控制系 统是非常有必要的 微波炉开始进入越来越多的家庭 他给人们的生活带来了极大的方便 微 波炉由 2450MHz 的超高频来加热食物 他省时 省电 方便和卫生 作为现代 的烹饪工具 微波炉的控制器体现着他的重要性能指标 目前大部分微波炉控 制器采用单片机进行设计 带南路比较复杂性能不够灵活 本文采用先进的 EDA 技术 利用 QuartusII 工作平台和 VHDL 设计语言 设计了一种新型的微波 炉控制器芯片 该芯片具有系统复位 时间设定和烹饪计时的功能 用一片 2 FPGA 芯片实现 所以能设计出一款方便安全操作的微波炉是非常有必要的 第二章 电子设计自动化概述 第一节 VHDL 简介 随着VLSI EDA Electronic Design Automation 工具的迅速发展 用户系 统的设计从单纯的ASIC Application Specific Integrated Circuit 设计向着系 统单片化SOC System On a Chip 设计的方向发展 同时网络技术的发展 共享 IP 知识产权的开放式系统设计成为新模式 芯片工艺物理设计与系统设计相分 离 使用户系统设计人员可直接从事芯片设计 多种技术的融合 系统的功能 复合化程度越来越高 对系统设计方法学和工具的要求更高 系统设计日趋软 件硬化 硬件软化 并使两者得到了有机的融合 形成了更为强大的 ESDA Electronic System Design Automation VHDL Very High Speed Integrated Circuit Hardware Description Language 是 IEEE Institute of Electrical and Electronics Engineers 标准的硬件描述语言 是现代电子系统设计的首选硬件设计计算机 语言 本篇介绍 VHDL 的语法基础 用 VHDL 进行系统设计的基本方法 以及 VHDL 的设计实例等 从宏观的角度看 VHDL 的语法构成了程序的各组成部分 微观上看 VHDL 的语法是各种语句的运用细节 本章在 VHDL 的特性之后 从这两个角度简要介 绍 VHDL 的语法基础 硬件描述语言 HDL Hardware Description Language 诞生于 1962 年 HDL 是用形式化的方法描述数字电路和设计数字逻辑系统的语言 主要用于描 述离散电子系统的结构和行为 与 SDL 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 标准 1995 年 VerilogHDL 也成为 IEEE 标准 VHDL 与 VerilogHDL 一起成为业界 主选的硬件描述语言 一 VHDL 的特点 应用 VHDL 进行系统设计 有以下几方面的特点 一 功能强大 3 VHDL 具有功能强大的语言结构 它可以用明确的代码描述复杂的控制逻辑 设计 并且具有多层次的设计描述功能 支持设计库和可重复使用的元件生成 VHDL 是一种设计 仿真和综合的标准硬件描述语言 二 可移植性 VHDL 语言是一个标准语言 其设计描述可以为不同的 EDA 工具支持 它可 以从一个仿真工具移植到另一个仿真工具 从一个综合工具移植到另一个综合 工具 从一个工作平台移植到另一个工作平台 此外 通过更换库再重新综合 很容易移植为 ASIC 设计 三 独立性 VHDL 的硬件描述与具体的工艺技术和硬件结构无关 设计者可以不懂硬件 的结构 也不必管最终设计实现的目标器件是什么 而进行独立的设计 程序 设计的硬件目标器件有广阔的选择范围 可以是各系列的 CPLD FPGA 及各种门 阵列器件 四 可操作性 由于 VHDL 具有类属描述语句和子程序调用等功能 对于已完成的设计 在 不改变源程序的条件下 只需改变端口类属参量或函数 就能轻易地改变设计 的规模和结构 五 灵活性 VHDL 最初是作为一种仿真标准格式出现的 有着丰富的仿真语句和库函数 使其在任何大系统的设计中 随时可对设计进行仿真模拟 所以 即使在远离 门级的高层次 即使设计尚未完成时 设计者就能够对整个工程设计的结构和 功能的可行性进行查验 并做出决策 二 VHDL 的设计步骤 采用 VHDL 的系统设计 一般有以下 6 个步骤 1 要求的功能模块划分 2 VHDL 的设计描述 设计输入 3 代码仿真模拟 前仿真 4 计综合 优化和布局布线 5 布局布线后的仿真模拟 后仿真 6 设计的实现 下载到目标器件 三 VHDL 的设计简述 VHDL 描述数字电路系统设计的行为 功能 输入和输出 它在语法上与现 代编程语言相似 但包含了许多与硬件有特殊关系的结构 VHDL 将一个设计称为一个实体 Entity 元件 电路或者系统 并且将它 4 分成外部的可见部分 实体名 连接 和内部的隐藏部分 实体算法 实现 当定义了一个设计的实体之后 其他实体可以利用该实体 也可以开发一个实 体库 所以 内部和外部的概念对系统设计的 VHDL 是十分重要的 外部的实体名或连接由实体声明 Entity 来描述 而内部的实体算法或实现 则由结构体 Architecture 来描述 结构体可以包含相连的多个进程 process 或 者组建 component 等其他并行结构 需要说明的是 它们在硬件中都是并行运 行的 VHDL 程序设计的基本结构如下 库 程序包 实体 Entity 结构体 Architecture 进程 process 组件 component 等 配置 Configuration 表 1 VHDL 程序设计的基本结构 一个实体可以对应一个或者多个结构体 结构体可以包含一个或者多个进 程或者组件 四 VHDL 的描述风格 设计实体的逻辑功能由 VHDL 的结构体具体描述 用户可以使用不同程度的 语句类型和抽象方式来描述不同程度的设计 例如系统级的 板级的 芯片级 的或者模块级的设计 对于相同的逻辑行为可以有不同的语句表达方式 在 VHDL 结构体中这种不同的描述方式或者说建模方法 通常可归纳为行为 Behavioral 级描述 数据流 Dataflow 级描述和结构 Structural 级 描述 一 行为级描述 通过一组串行的 VHDL 进程 反映设计的功能和算法 而没有直接指明或涉 及实现这些行为的硬件结构 包括硬件特性 连线方式和逻辑行为方式 行为 级描述主要指顺序语句描述 即通常是指含有进程的非结构化的逻辑描述 二 数据流级描述 将数据看成从设计的输入端流到输出端 反映从输入数据到输出数据所发 生的立即变换 数据流描述主要是指非结构化的并行语句描述 是建立在用并 行信号赋值语句描述基础上的 数据流描述方式可比较直观地表达底层逻辑行 为 三 结构级描述 将设计看成多个功能块的相互连接 并且主要通过功能块的组件例化来表 5 示 结构级描述方式采用了结构化 模块化的设计思想 适合于大型复杂性设 计 VHDL 通过这三种描述方法或称描述风格 从不同的侧面描述结构体的行为 方式 其中 行为描述的抽象程度最高 最能体现 VHDL 描述高层次结构和系 统的能力 正是 VHDL 语言的行为描述能力使自顶向下的设计方式成为可能 在实际应用中 为了能兼顾整个设计的功能 资源和性能几方面的因素 通常将以上三种描述方式混合使用 第三章 总体设计 第一节 课题的主要内容及基本要求 要求采用 EDA 技术设计一个微波炉控制器 可完成以下功能 1 可控制烹调的开关 2 可设置烹调时间 假设系统最长的烹调时间为 59 分 59 秒 3 可显示烹调的剩余时间 第二节 设计思路 现代数字系统设计一般采用自顶向下的方法 其过程大致可分为三个大的 步骤 系统调研 模块的划分 模块的实现 承接一个数字系统设计的课题后 一般不要急于动手设计 而应对课题作充分的分析和调研 然后确定初步的方 案 分析 课题的任务 要求 原理和使用条件等 调研 课题现状并和相同或相近课题进行比较 现代数字系统设计一般是将其划分为控制器和受控电路两大部分 控制器 由 ASM 图或 MDS 图决定 而受控电路则使用各种通用模块实现 下面分析微波炉定时器的工作过程及基本要求 上电后 系统处于复位状态 工作时首先进行烹调时间设置 并使用数码 管显示时间信息 设要求最长的烹调时间为 59 分 59 秒 时间设置完毕后系统 自动回到初始状态 按开始烹调按键进入烹调状态 时间显示数码管按每秒减 1 的倒计时方式显示剩余烹调时间 烹调结束后 系统回到复位状态 系统要求分析及初步方案的确定 根据系统的基本要求 着重应考虑如下问题 1 计时电路的设计 芯片内部产生和外部提供 本例中由外部时钟电路 以 BCD 码的形式提供 2 时间设置出错及工作过程的取消等情况的处理 设置一个复位按键 3 数码管状态的检测 设置数码管检测按键 按动该按键后 数码管能 够显示 8888 的信息 6 4 时间显示电路 采用 4 位 7 段显示数码管显示 并由芯片直接驱动 5 微波管的驱动 设置一个输出驱动控制烹调状态的继电器即可 第三节 设计方案 微波炉控制器系统可由以下三个电路模块组成 状态控制电路 其功能是 控制微波炉工作过程中的状态转换 并发出相关控制信号 数据装载电路 其 功能是根据控制信号选择定时时间 测试数据或计时完成信息的载入 计时器 电路 其功能是对时钟进行减法计数 提供烹调完成时的状态信号 微波炉控制器的系统框图如图 1 所示 其中 CLK 为时钟输入信号 时钟 上升沿敏感 RESET 为复位信号 高电平有效时系统复位清零 TEST 为数码显 示管测试信号 高电平有效系统显示 8888 SET T 高电平有效时允许设置烹饪 时间 KEY 为定时时间输入信号 用于设置烹饪时间的长短 其高到低分别表 示时间分 秒的十位 个位 START 为烹调开始信号 高电平有效时开始烹调 输出信号 COOK 指示微波炉状态 高电平时表示烹调进行时 SEC0 SEC1 MIN0 MIN1 分别表示秒个位 秒十位 分个位 分十位 图 1 微波炉控制器系统框图 微波炉控制器的工作流程图如图 2 所示 时间输入 时钟输入 复位输入 时间设置 输入 开始按键 数码管测 试输入 分秒 信号 输 出 驱动烹调输出 显示设置时间和 烹饪时间信号 7 接通电源 初始状态 时间设置 显示 8888 烹调 完成 SET T TEST START 时间到 N Y N Y N Y N Y 图 2 工作流程图 首先 对系统进行复位清零 使其各电路模块均处于初始状态 当烹饪时 间设置信号 SET T 有效时 读入时间信号 KEY 3 0 的取值 此时系统显示设 置的时间信息 再按下 SET T 确定设置时间完成 按下开始键 START 系统进入 烹调状态 COOK 信号变为高电平 时钟计数器开始减法计数 MIN1 MIN0 SEC1 SEC0 显示剩余烹调时间 烹调结束 系统恢复初始状态 当系统处于复位清零状态时 按下显像管测试按钮 TEST 将对显像管是否 正常工作进行测试 正常工作时 显像管输出全 8 8 第四章 模块分析 第一节 状态控制电路模块 状态控制器的功能根据输入信号和自身当时所处的状态完成状态的转换和 输出相应的控制信号 其模块框图如图 3 所示 其中 输出信号 LD DONE 指示 数据装载电路载入的烹调结束的状态信息的显示的驱动信息数据 LD CLK 显示 数据装载电路的设置的时间数据 LD TEST 指示数据装载电路载入的用于测试 的数据 以显示驱动信息数据 COOK 指示烹饪的状态 并提示计时器进行减法 计算 KEY 为定时时间输入信号 用于设置烹饪时间的长短 其高到低分别表 示时间分 秒的十位 个位 当 LD DONE 有效时 输出烹调结束数据 当 LD CLK 有效时 输出烹调的设置时间数据 当 LD TEST 有效时 输出数码管测 试数据 包括 6 个输入信号和 4 个输出信号 图 3 状态控制电路模块框图 根据微波炉工作流程的描述 分析状态转换条件及输出信号 可以得到如 图 4 所示的微波炉控制器的状态转换图 9 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 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 OUT 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 SIGNAL 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 赋予当前状态 21 CUR IDLE ELSIF CLK EVENT AND CLK 1 THEN CUR NXT 如果不是 遇到上边沿则自动跳转下一状态 END IF END PROCESS PROCESS RESET 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 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 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 22 DATATMP 3 DOWNTO 0 DATATMP 3 DOWNTO 0 1 END IF END IF 否则自动加 1 END IF DATA DATATMP END PROCESS PROCESS SET T RESET 设置时间和复位进程 BEGIN IF RESET 1 THEN 复位时设置时间变为低电平 SET T0 0 ELSIF SET T EVENT 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 PROCESS 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 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 24 PORT DATAIN IN STD 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 VECTOR 15 DOWNTO 0 测试信息 1000100010001000 显示 8888 CONSTANT DONE STD LOGIC VECTOR 15 DOWNTO 0 烹调完成信息 1010101111001101 VARIABLE TEMP STD LOGIC VECTOR 2 DOWNTO 0 BEGIN LOAD 测试 DATAOUT 烹调完成 DATAOUT DATAOUTNULL END CASE END PROCESS END rtl 十进制计数器 25 LIBRARY IEEE USE IEEE STD LOGIC 1164 ALL USE IEEE STD LOGIC UNSIGNED 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 VECTOR 3 DOWNTO 0 链接输入输出 BEGIN 数据的信号 PROCESS CLK LOAD CLR EN BEGIN IF CLR 1 THEN 当 CLR 高电平 数据变为 0000 TMP 0000 ELSIF LOAD 1 THEN 否则装载输入的数据 TMP DATAIN ELSIF CLK EVENT AND CLK 0 THEN 上升沿时 执行 10 进制减法 IF EN 1 THEN IF TMP 0000 THEN 0 跳转到 9 TMP 1001 ELSE 自动减 1 TMP TMP 1 END IF END IF END IF 26 IF TMP 0000 THEN 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 DOWNTO 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 27 ELSIF CLK EVENT AND CLK 0 THEN 上升沿时进行 6 进制减法 IF EN 1 THEN IF TMP 0000 THEN 0 自动跳转到 5 TMP 0101 ELSE TMP TMP 1 否则自动减 1 END IF END IF END IF IF TMP 0000 THEN 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 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 分十位 28 DONE OUT STD LOGIC 完成 END counter ARCHITECTURE 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 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 元件例化 29 CLK0 NOT CLK U1 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 顶层模块的 VHDL 实现如下 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 rt

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论