基于VHDL的Petri網(wǎng)系統(tǒng)的FPGA實(shí)現(xiàn)
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í)間。而庫(kù)所中沒有持續(xù)時(shí)間,只要和它相連的變遷激發(fā),庫(kù)所就可失去或獲得托肯。當(dāng)變遷的輸入庫(kù)所中含有托肯時(shí),變遷是使能的,但要真正激發(fā)需要經(jīng)過一段持續(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í)器開始計(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)過編譯形成圖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ǔ)器但還沒有使用它;(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)示。
評(píng)論