説明

マルチサイクルパス検出装置及びマルチサイクルパス検出プログラム

【課題】ユーザ仕様依存のマルチサイクルパスを短時間で自動検出するマルチサイクルパス検出装置を提供する。
【解決手段】マルチサイクルパス検出装置10は、RTLデータとネットリストとのいずれかと、RTLシミュレーションで使用されたユーザ検証パタンとを基に論理検証を実行する論理検証部11と、前記論理検証の結果に基づき、半導体集積回路のパスを特定パスとして特定し、かつ、特定パスの始点のデータ値と終点のデータ値との比較を行う始点終点データ比較部12と、特定パスを伝搬する0と1とのいずれかのデータでありクロック信号のサイクル数をデータ幅とするデータを対象として、始点終点データ比較部12によるデータ比較結果に基づき、最小のサイクル数を示すデータ幅最小値を抽出するデータ幅最小値抽出部13と、データ幅最小値に応じて、特定パスにおけるマルチサイクル数を決定するマルチサイクル数決定部14とを備えた。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、半導体集積回路の開発時等において、論理回路のマルチサイクルパスを自動で検出し、論理合成やレイアウトツール向けの制約ファイルを生成するマルチサイクルパス検出装置、マルチサイクルパス検出プログラムに関する。
【背景技術】
【0002】
デジタル論理回路において、一般的に2つの記憶素子間のパスは1サイクルで信号が伝搬するものである。しかしながら、タイミングが厳しいパスは設計が困難であり、論理合成やレイアウト等の工程で処理時間が増大し、最悪の場合はLSIが製造出来ないという課題があった。このような場合、タイミングを緩和することで各種工程の処理時間を抑え設計容易化が可能となるが、その緩和策の一つがマルチサイクルパス設定である。マルチサイクルパスとは回路構造的に、もしくはシステム仕様により、2つの記憶素子間を複数サイクルで伝搬しても良いパスのことであり、その情報を論理合成やレイアウトツールに入力することで設計が容易となり工程時間が短縮されるとともに、回路規模削減や消費電力削減にも繋がる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2008−243092号公報
【特許文献2】特開2009−230392号公報
【特許文献3】特開2008−123056号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来の半導体集積回路設計手法では、そのパス設定をRTL設計者自身が調査して設定するか、もしくはツール等で自動検出するにも大規模回路では処理に時間がかかる、また、従来の自動検出手法では回路依存ではない(ユーザ仕様依存の)マルチサイクルパスを見つけることが出来ない、という課題があった。更に、近年のプロセス微細化に伴う回路規模増大により、前記課題がより顕著になってきている。
【0005】
この発明は、ユーザ仕様依存のマルチサイクルパスを、短時間で自動検出するマルチサイクルパス検出装置の提供を目的とする。
【課題を解決するための手段】
【0006】
この発明のマルチサイクルパス検出装置は、
クロック信号に基づき動作する半導体集積回路の回路仕様を記述したRTL(Register Transfer Level)データと、前記半導体集積回路の回路構成要素の相互関係を示すネットリストとのいずれかと、RTLシミュレーションで使用された検証パタンを示すユーザ検証パタンとを基に、論理検証を実行する論理検証部と、
前記論理検証部による論理検証の結果に基づいて、前記半導体集積回路の含むパスを特定パスとして特定し、かつ、前記特定パスの始点のデータ値と、前記特定パスの終点のデータ値との比較を行う始点終点データ比較部と、
前記特定パスを伝搬する0と1とのいずれかのデータであって前記クロック信号のサイクル数をデータ幅とするデータを対象として、前記始点終点データ比較部によるデータ比較結果に基づいて、最も小さい前記サイクル数を示すデータ幅最小値を抽出するデータ幅最小値抽出部と、
前記データ幅最小値抽出部によって抽出された前記データ幅最小値に応じて、前記特定パスにおけるマルチサイクル数を決定するマルチサイクル数決定部と
を備えたことを特徴とする。
【発明の効果】
【0007】
この発明により、ユーザ仕様依存のマルチサイクルパスを短時間で自動検出する、マルチサイクルパス検出装置を提供できる。
【図面の簡単な説明】
【0008】
【図1】実施の形態1のマルチサイクルパス検出装置10の構成図。
【図2】実施の形態1のマルチサイクルパス検出装置10の動作を示すフローチャート。
【図3】実施の形態1のマルチサイクルパス検出を説明するための回路図。
【図4】実施の形態1の図3に示す構成のタイミング波形図。
【図5】実施の形態2のマルチサイクルパス検出装置20の構成図。
【図6】実施の形態2のマルチサイクルパス検出装置20の動作を示すフローチャート。
【図7】実施の形態2のマルチサイクルパス検出を説明するための回路図。
【図8】実施の形態2の図7に示す構成のタイミング波形図。
【図9】実施の形態3のマルチサイクルパス検出装置30の構成図。
【図10】実施の形態3のマルチサイクルパス検出装置30の動作を示すフローチャート。
【図11】実施の形態4のマルチサイクルパス検出装置40の構成図。
【図12】実施の形態4のマルチサイクルパス検出装置40の動作を示すフローチャート。
【図13】実施の形態5のマルチサイクルパス検出装置の外観を示す図。
【図14】実施の形態5のマルチサイクルパス検出装置のハードウェア構成を示す図。
【発明を実施するための形態】
【0009】
実施の形態1.
図1は、実施の形態1のマルチサイクルパス検出装置10を示す構成図である。
図1において、
(1)「RTLまたはネットリスト1」(以降、RTL1と呼ぶ)は、マルチサイクルパスの検出対象である半導体集積回路の回路仕様を記述したハードウェア記述言語のRTL(Register Transfer Level)もしくは回路構成要素の相互関係を示すネットリストである。
(2)また、ユーザ検証パタン2は、この半導体集積回路を実際に使用するシステムとして実際に即した検証パタンである。「ユーザ検証パタン2」とは、言い換えれば、「RTL検証用入力パタン」と呼ぶこともできる。「ユーザ検証パタン2」における「検証パタン」とは、ユーザがRTLを用いて論理検証を実行する時に、ユーザが想定した仕様(機能)が正しく動作しているかを見るための入力データ信号列の集合体である。通常、全回路の想定動作を確認するために複数の入力パタン(検証パタン)を使用する。全回路の動作を確認するので、この複数の入力パタンを全て流せば、全回路の動作が網羅されることになる。なお、実際には全回路の「全動作」を再現することは不可能(組合せ等が膨大にあるため)であり、全回路の全組合せを見ることは困難である。しかし、想定している動作を、ユーザ検証パタンとして確認することで、LSIとして問題ないことを判断する。
【0010】
図1に示すように、マルチサイクルパス検出装置10は、論理検証部11〜制約ファイル出力部15を備えている。
(1)論理検証部11は、従来のRTLシミュレーションであり、市販のツールを使用しても構わない。
(2)始点終点データ比較部12は、論理検証部11の出力に基づき、任意のパスの始点と終点のデータが、同じかどうかを比較する。ここで、「論理検証部11の出力」とは、次の内容である。論理検証部11は、ユーザ検証パタン2を入力して論理検証を実施した場合には、全てのセル(FF等)の全ノード(端子)のデータ(1or0)の情報を出力する(後述の図4の波形がその一例である)。この情報出力が「論理検証部11の出力」である。
(3)データ幅最小値抽出部13は、始点終点データ比較部12の結果を全パタンサイクル観測し、もっともデータ幅の短い値を抽出する。
(4)マルチサイクル数決定部14は、データ幅最小値抽出部13によって抽出された値(最小データ幅)を、任意サイクルのマルチサイクルパスに設定するかどうかを決定する。
(5)制約ファイル出力部15は、前記始点終点データ比較部12で指定した始点と終点、前記マルチサイクル数決定部14で指定したマルチサイクル数を一つのファイルにまとめて出力する。制約ファイル出力部15によって出力されたファイルが、マルチサイクルパス制約ファイル3であり、マルチサイクルパス検出装置10の出力である。
【0011】
次に、実施の形態1のマルチサイクルパス検出装置10の動作を説明する。
図2は、マルチサイクルパス検出装置10の動作を示すフローチャートである。
図3は、マルチサイクルパスの検出を説明するための回路図である。
図4は、図3に基づくタイミング波形図である。
【0012】
(入力)
先ず、マルチサイクルパスを検出したい半導体集積回路のRTL1と、設計者もしくは検証担当者が論理検証(RTLシミュレーション)で使用したユーザ検証パタン2を、マルチサイクルパス検出装置10に入力する(ステップS10)。ここで、「論理検証(RTLシミュレーション)で使用したユーザ検証パタン2」と、S11で実行される論理検証部11による論理検証(RTLシミュレーション)の入力パタンは同じものである。マルチサイクルパス検出装置10を使用する前に「論理検証(RTLシミュレーション)」を実施していることを意味する。そして、論理検証部11の出力(全てのセルの全ノードのデータ情報)を得るために、マルチサイクルパス検出装置10において、再度実行する。通常論理検証を実行する場合は、データ量が膨大になるため全ノード情報を出力(記憶)しないが、ここ(論理検証部11)ではマルチサイクルパスを検出するために、全ノード情報を使用する。
【0013】
(論理検証)
次に、論理検証部11が、入力されたRTL1とユーザ検証パタン2とを用いて、所定の論理検証を実施する。ここでの所定の論理検証とは、一般的なRTLシミュレーションのことである。一般的なRTLシミュレーションには、市販のツールを用いても構わない(ステップS11)。
【0014】
(始点終点のデータ比較)
始点終点データ比較部12が、論理検証部11の結果(上記の情報出力)を基に、任意のフリップフロップ(以降、FFと呼ぶ)を始点とし、その接続先であるFFを終点とするパスを特定し、特定したパス(特定パス)における、そのFFの入力データどうしを比較する(ステップS12)。その方法の一例を、図3の回路イメージで説明する。図3において、始点終点データ比較部12の特定した対象回路の対象パス(特定パス)は、FF1とFF2とその間に組合せ回路があるパスであるとする。また、図3の破線の内部は、例えばExORで実現した場合の始点終点データ比較部12を示す。調査するパスの始点をFF1のデータ入力とし、また、調査するパスの終点をFF2のデータ入力とする。その場合、前述のように、始点終点データ比較部12として、ExOR1を追加し、データ比較を行う。
【0015】
図3における始点終点データ比較部12による動作を、図4の波形で具体的に説明する。FF1の入力データをDa、FF2の入力データをDb、ExOR1の出力をEnとする。Da、Dbは、0(Lowレベル)か1(Highレベル)かのいずれかのデータである。
ここで、DaとDbのデータが図4の様になっているとする。また、「Da1」、「Db1」のように、各々の最後の数字が同じ場合に、データが等しい(Da1=Db1)とする(すなわちLowレベルどうしあるいはHighレベルどうしであり、クロックサイクル数が等しい)。そうすると図4において、ExOR1の出力Enは、DaとDbのデータが同じ場合にLowになるため、図4のEnの様な波形となる。このEnの結果を基にマルチサイクルパスを検出する(後述)。
【0016】
(FF1入力―FF2入力以外の場合)
始点終点データ比較部12による図4の動作を、ユーザ検証パタン2を流し切るまで、全サイクル実施する。
なお、図3では、始点/終点であるFFの
(1)入力データどうし、
で比較しているが、
(2)FFの出力データどうし、
を比較してもよいし
(3)始点FFの出力と終点FFの入力どうし、
を比較してもよいし
(4)始点FFの入力と終点FFの出力どうし
を比較しても構わない。また、図3の場合は一例として、始点終点データ比較部12をExOR1という回路イメージで説明したが、同様の動作を、計算機やコンピュータ上で実施しても構わない。
【0017】
(データ幅最小値の抽出)
次に、ステップS12で得られた全サイクルの始点終点データ比較(図4の例ではEn結果)から、データ幅最小値抽出部13は、変化するデータの最小幅を抽出する(ステップS13)。例えば図3の様な方法でデータ比較する場合は、データ幅最小値抽出部13は、図4のEnの出力結果を用いて、最小データ幅を抽出する。データ幅最小値抽出部13は、「EnのLow期間+1」のサイクル数を、最小データ幅とする。なお、データ幅最小値抽出部13は、全てのマルチサイクルパスを確実に抽出するものではなく、マルチサイクルパスを抽出できない場合も起こり得てもよいという前提である。マルチサイクルパス全てを抽出できない場合であっても、後述のように十分効果がある。
【0018】
(「EnのLow期間+1」=最小データ幅)
(1)例えば図4の場合、t8〜t10の間でEnの値がLowにならない(Highが連続している)期間があるためEnのサイクルはゼロとなり、実際の最小データ幅は1になることがわかる。なお図4のt8移行において、Daが長いサイクルの1でDbが長いサイクルの0である場合は、En出力は1になる(Highが連続している)ため、最小データ幅が1と誤検出することとなる。しかし、「マルチサイクルを検出出来ない」という誤検出は問題にはならない。実際の回路ではDaとDbとは値が同じになる(単なる遅延のみ)場合が多く、上記のような誤検出を許容したとしても、かなりのマルチサイクルパスを検出可能だからである。
(2)もし「全パタンを流した時」のEnの値が図4のt8までのパタンであれば、EnのLow期間が必ず1サイクル以上あるので(言い換えると最小のLow期間はt7〜t8の1サイクルであるので)、最小データ幅は2となる。なお「全パタンを流した時」のここでの全パタンとは、(複数あるであろう)ユーザ検証パタン2の全て、という意味である。つまり、ユーザが想定している動作を全て網羅しているので、それを全て流した時にEnのLow期間が必ず1サイクル以上あるので、最小データ幅は2と断言できる。
(3)また、全パタンを流した時のEnの値がt6までのパタンであればEnのLow期間の最小は2サイクルなので、最小データ幅は3となる。
【0019】
(マルチサイクル数の決定)
データ幅最小値抽出部13によって得られたデータの最小幅(En_Low+1)であるクロックのサイクル数が、2以上であれば(S14でYES)、データ変化は2サイクルに1回しか変わらないため、この場合、マルチサイクル数決定部14は、「マルチサイクル数=2」と決定し、処理はステップS15に進む。データの最小幅が2未満の場合は(S14でNO)、処理は、ステップS16に進み、次のパス(特定パス)の解析が実施される。
【0020】
マルチサイクル数決定部14によるマルチサイクル数の決定(S14)では、最小データ幅が2以上をマルチサイクルパスとしたが、2以上の任意のマルチサイクル数を示す整数Nを使用者が指定し、マルチサイクル数決定部14は、N以上のマルチサイクルパスのみ検出しても構わない。
【0021】
(ファイル出力)
制約ファイル出力部15は、マルチサイクル数決定部14がステップS14でマルチサイクルと決定したパスについての情報(始点FF、終点FF、マルチサイクル数)を、ファイルに出力する。これで任意の1パスについては作業完了である(ステップS15)。次に、別のパスについてステップS12からステップS15まで同じ動作を繰り返し、全ての対象パスについて確認した時点で完了となり、ステップS17に進む(ステップS16)。ステップS17では、制約ファイル出力部15が、これまでに決定した全てのマルチサイクルパスの情報について記載されたマルチサイクルパス制約ファイル3を作成する(ステップS17)。このマルチサイクルパス制約ファイル3は、論理合成やレイアウトツールに直接入力できる形式、例えばSDC(Synopsys Design Constraint)ファイルに自動変換しても良い。SDCファイルへの変換技術については公知であるため、その説明は省略する。
【0022】
なお、以上に説明した図3の例では、始点/終点としてFFしか記載していないが、対象回路の入出力も始点/終点の対象とすべきであり、始点/終点が各々入力端子/FF、FF/出力端子というパスも同様の方法で見ることが可能である。以上のように、実施の形態1のマルチサイクルパス検出装置10によれば、ユーザ検証パタン2を入力し、データ幅最小値に基づきマルチサイクルパスを検出するようにした。このため、従来の回路構造解析だけで検出していた手法では検出出来ない、実使用特有のマルチサイクルパスを検出できる。すなわち、ユーザ検証パタン2を入力したユーザ想定動作でのみ分かるマルチサイクルパスを検出できる。つまり回路構造上はマルチサイクルパスにはならないが、ユーザ想定動作でマルチサイクルパスになるものを検出できる。さらに、従来よりもマルチサイクルパスの検出処理時間を短縮できる。
【0023】
実施の形態2.
図5〜図8を参照して実施の形態2のマルチサイクルパス検出装置20を説明する。実施の形態2のマルチサイクルパス検出装置20は、始点終点を一つのFFの入出力を対象にする。これによって、マルチサイクルパスの検出処理時間を短くする。
【0024】
図5は、マルチサイクルパス検出装置20の構成図である。FF入出力データ比較部21、接続FF入出力データ比較部22、前後FFデータ変化比較部23を追加した以外は、データ幅最小値抽出部13、マルチサイクル数決定部14、制約ファイル出力部15は、実施の形態1のマルチサイクルパス検出装置10と同じである。マルチサイクルパス検出装置10と同じものについては説明を省略する。
【0025】
(1)FF入出力データ比較部21は、FFの入力と出力とを比較する。
(2)接続FF入出力データ比較部22は、接続先FF2の入力と出力を比較する。なお接続先FF2は、RTLもしくはネットリストを解析する周知技術により特定できる。
(3)前後FFデータ変化比較部23は、始点になるFF1とその接続先で終点になるFF2各々のデータ変化を比較する。
【0026】
次に、実施の形態2のマルチサイクルパス検出装置20の動作を説明する。
図6は、マルチサイクルパス検出装置20の動作を示すフローチャートである。
図7は、実施の形態2で説明する回路図の一例である。
図8は、図7に基づくタイミング波形図である。
図6のフローチャートのうち、S10、S11、S13、S14、S15、S17は、実施の形態1のフローチャート図2と同じ動作のため、説明を省略する。
【0027】
先ず、ステップS10とステップS11は図2と同じ動作である。
次に、論理検証部11の結果を基に、FF入出力データ比較部21は、任意のFF単体の入力端子、出力端子のデータを比較する(ステップS21)。その方法の一例としては、例えば図7の回路イメージで説明する。図7において、対象回路の対象パスは、FF1とFF2とその間に組合せ回路があるパスであり、実施の形態1の図3と同じ回路である。ここでFF入出力データ比較部21は図7の破線内のExOR1であり、FF1の入出力データ比較を行う。図7におけるFF入出力データ比較部21の動作を、図8の波形で説明する。しかし、FF入出力データ比較部21の動作は、実施の形態1の始点終点データ比較部12とほぼ同じであり、図7のDa、Qa、En1を、それぞれ、図4のDa、Db、Enと置きかえれば、説明は図4の場合と同じとなる。
【0028】
(データ幅最小値の抽出、及びマルチサイクル数の決定)
次に、データ幅最小値抽出部13による最小データ幅抽出(ステップS13)、及びマルチサイクル数決定部14によるFF1における最小データ幅からマルチサイクル数決定(ステップS14)についても実施の形態1と基本的には同じ動作である。しかし、実施の形態2では、FF1単体の最小データ幅のみを見ているため、この段階ではマルチサイクルパスと決定づけられない点が異なる。但し、ここでFF1単体としてもマルチサイクル動作が出来ないことが分かれば、そのFF1が接続されているパスはマルチサイクルパスではないので、処理はステップS14からステップS24に進む。
【0029】
(接続フリップフロップの特定)
FF1単体でマルチサイクル動作であれば、処理はステップS14からステップS22に進み、接続FF入出力データ比較部22は、その接続先のFF2を抽出する(ステップS22)。なお接続FF入出力データ比較部22による、接続先のFF2抽出は周知技術であるので説明は省略する。
【0030】
(FF2の入出力データの比較)
ここで、この接続先FF2についても、接続FF入出力データ比較部22が、データ比較を行う。この動作はFF入出力データ比較部21によるFF11のデータ比較と同様である。ここで接続FF入出力データ比較部22は、図7の破線内のExOR2である。図8の波形において、DbをDa、QbをQa、En2をEn1と置きかえれば、説明はFF入出力データ比較部21の場合と同じとなる。
【0031】
(前後FFデータ変化の比較)
次に、図7の回路図で、前後FFデータ変化比較部23の動作(ステップS22)を説明する。図7において、破線内のExOR1(FF入出力データ比較部21の具体例)で出力されたEn1をFF3で1サイクル遅延させたものと、ExOR2(接続FF入出力データ比較部22の具体例)で出力されたEn2をExOR3で比較した結果をEn3とする。ここでExOR1の出力を1サイクル遅延させるのは、図8のEn1とEn2のタイミングを見ると分かるように、En1とEn2とのタイミングを合わせて後段(ExOR3)での比較を簡単にするためである。FF3とExORとは、前後FFデータ変化比較部23の具体例である。En3は、波形図8のように、FF1とFF2とのデータ変化が同じになる場合、Lowを出力し続ける。つまり、En3が全サイクルにおいてLowであれば、FF1とFF2は同じマルチサイクルとなり、FF1を始点、FF2を終点としたパスはマルチサイクルと言える。但し、全サイクルのうち一か所でも、波形図8のt10サイクル時のように、FF1とFF2とのデータ変化が異なっている場合、En3の出力はHighとなり、マルチサイクルパスではないことになる(ステップS22)。
ここでは、実施の形態1で説明と同様に回路イメージ(図7)で説明したが、同様の動作を、計算機やコンピュータ上で実施しても構わない。
【0032】
ステップS22で、前後FFデータ変化比較部23によってFF1とFF2とで決まるパスがマルチサイクルパスと分かると、制約ファイル出力部15が、その情報(始点FF、終点FF、マルチサイクル数)をファイルに出力する。これで任意の1パスについては作業完了である(ステップS15)。次に、別のFFについて、ステップS21からステップS15まで、同じ動作を繰り返し、全てのFFについて確認した時点で完了となり、処理は、ステップS17に進む(ステップS24)。ステップS17以降は実施の形態1と同様のため、説明を省略する。
【0033】
実施の形態2では、任意のFF1とその接続先のFF2の入出力データ比較情報を比較することで検出処理時間を短縮した。すなわち、最小データ幅がサイクル数2以上である任意のFF1(S14でYES)とその接続先のFF2の入出力データ比較情報を比較することで、全FFの全接続情報を抽出することなく検出処理時間を短縮した。
さらに、任意のFF1単体がマルチサイクルパスでないと判明した時点で(S14でNO)、そのFF1を始点終点から除外して、実施の形態1と同様の動作をさせても良い。すなわち、図6のS14でNO(最小データ幅が2未満)の場合、このFFを含むパスはマルチサイクルパスでないことが分かる。したがって、その情報(マルチサイクルになり得ないFF)を用い、実施の形態1の図2のS12の段階で、この「マルチサイクルになり得ないFF」を任意の始点FF、終点FFからあらかじめ削除することで、見るべきパス数が大幅に減り、処理時間を削減できる。
【0034】
実施の形態2では、接続FF入出力データ比較部22は、接続先のFF2を抽出したが、FF1の接続元のFFを抽出しても良い。
【0035】
以上のように、実施の形態2のマルチサイクルパス検出装置20によれば、FF単体でのデータ変化を見る(図6のS14)ことにより、処理時間に最も影響のある接続情報を極力探索しないで良い構成にしたため、実施の形態1と同じマルチサイクルパス検出効果を持ちつつ、検出処理時間を短縮することが可能となる。
【0036】
実施の形態3.
図9、図10を参照して実施の形態3のマルチサイクルパス検出装置30を説明する。実施の形態3のマルチサイクルパス検出装置30は、公知マルチサイクルパス検出部との結果差分を出力する。ここで、公知マルチサイクルパス検出部(検証パタン不使用検出装置)とは、ユーザ検証パタン2を入力せずに、従来の技術を用いてマルチサイクルパスを検出する手段である。
図9は、マルチサイクルパス検出装置30の構成図である。公知マルチサイクルパス検出部31と、検証パタン検出パス出力部32(差分生成部)とを追加した以外は、実施の形態1のマルチサイクルパス検出装置10(図1)と同じであるため、同じものについては説明を省略する。なお、図9では、マルチサイクルパス検出装置30に公知マルチサイクルパス検出部31を含めているが、公知マルチサイクルパス検出部31は他の装置に存在しても構わない。その場合、マルチサイクルパス検出装置30は、公知マルチサイクルパス検出部31の存在する他の装置から、従来技術による検出結果を入力すればよい。
【0037】
図9において、制約ファイル出力部15は、図1に示したマルチサイクルパス制約ファイル3を、検証パタン検出パス出力部32に出力する。検証パタン検出パス出力部32は、公知マルチサイクルパス検出部31で検出されたマルチサイクルパス制約ファイルと、制約ファイル出力部15から入力されたマルチサイクルパス制約ファイル3との差分を出力する。
【0038】
次に、マルチサイクルパス検出装置30の動作を説明する。
図10は、マルチサイクルパス検出装置30の動作を示すフローチャートである。図10のフローチャートのうち、S10〜S17は、実施の形態1のフローチャート(図2)と同じ動作のため、説明を省略する。
【0039】
マルチサイクルパス検出装置30で出力されるマルチサイクルパス制約ファイル3の作成方法は、実施の形態1と全く同じ動作のため、説明を省略する。論理検証部11〜制約ファイル出力部15の動作と並行して、公知マルチサイクルパス検出部31がRTL1を入力し、ユーザ検証パタン2を用いない従来技術によってマルチサイクルパス検出を行う(ステップS31)。公知マルチサイクルパス検出部31の用いる従来技術の説明は省略する。
【0040】
次に、検証パタン検出パス出力部32は、ステップS31で出力された従来技術で検出されたマルチサイクルパス制約ファイルと、ステップS17で出力されたマルチサイクルパス制約ファイル3との差分を出力する(ステップS32)。その差分ファイル(検証パタン検出マルチサイクルパス制約ファイル33)は、ユーザ検証パタン2を入力することで知り得たパスのみ表示されているため、設計者がこの差分ファイルを確認する。そして問題のないパスだけをファイルに残す(ステップS33)。
【0041】
最後に、その問題のないパスを、ステップS31で出力された従来マルチサイクルパス制約ファイルに追加することで、最終的なマルチサイクルパス制約ファイルとする(ステップS34)。
【0042】
以上のように、実施の形態3のマルチサイクルパス検出装置30によれば、ユーザ検証パタン2を用いない、従来技術のマルチサイクルパス検出との差分を取る。この差分によって、ユーザもしくは設計者が、容易にユーザ検証パタン2依存のマルチサイクルパスを容易に確認できるので、仮に設計の途中等でユーザ検証パタン2が不足していても、誤ってマルチサイクルパス設定をしてしまうというリスクを低減できる。
【0043】
実施の形態4.
図11、図12を参照して実施の形態4のマルチサイクルパス検出装置40を説明する。実施の形態4は、マルチサイクルパスを確認するパスをLow−Vthセル(Low Threshold Voltage Cell;低閾値電圧セル)を使用しているパスに限定することで、マルチサイクルパスの検出処理時間を短くする実施の形態である。
【0044】
図11は、マルチサイクルパス検出装置40の構成図である。マルチサイクルパス検出装置40は、実施の形態1のマルチサイクルパス検出装置10に対して、Low−Vthセル抽出部41(使用パス抽出部の一例)、始点終点限定部42を追加した構成である。それ以外は実施の形態1のマルチサイクルパス検出装置10と同じであるため、同じものについて説明を省略する。
【0045】
Low−Vthセル抽出部41は、ネットリスト1においてLow−Vthセルを抽出する。始点終点限定部42は、Low−Vthセルがあるパスの始点と終点だけに限定するためのものである。
【0046】
次に、マルチサイクルパス検出装置40の動作を説明する。
図12は、マルチサイクルパス検出装置40の動作を示すフローチャートである。該フローチャートのうち、S10、S11、S13、S14、S15、S17は、実施の形態1の図2のフローチャートと同じ動作のため、ここでは説明を省略する。
【0047】
先ず、ステップS10とステップS11は、実施の形態1と同じ動作のため、説明を省略する。
上記動作と並行して、Low−Vthセル抽出部41がネットリスト1を入力し、Low−Vthセルを使用している、もしくは任意の数以上使用しているパスを抽出する(ステップS41)。ここでは、セル自体を抽出するため、入力はRTL1ではなくネットリスト1でなければならないが、Low−Vthセル使用パス抽出後に、パスの情報をネットリスト情報からRTL情報に変換する作業は公知技術であるため、ここでは説明を省略する。また、この入力したネットリスト1は、より最終形態に近いレイアウトでのネットリストが好ましい。パスの情報をネットリスト情報からRTL情報に変換するのは、以下の理由による。一般的に図12のS11の論理検証はネットリストでは時間がかかる。よって図12では、RTLで論理検証(S11)を実施することとしている。つまりS11の結果はRTL上での情報であり、S42の結果はネットリスト上での情報であるため、S42の情報をRTL上での情報に置き換えてS43を実施する必要があるためである。S11の論理検証をネットリストで実施する場合には、RTL情報に変換する必要はない。
【0048】
次に、始点終点限定部42で、Low−Vthセル使用パスの始点終点を抽出する(ステップS41)。始点終点限定部42は、始点終点データ比較部12に、その情報(Low−Vthセル使用パスの始点終点の情報)を出力し、始点終点を「Low−Vthセル使用パスの始点FF終点FF」に限定する(ステップS41)。実施の形態1の図2のフローチャートのS12との違いは、始点終点データ比較部12が始点終点限定部42の情報に基づき、始点FFと終点FFを、対象回路の全FFではなく、前記のように限定しただけで、それ以外の動作は同一である。
【0049】
その後の動作は、基本的に実施の形態1と同じであるが、ステップS44において、全FFではなく、前記のように限定されたFFだけを確認すれば良い点だけが異なる。
【0050】
以上のように、実施の形態4のマルチサイクルパス検出装置40によれば、マルチサイクルパス検出をLow−Vthセル使用パスだけに限定したため、実施の形態1よりも検出処理時間を短縮することが可能となる。また、タイミングの厳しいLow−Vthセル使用パスについてマルチサイクルパスを設定することで、Low−VthセルをHigh−Vthセルに置き換えることが可能となる。これによって、近年プロセス微細化で課題になっている、リーク電流を抑えることも可能となる。
【0051】
実施の形態5.
図13、図14を参照して、実施の形態5を説明する。実施の形態5は、以上の実施の形態1〜4のマルチサイクルパス検出装置10〜40をコンピュータで実現する場合の、実施の形態である。マルチサイクルパス検出装置10〜40をコンピュータで実現する場合、いずれも同様であるので、マルチサイクルパス検出装置10を代表として説明する。
【0052】
図13は、コンピュータであるマルチサイクルパス検出装置10の外観の一例を示す図である。
図14は、マルチサイクルパス検出装置10のハードウェア資源の一例を示す図である。
【0053】
外観を示す図13において、マルチサイクルパス検出装置10は、システムユニット830、CRT(Cathode・Ray・Tube)やLCD(液晶)の表示画面を有する表示装置813、キーボード814(Key・Board:K/B)、マウス815、コンパクトディスク装置818(CDD:Compact Disk Drive)などのハードウェア資源を備える。そして、これらはケーブルや信号線で接続されている。システムユニット830はネットワークに接続している。
【0054】
また、ハードウェア資源を示す図14において、マルチサイクルパス検出装置10は、プログラムを実行するCPU810(Central Processing Unit)を備えている。CPU810は、バス825を介してROM(Read Only Memory)811、RAM(Random Access Memory)812、表示装置813、キーボード814、マウス815、通信ボード816、CDD818、磁気ディスク装置820と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置820の代わりに、光ディスク装置、フラッシュメモリなどの記憶装置でもよい。
【0055】
RAM812は、揮発性メモリの一例である。ROM811、CDD818、磁気ディスク装置820等の記憶媒体は、不揮発性メモリの一例である。これらは、「記憶装置」あるいは記憶部、格納部、バッファの一例である。通信ボード816、キーボード814などは、入力部、入力装置の一例である。また、通信ボード816、表示装置813などは、出力部、出力装置の一例である。通信ボード816は、ネットワークに接続されている。
【0056】
磁気ディスク装置820には、オペレーティングシステム821(OS)、ウィンドウシステム822、プログラム群823、ファイル群824が記憶されている。プログラム群823のプログラムは、CPU810、オペレーティングシステム821、ウィンドウシステム822により実行される。
【0057】
上記プログラム群823には、以上の実施の形態の説明において「〜部」として説明した機能を実行するプログラムが記憶されている。プログラムは、CPU810により読み出され実行される。
【0058】
ファイル群824には、以上の実施の形態の説明において、「〜の判定結果」、「〜の算出結果」、「〜の抽出結果」、「〜の生成結果」、「〜の処理結果」として説明した情報や、「マルチサイクルパス制約ファイル3」、「検証パタン検出マルチサイクルパス制約ファイル33」や、データや信号値や変数値やパラメータなどが、「〜ファイル」や「〜データベース」の各項目として記憶されている。「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU810によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのCPUの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
【0059】
また、以上に述べた実施の形態の説明において、データや信号値は、RAM812のメモリ、CDD818のコンパクトディスク、磁気ディスク装置820の磁気ディスク、その他光ディスク、ミニディスク、DVD(Digital・Versatile・Disk)等の記録媒体に記録される。また、データや信号は、バス825や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【0060】
また、以上の実施の形態の説明において、「〜部」として説明したものは、「〜手段」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明したものは、ソフトウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等の記録媒体に記憶される。プログラムはCPU810により読み出され、CPU810により実行される。すなわち、プログラムは、以上に述べた「〜部」としてコンピュータを機能させるものである。あるいは、以上に述べた「〜部」の手順や方法をコンピュータに実行させるものである。
【0061】
以上の実施の形態では、マルチサイクルパス検出装置を説明したが、マルチサイクルパス検出装置10の動作を、コンピュータに実行させるためのマルチサイクルパス検出プログラムとしても把握できることは以上の説明から明らかである。また、マルチサイクルパス検出装置10の動作を、マルチサイクルパス検出方法として把握できることも以上の説明から明らかである。
【0062】
(1)以上の実施の形態によれば、ユーザ検証パタン2を入力し、マルチサイクルパスを検出するようにしたため、設計者の手を煩わすことなく、容易にマルチサイクルパスを検出することが可能となる。また、ユーザ検証パタン2を入力することで、従来の回路構造解析だけで検出していた手法では検出出来ない実使用特有のマルチサイクルパスを検出出来るとともに、従来よりも検出処理時間を短縮することが可能となる。
(2)また、実施の形態2で述べたように、FF単体でのデータ変化を見ることにより、処理時間に最も影響のある接続情報を極力探索しないで良い構成にした。このため、マルチサイクルパス検出効果を落とすことなく、検出処理時間を短縮することが可能となる。(3)また、実施の形態3で述べたように、ユーザ検証パタン2を用いない従来技術のマルチサイクルパス検出との差分を取ることで、ユーザもしくは設計者が容易にユーザ検証パタン2依存のマルチサイクルパスを容易に確認できるようにした。このため、仮に設計の途中等でユーザ検証パタン2が不足していても、誤ってマルチサイクルパス設定をしてしまうというリスクを低減することが可能となる。
(4)また、実施の形態4で述べたように、マルチサイクルパス検出をLow−Vthセル使用パスだけに限定した。このため、実施の形態1よりも検出処理時間を短縮することが可能となる。また、タイミングの厳しいLow−Vthセル使用パスについてマルチサイクルパスを設定することで、Low−VthセルをHigh−Vthセルに置き換えることが可能となり、近年プロセス微細化で課題となっているリーク電流を抑えることも可能となる。
【0063】
以上の実施の形態では以下のマルチサイクルパス検出装置を説明した。
半導体集積回路の回路仕様を記述したRTLもしくは回路構成要素の相互関係を示すネットリストと、任意の検証パタンとを基に、論理検証を実行する論理検証手段と、対象回路全パスの始点と終点の値の比較を行う始点終点データ比較手段と、検証パタンにより得られた始点終点データ比較手段の結果のうち、各々のパスにおいて最もデータ変化が多いサイクルを抽出するデータ幅最小値抽出手段と、データ幅最小値抽出手段の結果が任意の値以上の場合にその値をマルチサイクル設定値とするマルチサイクル数決定手段と、前記始点終点とマルチサイクル設定値を記載したファイルを出力する制約ファイル出力手段とを備えたマルチサイクルパス検出装置。
【0064】
以上の実施の形態では以下のマルチサイクルパス検出装置を説明した。
半導体集積回路の回路仕様を記述したRTL、もしくは回路構成要素の相互関係を示すネットリストと、任意の検証パタンを基に論理検証を実行する論理検証手段と、対象回路の全フリップフロップの入力と出力を比較するフリップフロップ入出力データ比較手段と、前記検証パタンにより得られた前記フリップフロップ入出力データ比較手段の結果のうち最もデータ変化が多いサイクルを抽出するデータ幅最小値抽出手段と、前記データ幅最小値抽出手段の結果と任意の値以上の値をマルチサイクル設定値とするマルチサイクル数決定手段と、前記フリップフロップの接続先(もしくは接続元)フリップフロップの前記フリップフロップ入出力データ比較手段との結果を比較する接続フリップフロップ入出力データ比較手段と、前記フリップフロップと前記接続フリップフロップ各々のデータ変化を比較する前後フリップフロックデータ変化比較手段と、前記フリップフロップと前記接続フリップフロップとマルチサイクル設定値を記載したファイルを出力する制約ファイル出力手段とを備えたマルチサイクルパス検出装置。
【0065】
以上の実施の形態では以下のマルチサイクルパス検出装置を説明した。
検証パタンを用いない従来の検出方法である公知マルチサイクルパス検出手段と、
上記のマルチサイクルパス検出装置10で検出したマルチサイクルパス結果と前記公知マルチサイクルパス検出手段で検出したマルチサイクルパス結果の差分を出力する検証パタン検出パス出力手段とを備えた装置。
【0066】
以上の実施の形態では以下のマルチサイクルパス検出装置を説明した。
Low−Vthセルを使用しているパスを抽出するLow−Vthセル抽出手段と、そのパスのみをマルチサイクルパス検出の対象とする始点終点限定手段とを備えたマルチサイクルパス検出装置。
【符号の説明】
【0067】
1 RTL、2 ユーザ検証パタン、3 マルチサイクルパス制約ファイル、10,20,30,40 マルチサイクルパス検出装置、11 論理検証部、12 始点終点データ比較部、13 データ幅最小値抽出部、14 マルチサイクル数決定部、15 制約ファイル出力部、21 FF入出力データ比較部、22 接続FF入出力データ比較部、23 前後FFデータ変化比較部、31 公知マルチサイクルパス検出部、32 検証パタン検出パス出力部、33 検証パタン検出マルチサイクルパス制約ファイル、41 Low−Vthセル抽出部、42 始点終点限定部。

