劉國(guó)先 張剛平
電子設(shè)計(jì)自動(dòng)化(electronic design automation,EDA)技術(shù)是依靠功能強(qiáng)大的電子計(jì)算機(jī),在EDA工具軟件平臺(tái)上,對(duì)以硬件描述語(yǔ)言(hardware description language,HDL)為系統(tǒng)邏輯描述手段完成的設(shè)計(jì)文件,自動(dòng)地完成邏輯編輯、化簡(jiǎn)、分割、綜合、優(yōu)化和仿真,直至下載到可編程邏輯器件CPLD/FPGA或?qū)S眉呻娐?application specific integrated circuit,ASIC)芯片中,實(shí)現(xiàn)既定的電子電路設(shè)計(jì)功能[1-3]。EDA技術(shù)僅限于利用硬件描述語(yǔ)言和EDA軟件平臺(tái)來(lái)完成對(duì)系統(tǒng)硬件功能的實(shí)現(xiàn),極大地提高了設(shè)計(jì)效率,縮短了設(shè)計(jì)周期,節(jié)省了設(shè)計(jì)成本[4]。
實(shí)現(xiàn)全自動(dòng)滅菌器程控器的控制方法很多,可以用標(biāo)準(zhǔn)邏輯器件、可編程控制器PLC以及單片機(jī)等方案來(lái)實(shí)現(xiàn)[5-8]。但這些控制方法的功能修改及調(diào)試需要硬件電路的支持,在一定程度上增加了功能修改及系統(tǒng)調(diào)試的困難[9]。因此,在設(shè)計(jì)中采用EDA技術(shù),應(yīng)用Verilog HDL實(shí)現(xiàn)了全自動(dòng)滅菌器程控器的設(shè)計(jì),并利用Altera公司的Quartus II系列軟件的集成開(kāi)發(fā)環(huán)境進(jìn)行了綜合、仿真,能夠達(dá)到設(shè)計(jì)要求,完成系統(tǒng)的控制作用。
全自動(dòng)滅菌器程控器的運(yùn)行過(guò)程為:①檢測(cè)門(mén)是否關(guān)好以及蒸汽運(yùn)行壓力(pa)是否達(dá)到要求,其中任何一個(gè)沒(méi)有準(zhǔn)備好則進(jìn)入等待狀態(tài),如果上述兩個(gè)要求都已滿足則按運(yùn)行開(kāi)關(guān)可進(jìn)入運(yùn)行程序;②進(jìn)入運(yùn)行程序后,即第一次抽真空,抽到設(shè)定負(fù)壓(pn)后,停止抽空,充入蒸汽達(dá)到設(shè)定正壓(pb)后再抽真空,如此循環(huán)到第N次(number為設(shè)定次數(shù))真空,再達(dá)到設(shè)定負(fù)壓(pn)后充入蒸汽進(jìn)入滅菌過(guò)程;③在滅菌過(guò)程中不斷檢測(cè)正壓,如果正壓低于滅菌設(shè)定值(pc)則進(jìn)汽,高于設(shè)定值則停止進(jìn)汽;④當(dāng)溫度達(dá)到滅菌溫度T(tem為設(shè)定溫度)后,開(kāi)始進(jìn)行計(jì)時(shí),達(dá)到設(shè)定時(shí)間后即結(jié)束滅菌過(guò)程,進(jìn)入干燥過(guò)程并排汽,⑤當(dāng)壓力回到設(shè)定正壓pb(1)后開(kāi)始抽真空,并進(jìn)行干燥計(jì)時(shí),達(dá)到設(shè)定時(shí)間后即程序結(jié)束回到初始等待狀態(tài)。其中在運(yùn)行過(guò)程中門(mén)將被鎖定不可打開(kāi),任何時(shí)刻,按停止鍵即停止運(yùn)行,回到等待狀態(tài)。
通過(guò)以上分析可知,需要有3個(gè)壓力設(shè)定輸入(pa,pb,pc,pn),及相對(duì)應(yīng)的3個(gè)壓力感應(yīng)輸入,1個(gè)壓力開(kāi)關(guān)(pa)輸入。1個(gè)真空脈動(dòng)次數(shù)輸入(number),1個(gè)門(mén)位置輸入(doorclose),1個(gè)門(mén)鎖位輸出。2個(gè)時(shí)間設(shè)定輸入(time1,time2),2個(gè)溫度輸入(tem,temsens),1個(gè)電機(jī)控制輸出(motor),2個(gè)電磁閥控制(val1,val2)輸出。由于此運(yùn)行過(guò)程具有明顯的時(shí)序邏輯特點(diǎn),用狀態(tài)機(jī)的形式可以較方便的實(shí)現(xiàn)此控制的運(yùn)行順序。根據(jù)同步狀態(tài)機(jī)的特點(diǎn)將整個(gè)運(yùn)行過(guò)程分為4個(gè)階段:準(zhǔn)備,真空,滅菌,干燥。另外根據(jù)程序運(yùn)行結(jié)構(gòu)可知需要設(shè)定4個(gè)寄存器類型的變量,其中包括兩個(gè)狀態(tài)變量state,vac,及時(shí)間計(jì)數(shù)變量timer和真空次數(shù)計(jì)數(shù)變量。按照以上要求,該程序的設(shè)計(jì)如圖1所示:

