專利名稱:半導體電路設計支援裝置及方法、計算機可讀記錄介質(zhì)的制作方法
技術領域:
本發(fā)明涉及一種使用計算機來對LSI等半導體電路的設計進行支援的技術,尤其涉及一種包括時序例外的路徑的電路設計支援技術。
背景技術:
在近年來的半導體電路設計中,一般進行基于RTL(Register Transfer Level:寄存器傳輸級)描述的電路設計,并利用了將該RTL描述了的電路數(shù)據(jù)進行邏輯綜合、并自動生成選通電平的電路的邏輯綜合工具(例如參照日本特開2003-216672號公報)。專利文獻1:日本特開2003-216672號公報但是,在現(xiàn)有的邏輯綜合工具中,對下述的運算式進行邏輯綜合。式:Z=AXBXC此時,按照下述那樣的1、2這種不同的時序限制來進行邏輯綜合。限制1:A、B、C 均為 true path限制2:A、C 為 false path (時序例外),B 為 true path限制I和2的邏輯綜合結果,在現(xiàn)有的邏輯綜合工具中,均成為后述的圖4的構成,并生成完全相同的邏輯電路。即,在現(xiàn)有的邏輯綜合工具中,在對上述那樣的運算式進行邏輯綜合的情況下,存在的課題為,不能夠生成對按照時序限制而設定的時序例外進行了考慮的邏輯電路。
發(fā)明內(nèi)容
為了解決上述以往的課題,本發(fā)明的目的在于提供用于生成考慮到時序例外的邏輯電路的技術。由此,本發(fā)明為一種半導體電路設計支援裝置,其特征在于,具備:讀入RTL描述的電路數(shù)據(jù)的單元;將上述RTL描述的電路數(shù)據(jù)進行邏輯擴展,并提取運算器的單元;從所提取的上述運算器中、將不跨越存儲元件的多個運算器聚類化為一個運算器的單元;讀入與上述RTL描述的電路數(shù)據(jù)相對的時序限制的單元;在上述時序限制中包含時序例外的情況下,對上述RTL描述的電路數(shù)據(jù)的該例外路徑進行追蹤的單元;根據(jù)上述電路數(shù)據(jù)的路徑的追蹤,判別被聚類化為上述一個運算器的運算器輸入是否被設定為時序例外的單元;以及從被聚類化為上述一個運算器的運算器中,分離設定有上述時序例外的運算器的單元。并且,本發(fā)明為一種半導體電路設計支援方法,其特征在于,包括:讀入RTL描述的電路數(shù)據(jù)的工序;將上述RTL描述的電路數(shù)據(jù)進行邏輯擴展,并提取運算器的工序;從所提取的上述運算器中、將不跨越存儲元件的多個運算器聚類化為一個運算器的工序;讀入與上述RTL描述的電路數(shù)據(jù)相對的時序限制的工序;對上述RTL描述的電路數(shù)據(jù)的該例外路徑進行追蹤的工序;根據(jù)上述電路數(shù)據(jù)的路徑的追蹤,判別被聚類化為上述一個運算器的運算器輸入是否被設定為時序例外的工序;以及從被聚類化為上述一個運算器的運算器中,分離設定有上述時序例外的運算器的工序。并且,本發(fā)明為一種計算機可讀記錄介質(zhì),記錄了用于使被用作為半導體電路設計支援裝置的計算機作為如下單元的程序:讀入RTL描述的電路數(shù)據(jù)的單元;將上述RTL描述的電路數(shù)據(jù)進行邏輯擴展,并提取運算器的單元;從所提取的上述運算器中、將不跨越存儲元件的多個運算器聚類化為一個運算器的單元;讀入與上述RTL描述的電路數(shù)據(jù)相對的時序限制的單元;對上述RTL描述的電路數(shù)據(jù)的該例外路徑進行追蹤的單元;根據(jù)上述電路數(shù)據(jù)的路徑的追蹤,判別被聚類化為上述一個運算器的運算器輸入是否被設定為時序例外的單元;以及從被聚類化為上述一個運算器的運算器中,分離設定有上述時序例外的運算器的單元。根據(jù)本發(fā)明的半導體電路設計支援裝置及方法,能夠減少必須容納到I個周期中的邏輯步驟,并能夠削減進行邏輯綜合而得到的電路的面積。尤其是,目標頻率越快,則面積削減的效果越大。
圖1是半導體電路設計支援裝置的一個實施例的功能框圖。圖2是圖1的半導體電路設計支援裝置的處理流程例。圖3是RTL描述了的電路數(shù)據(jù)的一例。圖4是表示圖3所示的RTL的邏輯的圖。圖5是本電路的時間圖的一例。圖6是將運算器聚類化了的圖。圖7是將被聚類化了的運算器進行了分離的圖。圖8是表示計算機系統(tǒng)的硬件構成例的圖。
具體實施方式
圖1是表示本發(fā)明的半導體電路設計支援裝置的一個實施例的功能框圖。在圖1中,10為半導體電路設計支援裝置,20為顯示器,30為鍵盤,40為鼠標,50為硬盤等存儲裝置。此處,半導體電路設計支援裝置10包括RTL讀入部11、運算器提取部
12、運算器聚類化處理部13、時序限制讀入部14、路徑追蹤部15、時序例外判別部16、運算器分離部17以及邏輯綜合部18。此外,存儲裝置50存放有設計對象的RTL描述的電路數(shù)據(jù)51、時序限制52、門庫53等。并且,在存儲裝置50中存放由邏輯綜合部18生成的選通電平的邏輯電路網(wǎng)表54。圖2表示半導體電路設計支援裝置10的處理流程圖。在圖2中,步驟SI對應于圖1的RTL讀入部11中的處理,步驟S2對應于運算器提取部12中的處理,步驟S3對應于運算器聚類化處理部13中的處理,步驟S4對應于時序限制讀入部14中的處理,步驟S5、對應于路徑追蹤部15中的處理,步驟Sl(Tll對應于時序例外判別部16中的處理,步驟S12對應于定時運算器分離部17中的處理,步驟S13對應于邏輯綜合部18中的處理。另外,當然能夠通過計算機程序來構成圖1中所示的半導體電路設計支援裝置10中的各處理部If 18的一部分或全部的處理功能、并使用計算機來執(zhí)行該程序而實現(xiàn)本發(fā)明,或者能夠同樣地通過計算機程序來構成圖2中所示的處理流程、并使計算機執(zhí)行該程序。以下,根據(jù)圖1及圖2對本發(fā)明的實施例的動作進行具體說明。首先,RTL讀入部11從存儲裝置50讀入設計對象的RTL描述的電路數(shù)據(jù)51 (步驟SI)。此處,圖3表示讀入的RTL描述的電路數(shù)據(jù)。運算器提取部12將所讀入的RTL描述的電路數(shù)據(jù)進行邏輯擴展,并提取構成電路的運算器(步驟S2)。圖4是表示圖3中所示的RTL描述的電路數(shù)據(jù)的圖。RegA、RegB、RegC, RegZ是臨時地保持信號的存儲元件,MULU MUL2是對所輸入的信號進行乘法的乘法器。如圖3的RTL描述那樣,在一個式中含有多個運算的情況下,從式的左側進行邏輯擴展。運算器聚類化處理部13為,在存在不跨越存儲元件的多個運算器的情況下,進行作為一個運算器來處理的運算器的聚類化(步驟S3)。圖6是表示進行了運算器的聚類化的情況的圖,將MULl和MUL2作為一個運算器來處理。接著,時序限制讀入部14從存儲電路50讀入本電路的時序限制52 (步驟S4)。使用圖5來說明本電路的時序限制。圖5是表示向運算器輸入的信號A、B、C的轉變定時的時間圖。根據(jù)該時間圖可知,A和C的信號變化為,在相對于時鐘CLK為充分長的期間、沒有信號的轉變,在B反復轉變的期間也不變化。另一方面可知,B是從某個期間開始按每I個周期進行變化的信號。由于是這種信號規(guī)格,因此A和C被設定為false path(時序例外)。S卩,從RegA到RegZ的路徑和從RegC到RegZ的路徑,成為信號也可以不在I個周期內(nèi)傳輸這種設定,另一方面,從RegB到RegZ需要在I個周期以內(nèi)傳輸信號。路徑追蹤部15對由時序限制讀入部14讀入的時序限制52進行解析,并判定是否設定有時序例外(步驟S5)。在該例子中,對A和C設定有時序例外(步驟S5的“是”),因此進行例外路徑的追蹤(步驟S6)。首先,信號A從RegA通過被聚類化了的運算器而到達RegZ。由此,從RegA預先保存被聚類化了的運算器為時序例外這種信息(步驟S7)。接著,信號C與RegA同樣、從RegC通過被聚類化了的運算器而到達RegZ,因此從RegC預先保存被聚類化了的運算器為時序例外這種信息(步驟S7)。
當所有例外路徑的追蹤結束時(步驟S8 “是”),時序例外判別部16對作為時序例外而預先保存了的信息進行解析(步驟S9),并判別在被聚類化了的運算器的輸入中是否存在兩個以上的時序例外(步驟S10)。在該例子中,由于存在兩個時序例外(步驟SlO “是”),因此接著判別設定有時序例外的輸入是否為相同種類的運算器(步驟Sll)。在該例子中,設定有時序例外的輸入均為相同的乘法器(步驟Sll “是”),因此運算器分離部17將設定有時序例外的路徑的運算和未設定的運算進行分離,并個別地分配運算器(步驟S12)。在本實施例中,成為圖7中所示的邏輯電路。通過進行這種運算器的分配,由此必須容納于從RegB到RegZ的I個周期內(nèi)的路徑的邏輯步驟,與圖4相比變少。在進行了這種運算器的分配之后,邏輯綜合部18進行邏輯綜合,將邏輯電路網(wǎng)表54存放到存儲裝置50中(步驟S13)。此后,使用邏輯電路網(wǎng)表來實施配置、配線布局設計等,但這些與本發(fā)明沒有直接關系,因此省略說明。圖8表示應用了本發(fā)明的計算機系統(tǒng)的構成例。在硬盤50中,除了 RTL描述的電路數(shù)據(jù)、時序限制、門庫等以外,還存儲有將圖1中所示的半導體電路設計支援裝置10中的各處理部If 18的處理功能計算機程序化了的程序。CPU100通過從硬盤50將該程序讀入到存儲器110中并執(zhí)行該程序,由此進行圖1中所示的半導體電路設計支援裝置10中的RTL描述的電路數(shù)據(jù)的讀入、運算器提取、運算器的聚類化、時序限制的讀入、路徑追蹤,時序例外的判別、運算器的分離、邏輯綜合等處理。此時,存儲器110被用作為作業(yè)用存儲器。設計者使用鍵盤30、鼠標40進行作業(yè)指示,結果顯示在顯示器20上。
權利要求
1.一種半導體電路設計支援裝置,其特征在于,具備: 讀入RTL描述的電路數(shù)據(jù)的單元; 將上述RTL描述的電路數(shù)據(jù)進行邏輯擴展,并提取運算器的單元; 從所提取的上述運算器中、將不跨越存儲元件的多個運算器聚類化為一個運算器的單元; 讀入與上述RTL描述的電路數(shù)據(jù)相對的時序限制的單元; 在上述時序限制中包含時序例外的情況下,對上述RTL描述的電路數(shù)據(jù)的該例外路徑進行追蹤的單元; 根據(jù)上述電路數(shù)據(jù)的路徑的追蹤,判別被聚類化為上述一個運算器的運算器輸入是否被設定為時序例外的單元;以及 從被聚類化為上述一個運算器的運算器中,分離設定有上述時序例外的運算器的單元。
2.如權利要求1所述的半導體電路設計支援裝置,其特征在于,具備如下單元: 在被聚類化為上述一個運算器的運算器輸入被設定有兩個以上的時序例外、且被設定有該時序例外的輸入為相同種類的運算器的情況下,從被聚類化了的運算器中分離設定有時序例外的運算器,根據(jù)上述RTL描述的電路數(shù)據(jù)來生成選通電平的電路。
3.一種半導體電路設計支援方法,其特征在于,包括: 讀入RTL描述的電路數(shù)據(jù)的工序; 將上述RTL描述的電路數(shù)據(jù)進行邏輯擴展,并提取運算器的工序; 從所提取的上述運算器中、將不跨越存儲元件的多個運算器聚類化為一個運算器的工序; 讀入與上述RTL描述的電路數(shù)據(jù)相對的時序限制的工序; 對上述RTL描述的電路數(shù)據(jù)的該例外路徑進行追蹤的工序; 根據(jù)上述電路數(shù)據(jù)的路徑的追蹤,判別被聚類化為上述一個運算器的運算器輸入是否被設定為時序例外的工序;以及 從被聚類化為上述一個運算器的運算器中,分離設定有上述時序例外的運算器的工序。
4.如權利要求3所述的半導體電路設計支援方法,其特征在于,具備如下工序: 在被聚類化為上述一個運算器的運算器輸入被設定有兩個以上的時序例外、且被設定有該時序例外的輸入為相同種類的運算器的情況下,從被聚類化了的運算器中分離設定有時序例外的運算器,根據(jù)上述RTL描述的電路數(shù)據(jù)來生成選通電平的電路。
5.一種計算機可讀記錄介質(zhì),記錄了用于使被用作為半導體電路設計支援裝置的計算機作為如下單元的程序: 讀入RTL描述的電路數(shù)據(jù)的單元; 將上述RTL描述的電路數(shù)據(jù)進行邏輯擴展,并提取運算器的單元; 從所提取的上述運算器中、將不跨越存儲元件的多個運算器聚類化為一個運算器的單元; 讀入與上述RTL描述的電路數(shù)據(jù)相對的時序限制的單元; 對上述RTL描述的電路數(shù)據(jù)的該例外路徑進行追蹤的單元;根據(jù)上述電路數(shù)據(jù)的路徑的追蹤,判別被聚類化為上述一個運算器的運算器輸入是否被設定為時序例外的單元;以及 從被聚類化為上述一個運算器的運算器中,分離設定有上述時序例外的運算器的單元 ο
6.如權利要求5所述的計算機可讀記錄介質(zhì),其特征在于,記錄了用于作為如下單元的程序: 在被聚類化為上述一個運算器的運算器輸入被設定有兩個以上的時序例外、且被設定有該時序例外的輸入為相同種類的運算器的情況下,從被聚類化了的運算器中分離設定有時序例外的運算器,根據(jù)上 述RTL描述的電路數(shù)據(jù)來生成選通電平的電路。
全文摘要
半導體電路設計支援裝置及方法、計算機可讀記錄介質(zhì)。該半導體電路設計支援裝置具備讀入RTL描述的電路數(shù)據(jù)的單元;將上述RTL描述的電路數(shù)據(jù)進行邏輯擴展,并提取運算器的單元;從所提取的上述運算器中、將不跨越存儲元件的多個運算器聚類化為一個運算器的單元;讀入與上述RTL描述的電路數(shù)據(jù)相對的時序限制的單元;在上述時序限制中包含時序例外的情況下,對上述RTL描述的電路數(shù)據(jù)的該例外路徑進行追蹤的單元;根據(jù)上述電路數(shù)據(jù)的路徑的追蹤,判別被聚類化為上述一個運算器的運算器輸入是否被設定為時序例外的單元;以及從被聚類化為上述一個運算器的運算器中,分離設定有上述時序例外的運算器的單元。
文檔編號G06F17/30GK103207885SQ201310010218
公開日2013年7月17日 申請日期2013年1月11日 優(yōu)先權日2012年1月16日
發(fā)明者西本正輝 申請人:卡西歐計算機株式會社