《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 業(yè)界動態(tài) > 基于Petri網(wǎng)的并行控制器的VHDL實現(xiàn)

基于Petri網(wǎng)的并行控制器的VHDL實現(xiàn)

2009-07-30
作者:陸繼遠

??? 摘? 要: Petri網(wǎng)是離散事件系統(tǒng)建模的重要工具,,本文使用硬件描述語言VHDL實現(xiàn)了基于Petri網(wǎng)的并行控制器,。文中通過一個液位控制系統(tǒng)實例具體介紹了這一方法,,并通過仿真波形證明了該方法的正確性,。這對于離散事件系統(tǒng)并行控制器的設(shè)計具有十分重要的意義,。
??? 關(guān)鍵詞: Petri網(wǎng)? 并行控制器? VHDL? 可編程邏輯器件

?

??? Petri網(wǎng)是異步并發(fā)系統(tǒng)建模與分析的一種重要工具,,1962年由德國科學(xué)家C.A.Petri博士創(chuàng)立,。40多年來,,Petri網(wǎng)理論得到了很大的豐富和發(fā)展,,其應(yīng)用領(lǐng)域也在不斷擴大,,越來越受到國際同行的重視,已成為計算機,、自動化和通信領(lǐng)域的熱門研究課題,。Petri網(wǎng)既有直觀的圖形表示,又有深厚的數(shù)學(xué)基礎(chǔ),;既是層次化的結(jié)構(gòu)模型,,又能反映系統(tǒng)的動態(tài)性能[1][2]。用硬件描述語言進行電路和系統(tǒng)設(shè)計是當(dāng)前EDA技術(shù)的重要特征,,它使得設(shè)計者能在較抽象的層次上進行系統(tǒng)結(jié)構(gòu)和內(nèi)部特征的設(shè)計,。VHDL作為一種高速的硬件描述語言適于描述設(shè)計異步并發(fā)的系統(tǒng),因而可與Petri網(wǎng)模型建立聯(lián)系,。用VHDL對模型進行程序設(shè)計,,為模型的硬件實現(xiàn)奠定了基礎(chǔ)。隨著大規(guī)模,、高密度的可編程邏輯器件FPGA和CPLD的問世與應(yīng)用方面的迅速推廣,,并且有各種EDA軟件工具的支持,使得人們可以根據(jù)Petri網(wǎng)的拓撲結(jié)構(gòu)用硬件加以實現(xiàn),,以使Petri網(wǎng)的硬件實現(xiàn)成為可能,。因此,基于Petri網(wǎng)的智能化的并行控制器的設(shè)計與硬件實現(xiàn)的課題引起了人們的強烈興趣,。利用Petri網(wǎng)技術(shù),,不僅可以用來進行設(shè)計、分析和驗證,,還能夠進行優(yōu)化控制,。
??? 微電子技術(shù)發(fā)展到今天,已提供了幾千至幾千萬個標(biāo)準門的芯片,。特別是在系統(tǒng)可編程技術(shù),,可有條件地在一個芯片上設(shè)計制作一個數(shù)字系統(tǒng),,即系統(tǒng)芯片(System on Chip,SoC),。國內(nèi)市場上常見的Altera公司,、Xilinx公司、Lattice公司的FPGA和CPLD芯片,,一般都能滿足設(shè)計SoC的需要,,并且都提供了EDA軟件開發(fā)工具。而且在現(xiàn)有的軟件開發(fā)工具中,,有電路圖,、狀態(tài)圖、真值表和硬件描述語言等輸入方式,。但設(shè)計片上并行控制器,,難以用電路圖或邏輯方程輸入方式實現(xiàn),;如果用狀態(tài)圖或真值表輸入方式,,隨著問題復(fù)雜程度的增加,系統(tǒng)的狀態(tài)將發(fā)生組合爆炸,,這是十分棘手的問題,。而且有限狀態(tài)機(FSM)雖已被廣泛運用到數(shù)字邏輯控制系統(tǒng),也只是因為它給出了系統(tǒng)化的硬件實現(xiàn)方法和具體的實現(xiàn)模型(如Moore自動機和Mealy自動機),,用FSM實現(xiàn)并行控制器也十分困難,。因為FSM必須于設(shè)計前劃分控制器,所以常常會導(dǎo)致非最優(yōu)的門級實現(xiàn),,且使設(shè)計中并發(fā)的數(shù)量受到使用FSM數(shù)量的限制,,同時FSM間相互依賴,使得設(shè)計難于驗證且易產(chǎn)生并行同步錯誤(如死鎖,、丟失數(shù)據(jù)的完整性),。上述這些缺點只有設(shè)計遍歷整個狀態(tài)空間時才能驗證,因而可能被漏檢[3],。若用硬件描述語言輸入,,遇到的困難是模型和驗證。
??? 針對傳統(tǒng)的設(shè)計方法不太適合并行控制器設(shè)計的問題,,本文介紹一種使用硬件描述語言VHDL來實現(xiàn)基于Petri網(wǎng)的并行控制器的方法,。首先使用Petri網(wǎng)對問題進行建模,并對模型進行分析和控制,,獲得控制器的Petri網(wǎng)模型,;然后用VHDL對Petri網(wǎng)控制模型加以描述,得到源文件,;最后通過EDA軟件開發(fā)工具Max+PlusⅡ進行編譯,、模擬,、適配,并下載到可編程邏輯器件中,。
1? Petri網(wǎng)簡介[2]
??? 定義:四元組Ε=(B,,E;F,,C)能構(gòu)成條件/事件系統(tǒng)(condition/event system,,C/E系統(tǒng))的要求是:

