梁丽
摘 要 介绍基于FPGA的微波炉定时系统的设计思想、开发过程和仿真结果。用EDA技术设计电子系统,具有设计效率高、修改快捷、易于升级和性能稳定等一系列优点。
关键字 FPGA;EDA技术;微波炉;定时系统
中图分类号:G642 文献标识码:B
文章编号:1671-489X(2016)20-0047-03
1 前言
以EDA工具为开发环境,以硬件描述语言VHDL为编程语言,以可编程逻辑器件FPGA为设计载体,采用EDA技术自顶向下的电子系统设计,改进传统的电子系统设计观念。这种方法从系统级设计入手,在顶层、方框图级、功能级、门级等分别进行系统描述、功能设计、逻辑设计、电路设计等,由于设计的主要仿真和调试过程是在高层次上完成的,极大地提高了电子系统的设计效率、可靠性和灵活性。
下面以微波炉定时系统的设计为例,介绍在MAX+
PLUSⅡ软件环境下进行设计、测试,基于FPGA芯片进行硬件实现的设计过程。
2 设计要求
设计一种基于FPGA的微波炉定时系统。要求:系统通电后处于复位状态。首先,系统读入烹调时间,并显示在数码管上;然后按START键,系统进入烹调状态,剩余烹调时间在数码管上实时刷新;烹调结束后,数码管显示烹调结束信息,系统回到复位状态。在烹调过程中,按PAUSE键或RESET键,可使系统暂停工作或使系统回到复位状态;在复位状态下,按TEST键可测试数码管工作是否正常[1]。
3 总体设计方案
从系统设计要求出发,自顶向下地将设计细化,使功能具体化、模块化。微波炉定时系统由状态控制器、数据装载器、烹调计时器和动态显示电路等模块构成。将各模块连接起来,用图形输入法形成顶层模块,微波炉定时系统顶层模块连接如图1所示。
4 设计实现
首先进行系统设计,划分各个功能模块,然后借助于EDA工具进行具体的模块设计。采用VHDL语言对各模块进行编程,在MAX+PLUSⅡ环境下对各程序进行编译和仿真验证,创建各模块的器件符号,待建立整体系统顶层文件时调用。
状态控制器 状态控制器的功能是根据输入信号和微波炉所处的状态控制自身工作状态的转换,并输出相应的控制信号。仿真波形如图2所示,测试信号TEST=‘1时,则LD_8888=‘1,指示数据装载器装入用于测试的数据“8888”;置位端SET_T=‘1时,则LD_CLK=‘1,指示数据装载器装入设置的烹调时间数据;启动信号START=‘1时,则COOK=‘1,指示烹调正在进行之中,并提示计时器进行减计数;直到DONE=‘1时,则LD_ DONE=‘1,指示数据装载器装入烹调完毕的状态信息“donE”,才使COOK=‘0。中间信号量CURR_STATE指示出状态控制器的5种状态,分别用0、1、2、3、4来代表。
数据装载器 数据装载器的功能是在状态控制器输出信号的控制下选择定时时间、测试数据或烹调完成等信息的装载。利用3个装载信号的组合LD_8888&LD_DONE&LD_CLK赋给变量TEMP,巧妙地解决装载数据的选择问题。仿真波形如图3所示,当LD_8888=‘1时,输出测试数据,DATA2=“8888”;当LD_CLK=‘1时,输出设置的烹调时间数据,DATA2=“2453”;当LD_DONE=‘1时,输出烹调完毕的状态信息数据,DATA2=“ABCD”,将其转化为数码管显示,应为“donE”;当LOAD=‘1时,表示烹调计时器正处于数据装入状态。
烹调计时器 烹调计时器的功能是实现烹调过程中的时间递减计数,且当计时结束时向状态控制器提供状态信号,以便状态控制器产生烹调完成信号。烹调计时器的内部组成原理图如图4所示,利用两个减法十进制和两个减法六进制计数器的级联,可实现59′59″数之间的计时和初始数据的装载。LOAD=‘1时完成装入功能,COOK=‘1时执行逆计数功能,DATA3为来自于数据装载器的输出数据;MIN_H、MIN_L、SEC_H和SEC_L为完成烹调所剩时间,PLUS和MINUS为控制MIN_L进行加‘1和减‘1的信号输入端;当数码管显示信息为DONE时,指示烹调完成。
动态显示电路 动态显示电路的功能是以动态扫描的方式将各种显示信息显示在4个LED数码管上,4个数码管的8个数据端是分别并联的,由片选信号控制各数码管轮流显示。该模块由片选、扫描、显示译码子模块整合实现。
对整个系统进行方案设计和功能划分,对各模块VHDL程序进行编写、编译和仿真验证。根据系统设计的行为要求和功能要求,对各模块调用各模块的器件符号,按照图1所示逻辑功能连接起来,形成整体系统顶层文件;通过编
译、功能仿真后,设置芯片的管脚位置,最后将执行文件下载到FPGA芯片中,与外围电路一起构成微波炉定时系统的硬件电路,并进行实际测试。
微波炉定时系统的仿真波形图如图5所示。将测试信号TEST置为‘1时,数码管上显示字形“8888”,在置位的过程中,置位端SET_T要始终保持高电平直到置位完成。置入的数为“2828”,当开始信号START为高电平时,整个系统开始工作,进入倒数计时状态。当PAUSE置为‘1时,暂停工作,仿真波形图中系统暂停时的烹调剩余时间是“2821”;PAUSE回到电平时,继续工作。
5 结语
EDA设计工具和可编程逻辑器件是现代电子技术的基础。以VHDL硬件描述语言进行设计,将微波炉定时系统的核心部分集成在一片FPGA芯片内,可以通过软件编程的方法对其硬件结构和工作方式进行重构,使得硬件的设计可以如同软件设计那样方便快捷,为电子系统的设计带来极大的灵活性和通用性。
参考文献
[1]徐志军,徐光辉.CPLD/FPGA的开发与应用[M].北京:电子工业出版社,2002.