新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > 基于FPGA的Petri網的硬件實現

        基于FPGA的Petri網的硬件實現

        作者: 時間:2018-07-27 來源:網絡 收藏

        1、引言

        本文引用地址:http://www.104case.com/article/201807/384193.htm

        是一種系統的、數學的和圖形的描述和分析工具,它具有強大的描述并發、異步、分布、并行、不確定/隨機性的信息處理系統的能力,目前已被廣泛應用于計算機通訊系統、實時多媒體系統及離散事件系統的研究中。而的硬件實現將為并行控制器的設計提供一條有效的途徑。因此,其硬件實現成為許多專家、學者研究的熱點。

        現場可編程門陣列是美國Minx公司于1984年首先開發的一種通用型用戶可編程邏輯器件。它具有容量大、速度高、價格低的優點,同時,硬件描述語言具有的強大的行為描述能力及與硬件行為無關的特性,實現了硬件電路設計的軟件化,這為的硬件實現提供了有力的工具。

        本文探討了Petri網基于語言的實現。

        2、Petri網基本類型的實現

        2.1基本Petri網的實現

        2.1.1基本Petri網簡介

        定義1 六元組Z=(P,T,F,K,W,M0)稱為一個網系統,其中N=(P,T,F)是一個有向網,滿足:

        1)P∪T≠φ

        2)P∪T=φ

        3)F∈PxT∪TxP,只能從P->7或T->P,不準P->P或T->T.

        4)Dom(F)∪cod(F)=P∪T

        K,W,M0依次是N上的容量函數,權函數和標識,M0稱為∑的初始標識?;綪etri網就是K=1,W=1,這時庫所內的標識數要么是0,要么是1,而且所有的弧權都是1。對于基本的Petri網,變遷的激發就是一個瞬時事件。

        2.1.2基本Petri網的元件實現

        圖1(a)是一個簡單的基本Petri網系統,庫所P具有兩個輸入變遷和兩個輸出變遷,當庫所P中沒有托肯且庫所PO或P1中有托肯時,變遷t0或11激發,則托肯從庫所PO或P1移動到庫所P;當P中有托肯且庫所P2或P3中沒有托肯時,變遷t2或0激發,則托肯從庫所P移動到庫所P2或P3。

        實現庫所P的模塊如圖1(b),元件幾M有兩個輸入變遷inl,in2和兩個輸出變遷。outl,out2,當變遷使能時,其值為邏輯1,否則為邏輯0;reset為復位信號,用來置庫所的初始狀態。clk為全局時鐘。P的值表示庫所中是否含義托肯,若含有托肯,取值為邏輯1,否則為邏輯。。元件PM是在EDA軟件Max+PlusII中采用語言描述,經過編譯、仿真后形成模塊。

        用VHDL語言描述源程序如下:

        entity p_mis

        port(reset,clk:instdlogic;

        inl,in2,outl,out2:instdlogic;

        p:outstdlogic);

        end p_m;

        architecture beh ofp_m is()P

        signal p0,np0:stdlogic;

        begin

        np0-not p0;

        process(clk,reset)

        variablefstdlogic;

        begin

        f:=((inlorin2)and

        ifclk'eventandclk='1

        ifreset='1'then

        p0='1';

        elsiff='1'then

        (a).(b)

        np0)or((outlorout2)andp0);

        .then

        PO=npO;

        endif;

        endif;

        endprocess;p=p0;

        end beh;

        圖2(a)是一個簡單的基本Petri網系統,其激發規則是當庫所PO和P1中有托肯,變遷T具有兩個輸入庫所PO和P1,P3,而庫所P2和P3中沒有托肯,且事件x兩個輸出庫所P2和發生時,變遷激發。圖2(b)是建立的變遷元件T_M,inl,in2,outl,out2分別表示輸入庫所和輸出庫所中含有托肯的狀態,若含有托肯,則取值為邏輯1,否則為邏輯0,x是外部事件。T表示變遷的激發狀態,若可激發則取值為邏輯1。

        用VHDL語言描述源程序如下:

        entityt_mis

        port(inl,in2,outl,out2,x:in std_logic;

        t:out stdlogic);,

        end t_m;

        architecture beh of t_m is

        signal t0:stdlogic;

        begin

        t-x and in land in2 and (notoutl) and (notout2)end beh;

        庫所元件P_M和變遷元件T_M均存放在Max+Plusll中建立的元件庫中,可以調用使用的。

        2.2時EEPetriR的實IT

        2.2.1時延Petri網的定義

        定義2變遷時化Petri網(timed petri net)TN={P,T,F,I'],其中I':T->0∪R+,規定TPetri網中的每一個變遷的持續時間。{T,P,F}的定義與PN一致。

        在變遷時化Petri網中,每個變遷均有一為零或任一正實數的持續時間。而庫所中沒有持續時間,只要和它相連的變遷發生,庫所就可失去或獲得托肯。當變遷的輸入庫所中含有托肯時,變遷是可激發的,但要真正激發需要經過一段持續時間。

        2.2.2變遷時化Petri網元件的實現

        變遷時化Petri網中庫所元件與基本Petri網一致。

        變遷時化Petri網中變遷元件的實現是在基本Petri網中變遷元件的基礎上設計了一個計時器TIME,如圖3(b),clk為計時頻率,決定了計時的精度;en為其使能端,當變遷可激發時,en為1,計時器開始計時,計時結束時co輸出為t。圖3(a)是一個簡單的變遷時化Petri網,變遷T與時延D=n相連,當庫所PO和P1中各有一個托肯時,變遷T獲得發生權,但到T發生,需有n個單位的延時.調用元件幾M和計時元件TIME,建立邏輯電路如圖3(c)示,并經過編譯形成圖3(d)所示邏輯模塊時化變遷元件。

        用VHDL語言實現計時器模塊源程序如下

        if clk'event and clk='1'then

        if en='l'then

        if q=nthenq=0;co='1';

        elseq=q+lco='0':

        end if;

        else q=0;co='0'

        end if;

        end process;

        endbeh;

        3、應用舉例

        兩臺計算機使用一個公共存儲器,(a)不需要該存儲器,(b)需要存儲器但還沒有使用它;(c)正在使用存儲器。

        則對其建立Petri網模型如圖5示。各庫所和變遷的含義解釋為:P1,P4分別表示CPI,CP2發出需要該存儲器請求;P2,P5分別表示CPI,CP2占用該存儲;P3,P6分別表示CPI,CP2不需要該存儲器;P7表示存儲器;變遷中與時間相關的是T2.T5,分別表示cp占用存儲器的時間。這是一個時延Petri網系統。分別調用元件庫中所形成的庫所元件、變遷元件和時延變遷元件,作出該系統的邏輯電路圖,并在EDA軟件Max+PlusI中對其編譯、仿真下載,仿真波形如圖示。

        4、結論

        Petri網是異步并發現象建模的重要工具,Petri網的硬件實現將為并行控制器的設計提供一種有效的途徑.這使Petri網的硬件實現顯得尤為重要。本文給出了基本Petri網系統的硬件實現方案,采用VHDL語言分模塊實現,描述元件的功能并將元件存入WORK庫中,使設計具有很強的可讀性、可重復性、及可修改性,大大提高了系統的開發效率。



        關鍵詞: EDA技術 FPGA VHDL Petri網

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 榆社县| 桐柏县| 邵东县| 如皋市| 时尚| 绩溪县| 托克托县| 盐边县| 武邑县| 汨罗市| 揭西县| 普安县| 易门县| 盈江县| 都兰县| 台中市| 札达县| 丰都县| 那坡县| 遂川县| 西峡县| 昌乐县| 阿拉善左旗| 黄石市| 沁水县| 五家渠市| 巴彦县| 玛沁县| 平湖市| 隆昌县| 临江市| 惠州市| 大同市| 西峡县| 筠连县| 平谷区| 交口县| 蚌埠市| 奉新县| 定陶县| 五莲县|