一種基于Petri網(wǎng)的異步電路建模和VHDL實(shí)現(xiàn)方法
【專利摘要】本發(fā)明公開了一種基于Petri網(wǎng)的異步電路建模和VHDL實(shí)現(xiàn)方法,包括以下步驟:對普通Petri網(wǎng)進(jìn)行擴(kuò)展,定義廣義同步自控P/T系統(tǒng);根據(jù)用戶需求,創(chuàng)建待描述的數(shù)字系統(tǒng)的廣義同步自控P/T系統(tǒng)模型;對已建立的廣義同步自控P/T系統(tǒng)模型進(jìn)行功能分析;對已建立的系統(tǒng)模型進(jìn)行VHDL代碼自動(dòng)轉(zhuǎn)換;對轉(zhuǎn)換后生成的VHDL代碼進(jìn)行系統(tǒng)仿真。本發(fā)明提出的方法適合于異步電路的建模和VHDL實(shí)現(xiàn)。本發(fā)明可以降低開發(fā)成本,減少設(shè)計(jì)人員的工作量,增加可靠性,提高開發(fā)速度。
【專利說明】-種基于Petr i網(wǎng)的異步電路建模和VHDL實(shí)現(xiàn)方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種基于Petri網(wǎng)的數(shù)字系統(tǒng)建模和VHDL實(shí)現(xiàn)方法,屬于將Petri網(wǎng) 用于異步電路的設(shè)計(jì)領(lǐng)域。
【背景技術(shù)】
[0002] Petri網(wǎng)是一種用于系統(tǒng)的圖形化建模工具,具有直觀的圖形表示和堅(jiān)實(shí)的數(shù)學(xué) 基礎(chǔ),它具有強(qiáng)大的描述異步、并發(fā)等能力。在數(shù)字系統(tǒng)建模、分析與綜合中得到了廣泛的 應(yīng)用。
[0003] 為了提高Petri網(wǎng)用于數(shù)字系統(tǒng)的建模和分析能力,許多學(xué)者對Petri網(wǎng)進(jìn)行了 擴(kuò)展,主要表現(xiàn)為在普通Petri網(wǎng)的基礎(chǔ)上增強(qiáng)了與環(huán)境的交互。由于FPGA和CPLD的問世 及其在應(yīng)用方面的迅速推廣,各種EDA軟件工具相繼出現(xiàn),并且功能不斷增強(qiáng),硬件設(shè)計(jì)變 為"軟件化",從而可以根據(jù)Petri網(wǎng)的拓?fù)浣Y(jié)構(gòu)用硬件加以實(shí)現(xiàn)。與其它硬件描述語言相 t匕,VHDL具有較強(qiáng)的行為描述能力,描述層次比較高,支持大規(guī)模設(shè)計(jì)的分解和已有設(shè)計(jì)的 復(fù)用功能。對Petri網(wǎng)模型用VHDL進(jìn)行描述,即可方便的完成Petri網(wǎng)模型的硬件實(shí)現(xiàn)。 針對Petri網(wǎng)用于數(shù)字系統(tǒng)的建模、分析與綜合,發(fā)表的文獻(xiàn)主要包括:
[0004] 《DIRECT IMPLEMENTATION OF PETRI NET BASED MODEL IN FPGA》和《From Petri net models to VHDL implementation of digital controllers》主要采用了 Petri 網(wǎng)標(biāo) 記語言(PNML)來對Petri網(wǎng)進(jìn)行描述表示,并給出了相應(yīng)規(guī)則實(shí)現(xiàn)PNML到VHDL代碼的自 轉(zhuǎn)換。
[0005] 《DEVELOPMENT PROCESS FOR DEPENDABLE HIGH-PERFORMANCE C0NTR0-LLERS USING PETRI Nets and FPGA Technology》一文提出了基于信號(hào)解釋 petri 網(wǎng)(SIPN)對 控制器建模,并將SIPN中的變遷、庫所、輸出信號(hào)和定時(shí)器等各類元素,映射到VHDL語言 中的不冋邏$耳表達(dá)式?!禙rom Petri Net Models to VHDL Implementation of Digital Controllers》一文在庫所變遷網(wǎng)基礎(chǔ)上,規(guī)范了網(wǎng)和環(huán)境之間的接口,提出了用于數(shù)字控 制器建模的輸入輸出庫所變遷網(wǎng)(Ι0ΡΤ網(wǎng))且采用了 PNML語言對Petri網(wǎng)模型描述,進(jìn)而 開發(fā)了包括圖形編輯器、自動(dòng)代碼產(chǎn)生器和仿真器等在內(nèi)的一組工具集。從而較好的支持 了從規(guī)犯到頭施的元整的系統(tǒng)開發(fā)過程?!禙PGA-based Implementation of Synch;ronous Petri Nets》定義了一種同步Petri網(wǎng)用于時(shí)鐘驅(qū)動(dòng)邏輯電路規(guī)范?!秔etri網(wǎng)-VHDL編譯 程序的構(gòu)造》提出將Petri網(wǎng)中的C/E系統(tǒng)轉(zhuǎn)換為VHDL代碼的方法,具體用C0NPAR語言對 C/E系統(tǒng)進(jìn)行描述,獲得C0NPAR格式的Petri網(wǎng)文本文件;通過編譯工具軟件FLEX、BYACC, 產(chǎn)生VHDL代碼。
[0006]以上所提出的Petri網(wǎng)軟件工具所綜合的控制器電路均為同步實(shí)現(xiàn)。與同步電路 相比,異步電路具有功耗低、高速、電磁輻射低、模塊化程度高、可移植性強(qiáng)和沒有時(shí)鐘偏差 (skew)等諸多優(yōu)勢。Petri網(wǎng)用于異步電路方面,目前用得較多的電路綜合方法是信號(hào)轉(zhuǎn) 換圖(Signal Transition Graph,STG),但STG存在狀態(tài)組合爆炸和編碼復(fù)雜的缺點(diǎn)。 [0007]為了將Petri網(wǎng)用于異步電路的設(shè)計(jì),Petri網(wǎng)僅僅在邏輯級(jí)描述系統(tǒng)是遠(yuǎn)遠(yuǎn)不 夠的,需要擴(kuò)展Petri網(wǎng)的建模能力。Petri網(wǎng)模型只有直接映射的方式才能避免狀態(tài)組合 爆炸,但電路實(shí)現(xiàn)需要有支撐的邏輯器件。同步電路中采用全局時(shí)鐘,所以觸發(fā)器只需要一 個(gè)時(shí)鐘,但一般的觸發(fā)器不適合用于具有多個(gè)輸入輸出變遷的庫所的實(shí)現(xiàn)。趙不賄教授發(fā) 明的多輸入-多時(shí)鐘維持阻塞型D觸發(fā)器可應(yīng)用于時(shí)序電路的設(shè)計(jì),特別是由事件驅(qū)動(dòng)的 分布式系統(tǒng)和異步電路的設(shè)計(jì),能夠?qū)崿F(xiàn)多路數(shù)據(jù)的鎖存,但針對數(shù)字系統(tǒng)的 Petri網(wǎng)模 型,如何基于此類器件實(shí)現(xiàn)VHDL的實(shí)現(xiàn)尚未給出有效方法。
[0008]自控網(wǎng)系統(tǒng)(cyber net system)又稱為自修正系統(tǒng)(self-modifying system), 是C. A. Petri提出的有向弧的權(quán)受控的Petri網(wǎng),它的意義在于使Petri網(wǎng)中的有向弧的 權(quán)由常量變成了變量,從而更加清楚地表現(xiàn)系統(tǒng)參數(shù)受系統(tǒng)狀態(tài)的影響,反映出系統(tǒng)內(nèi)部 更為復(fù)雜的耦合關(guān)系。但目前利用自控網(wǎng)系統(tǒng)對數(shù)字系統(tǒng)建模、分析與硬件實(shí)現(xiàn)的方法尚 未見報(bào)道。
【發(fā)明內(nèi)容】
[0009] 本發(fā)明對普通Petri網(wǎng)進(jìn)行擴(kuò)展,定義廣義同步自控P/T系統(tǒng),基于此對數(shù)字系統(tǒng) 建模,并實(shí)現(xiàn)廣義同步自控P/T系統(tǒng)模型向VHDL的自動(dòng)轉(zhuǎn)換。
[0010] 本發(fā)明的目的及解決其技術(shù)問題采用以下技術(shù)方案來實(shí)現(xiàn)。依據(jù)本發(fā)明提出的一 種基于Petri網(wǎng)的數(shù)字系統(tǒng)建模和VHDL實(shí)現(xiàn)方法,包括以下步驟:
[0011] 步驟1,對普通Petri網(wǎng)進(jìn)行擴(kuò)展,定義廣義同步自控P/T系統(tǒng);
[0012] 步驟2,根據(jù)用戶需求,創(chuàng)建待描述的數(shù)字系統(tǒng)的廣義同步自控P/T系統(tǒng)模型;
[0013] 步驟3,對已建立的廣義同步自控P/T系統(tǒng)模型進(jìn)行功能分析;
[0014] 步驟4,對已建立的系統(tǒng)模型進(jìn)行VHDL代碼自動(dòng)轉(zhuǎn)換;
[0015] 步驟5,對轉(zhuǎn)換后生成的VHDL代碼進(jìn)行系統(tǒng)仿真。
[0016] 進(jìn)一步,所述步驟1從普通Petri網(wǎng)本質(zhì)出發(fā),對P/T系統(tǒng)和自控網(wǎng)系統(tǒng)的定義進(jìn) 行擴(kuò)展,定義廣義自控P/T系統(tǒng);針對廣義自控P/T系統(tǒng)的圖形表示,提出一類特殊的權(quán)控 制?。鹤x弧和寫弧;進(jìn)而在廣義同步自控P/T系統(tǒng)定義的基礎(chǔ)上引入同步事件,定義廣義同 步自控P/T系統(tǒng)(GSCPT)。
[0017] 進(jìn)一步,所述步驟2采用圖形建模方式,根據(jù)廣義同步自控P/T系統(tǒng)模型的網(wǎng)規(guī)則 建立待描述的數(shù)字系統(tǒng)的GSCPT系統(tǒng)模型。
[0018] 進(jìn)一步,所述的步驟3具體包括:
[0019] 步驟3. 1,從步驟2所建立的GSCPT模型中包含的信號(hào)的波形文件中提取并記錄外 部事件信息,按時(shí)序關(guān)系存于外部事件列表中,波形文件可利用EDA設(shè)計(jì)軟件建立;
[0020] 步驟3. 2,基于狀態(tài)方程構(gòu)造模型的可達(dá)標(biāo)識(shí)集,可達(dá)標(biāo)識(shí)集采用鏈表結(jié)構(gòu)存儲(chǔ), 分析模型標(biāo)識(shí)的演化情況。
[0021] 進(jìn)一步,所述步驟3. 2中可達(dá)標(biāo)識(shí)集的構(gòu)造算法如下:
[0022] 步驟3. 2. 1,創(chuàng)建初始表頭結(jié)點(diǎn),在鏈表結(jié)點(diǎn)結(jié)構(gòu)的Markings域存放網(wǎng)初始標(biāo)識(shí) M。,則當(dāng)前標(biāo)識(shí)為初始標(biāo)識(shí);
[0023] 步驟3. 2. 2,在當(dāng)前標(biāo)識(shí)下,若有變遷使能且未關(guān)聯(lián)外部事件,則該變遷發(fā)生,根 據(jù)狀態(tài)方程計(jì)算后續(xù)標(biāo)識(shí)M,并生成一新的鏈表結(jié)點(diǎn),其Markings域?yàn)镸,鏈表結(jié)點(diǎn)結(jié)構(gòu)的 FireCondition域?yàn)榘l(fā)生的變遷名,將該結(jié)點(diǎn)加入鏈表的尾部;
[0024] 步驟3· 2· 3,對取出的表頭結(jié)點(diǎn),根據(jù)變遷使能規(guī)則找出在當(dāng)前標(biāo)識(shí)下網(wǎng)中所有 的使能變遷,若使能變遷數(shù)為〇,則構(gòu)造過程結(jié)束,否則將所有使能變遷加入集合FiresSet 中;
[0025] 步驟3. 2. 4,找與此變遷集合FiresSet中變遷關(guān)聯(lián)的事件中最先發(fā)生的外部事件 E,若E存在則與之關(guān)聯(lián)的變遷發(fā)生,根據(jù)狀態(tài)方程計(jì)算后續(xù)標(biāo)識(shí)『,并生成一新的鏈表結(jié) 點(diǎn),其Markings域?yàn)镹T,F(xiàn)ireCondition域?yàn)榘l(fā)生的變遷名和外部事件E名,將該結(jié)點(diǎn)加 入鏈表的尾部,轉(zhuǎn)步驟 3_ 2. 2 ;若外部事件列表已搜索完畢,則構(gòu)造過程結(jié)束。
[0026] 進(jìn)一步,所述步驟4具體包括:
[0027] 步驟4. 1,構(gòu)造多輸入多時(shí)鐘維持阻塞型D觸發(fā)器的IP核;
[0028]步驟4. 2,采用直接映射的轉(zhuǎn)換策略,具體轉(zhuǎn)換以庫所為核心,由庫所的輸入弧構(gòu) 建輸入轉(zhuǎn)換塊,由庫所的輸出弧構(gòu)建輸出轉(zhuǎn)換塊,通過定義一系列的轉(zhuǎn)化規(guī)則自動(dòng)完成廣 義同步自控P/T系統(tǒng)模型到VHDL代碼的轉(zhuǎn)換。
[0029] 進(jìn)一步,所述步驟4· 1的IP核設(shè)計(jì)的功能模塊包括數(shù)據(jù)輸入模塊和輸出鎖存模 塊,其中數(shù)據(jù)輸入模塊用于實(shí)現(xiàn)電路原理圖中輸入單元功能,輸出鎖存模塊用于實(shí)現(xiàn)電路 原理圖中輸出鎖存模塊功能。
[0030] 進(jìn)一步,所述步驟4. 2中廣義同步自控P/T系統(tǒng)模型到VHDL代碼轉(zhuǎn)換的規(guī)則為:
[0031] 步驟4. 2. 1,庫所的輸入轉(zhuǎn)換塊映射為條件信號(hào)賦值語句;輸入轉(zhuǎn)換塊由輸入弧 及其相連的變遷構(gòu)成,其中變遷的使能條件映射為賦值表達(dá)式中的賦值條件,根據(jù)輸入弧 的類型和權(quán)值函數(shù)映射為具體的賦值表達(dá)式,由于廣義同步自控P/T系統(tǒng)中變遷關(guān)聯(lián)有事 件,通過創(chuàng)建中間信號(hào)以存儲(chǔ)運(yùn)算結(jié)果;
[0032] 步驟4. 2. 2,庫所的輸出轉(zhuǎn)換塊轉(zhuǎn)換規(guī)則與輸入轉(zhuǎn)換塊類似,亦映射為條件信號(hào)賦 值語句,輸出轉(zhuǎn)換塊由輸出弧及其相連的變遷構(gòu)成,根據(jù)輸出弧的類型和權(quán)值函數(shù)映射為 具體的賦值表達(dá)式;
[0033] 步驟4. 2. 3,庫所映射為存儲(chǔ)器。
[0034] 進(jìn)一步,所述步驟4. 2. 3中庫所映射為存儲(chǔ)器的規(guī)則如下:
[0035] 步驟a,存儲(chǔ)器的位數(shù)根據(jù)庫所設(shè)定的容量函數(shù)確定,初值由庫所的初始托肯數(shù)確 定;
[0036] 步驟b,時(shí)鐘觸發(fā)端個(gè)數(shù)為庫所的輸入弧和輸出弧個(gè)數(shù)之和,各時(shí)鐘觸發(fā)端信號(hào)根 據(jù)庫所前集變遷和后集變遷相關(guān)聯(lián)的事件類型區(qū)別對待;
[0037] 步驟c,數(shù)據(jù)輸入端信號(hào)為庫所的輸入轉(zhuǎn)換塊和輸出轉(zhuǎn)換塊映射的VHDL代碼中所 創(chuàng)建的中間信號(hào)。
[0038] 借由上述技術(shù)方案、本發(fā)明基于廣義同步自控網(wǎng)P/T系統(tǒng)模型的數(shù)字系統(tǒng)硬件實(shí) 現(xiàn)方法至少具有下列優(yōu)點(diǎn)及有益效果:
[0039] 通過對Petri網(wǎng)定義的擴(kuò)展,提出了廣義同步自控P/T系統(tǒng),用于對數(shù)字系統(tǒng)從算 法級(jí)和系統(tǒng)級(jí)進(jìn)行建模?;诙噍斎?多時(shí)鐘端維持阻塞型D觸發(fā)器器件,設(shè)計(jì)了相應(yīng)的 IP軟核,實(shí)現(xiàn)了廣義同步自控P/T系統(tǒng)模型到VHDL程序的自動(dòng)轉(zhuǎn)換,從而為數(shù)字系統(tǒng)的建 模、仿真與綜合,提供了一套從規(guī)范級(jí)到實(shí)現(xiàn)級(jí)的完整方法。本發(fā)明提出的方法適合于異步 電路的建模和VHDL實(shí)現(xiàn)。本發(fā)明可以降低開發(fā)成本,減少設(shè)計(jì)人員的工作量,增加可靠性, 提高開發(fā)速度。
【專利附圖】
【附圖說明】
[0040] 圖1是本發(fā)明基于Petri網(wǎng)的數(shù)字系統(tǒng)的VHDL實(shí)現(xiàn)方法流程圖;
[0041] 圖2是本發(fā)明定義的廣義自控P/T系統(tǒng)模型及其讀寫弧表示示意圖;
[0042]圖3是本發(fā)明【具體實(shí)施方式】建立的廣義同步自控P/T系統(tǒng)模型示意圖;
[0043] 圖4是本發(fā)明【具體實(shí)施方式】中構(gòu)造可達(dá)標(biāo)識(shí)集采用的數(shù)據(jù)結(jié)構(gòu);
[0044] 圖5是本發(fā)明具體實(shí)施例模型中外部信號(hào)時(shí)序圖示意圖;
[0045] 圖6是圖3模型的可達(dá)標(biāo)識(shí)集的演變圖;
[0046] 圖7是3輸入-3時(shí)鐘端維持阻塞型D觸發(fā)器的電路原理圖;
[0047] 圖8是3輸入-3時(shí)鐘端維持阻塞型D觸發(fā)器IP核設(shè)計(jì)結(jié)構(gòu)原理圖;
[0048] 圖9是對圖3模型進(jìn)行自動(dòng)轉(zhuǎn)換所得VHDL代碼的功能仿真波形圖。
【具體實(shí)施方式】
[0049] 為更進(jìn)一步闡述本發(fā)明為達(dá)成預(yù)定發(fā)明目的所采取的技術(shù)手段及功效,下面結(jié)合 附圖及實(shí)施例,對依據(jù)本發(fā)明提出的基于廣義同步自控P/T系統(tǒng)模型的數(shù)字系統(tǒng)的VHDL實(shí) 現(xiàn)方法的【具體實(shí)施方式】,做詳細(xì)說明如后。
[0050] 步驟1定義廣義同步自控P/T系統(tǒng)。
[0051] 本發(fā)明中,在普通P/T系統(tǒng)的基礎(chǔ)上進(jìn)行擴(kuò)展,首先對廣義自控P/T系統(tǒng)進(jìn)行形式 化語法定義。用Σ表示如下:
[0052] Σ = (S, T ;F, K,W, M。),其中:
[0053] 1)N = (S, T ;F)構(gòu)成有向網(wǎng),稱為Σ的基網(wǎng)。
[0054] 2)K = {KL,KH}稱為N上的容量函數(shù);
[0055] Kl:S -R;KH:S-R。心和KH分別稱為下界容量函數(shù)和上界容量函數(shù)。約成心⑷ <K H(S),s的容量可表示為D^(s),KH(S)]。當(dāng)Kl(s)、Kh(s)為無窮時(shí),容量的閉區(qū)間變成 開區(qū)間。
[0056] 3)W:F -R U Exp⑶稱為N上的權(quán)函數(shù);其中Exp⑶是S元素的函數(shù)表達(dá)式集。
[0057] 4)M :S - R稱為N的標(biāo)識(shí),M。稱為Σ的初始標(biāo)識(shí)。
[0058] 若在廣義自控P/T系統(tǒng)中,對所有的s E S,$KI>) =0,KH(s)=-,且W: F - N U S,則廣義自控P/T系統(tǒng)就成為自控網(wǎng)系統(tǒng)。因此廣義自控P/T系統(tǒng)狀態(tài)方程可寫 成自控網(wǎng)系統(tǒng)的狀態(tài)方程形式:
[0059] =M〇+^C*U〇
[0060] 其中矩陣運(yùn)算符"表替換加,C為Σ的關(guān)聯(lián)矩陣,U為Σ的并發(fā)步序列仏隊(duì)… uk的矩陣表示。
[0061] 針對廣義自控P/T系統(tǒng)的圖形表示,本發(fā)明提出了一類特殊的權(quán)控制?。鹤x弧和 寫弧。圖2(a)表示了一個(gè)廣義自控網(wǎng)系統(tǒng),在該網(wǎng)系統(tǒng)下,變遷t發(fā)生時(shí),庫所 Sl、s2中的 標(biāo)識(shí)值不變,而庫所s3標(biāo)識(shí)值更新為只與Si、s 2標(biāo)識(shí)值有關(guān),與原標(biāo)識(shí)值無關(guān)。圖2 (b)是 使用讀寫弧的廣義自控網(wǎng)系統(tǒng),圖形上讀弧和寫弧用中間帶有箭頭的有向弧來表示。
[0062] 本發(fā)明中,定義廣義同步自控P/T系統(tǒng)作為數(shù)字系統(tǒng)模型,用GSCPT表示如下:
[0063] GSCPT = ( Σ,E,G),其中
[0064] 1) Σ= (S,T;F,K,W,MQ)是一個(gè)廣義自控 P/T 系統(tǒng);
[0065] 2)G:T -E U {ε},其中Ε為Σ的事件集,ε表示一個(gè)恒發(fā)生事件。
[0066] 在GSCPT模型中,與變遷關(guān)聯(lián)的外部事件標(biāo)注在變遷圖符旁,當(dāng)變迀與ε關(guān)聯(lián)時(shí), 采取默認(rèn)方法,即圖形上不標(biāo)明事件ε。
[0067] 從以上定義可以看出,廣義同步自控Ρ/Τ系統(tǒng)是Ρ/Τ系統(tǒng)的擴(kuò)展,具有以下特點(diǎn):
[0068] (1)變遷與事件相關(guān)聯(lián);當(dāng)一個(gè)變遷有發(fā)生權(quán)且與之關(guān)聯(lián)事件為真時(shí),變遷發(fā)生。
[0069] ⑵弧的權(quán)函數(shù)為以S元為變量,以正整數(shù)(含0)為值的函數(shù);
[0070] (3)系統(tǒng)弧類型包含讀弧和寫??;讀弧和寫弧是一種特殊的權(quán)控制弧,若一個(gè)變 遷通過讀弧和寫弧分別連接庫所,則變遷發(fā)生時(shí),通過讀弧相連的庫所不改變托肯數(shù),通過 寫弧相連的庫所托肯數(shù)由弧權(quán)值更新。
[0071] (4)庫所與容量函數(shù)相聯(lián)系,從而完整的對的系統(tǒng)對象的數(shù)量進(jìn)行約束。
[0072] 步驟2創(chuàng)建廣義同步自控Ρ/Τ系統(tǒng)模型。
[0073] 采用圖形建模方式,以直觀的交互式的方式建立待描述的數(shù)字系統(tǒng)的GSCPT系統(tǒng) 模型。模型中庫所用圓表示,變遷用矩形表示,弧用帶箭頭的直線或折線表示,根據(jù)線和箭 頭的形狀來區(qū)分普通弧和控制弧,變遷關(guān)聯(lián)的事件顯示于變遷圖符旁,以符號(hào)"丨"或" j " 后緊跟信號(hào)名表示。具體建模時(shí),用鼠標(biāo)選擇相應(yīng)的庫所工具按鈕或變遷工具按鈕并在屏 幕上指定位置單擊鼠標(biāo),相應(yīng)的庫所或變遷圖形即自動(dòng)生成,而對于弧的創(chuàng)建操作,只需用 鼠標(biāo)分別單擊弧的起點(diǎn)和終點(diǎn)控件后自動(dòng)繪制出相應(yīng)的弧線。通過Windows的消息響應(yīng)機(jī) 制,可以對當(dāng)前選中的模型中某個(gè)控件響應(yīng)鼠標(biāo)和鍵盤等各種事件,以實(shí)現(xiàn)控件的移動(dòng)、刪 除以及屬性修改等操作。創(chuàng)建具體實(shí)施例的廣義同步自控P/T系統(tǒng)模型如圖3所示。該模 型中,外部信號(hào)包括S、X 2。T3、T4和T5均關(guān)聯(lián)信號(hào)S上升沿,當(dāng)S上升沿到來時(shí),讀取庫 所Ρ0、Ρ1和Ρ2中的數(shù)據(jù)分別存入庫所Ρ3、Ρ4和Ρ5中。變遷?\與Τ 2分別關(guān)聯(lián)信號(hào)Xi上升 沿與X2的下降沿,變遷T6未關(guān)聯(lián)外部事件。
[0074] 步驟3對已建立的GSCPT模型系統(tǒng)進(jìn)行功能分析。
[0075] 步驟3. 1從波形文件中提取并記錄外部事件信息,按時(shí)序關(guān)系存于外部事件列表 中,波形文件可利用Quartus、ISE、Modelsim等EDA設(shè)計(jì)軟件建立;
[0076] 步驟3. 2基于狀態(tài)方程構(gòu)造模型的可達(dá)標(biāo)識(shí)集,分析模型標(biāo)識(shí)的演化情況。
[0077] 可達(dá)標(biāo)識(shí)集采用鏈表結(jié)構(gòu)存儲(chǔ),鏈表的結(jié)點(diǎn)結(jié)構(gòu)如圖4所示。在該結(jié)點(diǎn)中,Name域 表示結(jié)點(diǎn)的名稱,Markings表不系統(tǒng)模型的標(biāo)識(shí),F(xiàn)ireCondition表示到達(dá)本結(jié)點(diǎn)標(biāo)識(shí)的 發(fā)生變遷和外部事件,Next為指向后繼結(jié)點(diǎn)的指針。
[0078] 系統(tǒng)可達(dá)標(biāo)識(shí)集的構(gòu)造算法如下:
[0079] ①創(chuàng)建初始表頭結(jié)點(diǎn),其Markings域存放網(wǎng)初始標(biāo)識(shí)M〇,當(dāng)前標(biāo)識(shí)為初始標(biāo)識(shí);
[0080] ②在當(dāng)前標(biāo)識(shí)下,若有變遷使能且未關(guān)聯(lián)外部事件,則該變遷發(fā)生,根據(jù)狀態(tài)方程 計(jì)算后續(xù)標(biāo)識(shí)M,并生成一新的鏈表結(jié)點(diǎn),其Markings域?yàn)镸,F(xiàn)ireCondition域?yàn)榘l(fā)生的 變遷名,將該結(jié)點(diǎn)加入鏈表的尾部;
[0081] ③對取出的表頭結(jié)點(diǎn),根據(jù)變遷使能規(guī)則,找出在當(dāng)前標(biāo)識(shí)下網(wǎng)中所有的使能變 遷,若使能變遷數(shù)為〇,則構(gòu)造過程結(jié)束,否則將所有使能變遷加入集合FiresSet中。
[0082] ④找與集合FiresSet中的變遷關(guān)聯(lián)的事件中最先發(fā)生的外部事件E,若E存 在則與之關(guān)聯(lián)的變遷發(fā)生,根據(jù)狀態(tài)方程計(jì)算后續(xù)標(biāo)識(shí)M',并生成一新的鏈表結(jié)點(diǎn),其 Markings域?yàn)閃,F(xiàn)ireCondition域?yàn)榘l(fā)生的變遷名和外部事件e名,將該結(jié)點(diǎn)加入鏈表 的尾部,轉(zhuǎn)②;若外部事件列表已搜索完畢,則構(gòu)造過程結(jié)束。
[0083]圖5是本發(fā)明具體實(shí)施例模型中外部信號(hào)時(shí)序圖示意圖;圖6為實(shí)施例模型可達(dá) 標(biāo)識(shí)集的演變圖,可以分析:當(dāng)S的上升沿到來時(shí),變遷τ3、'和!^發(fā)生,系統(tǒng)狀態(tài)從初始 標(biāo)識(shí)(5,2,4,0,0,0,0)變成(5,2,4,5,2,4,0);當(dāng)Xi的第一個(gè)上升沿到來時(shí),變遷 Τι發(fā)生, 系統(tǒng)狀態(tài)變成(5, 2,4, 3,6,4,0);當(dāng)X2的第一個(gè)下降沿到來時(shí),變遷τ2發(fā)生,系統(tǒng)狀態(tài)變?yōu)?(5,2,4,3,3,5,0) ;當(dāng)Χ2的第二個(gè)下降沿到來時(shí),變遷Τ2發(fā)生,系統(tǒng)狀態(tài)變?yōu)椋?, 2,4,3,3, 6,0),在此狀態(tài)下,變遷1' 6發(fā)生,系統(tǒng)狀態(tài)變成(5,2,4,3,0,0,3)。
[0084]通過從EDA設(shè)計(jì)軟件中建立的波形文件中提取信號(hào)的時(shí)序圖,基于狀態(tài)方程分析 標(biāo)識(shí)的演化情況,對所建立的模型進(jìn)行功能仿真。
[0085] 步驟4對已建立的系統(tǒng)模型進(jìn)行VHDL代碼轉(zhuǎn)換。
[0086] 步驟4. 1多輸入多時(shí)鐘D觸發(fā)器的IP核構(gòu)造
[0087]本發(fā)明采用趙不賄教授發(fā)明的多輸入-多時(shí)鐘維持阻塞型D觸發(fā)器作為系統(tǒng)的存 儲(chǔ)器件,此類觸發(fā)器應(yīng)用于時(shí)序電路的設(shè)計(jì),特別是由事件驅(qū)動(dòng)的分布式系統(tǒng)和異步電路 的設(shè)計(jì),能夠?qū)崿F(xiàn)多路數(shù)據(jù)的鎖存。該D觸發(fā)器每路數(shù)據(jù)輸入端分別對應(yīng)一個(gè)時(shí)鐘觸發(fā)端, 每個(gè)時(shí)鐘觸發(fā)端用來接受一個(gè)外部事件。當(dāng)外部事件發(fā)生時(shí),相應(yīng)的數(shù)據(jù)輸入端的數(shù)據(jù)被 鎖存。
[0088]圖7是一個(gè)3輸入-3時(shí)鐘端維持阻塞型D觸發(fā)器的電路原理圖,具體由3個(gè)輸入 單元(參見圖7中的虛線框1)和1個(gè)多輸入基本鎖存器(圖7中的虛線框2中)組成。該 觸發(fā)器有3個(gè)數(shù)據(jù)輸入端^、屯和d 3,對應(yīng)的3個(gè)時(shí)鐘觸發(fā)端分別是CP^Ch和CP3,輸出端 為q和nq,nq與q是邏輯互補(bǔ)關(guān)系。 3組輸入,正常情況下只有一組有效。
[0089]為了有效的利用此類觸發(fā)器完成廣義同步自控ρ/τ系統(tǒng)的VHDL實(shí)現(xiàn),采用VHDL 語言將其設(shè)計(jì)成可配置的IP軟核。IP軟核設(shè)計(jì)的功能模塊包括輸入模塊和輸出鎖存模塊, 其中數(shù)據(jù)輸入模塊用于實(shí)現(xiàn)電路原理圖中輸入單元功能,輸出鎖存模塊用于實(shí)現(xiàn)電路原理 圖中輸出鎖存模塊功能,輸入模塊中輸出信號(hào)finished用于指示輸入時(shí)鐘變化,當(dāng)任一時(shí) 鐘觸發(fā)端信號(hào)上升沿到達(dá),則此信號(hào)置為1。IP軟核設(shè)計(jì)中增加了設(shè)置觸發(fā)器初始值功能。 圖7中所示3輸入-3時(shí)鐘端維持阻塞型D觸發(fā)器具體IP核設(shè)計(jì)結(jié)構(gòu)原理參見圖8。
[0090] 生成的IP軟核的接口如下:
[0091] COMPONENT DTrigger GFAERIC ( n : INTl:CihR );: PO!lT(d,cp : ITs S r〇_LOGlC _VEeTOR(n-l DOWNTO 0); cp: IN S rD_LOGIC_VECTOR(n-1 DOWNTO 0); T^^t:IN STEM^OGIC; fimshed:OUT STD LOGIC; q.nq OUTSID^LOGIC; :? EMD COMPONENT;
[0092]該接口中定義了類屬參量n,用于表明多輸入-多時(shí)鐘端維持阻塞型D觸發(fā)器的電 路結(jié)構(gòu),各端口信號(hào)功能說明如下:
[0093] d(n-1. · · 〇)和cp(n-L .. 0) :n個(gè)數(shù)據(jù)輸入端和對應(yīng)的時(shí)鐘觸發(fā)端;
[0094] q和nq :數(shù)據(jù)輸出端和反向數(shù)據(jù)輸出端;
[0095] rst :復(fù)位信號(hào),有效后將數(shù)據(jù)輸出端清〇 ;
[00%] set :置位信號(hào),有效后將數(shù)據(jù)輸出端置丄;
[0097] finished :時(shí)鐘觸發(fā)指示信號(hào)。
[0098]單個(gè)觸發(fā)器只能表示一位二進(jìn)制數(shù),由多個(gè)多輸入多時(shí)鐘D觸發(fā)器即可組成存儲(chǔ) 器,從而實(shí)現(xiàn)多位數(shù)據(jù)的存儲(chǔ)。
[00"]步驟4. 2進(jìn)行廣義同步自控P/T系統(tǒng)模型的VHDL代碼自動(dòng)轉(zhuǎn)換。
[0100]從廣義同步自控P/T系統(tǒng)模型到VHDL代碼轉(zhuǎn)換過程采用直接映射的轉(zhuǎn)換策略,即 將系統(tǒng)模型中庫所由多輸入多時(shí)鐘D觸發(fā)器組成的存儲(chǔ)器所表示,弧映射為組合電路運(yùn)算 表達(dá)式,變遷的發(fā)生就是將組合電路運(yùn)算的結(jié)果鎖存到存儲(chǔ)器中。具體轉(zhuǎn)換以庫所為核心, 由庫所的輸入弧構(gòu)建輸入轉(zhuǎn)換塊,由庫所的輸出弧構(gòu)建輸出轉(zhuǎn)換塊,將庫所、輸入轉(zhuǎn)換塊和 輸出轉(zhuǎn)換塊分別轉(zhuǎn)換為不同的VHDL表達(dá)式。轉(zhuǎn)換規(guī)則如下:
[0101] 1)庫所的輸入轉(zhuǎn)換塊映射為條件信號(hào)賦值語句。輸入轉(zhuǎn)換塊由輸入弧及其相連的 變遷構(gòu)成,其中變遷的使能條件映射為賦值表達(dá)式中的賦值條件,根據(jù)輸入弧的類型和權(quán) 值函數(shù)映射為具體的賦值表達(dá)式。由于廣義同步自控P/T系統(tǒng)中變遷關(guān)聯(lián)有事件,通過創(chuàng) 建中間信號(hào)以存儲(chǔ)運(yùn)算結(jié)果。
[0102] 2)庫所的輸出轉(zhuǎn)換塊轉(zhuǎn)換規(guī)則與輸入轉(zhuǎn)換塊類似,亦映射為條件信號(hào)賦值語句。 輸出轉(zhuǎn)換塊由輸出弧及其相連的變遷構(gòu)成,根據(jù)輸出弧的類型和權(quán)值函數(shù)映射為具體的賦 值表達(dá)式。
[0103] 3)庫所映射為存儲(chǔ)器,規(guī)則如下。
[0104] a)存儲(chǔ)器的位數(shù)根據(jù)庫所設(shè)定的容量函數(shù)確定,初值由庫所的初始托肯數(shù)確定。 [0105] b)時(shí)鐘觸發(fā)端個(gè)數(shù)為庫所的輸入弧和輸出弧個(gè)數(shù)之和,各時(shí)鐘觸發(fā)端信號(hào)根據(jù)庫 所前集變遷和后集變遷相關(guān)聯(lián)的事件類型區(qū)別對待。若s e X,t G ^Vs·, t0106]①t - e,e e E,則存儲(chǔ)器對應(yīng)此變遷的時(shí)鐘觸發(fā)端信號(hào)即為e所對應(yīng)的信號(hào); [0107]②t- ε,則構(gòu)造一事件e',滿足當(dāng)變遷t使能條件滿足時(shí),e'發(fā)生,從而存儲(chǔ) 器對應(yīng)此變迀的時(shí)鐘觸發(fā)端信號(hào)為e'所對應(yīng)的信號(hào);
[0108] c)數(shù)據(jù)輸入端信號(hào)為庫所的輸入轉(zhuǎn)換塊和輸出轉(zhuǎn)換塊映射的VHDL代碼中所創(chuàng)建 的中間信號(hào)。
[0109]下面結(jié)合圖3中模型為例來說明VHDL自動(dòng)轉(zhuǎn)換過程。考查圖中的庫所P5,該庫所 包含兩個(gè)輸入轉(zhuǎn)換塊,其中與T2相連的弧類型為普通弧,與T5相連的弧類型為寫?。籔5包 含一個(gè)輸出轉(zhuǎn)換塊。庫所映射為存儲(chǔ)器具體通過例化步驟4.1中Dtrigger IP核實(shí)現(xiàn)。圖 3中P5庫所轉(zhuǎn)換生成的VHDL代碼如下,其中常量widthn為存儲(chǔ)器的位數(shù),常量P4Init保 存存儲(chǔ)器初值,T6Signal是為變遷T 6構(gòu)造的信號(hào)。
[0110] P5cvciits(0)<-S; P5events( l )<- X2 ; PSeventsi 2 )< ~ ? 6S i gn a I; <=P2; l^Zrcmp <-P5+l whenP4>-P3 else P5; P53temp when P5>-g else P5; instanc^P5: for widthn-1 ^mrate data5(i) ^ P53temp(i)&P52tcmp(i)&P51 temp(i|; P3Triggcri: DTrigger GENERIC MAP (n ^>3)
[0111] POR「MAl)(d->diitii5(i),cp_>P5魏ent^ rst_>rst.sct_>P51nit(i),finished ^ finishedS(i). q->P5(i).nq->qb5temp(i)); eni gene^a^e instanccP5;
[0112] 步驟5對轉(zhuǎn)換后生成的VHDL代碼進(jìn)行系統(tǒng)功能仿真。
[0113] 根據(jù)步驟4自動(dòng)產(chǎn)生的VHDL代碼,基于Xilinx ISE、Altera QuartusII或 Modelsim平臺(tái)下進(jìn)行功能仿真。針對圖3所示的模型轉(zhuǎn)換后的VHDL代碼,在ISE平臺(tái)下功 能仿真結(jié)果如圖9所示。從圖中可以看出,仿真結(jié)果與圖6中所示可達(dá)標(biāo)識(shí)集的標(biāo)識(shí)演化 結(jié)果一致,說明廣義自控網(wǎng)系統(tǒng)的動(dòng)態(tài)方程可以用來作為數(shù)字電路的功能仿真計(jì)算模型。
[0114] 以上內(nèi)容是結(jié)合具體的優(yōu)選實(shí)施方式對本發(fā)明所作的進(jìn)一步詳細(xì)說明,不能認(rèn)定 本發(fā)明的【具體實(shí)施方式】僅限于此,對于本發(fā)明所屬【技術(shù)領(lǐng)域】的普通技術(shù)人員來說,在不脫 離本發(fā)明構(gòu)思的前提下,還可以做出若千簡單的推演或替換,都應(yīng)當(dāng)視為屬于本發(fā)明由所 提交的權(quán)利要求書確定專利保護(hù)范圍。
【權(quán)利要求】
1. 基于Petri網(wǎng)的異步電路建模和VHDL實(shí)現(xiàn)方法,其特征在于,包括以下步驟: 步驟1,對普通Petri網(wǎng)進(jìn)行擴(kuò)展,定義廣義同步自控P/T系統(tǒng); 步驟2,根據(jù)用戶需求,創(chuàng)建待描述的數(shù)字系統(tǒng)的廣義同步自控P/T系統(tǒng)模型; 步驟3,對已建立的廣義同步自控P/T系統(tǒng)模型進(jìn)行功能分析; 步驟4,對已建立的系統(tǒng)模型進(jìn)行VHDL代碼自動(dòng)轉(zhuǎn)換; 步驟5,對轉(zhuǎn)換后生成的VHDL代碼進(jìn)行系統(tǒng)仿真。
2. 根據(jù)權(quán)利要求1所述的基于Petri網(wǎng)的異步電路建模和VHDL實(shí)現(xiàn)方法,其特征在 于,所述步驟1從普通Petri網(wǎng)本質(zhì)出發(fā),對P/T系統(tǒng)和自控網(wǎng)系統(tǒng)的定義進(jìn)行擴(kuò)展,定義 廣義自控P/T系統(tǒng);針對廣義自控P/T系統(tǒng)的圖形表示,提出一類特殊的權(quán)控制弧:讀弧和 寫?。贿M(jìn)而在廣義同步自控P/T系統(tǒng)定義的基礎(chǔ)上引入同步事件,定義廣義同步自控P/T系 統(tǒng)(GSCPT)。
3. 根據(jù)權(quán)利要求1所述的基于Petri網(wǎng)的異步電路建模和VHDL實(shí)現(xiàn)方法,其特征在 于,所述步驟2采用圖形建模方式,根據(jù)廣義同步自控P/T系統(tǒng)模型的網(wǎng)規(guī)則建立待描述的 數(shù)字系統(tǒng)的GSCPT系統(tǒng)模型。
4. 根據(jù)權(quán)利要求1所述的基于Petri網(wǎng)的異步電路建模和VHDL實(shí)現(xiàn)方法,其特征在 于,所述的步驟3具體包括: 步驟3. 1,從步驟2所建立的GSCPT模型中包含的信號(hào)的波形文件中提取并記錄外部事 件信息,按時(shí)序關(guān)系存于外部事件列表中,波形文件可利用EDA設(shè)計(jì)軟件建立; 步驟3. 2,基于狀態(tài)方程構(gòu)造模型的可達(dá)標(biāo)識(shí)集,可達(dá)標(biāo)識(shí)集采用鏈表結(jié)構(gòu)存儲(chǔ),分析 模型標(biāo)識(shí)的演化情況。
5. 根據(jù)權(quán)利要求4所述的基于Petri網(wǎng)的異步電路建模和VHDL實(shí)現(xiàn)方法,其特征在 于,所述步驟3. 2中可達(dá)標(biāo)識(shí)集的構(gòu)造算法如下: 步驟3. 2. 1,創(chuàng)建初始表頭結(jié)點(diǎn),在鏈表結(jié)點(diǎn)結(jié)構(gòu)的Markings域存放網(wǎng)初始標(biāo)識(shí)吣,則 當(dāng)前標(biāo)識(shí)為初始標(biāo)識(shí); 步驟3. 2. 2,在當(dāng)前標(biāo)識(shí)下,若有變遷使能且未關(guān)聯(lián)外部事件,則該變遷發(fā)生,根據(jù) 狀態(tài)方程計(jì)算后續(xù)標(biāo)識(shí)M,并生成一新的鏈表結(jié)點(diǎn),其Markings域?yàn)镸,鏈表結(jié)點(diǎn)結(jié)構(gòu)的 FireCondition域?yàn)榘l(fā)生的變遷名,將該結(jié)點(diǎn)加入鏈表的尾部; 步驟3. 2. 3,對取出的表頭結(jié)點(diǎn),根據(jù)變遷使能規(guī)則找出在當(dāng)前標(biāo)識(shí)下網(wǎng)中所有的使能 變遷,若使能變遷數(shù)為〇,則構(gòu)造過程結(jié)束,否則將所有使能變遷加入集合FiresSet中; 步驟3. 2. 4,找與此變遷集合FiresSet中變遷關(guān)聯(lián)的事件中最先發(fā)生的外部事件E,若 E存在則與之關(guān)聯(lián)的變遷發(fā)生,根據(jù)狀態(tài)方程計(jì)算后續(xù)標(biāo)識(shí)M',并生成一新的鏈表結(jié)點(diǎn), 其Markings域?yàn)镸',F(xiàn)ireCondition域?yàn)榘l(fā)生的變遷名和外部事件E名,將該結(jié)點(diǎn)加入鏈 表的尾部,轉(zhuǎn)步驟3. 2. 2 ;若外部事件列表已搜索完畢,則構(gòu)造過程結(jié)束。
6. 根據(jù)權(quán)利要求1所述的基于Petri網(wǎng)的異步電路建模和VHDL實(shí)現(xiàn)方法,其特征在 于,所述步驟4具體包括: 步驟4. 1,構(gòu)造多輸入多時(shí)鐘維持阻塞型D觸發(fā)器的IP核; 步驟4. 2,采用直接映射的轉(zhuǎn)換策略,具體轉(zhuǎn)換以庫所為核心,由庫所的輸入弧構(gòu)建輸 入轉(zhuǎn)換塊,由庫所的輸出弧構(gòu)建輸出轉(zhuǎn)換塊,通過定義一系列的轉(zhuǎn)化規(guī)則自動(dòng)完成廣義同 步自控P/T系統(tǒng)模型到VHDL代碼的轉(zhuǎn)換。
7. 根據(jù)權(quán)利要求6所述的基于Petri網(wǎng)的異步電路建模和VHDL實(shí)現(xiàn)方法,其特征在 于,所述步驟4. 1的IP核設(shè)計(jì)的功能模塊包括數(shù)據(jù)輸入模塊和輸出鎖存模塊,其中數(shù)據(jù)輸 入模塊用于實(shí)現(xiàn)電路原理圖中輸入單元功能,輸出鎖存模塊用于實(shí)現(xiàn)電路原理圖中輸出鎖 存模塊功能。
8. 根據(jù)權(quán)利要求6所述的基于Petri網(wǎng)的異步電路建模和VHDL實(shí)現(xiàn)方法,其特征在 于,所述步驟4. 2中廣義同步自控P/T系統(tǒng)模型到VHDL代碼轉(zhuǎn)換的規(guī)則為: 步驟4. 2. 1,庫所的輸入轉(zhuǎn)換塊映射為條件信號(hào)賦值語句;輸入轉(zhuǎn)換塊由輸入弧及其 相連的變遷構(gòu)成,其中變遷的使能條件映射為賦值表達(dá)式中的賦值條件,根據(jù)輸入弧的類 型和權(quán)值函數(shù)映射為具體的賦值表達(dá)式,由于廣義同步自控P/T系統(tǒng)中變遷關(guān)聯(lián)有事件, 通過創(chuàng)建中間信號(hào)以存儲(chǔ)運(yùn)算結(jié)果; 步驟4. 2. 2,庫所的輸出轉(zhuǎn)換塊轉(zhuǎn)換規(guī)則與輸入轉(zhuǎn)換塊類似,亦映射為條件信號(hào)賦值語 句,輸出轉(zhuǎn)換塊由輸出弧及其相連的變遷構(gòu)成,根據(jù)輸出弧的類型和權(quán)值函數(shù)映射為具體 的賦值表達(dá)式; 步驟4. 2. 3,庫所映射為存儲(chǔ)器。
9. 根據(jù)權(quán)利要求8所述的基于Petri網(wǎng)的異步電路建模和VHDL實(shí)現(xiàn)方法,其特征在 于,所述步驟4. 2. 3中庫所映射為存儲(chǔ)器的規(guī)則如下: 步驟a,存儲(chǔ)器的位數(shù)根據(jù)庫所設(shè)定的容量函數(shù)確定,初值由庫所的初始托肯數(shù)確定; 步驟b,時(shí)鐘觸發(fā)端個(gè)數(shù)為庫所的輸入弧和輸出弧個(gè)數(shù)之和,各時(shí)鐘觸發(fā)端信號(hào)根據(jù)庫 所前集變遷和后集變遷相關(guān)聯(lián)的事件類型區(qū)別對待; 步驟c,數(shù)據(jù)輸入端信號(hào)為庫所的輸入轉(zhuǎn)換塊和輸出轉(zhuǎn)換塊映射的VHDL代碼中所創(chuàng)建 的中間信號(hào)。
【文檔編號(hào)】G06F17/50GK104298827SQ201410537655
【公開日】2015年1月21日 申請日期:2014年10月13日 優(yōu)先權(quán)日:2014年10月13日
【發(fā)明者】萬軍, 趙不賄 申請人:江蘇大學(xué)