1 引言?
Petri網(wǎng)是一種系統(tǒng)的、數(shù)學(xué)的和圖形的描述和分析工具[1],隨著超大規(guī)模集成電路FPGA和CPLD的發(fā)展,Petri網(wǎng)的硬件實現(xiàn)成為可能,而基于Petri網(wǎng)的邏輯控制器的邏輯電路實現(xiàn)方法成為最近幾年的研究熱點[2]。在目前的Petri網(wǎng)硬件實現(xiàn)的研究中,主要給出了petri網(wǎng)C/E系統(tǒng)和P/T系統(tǒng)的幾種實現(xiàn)方法,但主要存在如下缺點:1)使用基本門電路和觸發(fā)器用圖形法自底向上實現(xiàn)了Petri網(wǎng)基本元件庫所與變遷。這種設(shè)計方法的最大缺點是不易于任意修改邏輯電路設(shè)計。2)用VHDL語言實現(xiàn)了整體電路設(shè)計的軟件化,但未形成模塊化的Petri網(wǎng)元件。
VHDL語言由于其其強大的行為描述能力及與硬件行為無關(guān)的特性,被廣泛的用于數(shù)字系統(tǒng)設(shè)計,實現(xiàn)了硬件電路設(shè)計的軟件化,成為實現(xiàn)Petri網(wǎng)邏輯控制器的有力的工具。用VHDL語言進行數(shù)字電路設(shè)計的很大的優(yōu)勢是其自頂向下的設(shè)計方法,可以充分的實現(xiàn)電路的層次化設(shè)計,從而很方便的修改頂層的控制器電路。本文分別用VHDL語言研究了幾種Petri網(wǎng)系統(tǒng)的硬件實現(xiàn),包括同步PN、時延PN,尤其是高級網(wǎng)系統(tǒng)有色PN。在當(dāng)前的研究中有色Petri網(wǎng)的硬件實現(xiàn)是一個難點。
2 同步Petri網(wǎng)的實現(xiàn)
2.1同步Petri網(wǎng)簡介
定義1 [1]同步PN是一個三元組
R是一已標(biāo)識的PN
E是外界事件集
Sync是從R的變遷集到事件集的函數(shù)。
在同步PN中,每個變遷總是與一個事件相聯(lián)系,當(dāng)變遷是使能的,且與變遷聯(lián)系的事件發(fā)生時,產(chǎn)生變遷的激發(fā)。
2.2同步Petri網(wǎng)的元件實現(xiàn)
元件P_M實現(xiàn)了基本的同步Petri網(wǎng)系統(tǒng)(如圖1(a))中的庫所模塊,庫所P具有兩個輸入變遷和兩個輸出變遷,且每個變遷均與外部事件有關(guān)。當(dāng)庫所P中沒有托肯且?guī)焖鵓0或P1中有托肯時,外部事件E發(fā)生,變遷t0或t1激發(fā),則托肯從庫所P0或P1移動到庫所P;當(dāng)P中有托肯且?guī)焖鵓2或P3中沒有托肯時,外部事件E發(fā)生,變遷t2或t3激發(fā),則托肯從庫所P移動到庫所P2或P3;元件P_M(如圖1(b))是在EDA軟件Max+PlusⅡ中采用VHDL語言描述,經(jīng)過編譯、仿真后形成模塊并存放與元件庫中的。它有兩個輸入變遷in1,in2和兩個輸出變遷out1,out2,當(dāng)變遷激發(fā)時,其值為邏輯1,否則為邏輯0;reset為復(fù)位信號,用來設(shè)置庫所的初始狀態(tài)。clk為全局時鐘。P的值表示庫所中是否含有托肯,若含有托肯,取值為邏輯1,否則為邏輯0。
變遷元件T_M(如圖1(d)),具有兩個輸入庫所P0和P1,兩個輸出庫所P2和P3,且受外部事件x的控制,如圖1(c)所示,其激發(fā)規(guī)則是當(dāng)庫所P0和P1中有托肯,而庫所P2和P3中沒有托肯,且事件x發(fā)生時,變遷激發(fā)。變遷元件T_M 輸入端in1,in2,out1,out2分別表示輸入庫所和輸出庫所中含有托肯的狀態(tài),若含有托肯,則取值為邏輯1,否則為邏輯0,x是外部事件。T表示變遷的激發(fā)狀態(tài),若可激發(fā)則取值為邏輯1。
用VHDL語言描述部分源程序如下:
architecture beh of t_m is
signal t0: std_logic;
begin??t<=x and in1 and in2 and (not out1) and (not out2);??end beh;
庫所元件P_M和變遷元件T_M均存放在Max+PlusⅡ中建立的元件庫中,是可以調(diào)用使用的。
3??時延Petri網(wǎng)的實現(xiàn)
3.1時延Petri網(wǎng)的定義
????
時延PN被用來描述其運行與時間有關(guān)的系統(tǒng)。主要有兩種:P時延PN和T時延PN。因二者是等效的,其中一個模型可以轉(zhuǎn)換成另一個模型,故在此主要實現(xiàn)了T時延PN。
定義2[1]??T時延PN是二元組
Tempo是從變遷集T到非負(fù)有理數(shù)集的函數(shù),Tempo(Tj)=dj是與變遷Tj相聯(lián)系的時限,它規(guī)定了Petri網(wǎng)中的每一個變遷的持續(xù)時間。
在T時延PN中,每個變遷均有一為零或任一正實數(shù)的持續(xù)時間。而庫所中沒有持續(xù)時間,只要和它相連的變遷激發(fā),庫所就可失去或獲得托肯。當(dāng)變遷的輸入庫所中含有托肯時,變遷是使能的,但要真正激發(fā)需要經(jīng)過一段持續(xù)時間。
3.2變遷時化Petri網(wǎng)元件的實現(xiàn)
T時延PN中庫所元件與同步Petri網(wǎng)一致。
T時延PN中變遷元件的實現(xiàn)是在基本Petri網(wǎng)中變遷元件的基礎(chǔ)上設(shè)計了一個計時器TIME,如圖2(b),clk為計時頻率,決定了計時的精度;en為其使能端,當(dāng)變遷可激發(fā)時,en為1,計時器開始計時,計時結(jié)束時co輸出為1。
在圖2(a)中變遷T與時延D=n相連,當(dāng)庫所P0和P1中各有一個托肯時,變遷T獲得發(fā)生權(quán),但到T發(fā)生,需有n個單位的延時.調(diào)用元件T_M和計時元件TIME,建立邏輯電路如圖2(c)示,并經(jīng)過編譯形成圖2(d)所示邏輯模塊時化變遷元件tim。
用VHDL語言實現(xiàn)計時器模塊源程序如下:
if clkevent and clk=1 then
if en=1 then
???if q=n then q<=0;co<=1;???else q<=q+1; co<=0;??end if;
else q<=0; co<=0;??end if;??end if;??
3.3變遷時化Petri網(wǎng)元件實現(xiàn)的應(yīng)用舉例
兩臺計算機使用一個公共存儲器,如圖3(a),假設(shè)每臺計算機可以有三種狀態(tài):(a)不需要該存儲器;(b)需要存儲器但還沒有使用它;(c)正在使用存儲器。
則對其建立Petri網(wǎng)模型如圖3(b)示。各庫所和變遷的含義解釋為:P1,P4分別表示CP1、CP2發(fā)出需要該存儲器請求;P2、P5分別表示CP1、CP2占用該存儲器;P3,P6分別表示CP1、CP2不需要該存儲器;P7表示存儲器;變遷中與時間相關(guān)的是T2、T5,分別表示cp占用存儲器的時間。這是一個時延Petri網(wǎng)系統(tǒng)。分別調(diào)用元件庫中所形成的庫所元件、變遷元件和時延變遷元件,作出該系統(tǒng)的邏輯電路圖如圖4(a),并在EDA軟件Max+PlusⅡ中對其編譯、仿真下載,仿真波形如圖4(b)示。
4??變遷時化有色Petri網(wǎng)CTPN的實現(xiàn)
4.1 CTPN網(wǎng)簡介
CTPN={P, T, F, C, S, G}為變遷時間化的有色Petri網(wǎng),其中,
P 是一個有限的庫所集合。庫所包含有色托肯。
T 是一個有限的變遷集合。每個變遷均有一正實數(shù)的持續(xù)時間。一個激發(fā)顏色集與變遷相聯(lián)系,其中每種顏色表明了一種激發(fā)的可能性。
F 是與變遷相聯(lián)系的函數(shù),表明了變遷激發(fā)后其輸入弧和輸出弧上信息的轉(zhuǎn)換關(guān)系,若F為恒等函數(shù),則省略不標(biāo)。
C 是與庫所相連的顏色的集合,C={C1,C2…Ci}。
4.2 CTPN網(wǎng)的元件實現(xiàn)
PROCESS進程是VHDL語言中最有特色的部分。在一個VHDL語言設(shè)計中,一個結(jié)構(gòu)體中可以包括多個進程,而進程之間是并發(fā)的關(guān)系,同時又可以通過信號實現(xiàn)進程之間的聯(lián)系。在有色Petri網(wǎng)的實現(xiàn)過程中,主要利用了vhdl語言中的進程語句process,根據(jù)庫所中的顏色設(shè)置所需的進程,并將每一種顏色作為每一個相對應(yīng)進程的敏感信號,而敏感信號的任何變化都可以啟動進程的運行,當(dāng)敏感信號不發(fā)生變化時,進程是掛起的,從而實現(xiàn)了有色Petri網(wǎng)中庫所對不同顏色的識別。
如圖5(a)所示為一個簡單的變遷時化有色petri網(wǎng)模型,具有顏色集{b,y},如果P1中有標(biāo)記b(或y),則變遷T1對于顏色b(或y)是使能的,T1的激發(fā)包括從庫所P1中移去一個標(biāo)記b(或y),在P2中增加一個標(biāo)記b(或y)。該模型的庫所和變遷元件的實現(xiàn)如圖5(b)、(c),其部分源程序為:
architecture beh of p_c is
begin
process(clk,reset,inb,outb)
…
end process;
process(clk,reset,iny,outy)
…
end process;??…????end beh;
變遷元件T_C的實現(xiàn)是將同步PN網(wǎng)中的變遷根據(jù)激發(fā)顏色進行細(xì)化。將變遷元件T_C和計時器相連即可實現(xiàn)時化的有色變遷,在Max+PlusⅡ中形成可調(diào)用的時化變遷元件timc。
對圖5(a)模型的硬件實現(xiàn)通過調(diào)用庫所元件P_C和變遷元件T_C、timc實現(xiàn),其實現(xiàn)的頂層元件圖如圖6(a)所示。并在Max+PlusⅡ中對其作仿真,波形圖如圖6(b)。
5 本文作者創(chuàng)新點
本文給出了幾種Petri網(wǎng)系統(tǒng)的硬件實現(xiàn)方案,采用VHDL語言分模塊實現(xiàn),描述元件的功能并將元件存入WORK庫中,使設(shè)計具有很強的可讀性、可重復(fù)性、及可修改性,大大提高了系統(tǒng)的開發(fā)效率。
參考文獻
[1] R. 大衛(wèi)、H. 奧蘭 著,黃建文、趙不賄譯。佩特利網(wǎng)和邏輯控制
器圖形表示工具[M],北京:機械工業(yè)出版社,1996
[2]趙不賄,景亮,嚴(yán)仰光。Petri網(wǎng)的硬件實現(xiàn)[J],軟件學(xué)報,2002(10):1652-1658
[3] Naehyuck Chang, Wook Hyun Kwon, Jaehyun Park. FPGA-based Implementation of Synchronous Petre Nets, Industrial Elecronics, Contorl and Instrumenation,1996,Proceed.
[4] 祝習(xí)兵,胡健生,黃金志?;贑PLD的基本Petri網(wǎng)系統(tǒng)的硬件實現(xiàn)[J],現(xiàn)代電子技術(shù),2004(3):102-105
[5] 趙不賄,嚴(yán)仰光,陸繼遠(yuǎn),唐平. 控制電路基于Petri網(wǎng)的圖形化設(shè)計與仿真研究[J],電路與系統(tǒng)學(xué)報,2005(5):54-58
[6] 沈憲明,白瑞林,章智慧. 基于FPGA的模糊CMAC網(wǎng)絡(luò)的硬件實現(xiàn)
[J]. 微計算機信息, 2006, 2-2: 基于FPGA的模糊CMAC網(wǎng)絡(luò)的硬件實現(xiàn)
評論
查看更多