Petri網是異步并發系統建模與分析的一種重要工具,1962年由德國科學家C.A.Petri博士創立。40多年來,Petri網理論得到了很大的豐富和發展,其應用領域也在不斷擴大,越來越受到國際同行的重視,已成為計算機、自動化和通信領域的熱門研究課題。Petri網既有直觀的圖形表示,又有深厚的數學基礎;既是層次化的結構模型,又能反映系統的動態性能[1][2]。用硬件描述語言進行電路和系統設計是當前EDA技術的重要特征,它使得設計者能在較抽象的層次上進行系統結構和內部特征的設計。VHDL作為一種高速的硬件描述語言適于描述設計異步并發的系統,因而可與Petri網模型建立聯系。用VHDL對模型進行程序設計,為模型的硬件實現奠定了基礎。隨著大規模、高密度的可編程邏輯器件FPGA和CPLD的問世與應用方面的迅速推廣,并且有各種EDA軟件工具的支持,使得人們可以根據Petri網的拓撲結構用硬件加以實現,以使Petri網的硬件實現成為可能。因此,基于Petri網的智能化的并行控制器的設計與硬件實現的課題引起了人們的強烈興趣。利用Petri網技術,不僅可以用來進行設計、分析和驗證,還能夠進行優化控制。
微電子技術發展到今天,已提供了幾千至幾千萬個標準門的芯片。特別是在系統可編程技術,可有條件地在一個芯片上設計制作一個數字系統,即系統芯片(System on Chip,SoC)。國內市場上常見的Altera公司、Xilinx公司、Lattice公司的FPGA和CPLD芯片,一般都能滿足設計SoC的需要,并且都提供了EDA軟件開發工具。而且在現有的軟件開發工具中,有電路圖、狀態圖、真值表和硬件描述語言等輸入方式。但設計片上并行控制器,難以用電路圖或邏輯方程輸入方式實現;如果用狀態圖或真值表輸入方式,隨著問題復雜程度的增加,系統的狀態將發生組合爆炸,這是十分棘手的問題。而且有限狀態機(FSM)雖已被廣泛運用到數字邏輯控制系統,也只是因為它給出了系統化的硬件實現方法和具體的實現模型(如Moore自動機和Mealy自動機),用FSM實現并行控制器也十分困難。因為FSM必須于設計前劃分控制器,所以常常會導致非最優的門級實現,且使設計中并發的數量受到使用FSM數量的限制,同時FSM間相互依賴,使得設計難于驗證且易產生并行同步錯誤(如死鎖、丟失數據的完整性)。上述這些缺點只有設計遍歷整個狀態空間時才能驗證,因而可能被漏檢[3]。若用硬件描述語言輸入,遇到的困難是模型和驗證。
針對傳統的設計方法不太適合并行控制器設計的問題,本文介紹一種使用硬件描述語言VHDL來實現基于Petri網的并行控制器的方法。首先使用Petri網對問題進行建模,并對模型進行分析和控制,獲得控制器的Petri網模型;然后用VHDL對Petri網控制模型加以描述,得到源文件;最后通過EDA軟件開發工具Max+PlusⅡ進行編譯、模擬、適配,并下載到可編程邏輯器件中。
1 Petri網簡介[2]
2 實現的基本方法
Petri網本身就是一種硬件描述語言,是一種高度抽象的、結構化的并發語言。Petri網非常適合于復雜離散系統的建模和形式化分析,而VHDL則是一種標準的硬件描述語言,可以解決數字系統描述中并發性問題,允許其仿真和綜合。Petri網和VHDL可以相互補充,并且也可以提供一個驗證子系統接收所有設計任務相同的用戶接口描述[4]。并行控制器的VHDL文本Petri網描述在一個實際設計中可獲得50%的面積減少及40%的速度改善(相對于最好的FSM綜合)[4]。
用大規模可編程邏輯器件來實現由Petri網描述的并行控制器,其實現的基本步驟如下:
(1)對實際系統建立Petri網系統模型。
(2)采用Petri網軟件工具對所建立的Petri網系統模型進行分析并加以控制,建立監控器的Petri網系統模型。
(3)確定輸入輸出變量并選擇相應的FPGA或CPLD器件。
(4)根據網的拓撲結構確定條件與事件間的邏輯關系,用硬件描述語言如VHDL對Petri網模型進行描述。
(5)以VHDL描述作為設計輸入,通過EDA軟件開發工具,如ispDesign EXPERT或Max+PlusⅡ等,進行編譯、模擬、適配,然后下載到器件中。 function ImgZoom(Id)//重新設置圖片大小 防止撐破表格 { var w = $(Id).width; var m = 650; if(w
整個硬件實現的流程圖如圖1所示。
3 基于Petri網的并行控制器設計舉例
3.1 系統描述
從文獻[5]中選擇了一個如圖2所示的并行控制器設計例子,這是一個用于說明離散事件系統控制器設計的典型示例。它有3個盛放液體的罐子:V1、V2、V3,其中V1、V2是用來盛放不同種液體F1、F2的,M是攪拌系統的驅動電機。系統停止時,指示燈Y0亮。當起動按鈕按下時(X0=1),閥Y1、Y2打開,2種不同的液體F1、F2分別注入V1、V2。當V1中的液體到達X1位置時,Y1關閉;當V2中液體到達X3時,閥Y2關閉。當V1、V2中的液體分別都到達X1、X3時,Y3、Y4同時打開;當V1、V2中液體分別都低于X2、X4時,Y3、Y4關閉,同時Y6打開。當V3中液體高于X5時,Y5閉合,電動機M開始攪拌;當V3中液體流出低于X6時,Y6關閉,指示燈亮,重新回到原來狀態。
3.2 系統控制部分的控制解釋Petri網模型
用Petri網對系統控制部分進行描述,得到的控制解釋Petri網模型如圖3所示。模型中輸入輸出信號的描述如表1所示,描述的局部狀態如表2所示。
3.3 模型的VHDL實現
用VHDL實現的部分源代碼如下:
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Ⅱ中經編譯后進行功能仿真,仿真波形如圖4所示。波形表明結果是正確的。
4 結 論
Petri網是并發系統強有力的建模工具,通過對Petri網模型的分析,可以獲得系統的許多結構和動態性能,根據控制策略,還可以建立系統的控制模型并獲得系統在控制作用下的性能。以上討論證明,基于Petri網的并行控制器可以用VHDL實現,從而開辟了并行控制器設計與實現的新途徑。
-
FPGA
+關注
關注
1629文章
21729瀏覽量
603013 -
控制器
+關注
關注
112文章
16332瀏覽量
177813 -
eda
+關注
關注
71文章
2755瀏覽量
173207 -
vhdl
+關注
關注
30文章
817瀏覽量
128121
發布評論請先 登錄
相關推薦
評論