摘 要:隨著集成電路設計工藝的進步,異步電路相對于同步電路的優越性將越來越明顯,異步技術也將越來越成為研究的熱點,預計未來集成電路設計將會更多地采用異步技術。Petri網具有的一些特性非常適用于異步電路設計。通過采用petri網的一類子系統STG設計異步電路,并使用一個異步電路設計工具Petrify完成整個設計過程。
關鍵詞:集成電路;異步電路;petri網;狀態轉移圖和Petrify
中圖分類號:TN710 文獻標識碼:B 文章編號:1004373X(2008)1601104
Design of Asynchronous Circuit Based on STG and Petrify
XIE Ye
(Electrical College,Jiangsu University,Zhenjiang,212013,China)
Abstract:With the advancement of design technics,the IC system will require asynchronous techniques in the future as the asynchronous method has more advantages than synchronous method.And the research of asynchronous technique is a hotspot.Asynchronous circuit design using Petri net is very effective because of the property of PN.The paper discusses the design of asynchronous circuit based on STG with the help of EDA tool petrify.
Keywords:integrated circuit;asynchronous circuit;petri net;STG and Petrify
1 引 言
隨著集成電路技術發展進入深亞微米后,器件尺寸不斷縮小,單芯片的集成容量不斷擴大,同步集成電路設計將面臨著在芯片中出現大量參數變異情況,因此不再能夠有效控制時鐘網絡中的延遲以及其他的一些全局信號。相對于同步電路,異步電路具有以下的一些優良特性:無時鐘偏斜、平均性能代替了最差性能、消除了全局時鐘問題、良好的移植潛力、良好的環境適應能力以及很強的互斥性等。據國際半導體技術委員會(International Technology Roadmap on Semiconductors)預測,在未來嵌入式系統和片上系統的設計將會越來越多的采用異步技術的設計方法[1]。
異步電路設計方法的研究一直是業界和學術界的一個熱點,現在已經提出了多種異步電路設計方法,在這些方法中有不少是采用petri網設計異步電路。因為petri網的一些內在屬性使得它非常適合用于描述和分析并發系統,也就異步系統。Petri 網是常用于描述并發系統的一種形式化語言,非常適合表示系統內部事件之間的并發性、選擇性和因果性。Petri網具有以下一些特性[2]:
(1) 一種理解簡單,使用方便的圖形表示法;
(2) 具有強大的模擬功能能夠在不同的抽象級對各種異步系統進行行為級描述;
(3) 形式化的運算語法能夠保證安全性及驗證的正確性;
(4) 能夠從網模型直接對電路進行綜合。Petri 網已經廣泛地用于:設計和描述異步電路、操作系統和分布計算的資源分配、并發程序的分析、性能分析和時序驗證以及高級電路設計中。
2 petri網和STG的基本定義[3]
基本Petri網為四元組,N={P,T,F,M0},其中P={P1,P2,…,Pm}為庫所集,T={t1,t2,…,tn}為變遷集,F(P×T)∪(T×P)為網的流關系,M0:P→{0,1}為初始標識。記t={p∣(p,t)∈F}為變遷的前置集,t′={p∣(t ,p)∈F}為變遷的后置集。PN的庫所中可能含有托肯(token),變遷在一定條件下可以激活,若t在標識M下是授權的,則t可激活,變遷激活后產生新的標識M′,記作M[t>M0′。
petri 網是一族相關網模型的總稱,它并不是單個和已經精確定義了的模型。通常會根據某些實際應用情況給petri 網加上特定約束。信號轉移圖(Signal Transition Graph,STG)就屬于petri網的一種約束類,STG是常用于描述異步電路行為特性的一類petri網, 它是一種1有界petri 網,只允許簡單的輸入選擇。一個STG是一個三元方程組G=(N,Y,λ),N=(P,E,F,m0)表示的是一個PN;Y是一個非空的二進制信號組,λ:E→Y×{+,-,~}。y.+(y.-)表示信號y的上升沿(下降沿)(在4相信號中),而y.~表示y的一個信號跳變(在兩相信號中)。因此,STG就是一個由二進制跳變標識PN的事件集合。
STG是具有以下這些特性的一類petri 網:
(1) 輸入自由選擇:多個輸入的選擇必須只能由互斥輸入控制;
(2) 1有界:每個庫所中托肯數量不超過1;
(3) 活性:必須保證STG不會進入死鎖狀態;
描述速度無關電路的一個STG必須具備以下一些特性:
(4) 一致狀態賦值:在STG的任何執行過程中某個信號的跳變必須嚴格的在+和-之間進行;
(5) 持續性:如果某個信號跳變處于使能狀態,則必須保證它會激發,即這個信號跳變不會因為別的信號跳變而變成不使能;
要使STG能夠進行綜合,則還必須具備以下這個特性:
(6) 完全狀態編碼(CSC):在STG中不允許2個或2個以上的不同標識具有相同的信號值。否則還必須引入額外的狀態變量,使不同的標識對應不同的狀態。
3 STG描述電路的基本模塊
STG基本可以用于描述各種復雜度異步電路的行為特性,但這些電路一般都是由以下4個基本構造塊(fork,join,choice和merge)按照一定的組合方式實現。圖1所示的是4個常用的構造塊。圖2所示的是一些基本門電路的PN模型。
圖1 fork,join,choice和merge的Petri網描述常用的一些基本門電路對應的PN模型如圖2所示[4]。
圖3所示的由fork,join,choice和merge構成的一個PN的例子。從圖3中可知,庫所P1是一個選擇庫所(choice),它既可以通過變遷T1把托肯傳送到庫所P2,P3和P4中去也可以通過變遷T6把托肯傳送給庫所P9。當托肯傳給庫所P2,P3和P4后,接著通過變遷T2,T3和T4在分別把其中的托肯傳給庫所P5,P6和P7,然后一個變遷T5(Join),再把托肯傳給庫所P8;當遷T6把托肯傳送給庫所P9后經過T7然后把托肯傳給庫所P8。再經過一個Merge,經過變遷T8后把P8中的托肯傳給P1。
圖2 基本門電路的PN模型圖3 由基本構造塊構成的一個PN模型圖3由基本構造塊構成的一個PN模型由這些基本模塊再加上一些其他的控制單元可以用于描述絕大部分的異步電路。用Petri網對電路進行描述后則可以通過一些相應的綜合工具把描述轉化成電路實現。
4 通過petrify來實現一個2位緩沖器電路
4.1 STG的綜合步驟
對電路的綜合是異步電路設計過程中最重要也最為復雜。采用STG描述電路后通過對其進行綜合得出電路的實現。綜合過程主要由以下幾個步驟構成[5]:
(1) 采用STG準確描述電路的行為特性以及它的(虛擬)外部環境。
(2) 檢驗所得到的STG是否滿足以下條件:1有限、一致狀態賦值、活性、僅輸入自由選擇且受控選擇、持續性以及完全狀態編碼(CSC)。
(3) 選擇一個實現模塊并且計算每個變量所對應的布爾表達式,如果采用的是狀態保持元件則相應的要計算置位復位功能的布爾表達式。
(4) 計算出所采用的實現模塊的布爾表達式。
(5) 手工修改實現,如通過一個確定的復位信號或初始化信號可以強制使電路進入一個期望的初始狀態。
(6) 把設計輸入到CAD工具進行仿真且對電路(或者是由電路組成的系統)進行布局布線。
由于要得到電路狀態必須要知道電路中所有信號值大小,因此綜合過程中的計算就可能會非常復雜,即使是很小的電路其計算量也可能會很大。所以一般都需要采用專門的EDA工具完成這個步驟,在這采用工具Petrify來完成綜合過程。
4.2 用Petrify實現一個2位緩沖器
Petrify是一個用于綜合有限petri網和邏輯綜合異步控制器的設計工具。Petrify主要是可以對petri 網進行操作以及從STGs描述得到綜合速度獨立 (speedindependent, SI)控制電路,它是一個公開的工具。
petrify可以解釋petri網成一個信號轉移圖(STG),此時事件是用數字信號的上升/下降跳變來表示。從STG開始,Petrify通過狀態編碼、邏輯綜合、邏輯分解和工藝映射到門元件庫等幾個步驟可以綜合成一個電路。在設計過程中還可以對要進行綜合的petri網加上一些所需要的特性(如自由選擇、惟一選擇、純petri 網和狀態機分解等)。Petrify也可以由設計者或工具自動生成的時序假設條件對電路進行綜合。
下面將用petrify實現一個簡單的電路,用握手協議實現一個2位緩沖器電路。圖4所示是這個電路的STG圖和輸入到petrify中的文本描述。
圖4 2位緩沖器電路的STG和文本輸入描述把電路的文本描述輸入到petrify工具中,對其進行綜合。首先petrify會判斷STG描述是否滿足CSC的條件,即STG中不允許2個或2個以上的不同標識具有相同的信號值。如果不滿足這個條件,Petrify會自動的插入一些變量來使解決這個問題。以下所示便是petrify運行后的結果:
\\#./petrify/usr/soft/examples_petrify/buf_2.g
State coding conflicts for signal a
State coding conflicts for signal b
The STG has no CSC.
Adding state signal:csc0
State coding conflicts for signal a
State coding conflicts for signal csc0
The STG has no CSC.
Adding state signal:csc1
State coding coflicts for signal a
State coding conflicts for signal csc0
The STG has no CSC.
Adding state signal:csc2
The STG has CSC.
由上可知,這個電路的在綜合過程中,petrify首先提示信號a和信號b中出現了狀態編碼沖突問題,通過插入狀態信號變量csc0,csc1和csc2達到CSC的要求。
在綜合開始時設計者可以根據自己的需要選擇不同電路實現方式:包括使用復雜門實現、標準C元實現和普通C元實現等多種方式。一旦選擇了某種實現方式后,Petrify便可得出相應變量的布爾表達式。以下將給出這個2位緩沖器的普通C元實現和復雜門實現這2種方式。
4.2.1 兩位緩沖器的普通C元實現方式
C元是異步電路實現的一個最基本的元件,廣泛用于異步電路中。它包括普通C元和標準C元等。
\\# more buf_2.gcnout.eqn
#EQN file for model buf_2
#Generated by./petrify 4.2(compiled 150ct03 at 3:06 PM)
#Outputs be tween brackets\"\\\"indicate a feedback to input \"out\"
#Estimated area=27.00
INORDER=a b csc0 csc1 csc2;
OUTORDER=\\ \\ \\ \\ \\;
\\=csc0′ csc2+csc1′;
\\=csc0′;
\\=csc1 csc2;
\\=a csc0′ csc2;
\\=b csc1′ csc2;
\\=csc2(\\+csc0)+csc0\\;#mappable onto gC
\\=a(\\+csc1)+csc1\\;#mappable onto gC
\\=b(\\+csc1)+csc2\\;#mappable onto gC
從petrify中得出的結果可以看到各個變量的布爾表達式([a]=csc0′csc2+csc1′,[b]=csc0′)以及插入的狀態變量csc0,csc1和csc2的值,同時還估計出電路的面積為27個單位
4.2.2 兩位緩沖器的復雜們實現
復雜門實現是指電路不是由基本的門元件組合來實現而是采用一個復雜門實現。
#EQN file for model buf_2
#Generated by./petrify 4.2(compiled 15Oct03 at 3:06 PM)
#Outputs between brackets\"\\\"indicate a feedback to input \"out\"
#Estimated ared=14.00
INORDER=a b csc0 csc1 csc2;
OUTORDER=\\ \\ \\ \\ \\;
\\=csc0′ csc2+csc1′;
\\=csc0′;
\\=csc2(csc0+csc1);
\\=a(csc0′ csc2+csc1);
\\=b(csc2+csc1′)
可以看出,采用不同的實現方式得出的結果也存在很大的不同,此時電路的中雖然變量a和b的布爾表達式是相同但實現過程完成不一樣,而且插入的變量csc0,csc1和csc2的值也與前面那種實現方式不同;還可以看出估計的實現電路面積為14個單位,這大大小于普通C元實現方式。以上所示的是2位緩沖器的2種實現方式,設計者還可以選擇其他的實現方式,或者建立自己的元件庫,而通過調用元件庫中實現電路。以上只是實現一個簡單的例子,petrify還可以設計更為復雜的異步電路。
5 結 語
隨著集成電路設計的發展,電路的規模越來越大,傳統的同步技術將不能滿足系統設計的要求,預計未來的系統設計將越來越多地采用異步技術。Petri網由于其內在的特性,非常適合用于異步電路設計的多個步驟中,也必將是異步電路設計方法研究的一個熱點方向。
參 考 文 獻
[1]Alain J Martin,Mika Nystrom.Asynchronous Techniques for SystemonChip Design[J].Proceeding of the IEEE,2006,94(6):1 0891 090.
[2]Yakovlev A,Semenov A.Petrinet and Asynchronous Circuit Design.The Institution of Electrical Engineers,1996.
[3]R.大衛,H.奧蘭.佩特利網和邏輯控制器圖形表示工具(GRAFACE)\\.黃建文,趙不賄,譯.北京:電子工業出版社,1996.
[4]司玉娟,王萬樹.時序邏輯電路的petri網分析方法\\.計算機學報,1996,19(7):492494.
[5]Jens Sparso,Steve Furber.Principles of Asynchronous Circuit DesignA System Perspective\\.Kluwer Academic Publishers,2001.
[6]祝習兵,胡健生,黃金志,等.基于CPLD的基本Petri網系統的硬件實現\\.現代電子技術,2004,27(3):102105.
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文