專利名稱:一種自動建立時序庫的工具的制作方法
技術領域:
本發明屬于大規模集成電路設計領域,用于全定制設計中時序庫的生成。具體涉 及一種自動化時序建庫的工具,能夠獲得快速且比較準確的時序庫。
背景技術:
如今的大規模集成電路設計通常是半定制和全定制混合設計方法,這種方法對全 定制設計的性能要求很高,因此就必須對其建立時序庫,然后利用生成的時序信息進行靜 態時序分析。在傳統的時序庫建立過程中,要分別建立庫說明部分和單元時序信息部分。其中 庫說明部分如圖1所示,定義了庫名、查找表的模板、時序庫的K因子參數、庫的標稱PVT參 數值、不同工作條件下的PVT參數以及互連線負載參數。單元時序信息如圖2所示,主要是描述了單元內部每條時序弧的時序信息,單元 由單元名稱以及每個端口的信息組成,而端口信息又是由端口描述和以該端口為終點的時 序弧信息組成,端口描述包含端口方向、輸入端口電容等。每個端口可能包含多個時序弧,每個時序弧通常由時序信息屬性和時序信息數據 表組成,時序信息屬性包括時序類型、時序敏感、相關端口,即時序弧的起點,每組時序信息 通常包含4個時序數據表,即4個二維查找表。接下來,需要通過模擬得到延遲弧的上升沿傳輸延遲、下降沿傳輸延遲、上升跳變 時間、下降跳變時間的值,以及約束弧的建立時間的上跳變約束時間、建立時間的下跳變約 束時間、保持時間的上跳變約束時間、保持時間的下跳變約束時間,最后將這些值填入數據表中。傳統的時序庫采用全手工建立,當輸入和輸出端口很少時,這種方法可行,工作量 也不是很大。但是,如果輸入輸出端口數量過多,建立時序庫的工作量就變得十分巨大,且 成本高,效率低。
發明內容
本發明要解決的技術問題是當輸入輸出端口過多時,造成時序建庫工作量巨大的 問題。本發明提供了一種簡單、快速的時序庫自動建立工具,大大減少了建立時序庫的工作量。為解決上述技術問題,本發明是這樣實現的
1、自動時序建庫工具是用Perl腳本語言設計實現的;
2、每個單元可能對應多個輸入輸出管腳,因此對應多個延遲弧,只要將輸出負載和 輸入跳變延時作為模擬及數據提取部分的輸入,就可以自動進行模擬(采用NanoSim或者 Star-Sim等模擬軟件),并對應輸出多個結果文件.mt0、.mtl、.mt2、……。然后自動將數 據從.mt格式的結果文件中提取出來,并保存在.dat文件里,.dat文件的前綴會自動命名 為“pin_pin_X”。對于延遲弧,第一個pin代表輸出端口的名字,第二個pin代表輸入端口
3的名字,X可以表示1、2、3、4,分別表示模擬的是fall_transition (下降跳變時間)、ce 11_ fall (下降沿傳輸延時)、rise_transition (上升跳變時間)和cell_rise (上升沿傳輸延 時)四種延遲時間。對于約束弧,第一個Pin代表受控信號的端口名,第二個Pin代表控制信 號的端口名,1、2、3、4分別表示模擬的是建立時間的rise^onstraint(上跳變約束)、fall_ constraint(下跳變約束),和約束時間的rise_constraint(上跳變約束)、fall_constraint (下跳變約束);
3、為用戶提供一個參數文件,用戶根據需要配置以下信息
1)庫名、模塊名;
2)設計的輸入輸出總線位寬類型,如[31:0]、[4:0]等。這是為了定義總線類型;
3)輸入信號名和負載。為了定義相關引腳;
4)延遲弧的二維采樣點。表示二維的輸入跳變時間采樣點和輸出負載采樣點;
5)延遲弧的端口名。確定每條延遲弧的起點和終點;
6)用戶輸入字符“NULL”,說明只需定義延遲弧,因此,表示完成時序庫的建立; 如果沒有輸入“NULL”,說明以下還要定義約束弧;
7)約束弧的二維采樣點。表示二維的控制信號跳變時間采樣點和受控信號跳變時間
采
樣點;
8)約束弧的端口名。確定每條約束弧的起點和終點;
9)用戶輸入字符“NULL”,表示完成時序庫的建立;
4、運行自動建庫工具,讀入參數文件,最終建立時序庫。采用本發明可以取得以下技術效果
1、大大減少了時序庫建立所用的時間和把模擬數據填入查找表的時間;
2、避免了時序庫建立時格式錯誤等問題,極大地提高了工作效率。
圖1庫說明部分的結構示意圖; 圖2單元時序信息部分的結構示意圖; 圖3本發明的自動時序建庫流程圖4傳統方法和本發明的工作量比較圖。
具體實施例方式以下將結合附圖與具體實施對本發明作進一步說明。本發明公開的一種自動建立時序庫的工具由三個部分構成,如圖3所示,分別為 模擬及數據提取部分和庫建立部分組成,圖中未表示出參數文件。模擬及數據提取部分的主要任務是生成二維查找表里的模擬數據。首先在該部分 程序中填入輸出負載采樣點和輸入跳變延時采樣點,作為模擬的輸入。然后運行該程序開 始模擬,并產生.mt格式的模擬結果,最后自動生成延遲弧或約束弧需要的.dat格式的文 件。
庫建立部分程序從參數文件中讀入用戶配置的信息,具體實現過程如下
1)讀入庫名;
2)讀入庫頭;
3)讀入單元名;
4)讀入設計的輸入輸出總線位寬類型,如[31:0]、[4:0]等。這一步是為了定義總線 類型;
5)讀入輸入信號名和負載。這是為了定義相關引腳;
6)讀入延遲弧的二維采樣點,即輸入跳變時間采樣點和輸出負載采樣點;
7)讀入延遲弧的端口名。確定每條延遲弧的起點和終點;
8)讀入數據提取部分生成的延遲弧模擬數據,即上升沿傳輸延時、上升跳變時間、下 降沿傳輸延時、下降跳變時間;
9)判斷是否出現字符串“NULL”。在參數文件中字符串“NULL”作為判斷標志,
如果出現“NULL”,表明只需定義延遲弧,因此,完成時序庫的建立;如果沒有出現 “NULL”,表明以下還要定義約束弧;
10)讀入約束弧的二維采樣點。讀入約束弧的控制信號跳變時間采樣點和受控信號跳 變時間采樣點;
11)讀入約束弧的端口名。確定每條約束弧的起點和終點;
12)讀入數據提取部分生成的約束弧模擬數據,即建立時間的上跳變約束、建立時間 的下跳變約束、保持時間的上跳變約束、保持時間的下跳變約束;
13)完成時序庫的建立。圖4是傳統時序建庫方法和本發明的工作量比較圖。很顯然,當輸入和輸出端口 很少時,兩種方法的工作量差別不大。但是,如果輸入輸出端口數量過多,傳統的時序建庫 工作量就變得十分巨大,而使用自動時序建庫工具所需要的工作量變化并不大。綜上所述,鑒于傳統時序建庫的方法工作量巨大,建庫成本過高,本發明公開了一 種簡單、快速的時序庫自動建立工具,從而大大減少了時序庫建立所用的時間和把模擬數 據填入查找表的時間,以及避免了建立時序庫時出現的格式錯誤等問題,極大地提高了工 作效率。
權利要求
一種自動建立時序庫的工具,其特征在于參數文件、模擬及數據提取部分和庫建立部分,其中,在時序建庫工具的模擬及數據提取部分中,填入輸出負載采樣點和輸入跳變延時采樣點,作為模擬的輸入,然后運行該程序自動進行模擬、生成時序庫的數據、數據提取,再運行庫建立部分的程序,自動讀入用戶配置的參數文件,并完成時序庫的建立工作。
2.根據權利要求1所述的自動建立時序庫的工具,其特征在于工具的設計采用Perl 腳本語言。
全文摘要
本發明公開了一種自動建立時序庫的工具。其包括參數文件、模擬及數據提取部分和庫建立部分。建立時序庫的過程就是把輸入輸出的相關延遲信息轉化為跳變時間、傳播延時、建立時間和保持時間等。但是,當設計中的輸入輸出端口過多會使建庫的工作量變得異常巨大,并且容易帶來人工操作的失誤。針對這個問題,自動建立時序庫的工具通過用戶配置輸入輸出延遲信息,從而實現自動模擬和自動建立時序庫。
文檔編號G06F17/50GK101968826SQ201010555888
公開日2011年2月9日 申請日期2010年11月23日 優先權日2010年11月23日
發明者焦永, 陳寶民, 陳怒興, 龍斌, 龔曉 申請人:長沙景嘉微電子有限公司