一個嵌入式系統的Petri網模型與CPLD實現
3 VHDL程序的基本單元設計 CPLD(復雜可編程邏輯器件)是處于并行工作方式的基本電路單元構成的高速、大規模集成器件,可作為一種并發系統模型與Petri網建立聯系。VHDL作為一種硬件描述語言,支持行為描述、數據流描述和結構化描述等多種描述方法,可以用并行和順序多種語句方式描述實際的系統,并可采用VHDL的并行語句描述C/E系統中條件/事件間的并發關系,用VHDL的順序語句描述條件/事件間的順序約束機制,為解決C/E系統中的有效沖突提供了可行的方法。 VHDL語言程序設計的基本單元稱為一個基本設計實體,其主要由實體說明(entity declaration)和構造體(architecture body)兩部分構成。實體說明部分規定了設計單元的輸入輸出接口信號或引腳。根據該控制器的C/E系統中關心和需觀察的變量選擇系統的輸入和輸出信號,以確定基本設計單元的實體及其端口。在控制器的C/E系統模型中,因為事件驅動條件是變化的,所以將發生的事件作為設計實體的輸入信號,系統條件作為實體的輸出信號。同時,為實體設計一個輸入端口sysSTART,使系統上電復位。當sysSTART觸發時賦予系統初始標識,系統資源(Token)流動使能。下面是具體的VHDL實體描述。 LIBRARY IEEE USE IEEE.STD_LOGIC_1164.ALL ……其它庫 ENTITY MainCtrl IS PORTsysSTART: IN 數據類型 事件:IN數據類型 條件:OUT數據類型 END MainCtrl IS 構造體部分定義了設計單元的具體構造和操作(行為)。
C/E系統模型的拓撲結構直觀地表達了條件和事件間的約束機制。這種約束機制映射為控制器內部各模塊之間的邏輯關系。根據控制器C/E系統模型的特點,可采用多進程結構描述C/E系統。進程內部順序執行,進程之間并發執行。多進程結構是并行執行進程的網絡,多個進程并發執行。因此從C/E系統的拓撲結構,可將各進程映射為C/E系統的各庫所狀態,從而能夠描述出各條件庫所間的異步并發關系。各進程之間通過接口信號進行通信。接口信號是由新變化的參量引導進程產生的輸出結果。設計進程的程序,使之產生的輸出結果成為新的庫所狀態,從而影響變遷觸發(fire)條件,以各進程的輸出結果作為進程間的通信接口信號。具體描述如下: ARCHITECTURE behav OF MainCtrl IS BEGIN 進程Ri:PROCESS(事件集) i∈1,14 BEGIN Pi<= 進程Ri的輸出; …… END PROCESS Ri ...... END behav 沖突是由系統資源的共享產生的,與并發是一對對偶的概念1。在實際的Petri網模型中可能存在沖突K=<Pi,T1T2……,M>,網系統自身并不提供解決沖突的方法。避免沖突的方法或措施有: (1)由用戶選擇,有沖突的地方通常是需要作出選擇和決策的地方。 (2)設置合適的觸發規則:確定性產生規則,如優先級;不確定性產生規則,如發生概率。 (3)改變系統結構,即改寫Petri網的關聯矩陣,增加共享資源回收。 VHDL語言中的并行語句同樣不能解決沖突問題。使用VHDL并行語句描述沖突時將導致資源的丟失。而使用VHDL語言中的順序語句,如進程內部的語句,采用設定不同優先級的方法,可以解決Petri網中存在的沖突。本控制器C/E系統也存在沖突現象,如圖3所示。 對每個庫所Pi進程的變化(Token的有無),使用電平的高低來表征。事件發生與否,用脈沖出現與否表征。該C/E系統的結構體共有14個并行處理的進程。根據對控制器進行形式描述的思想,在進程內部采用下列結構: 進程Ri:PROCESS(事件參數表) i∈1,14 …… IF<條件表達式> THEN <行為表達式> END IF; END PROCESS 進程Ri; 事件參數表(也稱敏感量)中事件觸發進程的執行過程是:在判斷事件的<條件表達式>為真后,順序執行其后的<行為表達式>,由新變化的參量引導進程產生輸出結果;執行完進程語句后,返回進程的事件參數,等待事件集新的變化,引發進程的再一次進行,往復循環。 圖4 頂層模塊時序仿真 4 基于VHDL的仿真與CPLD實現 VHDL語言設計技術齊全,方法靈活,支持廣泛,對系統硬件描述能力強,具有多層次描述系統硬件的能力,可以從系統的數學模型直到門級電路。對控制器的Petri網模型進行VHDL程序設計后,利用綜合器進行邏輯綜合和優化,綜合后再經仿真器進行時序仿真,得到涉及器件硬件特性的仿真結果,其結果正確。最后下載到Altera系列的EPM7128STC-6芯片上,從而實現視頻輸入卡邏輯控制器設計。行為仿真結果的仿真波形如圖4所示。 將Petri網與EDA技術結合,對視頻輸入卡邏輯控制器用Petri網的C/E系統建模,并使用VHDL對協議的C/E系統模型進行程序設計,最后由CPLD器件實現控制器模型,使之成為實際的邏輯控制電路。這為硬件電路的高層綜合設計提供了一種方法,也為軟件系統和硬件系統開辟了一條溝通的渠道。對于其它具有多因素、動態和并發特點的系統,同樣可用Petri網建立模型,用CPLD器件對模型進行仿真和實現。



評論