2? 實現(xiàn)的基本方法
??? Petri網(wǎng)本身就是一種硬件描述語言,是一種高度抽象的,、結(jié)構(gòu)化的并發(fā)語言,。Petri網(wǎng)非常適合于復(fù)雜離散系統(tǒng)的建模和形式化分析,而VHDL則是一種標(biāo)準的硬件描述語言,,可以解決數(shù)字系統(tǒng)描述中并發(fā)性問題,,允許其仿真和綜合。Petri網(wǎng)和VHDL可以相互補充,,并且也可以提供一個驗證子系統(tǒng)接收所有設(shè)計任務(wù)相同的用戶接口描述[4],。并行控制器的VHDL文本Petri網(wǎng)描述在一個實際設(shè)計中可獲得50%的面積減少及40%的速度改善(相對于最好的FSM綜合)[4]
??? 用大規(guī)??删幊踢壿嬈骷韺崿F(xiàn)由Petri網(wǎng)描述的并行控制器,,其實現(xiàn)的基本步驟如下:
??? (1)對實際系統(tǒng)建立Petri網(wǎng)系統(tǒng)模型。
??? (2)采用Petri網(wǎng)軟件工具對所建立的Petri網(wǎng)系統(tǒng)模型進行分析并加以控制,,建立監(jiān)控器的Petri網(wǎng)系統(tǒng)模型,。
??? (3)確定輸入輸出變量并選擇相應(yīng)的FPGA或CPLD器件。
??? (4)根據(jù)網(wǎng)的拓撲結(jié)構(gòu)確定條件與事件間的邏輯關(guān)系,,用硬件描述語言如VHDL對Petri網(wǎng)模型進行描述,。
??? (5)以VHDL描述作為設(shè)計輸入,通過EDA軟件開發(fā)工具,,如ispDesign EXPERT或Max+PlusⅡ等,,進行編譯、模擬,、適配,,然后下載到器件中。
??? 整個硬件實現(xiàn)的流程圖如圖1所示,。

?


