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