作者:王玲玲 ,劉驚雷 ,馬曉敏
1 引言
Petri網(wǎng)是一種系統(tǒng)的、數(shù)學(xué)的和圖形的描述和分析工具,隨著超大規(guī)模集成電路FPGA和CPLD的發(fā)展,Petri網(wǎng)的硬件實(shí)現(xiàn)成為可能,而基于Petri網(wǎng)的邏輯控制器的邏輯電路實(shí)現(xiàn)方法成為最近幾年的研究熱點(diǎn)。在目前的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)基本元件庫(kù)所與變遷。這種設(shè)計(jì)方法的最大缺點(diǎn)是不易于任意修改邏輯電路設(shè)計(jì)。2)用VHDL語(yǔ)言實(shí)現(xiàn)了整體電路設(shè)計(jì)的軟件化,但未形成模塊化的Petri網(wǎng)元件。
VHDL語(yǔ)言由于其其強(qiáng)大的行為描述能力及與硬件行為無(wú)關(guān)的特性,被廣泛的用于數(shù)字系統(tǒng)設(shè)計(jì),實(shí)現(xiàn)了硬件電路設(shè)計(jì)的軟件化,成為實(shí)現(xiàn)Petri網(wǎng)邏輯控制器的有力的工具。用VHDL語(yǔ)言進(jìn)行數(shù)字電路設(shè)計(jì)的很大的優(yōu)勢(shì)是其自頂向下的設(shè)計(jì)方法,可以充分的實(shí)現(xiàn)電路的層次化設(shè)計(jì),從而很方便的修改頂層的控制器電路。本文分別用VHDL語(yǔ)言研究了幾種Petri網(wǎng)系統(tǒng)的硬件實(shí)現(xiàn),包括同步PN、時(shí)延PN,尤其是高級(jí)網(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)簡(jiǎn)介
定義1 同步PN是一個(gè)三元組。其中R是一已標(biāo)識(shí)的PNE是外界事件集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))中的庫(kù)所模塊,庫(kù)所P具有兩個(gè)輸入變遷和兩個(gè)輸出變遷,且每個(gè)變遷均與外部事件有關(guān)。當(dāng)庫(kù)所P中沒(méi)有托肯且?guī)焖鵓0或P1中有托肯時(shí),外部事件E發(fā)生,變遷t0或t1激發(fā),則托肯從庫(kù)所P0或P1移動(dòng)到庫(kù)所P;當(dāng)P中有托肯且?guī)焖鵓2或P3中沒(méi)有托肯時(shí),外部事件E發(fā)生,變遷t2或t3激發(fā),則托肯從庫(kù)所P移動(dòng)到庫(kù)所P2或P3;元件P_M(如圖1(b))是在EDA軟件Max+PlusⅡ中采用VHDL語(yǔ)言描述,經(jīng)過(guò)編譯、仿真后形成模塊并存放與元件庫(kù)中的。它有兩個(gè)輸入變遷in1,in2和兩個(gè)輸出變遷out1,out2,當(dāng)變遷激發(fā)時(shí),其值為邏輯1,否則為邏輯0;reset為復(fù)位信號(hào),用來(lái)設(shè)置庫(kù)所的初始狀態(tài)。clk為全局時(shí)鐘。P的值表示庫(kù)所中是否含有托肯,若含有托肯,取值為邏輯1,否則為邏輯0。
變遷元件T_M(如圖1(d)),具有兩個(gè)輸入庫(kù)所P0和P1,兩個(gè)輸出庫(kù)所P2和P3,且受外部事件x的控制,如圖1(c)所示,其激發(fā)規(guī)則是當(dāng)庫(kù)所P0和P1中有托肯,而庫(kù)所P2和P3中沒(méi)有托肯,且事件x發(fā)生時(shí),變遷激發(fā)。變遷元件T_M 輸入端in1,in2,out1,out2分別表示輸入庫(kù)所和輸出庫(kù)所中含有托肯的狀態(tài),若含有托肯,則取值為邏輯1,否則為邏輯0,x是外部事件。T表示變遷的激發(fā)狀態(tài),若可激發(fā)則取值為邏輯1。
用VHDL語(yǔ)言描述部分源程序如下:
architecture beh of t_m is
signal t0: std_logic;
begint<=x and in1 and in2 and (not out1) and (not out2);end beh;
庫(kù)所元件P_M和變遷元件T_M均存放在Max+PlusⅡ中建立的元件庫(kù)中,是可以調(diào)用使用的。
3 時(shí)延Petri網(wǎng)的實(shí)現(xiàn)
3.1 時(shí)延Petri網(wǎng)的定義
時(shí)延PN被用來(lái)描述其運(yùn)行與時(shí)間有關(guān)的系統(tǒng)。主要有兩種:P時(shí)延PN和T時(shí)延PN。因二者是等效的,其中一個(gè)模型可以轉(zhuǎn)換成另一個(gè)模型,故在此主要實(shí)現(xiàn)了T時(shí)延PN。
定義2T時(shí)延PN是二元組, 其中R是標(biāo)識(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í)間。而庫(kù)所中沒(méi)有持續(xù)時(shí)間,只要和它相連的變遷激發(fā),庫(kù)所就可失去或獲得托肯。當(dāng)變遷的輸入庫(kù)所中含有托肯時(shí),變遷是使能的,但要真正激發(fā)需要經(jīng)過(guò)一段持續(xù)時(shí)間。
3.2 變遷時(shí)化Petri網(wǎng)元件的實(shí)現(xiàn)
T時(shí)延PN中庫(kù)所元件與同步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í)器開(kāi)始計(jì)時(shí),計(jì)時(shí)結(jié)束時(shí)co輸出為1。
在圖2(a)中變遷T與時(shí)延D=n相連,當(dāng)庫(kù)所P0和P1中各有一個(gè)托肯時(shí),變遷T獲得發(fā)生權(quán),但到T發(fā)生,需有n個(gè)單位的延時(shí).調(diào)用元件T_M和計(jì)時(shí)元件TIME,建立邏輯電路如圖2(c)示,并經(jīng)過(guò)編譯形成圖2(d)所示邏輯模塊時(shí)化變遷元件tim。
用VHDL語(yǔ)言實(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)用舉例
兩臺(tái)計(jì)算機(jī)使用一個(gè)公共存儲(chǔ)器,如圖3(a),假設(shè)每臺(tái)計(jì)算機(jī)可以有三種狀態(tài):(a)不需要該存儲(chǔ)器;(b)需要存儲(chǔ)器但還沒(méi)有使用它;(c)正在使用存儲(chǔ)器。
則對(duì)其建立Petri網(wǎng)模型如圖3(b)示。各庫(kù)所和變遷的含義解釋為:P1,P4分別表示CP1、CP2發(fā)出需要該存儲(chǔ)器請(qǐng)求;P2、P5分別表示CP1、CP2占用該存儲(chǔ)器;P3,P6分別表示CP1、CP2不需要該存儲(chǔ)器;P7表示存儲(chǔ)器;變遷中與時(shí)間相關(guān)的是T2、T5,分別表示cp占用存儲(chǔ)器的時(shí)間。這是一個(gè)時(shí)延Petri網(wǎng)系統(tǒng)。分別調(diào)用元件庫(kù)中所形成的庫(kù)所元件、變遷元件和時(shí)延變遷元件,作出該系統(tǒng)的邏輯電路圖如圖4(a),并在EDA軟件Max+PlusⅡ中對(duì)其編譯、仿真下載,仿真波形如圖4(b)示。
4 變遷時(shí)化有色Petri網(wǎng)CTPN的實(shí)現(xiàn)
4.1 CTPN網(wǎng)簡(jiǎn)介
CTPN={P, T, F, C, S, G}為變遷時(shí)間化的有色Petri網(wǎng),其中,
P 是一個(gè)有限的庫(kù)所集合。庫(kù)所包含有色托肯。
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 是與庫(kù)所相連的顏色的集合,C={C1,C2…Ci}。
4.2 CTPN網(wǎng)的元件實(shí)現(xiàn)
PROCESS進(jìn)程是VHDL語(yǔ)言中最有特色的部分。在一個(gè)VHDL語(yǔ)言設(shè)計(jì)中,一個(gè)結(jié)構(gòu)體中可以包括多個(gè)進(jìn)程,而進(jìn)程之間是并發(fā)的關(guān)系,同時(shí)又可以通過(guò)信號(hào)實(shí)現(xiàn)進(jìn)程之間的聯(lián)系。在有色Petri網(wǎng)的實(shí)現(xiàn)過(guò)程中,主要利用了vhdl語(yǔ)言中的進(jìn)程語(yǔ)句process,根據(jù)庫(kù)所中的顏色設(shè)置所需的進(jìn)程,并將每一種顏色作為每一個(gè)相對(duì)應(yīng)進(jìn)程的敏感信號(hào),而敏感信號(hào)的任何變化都可以啟動(dòng)進(jìn)程的運(yùn)行,當(dāng)敏感信號(hào)不發(fā)生變化時(shí),進(jìn)程是掛起的,從而實(shí)現(xiàn)了有色Petri網(wǎng)中庫(kù)所對(duì)不同顏色的識(shí)別。
如圖5(a)所示為一個(gè)簡(jiǎn)單的變遷時(shí)化有色petri網(wǎng)模型,具有顏色集{b,y},如果P1中有標(biāo)記b(或y),則變遷T1對(duì)于顏色b(或y)是使能的,T1的激發(fā)包括從庫(kù)所P1中移去一個(gè)標(biāo)記b(或y),在P2中增加一個(gè)標(biāo)記b(或y)。該模型的庫(kù)所和變遷元件的實(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。
對(duì)圖5(a)模型的硬件實(shí)現(xiàn)通過(guò)調(diào)用庫(kù)所元件P_C和變遷元件T_C、timc實(shí)現(xiàn),其實(shí)現(xiàn)的頂層元件圖如圖6(a)所示。并在Max+PlusⅡ中對(duì)其作仿真,波形圖如圖6(b)。
5 本文作者創(chuàng)新點(diǎn)
本文給出了幾種Petri網(wǎng)系統(tǒng)的硬件實(shí)現(xiàn)方案,采用VHDL語(yǔ)言分模塊實(shí)現(xiàn),描述元件的功能并將元件存入WORK庫(kù)中,使設(shè)計(jì)具有很強(qiáng)的可讀性、可重復(fù)性、及可修改性,大大提高了系統(tǒng)的開(kāi)發(fā)效率。
責(zé)任編輯:gt
評(píng)論
查看更多