【特許請求の範囲】
【請求項1】
クロック信号に基づき動作する半導体集積回路の回路仕様を記述したRTL(Register Transfer Level)データと、前記半導体集積回路の回路構成要素の相互関係を示すネットリストとのいずれかと、RTLシミュレーションで使用された検証パタンを示すユーザ検証パタンとを基に、論理検証を実行する論理検証部と、
前記論理検証部による論理検証の結果に基づいて、前記半導体集積回路の含むパスを特定パスとして特定し、かつ、前記特定パスの始点のデータ値と、前記特定パスの終点のデータ値との比較を行う始点終点データ比較部と、
前記特定パスを伝搬する0と1とのいずれかのデータであって前記クロック信号のサイクル数をデータ幅とするデータを対象として、前記始点終点データ比較部によるデータ比較結果に基づいて、最も小さい前記サイクル数を示すデータ幅最小値を抽出するデータ幅最小値抽出部と、
前記データ幅最小値抽出部によって抽出された前記データ幅最小値に応じて、前記特定パスにおけるマルチサイクル数を決定するマルチサイクル数決定部と
を備えたことを特徴とするマルチサイクルパス検出装置。
【請求項2】
前記始点終点データ比較部は、
接続元となる第1フリップフロップ回路と、前記第1フリップフロップ回路の接続先となる第2フリップフロップ回路とを結ぶパスを、前記特定パスとして特定することを特徴とする請求項1記載のマルチサイクルパス検出装置。
【請求項3】
前記始点終点データ比較部は、
前記特定パスの始点のデータ値と、前記特定パスの終点のデータ値との比較を行う場合に、
前記第1フリップフロップ回路の入力データを前記始点のデータとすると共に前記第2フリップフロップ回路の入力データを前記終点のデータ値とする比較と、
前記第1フリップフロップ回路の出力データを前記始点のデータとすると共に前記第2フリップフロップ回路の出力データを前記終点のデータ値とする比較と、
前記第1フリップフロップ回路の出力データを前記始点のデータとすると共に前記第2フリップフロップ回路の入力データを前記終点のデータ値とする比較と、
前記第1フリップフロップ回路の入力データを前記始点のデータとすると共に前記第2フリップフロップ回路の出力データを前記終点のデータ値とする比較と
のいずれかの比較を行うことを特徴とする請求項2記載のマルチサイクルパス検出装置。
【請求項4】
前記マルチサイクルパス検出装置は、さらに、
Low−Vthセルを使用しているパスを示す使用パスを抽出する使用パス抽出部を備え、
前記始点終点データ比較部は、
前記使用パス抽出部によって抽出された前記使用パスのなかから、前記特定パスを特定することを特徴とする請求項1〜3のいずれかに記載のマルチサイクルパス検出装置。
【請求項5】
前記マルチサイクルパス検出装置は、さらに、
前記ユーザ検証パタンを使用することなくマルチサイクルパスを検出する検証パタン不使用検出装置によって検出されたマルチサイクルパスの検出結果と、前記マルチサイクル数決定部の決定結果との差分を示す差分情報を生成する差分生成部を備えたことを特徴とする請求項1〜4のいずれかに記載のマルチサイクルパス検出装置。
【請求項6】
クロック信号に基づき動作する半導体集積回路の回路仕様を記述したRTL(Register Transfer Level)データと、前記半導体集積回路の回路構成要素の相互関係を示すネットリストとのいずれかと、RTLシミュレーションで使用された検証パタンを示すユーザ検証パタンとを基に、論理検証を実行する論理検証部と、
前記論理検証部による論理検証の結果に基づいて、前記半導体集積回路のフリップフロップ回路を特定フリップフロップ回路として特定し、特定された前記特定フリップフロップ回路の入力データと出力データとを比較するフリップフロップ入出力データ比較部と、
前記特定フリップフロップ回路に入力して出力される0と1とのいずれかのデータであって前記クロック信号のサイクル数をデータ幅とするデータを対象として、前記フリップフロップ入出力データ比較部によるデータ比較結果に基づいて、最も小さい前記サイクル数を示すデータ幅最小値を抽出するデータ幅最小値抽出部と、
前記データ幅最小値抽出部によって抽出されたデータ幅最小値が所定の値以上の場合に、前記フリップフロップ入出力データ比較部によって特定された前記特定フリップフロップ回路の接続先と接続元とのいずれかのフリップフロップ回路を示す接続フリップフロップ回路を前記論理検証部の検証結果に基づき特定し、特定された前記接続フリップフロップ回路の入力データと出力データとを比較する接続フリップフロップ入出力データ比較部と、
前記フリップフロップ入出力データ比較部による前記特定フリップフロップ回路のデータ比較結果を示す第1比較結果と、前記接続フリップフロップ入出力データ比較部による前記接続フリップフロップ回路のデータ比較結果を示す第2比較結果とを比較し、前記第1比較結果と前記第2比較結果との比較の結果に応じて、前記特定フリップフロップ回路と前記接続フリップフロップ回路とを結ぶパスのマルチサイクル数を決定する前後フリップフロップデータ変化比較部と
を備えたことを特徴とするマルチサイクルパス検出装置。
【請求項7】
前記マルチサイクルパス検出装置は、さらに、
前記データ幅最小値抽出部によって抽出された前記データ幅最小値に応じて、前記特定フリップフロップ回路におけるマルチサイクル数を決定するマルチサイクル数決定部を備え、
前記前後フリップフロップデータ変化比較部は、
前記第1比較結果と前記第2比較結果との比較の結果を同一と判定した場合に、前記マルチサイクル数決定部によって決定された前記特定フリップフロップ回路におけるマルチサイクル数を、前記特定フリップフロップ回路と前記接続フリップフロップ回路とを結ぶパスのマルチサイクル数として決定することを特徴とする請求項6記載のマルチサイクルパス検出装置。
【請求項8】
コンピュータを、
クロック信号に基づき動作する半導体集積回路の回路仕様を記述したRTL(Register Transfer Level)データと、前記半導体集積回路の回路構成要素の相互関係を示すネットリストとのいずれかと、RTLシミュレーションで使用された検証パタンを示すユーザ検証パタンとを基に、論理検証を実行する論理検証部、
前記論理検証部による論理検証の結果に基づいて、前記半導体集積回路の含むパスを特定パスとして特定し、かつ、前記特定パスの始点のデータ値と、前記特定パスの終点のデータ値との比較を行う始点終点データ比較部、
前記特定パスを伝搬する0と1とのいずれかのデータであって前記クロック信号のサイクル数をデータ幅とするデータを対象として、前記始点終点データ比較部によるデータ比較結果に基づいて、最も小さい前記サイクル数を示すデータ幅最小値を抽出するデータ幅最小値抽出部、
前記データ幅最小値抽出部によって抽出された前記データ幅最小値に応じて、前記特定パスにおけるマルチサイクル数を決定するマルチサイクル数決定部、
として機能させるためのマルチサイクルパス検出プログラム。
【請求項9】
コンピュータを、
クロック信号に基づき動作する半導体集積回路の回路仕様を記述したRTL(Register Transfer Level)データと、前記半導体集積回路の回路構成要素の相互関係を示すネットリストとのいずれかと、RTLシミュレーションで使用された検証パタンを示すユーザ検証パタンとを基に、論理検証を実行する論理検証部、
前記論理検証部による論理検証の結果に基づいて、前記半導体集積回路のフリップフロップ回路を特定フリップフロップ回路として特定し、特定された前記特定フリップフロップ回路の入力データと出力データとを比較するフリップフロップ入出力データ比較部、
前記特定フリップフロップ回路に入力して出力される0と1とのいずれかのデータであって前記クロック信号のサイクル数をデータ幅とするデータを対象として、前記フリップフロップ入出力データ比較部によるデータ比較結果に基づいて、最も小さい前記サイクル数を示すデータ幅最小値を抽出するデータ幅最小値抽出部、
前記データ幅最小値抽出部によって抽出されたデータ幅最小値が所定の値以上の場合に、前記フリップフロップ入出力データ比較部によって特定された前記特定フリップフロップ回路の接続先と接続元とのいずれかのフリップフロップ回路を示す接続フリップフロップ回路を前記論理検証部の検証結果に基づき特定し、特定された前記接続フリップフロップ回路の入力データと出力データとを比較する接続フリップフロップ入出力データ比較部、
前記フリップフロップ入出力データ比較部による前記特定フリップフロップ回路のデータ比較結果を示す第1比較結果と、前記接続フリップフロップ入出力データ比較部による前記接続フリップフロップ回路のデータ比較結果を示す第2比較結果とを比較し、前記第1比較結果と前記第2比較結果との比較の結果に応じて、前記特定フリップフロップ回路と前記接続フリップフロップ回路とを結ぶパスのマルチサイクル数を決定する前後フリップフロップデータ変化比較部、
として機能させるためのマルチサイクルパス検出プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate


【公開番号】特開2012−248038(P2012−248038A)
【公開日】平成24年12月13日(2012.12.13)
【国際特許分類】
【出願番号】特願2011−119832(P2011−119832)
【出願日】平成23年5月30日(2011.5.30)
【出願人】(000006013)三菱電機株式会社 (33,312)
【Fターム(参考)】