刘国先 张刚平
电子设计自动化(electronic design automation,EDA)技术是依靠功能强大的电子计算机,在EDA工具软件平台上,对以硬件描述语言(hardware description language,HDL)为系统逻辑描述手段完成的设计文件,自动地完成逻辑编辑、化简、分割、综合、优化和仿真,直至下载到可编程逻辑器件CPLD/FPGA或专用集成电路(application specific integrated circuit,ASIC)芯片中,实现既定的电子电路设计功能[1-3]。EDA技术仅限于利用硬件描述语言和EDA软件平台来完成对系统硬件功能的实现,极大地提高了设计效率,缩短了设计周期,节省了设计成本[4]。
实现全自动灭菌器程控器的控制方法很多,可以用标准逻辑器件、可编程控制器PLC以及单片机等方案来实现[5-8]。但这些控制方法的功能修改及调试需要硬件电路的支持,在一定程度上增加了功能修改及系统调试的困难[9]。因此,在设计中采用EDA技术,应用Verilog HDL实现了全自动灭菌器程控器的设计,并利用Altera公司的Quartus II系列软件的集成开发环境进行了综合、仿真,能够达到设计要求,完成系统的控制作用。
全自动灭菌器程控器的运行过程为:①检测门是否关好以及蒸汽运行压力(pa)是否达到要求,其中任何一个没有准备好则进入等待状态,如果上述两个要求都已满足则按运行开关可进入运行程序;②进入运行程序后,即第一次抽真空,抽到设定负压(pn)后,停止抽空,充入蒸汽达到设定正压(pb)后再抽真空,如此循环到第N次(number为设定次数)真空,再达到设定负压(pn)后充入蒸汽进入灭菌过程;③在灭菌过程中不断检测正压,如果正压低于灭菌设定值(pc)则进汽,高于设定值则停止进汽;④当温度达到灭菌温度T(tem为设定温度)后,开始进行计时,达到设定时间后即结束灭菌过程,进入干燥过程并排汽,⑤当压力回到设定正压pb(1)后开始抽真空,并进行干燥计时,达到设定时间后即程序结束回到初始等待状态。其中在运行过程中门将被锁定不可打开,任何时刻,按停止键即停止运行,回到等待状态。
通过以上分析可知,需要有3个压力设定输入(pa,pb,pc,pn),及相对应的3个压力感应输入,1个压力开关(pa)输入。1个真空脉动次数输入(number),1个门位置输入(doorclose),1个门锁位输出。2个时间设定输入(time1,time2),2个温度输入(tem,temsens),1个电机控制输出(motor),2个电磁阀控制(val1,val2)输出。由于此运行过程具有明显的时序逻辑特点,用状态机的形式可以较方便的实现此控制的运行顺序。根据同步状态机的特点将整个运行过程分为4个阶段:准备,真空,灭菌,干燥。另外根据程序运行结构可知需要设定4个寄存器类型的变量,其中包括两个状态变量state,vac,及时间计数变量timer和真空次数计数变量。按照以上要求,该程序的设计如图1所示:
图1 灭菌器功能流程控制图
图中显示,在每个状态即过程中只要按要求将各参数依程序运行要求正确设置,则条件达到后即可进入下一个状态,如条件未达到,则程序在循环时将继续处于原来的状态。只要将各个阶段即4个状态的程序编写正确,程序大部分已完成。
按以上要求的Verilog语言源程序如下:
此程序的特点是模块化非常明显、结构清晰,是Verilog语言的特点和优势。为了更直观地描述, 将程序在Quartus II软件上编译完成后即进行综合得到门级结构图,并加上输入、输出引脚,构成完整的全自动程控器的RTL级结构图,如图2所示。
仿真运行是HDL等硬件描述语言的强大功能之一,虽然与现场环境不可能完全一致,但可以帮助设计者解决逻辑错误,如果在设计时能够将器件时序和时延时间考虑完整,并作好准确的描述,就可以最大程度的模拟真实环境[10-11],对最后生成的电路改动较少,节约了成本。本设计对整个全自动灭菌器程控器用Altera公司的Quartus II软件编译并进行时序仿真。图3所示的是其仿真波形的一部分。该图表示了不同阶段的不同输出的转换的时序关系。
图2 经综合后所得的程控器RTL级电路图
图3 全自动灭菌器控制器时序仿真波形
Verilog HDL具有类似C语言的风格,易于学习和掌握,与传统的原理图输入设计方法相比较Verilog HDL更适用于规模日益增大的数字系统,用Verilog HDL进行大规模数字系统的设计是当前EDA技术发展的趋势,并是一种具有广阔前景的集成电路开发工具[6,10]。
[1]夏宇闻.Verilog数字系统设计教程[M].北京:北京航空航天大学出版社,2007:3-15.
[2]付家才,郭明良,五秀琴.EDA原理与应用[M].北京:化学工业出版社,2006:18-30.
[3]李国丽,朱维勇,栾铭.EDA与数字系统设计[M].北京:机械工业出版社,2004:25-28.
[4]邹彦,庄严,邹宁,等.EDA技术与数字系统设计[M].北京:电子工业出版社,2007:9-12.
[5]郭建,刘建元.硬件描述语言VHDL到Verilog的翻译[J].西北大学学报:自然科学版,2000,30(1):15-19.
[6]高健,张保平,沈庆亮,等.基于VHDL语言的洗衣机控制系统设计[J].数字技术与应用,2010(6):140-142.
[7]陈帅,韩芳,徐小军.数字电路基本逻辑运算的硬件语言描述与应用[J].自动化与仪器仪表,2009(4):134-136.
[8]邓云祥,孟劲松,苏燕辰.Verilog HDL数字电路的设计[J].中国测试技术,2005,31(3):103-104.
[9]沈明发,易清明.用VHDL语言在CPLD/FPGA上实现浮点运算[J].暨南大学学报:自然科学与医学版,2002,23(5):19-24.
[10]王剑秋,单长虹.用VHDL设计离心机控制系统[J].化工自动化及仪表,2002,29(5):41-43.
[11]吴珲.采用VHDL语言进行PLC设计及仿真[J].光机电信息,1999,16(12):7-10.