圖1 滅菌器功能流程控制圖
圖中顯示,在每個(gè)狀態(tài)即過(guò)程中只要按要求將各參數(shù)依程序運(yùn)行要求正確設(shè)置,則條件達(dá)到后即可進(jìn)入下一個(gè)狀態(tài),如條件未達(dá)到,則程序在循環(huán)時(shí)將繼續(xù)處于原來(lái)的狀態(tài)。只要將各個(gè)階段即4個(gè)狀態(tài)的程序編寫(xiě)正確,程序大部分已完成。
按以上要求的Verilog語(yǔ)言源程序如下:




此程序的特點(diǎn)是模塊化非常明顯、結(jié)構(gòu)清晰,是Verilog語(yǔ)言的特點(diǎn)和優(yōu)勢(shì)。為了更直觀地描述, 將程序在Quartus II軟件上編譯完成后即進(jìn)行綜合得到門(mén)級(jí)結(jié)構(gòu)圖,并加上輸入、輸出引腳,構(gòu)成完整的全自動(dòng)程控器的RTL級(jí)結(jié)構(gòu)圖,如圖2所示。
仿真運(yùn)行是HDL等硬件描述語(yǔ)言的強(qiáng)大功能之一,雖然與現(xiàn)場(chǎng)環(huán)境不可能完全一致,但可以幫助設(shè)計(jì)者解決邏輯錯(cuò)誤,如果在設(shè)計(jì)時(shí)能夠?qū)⑵骷r(shí)序和時(shí)延時(shí)間考慮完整,并作好準(zhǔn)確的描述,就可以最大程度的模擬真實(shí)環(huán)境[10-11],對(duì)最后生成的電路改動(dòng)較少,節(jié)約了成本。本設(shè)計(jì)對(duì)整個(gè)全自動(dòng)滅菌器程控器用Altera公司的Quartus II軟件編譯并進(jìn)行時(shí)序仿真。圖3所示的是其仿真波形的一部分。該圖表示了不同階段的不同輸出的轉(zhuǎn)換的時(shí)序關(guān)系。

圖2 經(jīng)綜合后所得的程控器RTL級(jí)電路圖

圖3 全自動(dòng)滅菌器控制器時(shí)序仿真波形
Verilog HDL具有類似C語(yǔ)言的風(fēng)格,易于學(xué)習(xí)和掌握,與傳統(tǒng)的原理圖輸入設(shè)計(jì)方法相比較Verilog HDL更適用于規(guī)模日益增大的數(shù)字系統(tǒng),用Verilog HDL進(jìn)行大規(guī)模數(shù)字系統(tǒng)的設(shè)計(jì)是當(dāng)前EDA技術(shù)發(fā)展的趨勢(shì),并是一種具有廣闊前景的集成電路開(kāi)發(fā)工具[6,10]。
[1]夏宇聞.Verilog數(shù)字系統(tǒng)設(shè)計(jì)教程[M].北京:北京航空航天大學(xué)出版社,2007:3-15.
[2]付家才,郭明良,五秀琴.EDA原理與應(yīng)用[M].北京:化學(xué)工業(yè)出版社,2006:18-30.
[3]李國(guó)麗,朱維勇,欒銘.EDA與數(shù)字系統(tǒng)設(shè)計(jì)[M].北京:機(jī)械工業(yè)出版社,2004:25-28.
[4]鄒彥,莊嚴(yán),鄒寧,等.EDA技術(shù)與數(shù)字系統(tǒng)設(shè)計(jì)[M].北京:電子工業(yè)出版社,2007:9-12.
[5]郭建,劉建元.硬件描述語(yǔ)言VHDL到Verilog的翻譯[J].西北大學(xué)學(xué)報(bào):自然科學(xué)版,2000,30(1):15-19.
[6]高健,張保平,沈慶亮,等.基于VHDL語(yǔ)言的洗衣機(jī)控制系統(tǒng)設(shè)計(jì)[J].數(shù)字技術(shù)與應(yīng)用,2010(6):140-142.
[7]陳帥,韓芳,徐小軍.數(shù)字電路基本邏輯運(yùn)算的硬件語(yǔ)言描述與應(yīng)用[J].自動(dòng)化與儀器儀表,2009(4):134-136.
[8]鄧云祥,孟勁松,蘇燕辰.Verilog HDL數(shù)字電路的設(shè)計(jì)[J].中國(guó)測(cè)試技術(shù),2005,31(3):103-104.
[9]沈明發(fā),易清明.用VHDL語(yǔ)言在CPLD/FPGA上實(shí)現(xiàn)浮點(diǎn)運(yùn)算[J].暨南大學(xué)學(xué)報(bào):自然科學(xué)與醫(yī)學(xué)版,2002,23(5):19-24.
[10]王劍秋,單長(zhǎng)虹.用VHDL設(shè)計(jì)離心機(jī)控制系統(tǒng)[J].化工自動(dòng)化及儀表,2002,29(5):41-43.
[11]吳琿.采用VHDL語(yǔ)言進(jìn)行PLC設(shè)計(jì)及仿真[J].光機(jī)電信息,1999,16(12):7-10.