(57)【要約】【課題】タイミング制約を満たす設計を容易に行うことが可能な半導体集積回路の設計方法及び設計プログラムを提供すること。【解決手段】一実施の形態によれば、半導体集積回路の設計方法は、異なるクロック信号に同期して動作するフリップフロップ５０２，５０３間のデータパスに対して、同一のクロック信号に同期して動作するフリップフロップ５０１，５０２間のデータパスに対してよりも大きなタイミングマージンを設定し、論理合成を行う。【選択図】図１
2014006564.tif 000002
【特許請求の範囲】
【請求項１】
異なるクロック信号に同期して動作するフリップフロップ間のデータパスに対して、同一のクロック信号に同期して動作するフリップフロップ間のデータパスに対してよりも大きなタイミングマージンを設定し、
論理合成を行う、半導体集積回路の設計方法。
【請求項２】
半導体集積回路の構造記述からフリップフロップに相当する記述を抽出し、
異なるクロック信号に同期して動作するフリップフロップ間のデータパスに対して、同一のクロック信号に同期して動作するフリップフロップ間のデータパスに対してよりも大きなタイミングマージンを設定し、
前記構造記述の論理合成を行う、請求項１に記載の半導体集積回路の設計方法。
【請求項３】
前記半導体集積回路の構造記述から、それぞれ平坦化して論理合成が行われる第１及び第２モジュールの記述をさらに抽出し、
前記第１及び前記第２モジュール間を接続するデータパスの数に応じたタイミングマージンを、当該データパスに対してさらに設定し、
前記論理合成を行う、請求項２に記載の半導体集積回路の設計方法。
【請求項４】
前記第１及び前記第２モジュール間を接続するデータパスの数が基準本数より少ない場合、基準タイミングマージンよりも大きなタイミングマージンを当該データパスに対して設定する、請求項３に記載の半導体集積回路の設計方法。
【請求項５】
前記第１及び前記第２モジュール間のデータパスの数に加え当該データパスに対応するクロック信号の周波数に応じたタイミングマージンを、当該データパスに対してさらに設定し、
前記論理合成を行う、請求項３に記載の半導体集積回路の設計方法。
【請求項６】
前記第１及び前記第２モジュール間を接続するデータパスの数が基準本数より少ない場合、かつ、前記データパスに対応するクロック信号の周波数が基準周波数よりも低い場合、基準タイミングマージンよりも大きなタイミングマージンを当該データパスに対して設定する、請求項５に記載の半導体集積回路の設計方法。
【請求項７】
前記半導体集積回路の構造記述から、平坦化して論理合成が行われる第３モジュールをさらに抽出し、
前記第３モジュールの面積に応じたタイミングマージンを、当該第３モジュール内に設けられたデータパスに対してさらに設定し、
前記論理合成を行う、請求項３に記載の半導体集積回路の設計方法。
【請求項８】
平坦化して論理合成が行われる第１モジュールと、平坦化して論理合成が行われる第２モジュールと、の間を接続するデータパスの数に応じたタイミングマージンを、当該データパスに対して設定し、
論理合成を行う、半導体集積回路の設計方法。
【請求項９】
半導体集積回路の構造記述から前記第１及び前記第２モジュールの記述を抽出し、
前記第１及び前記第２モジュール間を接続するデータパスの数に応じたタイミングマージンを、当該データパスに対して設定し、
前記構造記述の論理合成を行う、請求項８に記載の半導体集積回路の設計方法。
【請求項１０】
前記第１及び前記第２モジュール間を接続するデータパスの数が基準本数より少ない場合、基準タイミングマージンよりも大きなタイミングマージンを当該データパスに対して設定する、請求項９に記載の半導体集積回路の設計方法。
【請求項１１】
前記第１及び前記第２モジュール間のデータパスの数に加え当該データパスに対応するクロック信号の周波数に応じたタイミングマージンを、当該データパスに対して設定し、
前記論理合成を行う、請求項９に記載の半導体集積回路の設計方法。
【請求項１２】
前記第１及び前記第２モジュール間を接続するデータパスの数が基準本数より少ない場合、かつ、前記データパスに対応するクロック信号の周波数が基準周波数よりも低い場合、基準タイミングマージンよりも大きなタイミングマージンを当該データパスに対して設定する、請求項１１に記載の半導体集積回路の設計方法。
【請求項１３】
異なるクロック信号に同期して動作するフリップフロップ間のデータパスに対して、同一のクロック信号に同期して動作するフリップフロップ間のデータパスに対してよりも大きなタイミングマージンを設定する第１設定処理と、
論理合成を行う合成処理と、をコンピュータに実行させる半導体集積回路の設計プログラム。
【請求項１４】
半導体集積回路の構造記述からフリップフロップに相当する記述を抽出する第１抽出処理と、
異なるクロック信号に同期して動作するフリップフロップ間のデータパスに対して、同一のクロック信号に同期して動作するフリップフロップ間のデータパスに対してよりも大きなタイミングマージンを設定する第１設定処理と、
前記構造記述の論理合成を行う合成処理と、をコンピュータに実行させる請求項１３に記載の半導体集積回路の設計プログラム。
【請求項１５】
前記半導体集積回路の構造記述から、それぞれ平坦化して論理合成が行われる第１及び第２モジュールの記述をさらに抽出する第２抽出処理と、
前記第１及び前記第２モジュール間を接続するデータパスの数に応じたタイミングマージンを、当該データパスに対してさらに設定する第２設定処理と、
前記第１設定処理及び前記第２設定処理の後に論理合成を行う前記合成処理と、をコンピュータに実行させる請求項１４に記載の半導体集積回路の設計プログラム。
【請求項１６】
前記半導体集積回路の構造記述から、それぞれ平坦化して論理合成が行われる第１及び第２モジュールの記述をさらに抽出する第２抽出処理と、
前記第１及び前記第２モジュール間のデータパスの数と、当該データパスに対応するクロック信号の周波数と、に応じたタイミングマージンを、当該データパスに対してさらに設定する第２設定処理と、
前記第１設定処理及び前記第２設定処理の後に論理合成を行う前記合成処理と、をコンピュータに実行させる請求項１４に記載の半導体集積回路の設計プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体集積回路の設計方法及び設計プログラムに関し、例えばタイミング制約を満たす設計に適した半導体集積回路の設計方法及び設計プログラムに関する。
【背景技術】
【０００２】
従来の論理合成装置は、レイアウト設計を考慮することなく、複数のフリップフロップ間のそれぞれのデータパスに対して一律のタイミングマージンを与えて論理合成を行っていた。そのため、従来の論理合成装置では、その後のタイミングドリブンレイアウト設計（タイミングの最適化を図りながら行うレイアウト設計）において、セットアップタイム等のタイミング制約を満たす設計が困難であった。
【０００３】
関連する技術が特許文献１及び特許文献２に開示されている。
【０００４】
特許文献１に開示された半導体集積回路の設計方法は、配置配線工程にてクロック信号のタイミングスキューの最適化を図るクロックツリーシンセシスを行うことを想定し、論理合成工程時に論理回路の最適化を行うことを特徴とする。
【０００５】
特許文献２に開示された半導体集積回路の設計装置は、半導体集積回路における論理回路の動作周波数に対するタイミングマージンを仮設定するタイミングマージン設定部と、タイミングマージン設定部において仮設定されたタイミングマージンに応じて論理回路を決定する論理合成部と、論理合成部において決定された論理回路のタイミングマージンを算出するタイミングマージン算出部と、タイミングマージン算出部で算出されたタイミングマージンに応じて、論理合成部で決定された論理回路の設計値の新たな制約を作成する合成制約作成部と、を備える。それにより、この設計装置は、所望の半導体集積回路を迅速かつ的確に設計している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０００−２０８６３２号公報
【特許文献２】特開２００１−１９６４５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１に開示された半導体集積回路の設計方法は、レイアウト設計でのクロックツリーシンセシスを想定した論理合成を行うものの、ＯＣＶ（Ｏｎ  Ｃｈｉｐ  Ｖａｒｉａｔｉｏｎ）を考慮した論理合成までは行っていない。そのため、この半導体集積回路の設計方法では、その後のタイミングドリブンレイアウト設計において、依然としてセットアップタイム等のタイミング制約を満たす設計が困難であった。
【０００８】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００９】
一実施の形態によれば、半導体集積回路の設計方法は、異なるクロック信号に同期して動作するフリップフロップ間のデータパスに対して、同一のクロック信号に同期して動作するフリップフロップ間のデータパスに対してよりも大きなタイミングマージンを設定し、論理合成を行う。
【００１０】
また、他の実施の形態によれば、半導体集積回路の設計方法は、平坦化して論理合成が行われる第１モジュールと、平坦化して論理合成が行われる第２モジュールと、の間を接続するデータパスの数に応じたタイミングマージンを、当該データパスに対して設定し、論理合成を行う。
【００１１】
さらに、他の実施の形態によれば、半導体集積回路の設計プログラムは、異なるクロック信号に同期して動作するフリップフロップ間のデータパスに対して、同一のクロック信号に同期して動作するフリップフロップ間のデータパスに対してよりも大きなタイミングマージンを設定する第１設定処理と、論理合成を行う合成処理と、をコンピュータに実行させる。
【発明の効果】
【００１２】
前記一実施の形態によれば、タイミング制約を満たす設計を容易に行うことが可能な半導体集積回路の設計方法及び設計プログラムを提供することができる。
【図面の簡単な説明】
【００１３】
【図１】実施の形態１にかかる論理合成装置の構成例を示すブロック図である。
【図２】実施の形態１にかかる論理合成装置の動作を示すフローチャートである。
【図３】実施の形態１にかかる論理合成装置から出力されたネットリストの一部を示す回路図である。
【図４】実施の形態１にかかる論理合成装置のハードウェア構成例を示すブロック図である。
【図５】実施の形態２にかかる論理合成装置の構成例を示すブロック図である。
【図６】モジュール間データパスに対して設定するタイミングマージンのテーブルを示す図である。
【図７】実施の形態２にかかる論理合成装置の動作を示すフローチャートである。
【図８】実施の形態２にかかる論理合成装置から出力されたネットリストの一部を示すブロック図である。
【図９】実施の形態３にかかる論理合成装置の構成例を示すブロック図である。
【図１０】モジュール内データパスに対して設定するタイミングマージンのテーブルを示す図である。
【図１１】実施の形態３にかかる論理合成装置の動作を示すフローチャートである。
【図１２】実施の形態３にかかる論理合成装置から出力されたネットリストの一部を示すブロック図である。
【図１３】実施の形態４にかかる論理合成装置の構成例を示すブロック図である。
【発明を実施するための形態】
【００１４】
以下、図面を参照しつつ、実施の形態について説明する。なお、図面は簡略的なものであるから、この図面の記載を根拠として実施の形態の技術的範囲を狭く解釈してはならない。また、同一の要素には、同一の符号を付し、重複する説明は省略する。
【００１５】
以下の実施の形態においては便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明するが、特に明示した場合を除き、それらはお互いに無関係なものではなく、一方は他方の一部または全部の変形例、応用例、詳細説明、補足説明等の関係にある。また、以下の実施の形態において、要素の数等（個数、数値、量、範囲等を含む）に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でもよい。
【００１６】
さらに、以下の実施の形態において、その構成要素（動作ステップ等も含む）は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではない。同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数等（個数、数値、量、範囲等を含む）についても同様である。
【００１７】
＜実施の形態１＞
図１は、実施の形態１にかかる論理合成装置（半導体設計装置）１の構成例を示すブロック図である。本実施の形態にかかる論理合成装置１は、異なるクロック信号に同期して動作するフリップフロップ間のデータパスに対して、同一のクロック信号に同期して動作するフリップフロップ間のデータパスに対してよりも大きなタイミングマージンを設定し、論理合成を行う。それにより、本実施の形態にかかる論理合成装置１は、その後のタイミングドリブンレイアウト設計において、タイミング制約を満たす設計を従来よりも容易に行うことができる。以下、具体的に説明する。
【００１８】
図１に示す論理合成装置１は、ＲＴＬ記述等の回路の構造に関する記述（構造記述）を論理合成し、ネットリスト（論理回路）として出力する装置である。具体的には、論理合成装置１は、論理合成部１１と、ＦＦ抽出部１２と、マージン設定部１３と、を備え、半導体集積回路のＲＴＬ記述１４、タイミング制約情報１５及びライブラリ１６を読み込んでネットリスト１７を出力する。
【００１９】
ＦＦ抽出部１２は、ＲＴＬ記述１４からフリップフロップに相当する記述を抽出する。
【００２０】
タイミング制約情報１５には、従来の論理合成時に用いられるタイミング制約情報に加え、異なるクロック信号に同期して動作するフリップフロップ間のデータパスに対して設定するタイミングマージンの情報と、同一のクロック信号に同期して動作するフリップフロップ間のデータパスに対して設定するタイミングマージンの情報と、が含まれる。
【００２１】
マージン設定部１３は、ＦＦ抽出部１２によって抽出された複数のフリップフロップ間のそれぞれのデータパスに対し、タイミング制約情報１５から取得したタイミングマージンをそれぞれ設定する。
【００２２】
ここで、マージン設定部１３は、複数のフリップフロップのうち異なるクロック信号に同期して動作するフリップフロップ間のデータパスに対して、同一のクロック信号に同期して動作するフリップフロップ間のデータパスに対してよりも大きな（厳しい）タイミングマージンを設定する。具体的な設定内容については、後述する。
【００２３】
論理合成部１１は、マージン設定部１３によって設定されたタイミングマージン及びその他のタイミング制約に従ってＲＴＬ記述１４を論理合成し、ネットリスト１７として出力する。なお、論理合成部１１は、従来と同様に、ＮＡＮＤ回路やＩＮＶ回路等の基本論理回路の設計情報を格納したライブラリ１６を読み込んで論理合成を行う。
【００２４】
続いて、論理合成装置１の動作について図２を参照して説明する。図２は、論理合成装置１の動作を示すフローチャートである。まず、論理合成装置１は、ＲＴＬ記述１４からフリップフロップに相当する記述を抽出する（Ｓ１０１）。次に、論理合成装置１は、抽出した複数のフリップフロップ間のそれぞれのデータパスに対し、タイミング制約情報１５から取得したタイミングマージンをそれぞれ設定する（Ｓ１０２）。ここで、論理合成装置１は、抽出した複数のフリップフロップのうち異なるクロック信号に同期して動作するフリップフロップ間のデータパスに対して、同一のクロック信号に同期して動作するフリップフロップ間のデータパスに対してよりも大きな（厳しい）タイミングマージンを設定する。具体的な設定内容については、後述する。次に、論理合成装置１は、設定したタイミングマージン及びその他のタイミング制約に従ってＲＴＬ記述１４を論理合成し（Ｓ１０３）、ネットリスト１７として出力する（Ｓ１０４）。
【００２５】
続いて、複数のフリップフロップ間のそれぞれのデータパスに対するタイミングマージンの設定内容について、具体例を用いて説明する。
【００２６】
図３は、ネットリスト１７の一部を示す回路図である。ネットリスト１７は、フリップフロップ５０１〜５０３と、ＰＬＬ５０４と、分周器５０５と、を有する。ＰＬＬ５０４は、クロック信号ＣＬＫ１を生成する。分周器５０５は、クロック信号ＣＬＫ１を分周してクロック信号ＣＬＫ２として出力する。つまり、クロック信号ＣＬＫ１，ＣＬＫ２は異なるクロック信号である。
【００２７】
フリップフロップ５０１は、クロック信号ＣＬＫ１に同期してデータを出力する。フリップフロップ５０２は、クロック信号ＣＬＫ１に同期してフリップフロップ５０１から出力されたデータを取り込み、出力する。フリップフロップ５０３は、クロック信号ＣＬＫ２に同期してフリップフロップ５０２から出力されたデータを取り込み、出力する。
【００２８】
フリップフロップ５０１，５０２は同一のクロック信号ＣＬＫ１に同期して動作している。ここで、フリップフロップ５０１に入力されるクロック信号のクロックラインと、フリップフロップ５０２に入力されるクロック信号のクロックラインと、の分岐点Ｎ１は、送信側のフリップフロップ５０１の付近に位置する。つまり、フリップフロップ５０１，５０２と分岐点Ｎ１との間のそれぞれのクロックラインは比較的短い。そのため、ＯＣＶの影響による信号伝搬遅延のばらつきは比較的小さい。換言すると、フリップフロップ５０１，５０２間のクロックスキューのばらつきは比較的小さい。
【００２９】
一方、フリップフリップ５０２，５０３はそれぞれ異なるクロック信号ＣＬＫ１，ＣＬＫ２に同期して動作している。ここで、フリップフロップ５０２に入力されるクロック信号のクロックラインと、フリップフロップ５０３に入力されるクロック信号のクロックラインと、の分岐点Ｎ２は、ＰＬＬ５０４の付近に位置する。つまり、フリップフロップ５０２，５０３と分岐点Ｎ２との間のそれぞれのクロックラインは比較的長い。そのため、ＯＣＶの影響による信号伝搬遅延のばらつきは比較的大きい。換言すると、フリップフロップ５０２，５０３間のクロックスキューのばらつきは比較的大きい。
【００３０】
そこで、本実施の形態にかかる論理合成装置１は、異なるクロック信号に同期して動作するフリップフロップ５０１，５０２間のデータパスに対して、同一のクロック信号に同期して動作するフリップフロップ５０２，５０３間のデータパスに対してよりも大きな（厳しい）タイミングマージンを設定して論理合成を行っている。
【００３１】
例えば、同一のクロック信号に同期して動作するフリップフロップ５０１，５０２間のデータパスには１ｎｓのタイミングマージンが設定される。一方、異なるクロック信号に同期して動作するフリップフロップ５０２，５０３間のデータパスには２ｎｓのタイミングマージンが設定される。例えば、クロック周期が１０ｎｓ、各フリップフロップのセットアップタイムが１ｎｓの場合、同一のクロック信号に同期して動作するフリップフロップ５０１，５０２間のデータ伝搬時間（送信側フリップフロップがデータを出力してから受信側フリップフロップがデータを取り込むまでの時間）は、８ｎｓ以下である必要がある。一方、異なるクロック信号に同期して動作するフリップフロップ間のデータ伝搬時間は、７ｎｓ以下である必要がある。
【００３２】
このように、本実施の形態にかかる論理合成装置１は、異なるクロック信号に同期して動作するフリップフロップ間のデータパスに対して厳しいタイミングマージンを設定して論理合成を行う。それにより、本実施の形態にかかる論理合成装置１は、その後のタイミングドリブンレイアウト設計において、タイミング制約を満たす設計を従来よりも容易に行うことができる。その結果、タイミングドリブンレイアウト設計後に実施される静的タイミング解析（ＳＴＡ：Ｓｔａｔｉｃ  Ｔｉｍｉｎｇ  Ａｎａｌｙｓｉｓ）において、セットアップタイム違反等のタイミングエラーの発生が抑制される。
【００３３】
さらに、本実施の形態にかかる論理合成装置１は、タイミング、回路規模及び消費電力が実レイアウト設計後のネットリストに比較的近いネットリスト１７を出力することができる。なお、本実施の形態にかかる論理合成装置１は、例えば、タイミング制約を満たすことが困難な箇所には、予め速度の速い回路をマッピングする。
【００３４】
なお、本実施の形態にかかる論理合成装置１は、例えば、汎用的なコンピュータシステムにより実現可能である。以下、図４を用いて簡単に説明する。
【００３５】
図４は、本実施の形態にかかる論理合成装置１のハードウェア構成の一例を示すブロック図である。コンピュータ１００は、例えば、制御装置であるＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０２と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１０３と、外部とのインターフェースであるＩＦ（Ｉｎｔｅｒ  Ｆａｃｅ）１０４と、不揮発性記憶装置の一例であるＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）１０５と、を備える。コンピュータ１００は、その他図示しない構成として、キーボードやマウス等の入力装置やディスプレイ等の表示装置を備えていても良い。
【００３６】
ＨＤＤ１０５には、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）（不図示）と、構造記述情報１０６と、論理回路情報１０７と、論理合成プログラム１０８と、が記憶されている。構造記述情報１０６は、回路の構造に関する情報であって、図１におけるＲＴＬ記述１４に相当する。論理回路情報１０７は、論理回路を実現するための設計情報であって、図１におけるネットリスト１７に相当する。論理合成プログラム１０８は、本実施の形態にかかる論理合成処理が実装されたコンピュータプログラムである。
【００３７】
ＣＰＵ１０１は、コンピュータ１００における各種処理、ＲＡＭ１０２，ＲＯＭ１０３，ＩＦ１０４及びＨＤＤ１０５へのアクセス等を制御する。コンピュータ１００は、ＣＰＵ１０１がＨＤＤ１０５に記憶されたＯＳ及び論理合成プログラム１０８を読み込み、実行する。これにより、コンピュータ１００は、本実施の形態にかかる論理合成装置１を実現する。
【００３８】
＜実施の形態２＞
図５は、実施の形態２にかかる論理合成装置（半導体設計装置）２の構成例を示すブロック図である。本実施の形態にかかる論理合成装置２は、モジュール（第１及び第２モジュール）間を接続するデータパスの本数（配線数）と、当該データパスに対応するクロック信号の周波数と、に応じたタイミングマージンを当該データパスに対して設定し、論理合成を行う。それにより、本実施の形態にかかる論理合成装置２は、その後のタイミングドリブンレイアウト設計において、タイミング制約を満たす設計を従来よりも容易に行うことができる。以下、具体的に説明する。
【００３９】
図５に示す論理合成装置２は、ＲＴＬ記述等の回路の構造に関する記述（構造記述）を論理合成し、ネットリスト（論理回路）として出力する装置である。具体的には、論理合成装置２は、論理合成部２１と、モジュール間配線数抽出部２２と、マージン設定部２３と、を備え、半導体集積回路のＲＴＬ記述２４、タイミング制約情報２５及びライブラリ２６を読み込んでネットリスト２７を出力する。
【００４０】
モジュール間配線数抽出部２２は、ＲＴＬ記述２４からモジュール間を接続するデータパスの本数を抽出する。なお、モジュールとは、ある機能を実現する回路ブロックのことであるが、ここでは、特に、下位階層を平坦化して論理合成する最小単位の回路ブロックのことを指す。
【００４１】
タイミング制約情報２５には、従来の論理合成時に用いられるタイミング制約情報に加え、モジュール間を接続するデータパスの本数と、当該データパスに対応するクロック信号の周波数と、に応じたタイミングマージンの情報が含まれている。なお、データパスに対応するクロック信号とは、当該データパスを介して信号を送受信するフリップフロップに供給されるクロック信号のことである。
【００４２】
図６は、モジュール間を接続するデータパスに設定するタイミングマージンのテーブルを示す図である。図６に示すように、モジュール間を接続するデータパスの本数１〜ｑ（ｑは２以上の整数）と、当該データパスに対応するクロック信号の周波数Ｆ１〜Ｆｐ（ｐは２以上の整数）と、に応じたタイミングマージンＭＢ１１〜ＭＢｐｑが定義されている。なお、タイミングマージンＭＢ１１〜ＭＢｐｑは、基本マージンに対する係数であっても良い。タイミング制約情報２５には、このようなタイミングマージンの情報が含まれている。
【００４３】
図５に戻り、マージン設定部２３は、モジュール間を接続するデータパスの本数と、当該データパスに対応するクロック信号の周波数と、に応じたタイミングマージンをタイミング制約情報２５から取得し、当該データパスに対して設定する。
【００４４】
ここで、マージン設定部２３は、モジュール間を接続するデータパスの本数が少ない場合、多い場合よりも、当該データパスに対して大きな（厳しい）タイミングマージンを設定する。例えば、マージン設定部２３は、モジュール間を接続するデータパスの本数が基準本数より少ない場合、基準マージンよりも大きなタイミングマージンを設定する。また、マージン設定部２３は、モジュール間を接続するデータパスに対応するクロック信号の周波数が低い場合、高い場合よりも、当該データパスに対して大きな（厳しい）タイミングマージンを設定する。例えば、マージン設定部２３は、モジュール間を接続するデータパスに対応するクロック信号の周波数が基準周波数より低い場合、基準マージンよりも大きなタイミングマージンを設定する。具体的な設定内容については、後述する。
【００４５】
論理合成部２１は、マージン設定部２３によって設定されたタイミングマージン及びその他のタイミング制約に従ってＲＴＬ記述２４を論理合成し、ネットリスト２７として出力する。なお、論理合成部２１は、従来と同様に、ＮＡＮＤ回路やＩＮＶ回路等の基本論理回路の設計情報を格納したライブラリ２６を読み込んで論理合成を行う。
【００４６】
続いて、論理合成装置２の動作について図７を参照して説明する。図７は、論理合成装置２の動作を示すフローチャートである。まず、論理合成装置２は、ＲＴＬ記述２４からモジュール間を接続するデータパスの本数を抽出する（Ｓ２０１）。次に、論理合成装置２は、モジュール間を接続するデータパスの本数と、当該データパスに対応するクロック信号の周波数と、に応じたタイミングマージンをタイミング制約情報２５から取得し、当該データパスに対して設定する（Ｓ２０２）。ここで、論理合成装置２は、モジュール間を接続するデータパスの本数が少ない場合、多い場合よりも、当該データパスに対して大きな（厳しい）タイミングマージンを設定する。また、論理合成装置２は、モジュール間を接続するデータパスに対応するクロック信号の周波数が低い場合、高い場合よりも、当該データパスに対して大きな（厳しい）タイミングマージンを設定する。具体的な設定内容については、後述する。次に、論理合成装置２は、設定したタイミングマージン及びその他のタイミング制約に従ってＲＴＬ記述２４を論理合成し（Ｓ２０３）、ネットリスト２７として出力する（Ｓ２０４）。
【００４７】
続いて、モジュール間を接続するデータパスに対するタイミングマージンの設定内容について、具体例を用いて説明する。
【００４８】
図８は、ネットリスト２７の一部を示す回路図である。ネットリスト２７は、モジュール６０１〜６０４を有する。
【００４９】
ここで、モジュール６０１，６０２間を接続するデータパスの本数は比較的多い。また、これらデータパスに対応するクロック信号の周波数は比較的高い。したがって、データパスの配線が混雑しやすく、セットアップタイム違反も起きやすい。これを回避するため、タイミングドリブンレイアウト設計では、モジュール６０１，６０２は比較的近くに自動配置されやすい。そのため、タイミングドリブンレイアウト設計において、タイミング制約を満たす設計は比較的容易である。
【００５０】
一方、モジュール６０３，６０４間を接続するデータパスの本数は比較的少ない。また、これらデータパスに対応するクロック信号の周波数は比較的低い。したがって、データパスの配線が混雑しにくく、セットアップタイム違反が起きにくい。そのため、タイミングドリブンレイアウト設計では、モジュール６０３，６０４は比較的離れて自動配置されやすい。その結果、タイミングドリブンレイアウト設計において、想定したよりもタイミング制約を満たす設計が困難になる可能性がある。
【００５１】
そこで、本実施の形態にかかる論理合成装置２は、モジュール間を接続するデータパスの本数が比較的少なく、当該データパスに対応するクロック信号の周波数が比較的低い、モジュール６０３，６０４間のデータパスに対して、モジュール６０１，６０２間のデータパスに対してよりも大きな（厳しい）タイミングマージンを設定し、論理合成を行っている。
【００５２】
このように、本実施の形態にかかる論理合成装置２は、モジュール間を接続するデータパスの本数と、当該データパスに対応するクロック信号の周波数と、に応じたタイミングマージンを当該データパスに対して設定して論理合成を行う。それにより、本実施の形態にかかる論理合成装置２は、その後のタイミングドリブンレイアウト設計においてタイミング制約を満たす設計を従来よりも容易に行うことができる。その結果、タイミングドリブンレイアウト設計後に実施される静的タイミング解析において、セットアップタイム違反等のタイミングエラーの発生が抑制される。
【００５３】
さらに、本実施の形態にかかる論理合成装置２は、タイミング、回路規模及び消費電力が実レイアウト設計後のネットリストに比較的近いネットリスト２７を出力することができる。なお、本実施の形態にかかる論理合成装置２は、例えば、タイミング制約を満たすことが困難な箇所には、予め速度の速い回路をマッピングする。
【００５４】
本実施の形態では、マージン設定部２３が、モジュール間を接続するデータパスの本数と、当該データパスに対応するクロック信号の周波数と、に応じたタイミングマージンを当該データパスに設定する場合を例に説明したが、これに限られない。マージン設定部２３は、モジュール間を接続するデータパスの本数と、当該データパスに対応するクロック信号の周波数と、のうち何れか一方のみに応じたタイミングマージンを当該データパスに設定する構成に適宜変更可能である。
【００５５】
また、本実施の形態にかかる論理合成装置２は、論理合成装置１の場合と同様に、例えば、汎用的なコンピュータシステムにより実現可能である（図４参照）。
【００５６】
＜実施の形態３＞
図９は、実施の形態３にかかる論理合成装置（半導体設計装置）３の構成例を示すブロック図である。本実施の形態にかかる論理合成装置３は、モジュール（第３モジュール）の面積及びモジュール内のクロック信号の周波数に応じたタイミングマージンを当該モジュール内のデータパスに対して設定し、論理合成を行う。それにより、本実施の形態にかかる論理合成装置３は、その後のタイミングドリブンレイアウト設計において、タイミング制約を満たす設計を従来よりも容易に行うことができる。以下、具体的に説明する。
【００５７】
図９に示す論理合成装置３は、ＲＴＬ記述等の回路の構造に関する記述（構造記述）を論理合成し、ネットリスト（論理回路）として出力する装置である。具体的には、論理合成装置３は、論理合成部３１と、モジュール面積抽出部３２と、マージン設定部３３と、を備え、半導体集積回路のＲＴＬ記述３４、タイミング制約情報３５及びライブラリ３６を読み込んでネットリスト３７を出力する。
【００５８】
モジュール面積抽出部３２は、ＲＴＬ記述２４と、基本論理回路の設計情報（面積情報を含む）が格納されたライブラリ３６と、からモジュールの面積を抽出する。なお、モジュールとは、ある機能を実現する回路ブロックのことであるが、ここでは、特に、下位階層を平坦化して論理合成する最小単位の回路ブロックのことを指す。
【００５９】
タイミング制約情報３５には、従来の論理合成時に用いられるタイミング制約情報に加え、モジュールの面積と、モジュール内のクロック信号の周波数と、に応じたタイミングマージンの情報が含まれている。
【００６０】
図１０は、モジュール内のデータパスに設定するタイミングマージンのテーブルを示す図である。図１０に示すように、モジュールの面積Ａ１〜Ａｎ（ｎは２以上の整数）と、モジュール内のクロック信号の周波数Ｆ１〜Ｆｍ（ｍは２以上の整数）と、に応じたタイミングマージンＭＡ１１〜ＭＡｍｎが定義されている。なお、タイミングマージンＭＡ１１〜ＭＡｍｎは、基本マージンに対する係数であっても良い。タイミング制約情報３５には、このようなタイミングマージンの情報が含まれている。
【００６１】
図９に戻り、マージン設定部３３は、モジュールの面積と、モジュール内のクロック信号の周波数と、に応じたタイミングマージンをタイミング制約情報３５から取得し、当該モジュール内のデータパスに対して設定する。
【００６２】
ここで、マージン設定部３３は、モジュールの面積が大きい場合、小さい場合よりも、モジュール内のデータパスに対して大きなタイミングマージンを設定する。例えば、マージン設定部３３は、モジュールの面積が基準面積よりも大きい場合、基準マージンよりも大きなタイミングマージンを設定する。また、マージン設定部３３は、モジュール内のクロック信号の周波数が高い場合、低い場合よりも、モジュール内のデータパスに対して大きなタイミングマージンを設定する。具体的な設定内容については、後述する。
【００６３】
論理合成部３１は、マージン設定部３３によって設定されたタイミングマージン及びその他のタイミング制約に従ってＲＴＬ記述３４を論理合成し、ネットリスト３７として出力する。なお、論理合成部３１は、従来と同様に、ライブラリ３６を読み込んで論理合成を行う。
【００６４】
続いて、論理合成装置３の動作について図１１を参照して説明する。図１１は、論理合成装置３の動作を示すフローチャートである。まず、論理合成装置３は、ＲＴＬ記述３４及びライブラリ３６からモジュールの面積を抽出する（Ｓ３０１）。次に、論理合成装置３は、モジュールの面積と、モジュール内のクロック信号の周波数と、に応じたタイミングマージンをタイミング制約情報３５から取得し、当該モジュール内のデータパスに対して設定する（Ｓ３０２）。ここで、論理合成装置３は、モジュールの面積が大きい場合、小さい場合よりも、モジュール内のデータパスに対して大きなタイミングマージンを設定する。また、論理合成装置３は、モジュール内のクロック信号の周波数が高い場合、低い場合よりも、モジュール内のデータパスに対して大きなタイミングマージンを設定する。具体的な設定内容については、後述する。次に、論理合成装置３は、設定したタイミングマージン及びその他のタイミング制約に従ってＲＴＬ記述３４を論理合成し（Ｓ３０３）、ネットリスト３７として出力する（Ｓ３０４）。
【００６５】
続いて、モジュール内のデータパスに対するタイミングマージンの設定内容について、具体例を用いて説明する。
【００６６】
図１２は、ネットリスト３７の一部を示す回路図である。ネットリスト３７は、モジュール７０１，７０２と、を有する。モジュール７０１は、フリップフロップ７０３，７０４を有する。モジュール７０２は、フリップフロップ７０５，７０６を有する。図１２の例では、フリップフロップ７０３に入力されるクロック信号のクロックラインと、フリップフロップ７０４に入力されるクロック信号のクロックラインと、の分岐点は、モジュール７０１の外部にあるものとする。また、フリップフロップ７０５に入力されるクロック信号のクロックラインと、フリップフロップ７０６に入力されるクロック信号のクロックラインと、の分岐点は、モジュール７０２の外部にあるものとする。
【００６７】
ここで、モジュール７０１の面積は比較的小さい。それにより、クロックラインは比較的短くなる。したがって、ＯＣＶの影響による信号伝搬遅延のばらつきは比較的小さい。換言すると、フリップフロップ７０３，７０４間のクロックスキューのばらつきは比較的小さい。
【００６８】
一方、モジュール７０２の面積は比較的大きい。それにより、クロックラインは比較的長くなる。したがって、ＯＣＶの影響による信号伝搬遅延のばらつきは比較的大きい。換言すると、フリップフロップ７０５，７０６間のクロックスキューのばらつきは比較的大きい。
【００６９】
そこで、本実施の形態にかかる論理合成装置３は、比較的面積の大きなモジュール７０２内のデータパスに対して、比較的面積の小さなモジュール７０１内のデータパスに対してよりも大きな（厳しい）タイミングマージンを設定し、論理合成を行っている。
【００７０】
また、クロック信号の周波数が高い場合、低い場合よりも、ＯＣＶの影響による信号伝播遅延のばらつきがクロック周期に対して相対的に大きくなる。
【００７１】
そこで、本実施の形態にかかる論理合成装置３は、クロック信号の周波数が高いモジュール内のデータパスに対して、クロック信号の周波数が低いモジュール内のデータパスに対してよりも大きな（厳しい）タイミングマージンを設定し、論理合成を行う。
【００７２】
このように、本実施の形態にかかる論理合成装置３は、モジュールの面積及びモジュール内のクロック信号の周波数に応じたタイミングマージンを当該モジュール内のデータパスに対して設定し、論理合成を行う。それにより、本実施の形態にかかる論理合成装置３は、その後のタイミングドリブンレイアウト設計において、タイミング制約を満たす設計を従来よりも容易に行うことができる。その結果、タイミングドリブンレイアウト設計後に実施される静的タイミング解析において、セットアップタイム等のタイミングエラーの発生が抑制される。
【００７３】
さらに、本実施の形態にかかる論理合成装置３は、タイミング、回路規模及び消費電力が実レイアウト設計後のネットリストに比較的近いネットリスト３７を出力することができる。なお、本実施の形態にかかる論理合成装置３は、例えば、タイミング制約を満たすことが困難な箇所には、予め速度の速い回路をマッピングする。
【００７４】
本実施の形態では、マージン設定部３３が、モジュールの面積及びモジュール内のクロック信号の周波数に応じたタイミングマージンを当該モジュール内のデータパスに対して設定する場合を例に説明したが、これに限られない。マージン設定部３３は、モジュールの面積及びモジュール内のクロック信号の周波数のうち何れか一方のみに応じたタイミングマージンを当該モジュール内のデータパスに設定する構成に適宜変更可能である。
【００７５】
また、本実施の形態にかかる論理合成装置３は、論理合成装置１の場合と同様に、例えば、汎用的なコンピュータシステムにより実現可能である（図４参照）。
【００７６】
＜実施の形態４＞
図１３は、実施の形態４にかかる論理合成装置（半導体設計装置）４の構成例を示すブロック図である。本実施の形態にかかる論理合成装置４は、論理合成装置１〜３の機能を何れも有する。
【００７７】
図１３に示す論理合成装置４は、論理合成部４１と、ＦＦ抽出部４２ａと、モジュール間配線数抽出部４２ｂと、モジュール面積抽出部４２ｃと、マージン設定部４３と、を備え、半導体集積回路のＲＴＬ記述４４、タイミング制約情報４５及びライブラリ４６を読み込んでネットリスト４７を出力する。
【００７８】
なお、論理合成部４１は、各論理合成部１１，２１，３１に対応する。ＦＦ抽出部４２ａは、ＦＦ抽出部１２に対応する。モジュール間配線数抽出部４２ｂは、モジュール間配線数抽出部２２に対応する。モジュール面積抽出部４２ｃは、モジュール面積抽出部３２に対応する。マージン設定部４３は、各マージン設定部１３，２３，３３に対応する。
【００７９】
マージン設定部４３は、ＦＦ抽出部４２ａ、モジュール間配線数抽出部４２ｂ及びモジュール面積抽出部４２ｃによって抽出された情報に応じたタイミングマージンを、タイミング制約情報４５から取得し、複数のデータパスのそれぞれに設定する。
【００８０】
例えば、マージン設定部４３は、あるデータパスがモジュール内のパスである場合、モジュール面積及びモジュール内のクロック信号の周波数に応じたタイミングマージンを、図１０に示すテーブルの中から取得し、設定する。また、マージン設定部４３は、あるデータパスがモジュール間を接続するデータパスである場合、モジュール間を接続するデータパスの本数及び当該データパスに対応するクロック信号の周波数に応じたタイミングマージンを、図６に示すテーブルの中から取得し、設定する。さらに、マージン設定部４３は、データパスが異なるクロック信号に同期して動作するフリップフロップ間のデータパスである場合、取得したタイミングマージンに係数α（α＞１）を乗じて、設定する。
【００８１】
論理合成装置４のその他の動作については、論理合成装置１〜３と同様であるため、その説明を省略する。
【００８２】
このように、本実施の形態にかかる論理合成装置４は、論理合成装置１〜３の何れの機能も実現することが可能である。
【００８３】
本実施の形態では、論理合成装置４が、ＦＦ抽出部４２ａ、モジュール間配線数抽出部４２ｂ及びモジュール面積抽出部４２ｃを有する場合を例に説明したが、これに限られない。論理合成装置４は、ＦＦ抽出部４２ａ、モジュール間配線数抽出部４２ｂ及びモジュール面積抽出部４２ｃのうち２つを有する構成に適宜変更可能である。
【００８４】
また、本実施の形態にかかる論理合成装置４は、論理合成装置１の場合と同様に、例えば、汎用的なコンピュータシステムにより実現可能である（図４参照）。
【００８５】
以上のように、上記実施の形態にかかる論理合成装置１〜４は、上記した各種の抽出情報に基づいて、複数のデータパスのそれぞれに対しそれぞれ個別にタイミングマージンを設定する。それにより、上記実施の形態にかかる論理合成装置１〜４は、その後のタイミングドリブンレイアウト設計において、タイミング制約を満たす設計を従来よりも容易に行うことができる。
【００８６】
上記実施の形態１〜４では、論理合成装置が、ＲＴＬ記述を論理合成してネットリストを出力する場合を例に説明したが、これに限られない。論理合成装置は、ＲＴＬ記述に代えてゲートレベルのネットリストを読み込み、当該ネットリストを再度論理合成（再合成）する構成に適宜変更可能である。
【００８７】
また、上記実施の形態１〜４では、マージン設定部が、タイミング制約情報からタイミングマージンを取得する場合を例に説明したが、これに限られない。マージン設定部は、タイミングマージンを自ら生成する構成に適宜変更可能である。あるいは、マージン設定部は、タイミン制約情報を参照してタイミングマージンの一部を生成する構成に適宜変更可能である。
【００８８】
また、上記実施の形態１〜４にかかる論理合成装置は、任意の処理を、ＣＰＵ（Central Processing Unit）にコンピュータプログラムを実行させることにより実現することも可能である。
【００８９】
上述の例において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、ＤＶＤ（Digital Versatile Disc）、ＢＤ(Blue-ray(登録商標) Disc)、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（Random Access Memory））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００９０】
（従来技術との差異）
特許文献２には、異なるクロック信号に同期して動作するフリップフロップ間のデータパスと、同一のクロック信号に同期して動作するフリップフロップ間のデータパスと、に対しそれぞれ異なるタイミングマージンを設定する点について、開示も示唆もされていない。また、特許文献２には、モジュール間を接続するデータパスの本数に応じたタイミングマージンを当該データパスに設定する点について、開示も示唆もされていない。
【００９１】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
【符号の説明】
【００９２】
１〜４  論理合成装置
１１，２１，３１，４１  論理合成部
１２  ＦＦ抽出部
１３，２３，３３，４２  マージン設定部
１４，２４，３４，４４  ＲＴＬ記述
１５，２５，３５，４５  タイミング制約情報
１６，２６，３６，４６  ライブラリ
１７，２７，３７，４７  ネットリスト
２２  モジュール間配線数抽出部
３２  モジュール面積抽出部
４２ａ  ＦＦ抽出部
４２ｂ  モジュール間配線数抽出部
４２ｃ  モジュール面積抽出部
１００  コンピュータ
１０１  ＣＰＵ
１０２  ＲＡＭ
１０３  ＲＯＭ
１０４  ＩＦ
１０５  ＨＤＤ
１０６  構造記述情報
１０７  論理回路情報
１０８  論理合成プログラム
５０１〜５０３  フリップフロップ
５０４  ＰＬＬ
５０５  分周器
６０１〜６０４  モジュール
７０１，７０２  モジュール
７０３〜７０６  フリップフロップ
【図１】
2014006564.tif 000003
【図２】
2014006564.tif 000004
【図３】
2014006564.tif 000005
【図４】
2014006564.tif 000006
【図５】
2014006564.tif 000007
【図６】
2014006564.tif 000008
【図７】
2014006564.tif 000009
【図８】
2014006564.tif 000010
【図９】
2014006564.tif 000011
【図１０】
2014006564.tif 000012
【図１１】
2014006564.tif 000013
【図１２】
2014006564.tif 000014
【図１３】
2014006564.tif 000015