3? 基于Petri網(wǎng)的并行控制器設(shè)計舉例
3.1 系統(tǒng)描述
??? 從文獻[5]中選擇了一個如圖2所示的并行控制器設(shè)計例子,,這是一個用于說明離散事件系統(tǒng)控制器設(shè)計的典型示例。它有3個盛放液體的罐子:V1,、V2,、V3,其中V1、V2是用來盛放不同種液體F1,、F2的,,M是攪拌系統(tǒng)的驅(qū)動電機。系統(tǒng)停止時,,指示燈Y0亮,。當(dāng)起動按鈕按下時(X0=1),閥Y1,、Y2打開,,2種不同的液體F1、F2分別注入V1,、V2,。當(dāng)V1中的液體到達X1位置時,Y1關(guān)閉,;當(dāng)V2中液體到達X3時,,閥Y2關(guān)閉。當(dāng)V1,、V2中的液體分別都到達X1,、X3時,Y3,、Y4同時打開,;當(dāng)V1,、V2中液體分別都低于X2,、X4時,Y3,、Y4關(guān)閉,,同時Y6打開。當(dāng)V3中液體高于X5時,,Y5閉合,,電動機M開始攪拌;當(dāng)V3中液體流出低于X6時,,Y6關(guān)閉,,指示燈亮,重新回到原來狀態(tài),。

?


3.2 系統(tǒng)控制部分的控制解釋Petri網(wǎng)模型
??? 用Petri網(wǎng)對系統(tǒng)控制部分進行描述,,得到的控制解釋Petri網(wǎng)模型如圖3所示。模型中輸入輸出信號的描述如表1所示,,描述的局部狀態(tài)如表2所示,。

?

?


3.3 模型的VHDL實現(xiàn)
??? 用VHDL實現(xiàn)的部分源代碼如下:
??? t1<=not p2 and not p4 and x0 and p1;
??? t2<=not p3 and x1 and p2,;
??? t3<=not p5 and x3 and p4,;
??? t4<=not p6 and not p7 and p3 and p5,;
??? t5<=not p8 and x5 and x6 and p6;
??? t6<=not p9 and not x2 and not x4 and p7,;
??? t7<=not p6 and not x5 and p8,;
??? t8<=not p1 and not x6 and p6 and p9;
??? np1<=t8 or (p1 and not t1),;
??? np2<=t1 or (p2 and not t2),;
??? np3<=t2 or (p3 and not t4);
??? np4<=t1 or (p4 and not t3),;
??? np5<=t3 or (p5 and not t4),;
??? np6<=t4 or t7 or(p6 and not t5 and not t8);
??? np7<=t4 or (p7 and not t6),;
??? np8<=t5 or (p8 and not t7),;
??? np9<=t6 or (p9 and not t8);
3.4 基于Max+PlusⅡ的并行控制器仿真
??? 在MAX+PlusⅡ中經(jīng)編譯后進行功能仿真,,仿真波形如圖4所示,。波形表明結(jié)果是正確的。

?


4? 結(jié)? 論
??? Petri網(wǎng)是并發(fā)系統(tǒng)強有力的建模工具,,通過對Petri網(wǎng)模型的分析,,可以獲得系統(tǒng)的許多結(jié)構(gòu)和動態(tài)性能,根據(jù)控制策略,,還可以建立系統(tǒng)的控制模型并獲得系統(tǒng)在控制作用下的性能,。以上討論證明,基于Petri網(wǎng)的并行控制器可以用VHDL實現(xiàn),,從而開辟了并行控制器設(shè)計與實現(xiàn)的新途徑,。
參考文獻
1?? David R,Alla H著,,黃建文,,趙不賄譯.佩特利網(wǎng)和邏輯控制器圖形表示工具(GRAFCET).北京:機械工業(yè)出版社,1996
2?? 袁崇義.Petri網(wǎng)原理.北京:電子工業(yè)出版社,,1998
3?? Pardey J,,Amroun A,Bolton M et al.Parallel Cotroller Synthesis for Programmable Logic Devices.Microprocessors?and Microsystems,,1994,;18(8)
4?? Fernandes J M,Adamski M,,Proenca A J.VHDL Generation from Hierarchical Petri Net Specifications of Parallel Controllers.IEEE ProcComput Tech,,1997;144(2)
5?? Adamski M.A Rigorous Design Methodology for Reprogrammable Logic Controllers. Proceedings of the International Workshop on Discrete-Event System Design?DESDes′01.Przytok:Technical University of Zielona Góra,2001

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章,、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者,。如涉及作品內(nèi)容,、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118,;郵箱:[email protected],。