(57)【要約】【課題】クロストーク遅延やシグナルエレクトロマイグレーションなど、ネットの構成に起因するエラーが発生した際に、ネットの構成を設計者が調整する必要がありLSI設計効率が低下する。【解決手段】論理回路合成装置は、予め所定の特性を有するネットについて、特性に対応してネットの構成が満たすべき条件をセルのライブラリに記憶しておく。ネットリストから、所定の特性を有するネットを選択する。選択したネットにおいて、ライブラリ中に記憶されている条件に従って論理合成を行う。【選択図】図２
2008140061.tif 000002
【特許請求の範囲】
【請求項１】
１の特性を有するネットについて、前記特性に対応して、前記特性を有するネットの構成が満たすべき条件を示す構成条件情報を記憶している記憶手段と、
複数のネットの構成を示す原ネット構成情報を取得する取得手段と、
前記取得した原ネット構成情報に示される前記複数のネットから、前記１の特性を有するネットを選択する選択手段と、
前記原ネット構成情報に示される前記複数のネットのうち、前記選択したネットを対象として、前記記憶されている前記構成条件情報に示される前記構成の条件を満たす新ネット構成情報を生成する生成手段とを備える
ことを特徴とする論理回路合成装置。
【請求項２】
前記記憶手段は、前記特性に対応して、前記特性を有するネットの配線長に関する条件を前記構成条件情報として記憶し、
前記生成手段は、前記配線長に関する条件を満たす前記新ネット構成情報を生成する
ことを特徴とする請求項１記載の論理回路合成装置。
【請求項３】
前記特性を有するネットとは、ブロックの境界にまたがる境界ネットであり、
前記記憶手段は、前記境界ネットの最大配線長の制限を前記構成条件情報として記憶しており、
前記選択手段は、前記境界ネットを前記選択し、
前記生成手段は、前記選択した前記境界ネットの配線長が、前記最大配線長の制限を満たす前記新ネット構成情報を生成する
ことを特徴とする請求項２記載の論理回路合成装置。
【請求項４】
前記特性を有するネットとは、ネットの密集度が所定値以上である混雑しているネットであり、
前記記憶手段は、前記混雑しているネットの最小配線長の制限を前記構成条件情報として記憶しており、
前記選択手段は、前記混雑しているネットを前記選択し、
前記生成手段は、前記選択した前記混雑しているネットの配線長が、前記最小配線長の制限を満たす前記新ネット構成情報を生成する
ことを特徴とする請求項２記載の論理回路合成装置。
【請求項５】
前記特性を有するネットとは、所定の高さのトグル率となっているネットである高トグルネットであり、
前記記憶手段は、前記高トグルネットの最小配線長の制限を前記構成条件情報として記憶しており、
前記選択手段は、前記高トグルネットを前記選択し、
前記生成手段は、前記選択した前記高トグルネットの配線長が、前記最小配線長の制限を満たす前記新ネット構成情報を生成する
ことを特徴とする請求項２記載の論理回路合成装置。
【請求項６】
前記記憶手段は、前記特性に対応して、前記特性を有するネットの、回路上の配線方向に関する条件を前記構成条件情報として記憶し、
前記生成手段は、前記配線方向に関する条件を満たす前記新ネット構成情報を生成する
ことを特徴とする請求項１記載の論理回路合成装置。
【請求項７】
前記特性を有するネットとは、ネットの密集度が所定値以上である混雑しているネットであり、
前記記憶手段は、前記混雑しているネットの配線方向の制限を前記構成条件情報として記憶しており、
前記選択手段は、前記混雑しているネットを前記選択し、
前記生成手段は、前記選択した前記混雑しているネットの配線方向が、前記配線方向の制限を満たす前記新ネット構成情報を生成する
ことを特徴とする請求項６記載の論理回路合成装置。
【請求項８】
前記記憶手段は、前記特性に対応して、ネットを構成しているセルの間に配置すべき所定のセルの個数の制限を示す段数制限を前記構成条件情報として記憶しており、
前記生成手段は、前記段数制限を満たす前記新ネット構成情報を生成する
ことを特徴とする請求項１記載の論理回路合成装置。
【請求項９】
前記特性を有するネットとは、所定の高さのグリッチが発生しているグリッチ発生ネットであり、
前記記憶手段は、前記グリッチ発生ネットにおいて、ネットを構成しているセルの間に配置すべき所定セルの個数の制限を示す段数制限を前記構成条件情報として記憶しており、
前記選択手段は、前記グリッチ発生ネットを前記選択し、
前記生成手段は、前記選択した前記グリッチ発生ネットにおける所定のセル種間にあるセルの個数が前記段数制限を満たす前記新ネット構成情報を生成する
ことを特徴とする請求項８記載の論理回路合成装置。
【請求項１０】
前記特性を有するネットとは、フリップフロップが直結しているFF直結ネットであり、
前記記憶手段は、前記FF直結ネットにおいて、フリップフロップ間の遅延時間の制限を前記構成条件情報として記憶しており、
前記選択手段は、前記FF直結ネットを前記選択し、
前記生成手段は、前記選択した前記FF直結ネットにおいて、フリップフロップ間の遅延時間の制限が前記構成条件情報に示される条件を満たすようフリップフロップ間に挿入するバッファの数を制御して前記新ネット構成情報を生成する
ことを特徴とする請求項１記載の論理回路合成装置。
【請求項１１】
前記特性を有するネットとは、高周波の信号が伝播している高周波ネットであり、
前記記憶手段は、所定のセルが接続可能なネットの最大周波数の制限を示す最大周波数情報を前記構成条件情報として記憶しており、
前記選択手段は、前記高周波ネットを選択し、
前記生成手段は、前記選択した前記高周波ネットにおいて、前記高周波ネットに接続するセルが、前記記憶手段に記憶されている前記最大周波数情報に示される制限を満たすよう、前記高周波ネットに接続するセルを制御して前記新ネット構成情報を生成する
ことを特徴とする請求項１記載の論理回路合成装置。
【請求項１２】
前記記憶手段は、所定のセルを前記１の特性を有するネットに接続する数の制限を前記構成条件情報として記憶しており、
前記生成手段は、前記所定のセルが前記１の特性を有するネットに接続する数が、前記記憶されている前記制限を満たす前記新ネット構成情報を生成する
ことを特徴とする請求項１記載の論理回路合成装置。
【請求項１３】
前記特性を有するネットとは、バス信号が流れるネットであるバス信号ネットであり、
前記記憶手段は、終端抵抗を前記バス信号ネットに接続する数の制限を前記構成条件情報として記憶しており、
前記選択手段は、前記バス信号ネットを前記選択し、
前記生成手段は、前記選択した前記バス信号ネットにおいて、前記バス信号ネットに接続する前記終端抵抗の個数が、前記記憶されている前記接続する数の制限を満たす前記新ネット構成情報を生成する
ことを特徴とする請求項１２記載の論理回路合成装置。
【請求項１４】
前記記憶手段は、所定のセルを前記１の特性を有するネットに接続する位置の制限を前記構成条件情報として記憶しており、
前記生成手段は、前記所定のセルが前記１の特性を有するネットに接続する位置が、前記記憶されている前記制限を満たす前記新ネット構成情報を生成する
ことを特徴とする請求項１記載の論理回路合成装置。
【請求項１５】
前記特性を有するネットとは、ネットを観測する対象として指定された観測対象ネットであり、
前記記憶手段は、フリップフロップを前記観測対象ネットに接続する位置の制限を前記構成条件情報として記憶しており、
前記選択手段は、前記観測対象ネットを前記選択し、
前記生成手段は、前記選択した前記観測対象ネットにおいて、フリップフロップを前記観測対象ネットに接続する位置が、前記記憶されている前記接続する位置の制限を満たす前記新ネット構成情報を生成する
ことを特徴とする請求項１４記載の論理回路合成装置。
【請求項１６】
前記特性を有するネットとは、所定の高さのトグル率となっているネットである高トグルネットであり、
前記記憶手段は、前記高トグルネットに接続する第１セルと、前記第１セルとは異なる第２セルの配置に関する制限を前記構成条件情報として記憶しており、
前記選択手段は、前記高トグルネットを前記選択し、
前記生成手段は、前記高トグルネットに接続するセルと、当該セルとは異なる他のセルの配置位置が、前記記憶されている前記配置に関する制限を満たす前記新ネット構成情報を生成する
ことを特徴とする請求項１記載の論理回路合成装置。
【請求項１７】
前記記憶手段は、前記第１セルと、前記第２セルを、ｒｏｗの間隔を所定数空けて配置する制限を前記構成条件情報として記憶しており、
前記生成手段は、前記記憶されている前記制限に示される前記ｒｏｗの間隔を空けて、前記高トグルネットに接続するセルと、当該セルとは異なる他のセルとを配置する
ことを特徴とする請求項１６記載の論理回路合成装置。
【請求項１８】
前記記憶手段は、前記第１セルと、前記第２セルを、所定数のストラップ配線を挟んで配置する制限を前記構成条件情報として記憶しており、
前記生成手段は、前記記憶されている前記制限に示される、前記所定数のストラップ配線を挟んで、前記高トグルネットに接続するセルと、当該セルとは異なる他のセルとを配置する
ことを特徴とする請求項１６記載の論理回路合成装置。
【請求項１９】
前記特性を有するネットとは、所定の高さのクロストークが発生しているクロストーク発生ネットであり、
前記記憶手段は、前記クロストーク発生ネットが、他の配線と並行して配線されている長さである並行配線長の制限を前記構成条件情報として記憶しており、
前記選択手段は、前記クロストーク発生ネットを前記選択し、
前記生成手段は、前記クロストーク発生ネットに並行して配線されている所定の配線と、前記クロストーク発生ネットの配線との並行配線長が、前記記憶されている前記並行配線長の制限を満たす前記新ネット構成情報を生成する
ことを特徴とする請求項１記載の論理回路合成装置。
【請求項２０】
１の特性を有するネットについて、前記特性に対応して、前記特性を有するネットの構成が満たすべき条件を示す構成条件情報を記憶している記憶手段を有する論理回路合成装置に、論理合成を行わせる論理回路合成方法であって、
複数のネットの構成を示す原ネット構成情報を取得する取得ステップと、
前記取得した原ネット構成情報に示される前記複数のネットから、前記１の特性を有するネットを選択する選択ステップと、
前記原ネット構成情報に示される前記複数のネットのうち、前記選択したネットを対象として、前記記憶されている前記構成条件情報に示される前記構成の条件を満たす新ネット構成情報を生成する生成ステップとを含む
ことを特徴とする論理回路合成方法。
【請求項２１】
１の特性を有するネットについて、前記特性に対応して、前記特性を有するネットの構成が満たすべき条件を示す構成条件情報を記憶している記憶手段を有する論理回路合成装置に、論理合成を行わせる処理を制御する制御プログラムであって、
複数のネットの構成を示す原ネット構成情報を取得する取得ステップと、
前記取得した原ネット構成情報に示される前記複数のネットから、前記１の特性を有するネットを選択する選択ステップと、
前記原ネット構成情報に示される前記複数のネットのうち、前記選択したネットを対象として、前記記憶されている前記構成条件情報に示される前記構成の条件を満たす新ネット構成情報を生成する生成ステップとを含む
ことを特徴とする制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、論理回路を合成する技術に関し、特に、論理回路を最適化する技術に関する。
【背景技術】
【０００２】
大規模かつ高性能のLSI（Large Scale Integration）の設計を短期間で行うために、論理回路の生成を自動的に行う論理回路合成装置が広く利用されている。
論理回路合成装置は、ハードウェア記述言語（HDL：Hardware Description Language）で表現されたRTL（register transfer level）記述などに基づいて、ゲートレベルの論理展開を行う。論理展開後、消費電力やチップ面積や遅延時間などを調整するために、論理の最適化を行う。最適化の後、論理ゲートやフリップフロップなどを、所望の半導体製造技術のライブラリ、例えばLiberty（.lib）フォーマットのライブラリに用意されたマクロセルに置き換えるマッピングを行う。
【０００３】
このようにして、論理回路合成装置は、セルとセルとの接続関係を示すネットについての情報を複数含み、論理回路を示すネットリストを出力する。
従来においては、性能がより最適化された論理回路を論理回路合成装置に合成させるために、セルが所定のセルまたはネットとのみ接続するようセルの接続対象を制限し、その制限のもとで論理回路合成装置に論理合成を行わせる技術が用いられている（下記の特許文献１参照）。
【０００４】
具体的には、論理回路合成装置は、ハイインピーダンス状態の信号が入力されると貫通電流が発生する論理素子と、貫通電流が発生しない論理素子とを区別して記憶しておく。ハイインピーダンス状態の信号が入力されると貫通電流が発生する論理素子とは、例えばインバータ論理素子である。
回路に貫通電流が発生すると、回路の消費電力が大きくなるので、論理回路合成装置は、ある論理回路を合成する際に、ハイインピーダンス状態の信号が流れるバスと、インバータ論理素子の入力ピンとを接続しないよう、例えば論理式が等価な別の構成の論理回路に置き換えるなどして合成を行う。これにより、貫通電流が発生しない論理回路を合成することができる。
【特許文献１】特開平１０−８４２７０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、小型かつ高機能の集積回路の需要が高まるにつれて、回路の密集度を高めるために、セルを接続する配線の幅が微細化してきている。配線幅が微細化すると、配線が他の配線やセルから受ける悪影響が大きくなり、配線の長さやネットに接続するセルの配置位置など、ネットの構成に起因するエラーの悪影響が無視できなくなっている。エラーとしては、例えば、配線が長配線であるために発生するシグナルエレクトロマイグレーションエラーや、並行して配置されている配線から受けるクロストーク遅延などがある。
【０００６】
この悪影響に対処するために、従来、回路の設計者は、合成後の論理回路をシミュレーション等によって解析し、遅延などのエラーが発生しているネットを特定する。そして、エラーを解消すべく設計者がネットの構成を調整した上で再度論理合成をやり直すという作業を繰り返している。そのため、設計者がエラーを取り除くための作業量が大きくなっており、回路の設計が長期化するという問題が発生している。
【０００７】
そこで、本発明は、論理回路の設計のさらなる短縮化を図り、LSIの設計効率を高めるため、自動的に、ネットの構成に起因する悪影響を除去して論理回路を合成する論理回路合成装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するため、本発明の論理回路合成装置は、１の特性を有するネットについて、前記特性に対応して、前記特性を有するネットの構成が満たすべき条件を示す構成条件情報を記憶している記憶手段と、複数のネットの構成を示す原ネット構成情報を取得する取得手段と、前記取得した原ネット構成情報に示される前記複数のネットから、前記１の特性を有するネットを選択する選択手段と、前記原ネット構成情報に示される前記複数のネットのうち、前記選択したネットを対象として、前記記憶されている前記構成条件情報に示される前記構成の条件を満たす新ネット構成情報を生成する生成手段とを備えることを特徴とする。
【発明の効果】
【０００９】
上述の構成を備える論理回路合成装置は、１の特性に対応して、前記特性を有するネットの構成が満たすべき条件を示す構成条件情報を記憶している。ここで、特性を有するネットとは、例えば遅延やエラーが発生しているネットである。また、原ネット構成情報にあるネットのうちの１の特性を有するネットを対象として、構成条件情報に示される条件を満たす新ネット構成情報を生成する。
【００１０】
したがって、論理回路合成装置は、ネットの特性に対応して、ネットの構成を最適化することができ、回路設計者の作業を要することなく、当該特性を有するネットに対して、特性に対応した条件を満たすようにネットの構成を調整して、新ネット構成情報を生成することができる。
ネットの構成に起因するエラーとしては、ネットの配線長によるものがある。例えば、上述のように、ネットの配線長が長すぎると、シグナルエレクトロマイグレーションエラーなどが発生する。
【００１１】
そこで、前記記憶手段は、前記特性に対応して、前記特性を有するネットの配線長に関する条件を前記構成条件情報として記憶し、前記生成手段は、前記配線長に関する条件を満たす前記新ネット構成情報を生成するとしてもよい。
これにより、ネットの配線長を適切に調整することができる。
より具体的に、ネットの特性を挙げると、例えば、ネットの特性として、ブロックの境界にまたがるネットがある。ブロックの境界にあるネットが長配線であると、シグナルエレクトロマイグレーションエラーや、Slewエラーが発生する。
【００１２】
そこで、前記特性を有するネットとは、ブロックの境界にまたがる境界ネットであり、前記記憶手段は、前記境界ネットの最大配線長の制限を前記構成条件情報として記憶しており、前記選択手段は、前記境界ネットを前記選択し、前記生成手段は、前記選択した前記境界ネットの配線長が、前記最大配線長の制限を満たす前記新ネット構成情報を生成するとしてもよい。
【００１３】
これにより、シグナルエレクトロマイグレーションエラーやSlewエラーの発生を防ぐことができる。
また、ネットの配線長が短すぎることも問題となることがある。例えば、ネットの密集度が所定度合以上であると、セルの配置が困難になる。このような場合は、例えば、ピンが多く混雑しやすいセル種を、混雑しているネットから離すことで配線混雑を防ぐことができる。
【００１４】
そこで、前記特性を有するネットとは、ネットの密集度が所定値以上である混雑しているネットであり、前記記憶手段は、前記混雑しているネットの最小配線長の制限を前記構成条件情報として記憶しており、前記選択手段は、前記混雑しているネットを前記選択し、前記生成手段は、前記選択した前記混雑しているネットの配線長が、前記最小配線長の制限を満たす前記新ネット構成情報を生成するとしてもよい。
【００１５】
これにより、配線混雑を防ぐことができる。
この他にも、特定の高さのトグル率が発生しているネットがあると、電圧の切り替わりが頻繁なために、局所的な発熱が起こりやすくなる。
そこで、前記特性を有するネットとは、所定の高さのトグル率となっているネットである高トグルネットであり、前記記憶手段は、前記高トグルネットの最小配線長の制限を前記構成条件情報として記憶しており、前記選択手段は、前記高トグルネットを前記選択し、前記生成手段は、前記選択した前記高トグルネットの配線長が、前記最小配線長の制限を満たす前記新ネット構成情報を生成するとしてもよい。
【００１６】
これにより、例えば、消費電力が大きいセルを、最小配線長以上の長さとなるようにネットから離すことで、局所的な発熱を防ぐことができる。
また、上述のように、ネットの配線長が問題となる場合の他に、ネットの配線方向が問題となることがある。
例えば、回路において、水平方向にセルが集中すると、垂直方向の配線リソースが少ないセル種を配置しにくくなる。
【００１７】
そこで、前記記憶手段は、前記特性に対応して、前記特性を有するネットの、回路上の配線方向に関する条件を前記構成条件情報として記憶し、前記生成手段は、前記配線方向に関する条件を満たす前記新ネット構成情報を生成することとしてもよい。
これにより、水平方向の配線リソースが少ないセル種や、垂直方向の配線リソースが少ないセル種を、適切に配置することができる。
【００１８】
より具体的には、前記特性を有するネットとは、ネットの密集度が所定値以上である混雑しているネットであり、前記記憶手段は、前記混雑しているネットの配線方向の制限を前記構成条件情報として記憶しており、前記選択手段は、前記混雑しているネットを前記選択し、前記生成手段は、前記選択した前記混雑しているネットの配線方向が、前記配線方向の制限を満たす前記新ネット構成情報を生成することとしてもよい。
【００１９】
これにより、混雑しているネットから離すように、配線リソースに応じて、セル種を適切に配置することができ、配線混雑を防ぐことができる。
また、ネットの配線長や配線方向の他に、所定のセルの間にあるセルの個数が適切でないために問題となることがある。例えば、信号がフリップフロップの出力ピンから、他のフリップフロップの入力ピンに到達するまでが速すぎるためにホールドエラーが起こることがある。
【００２０】
そこで、前記記憶手段は、前記特性に対応して、ネットを構成しているセルの間に配置すべき所定のセルの個数の制限を示す段数制限を前記構成条件情報として記憶しており、前記生成手段は、前記段数制限を満たす前記新ネット構成情報を生成することとしてもよい。
これにより、所定のセル間に配置するセルの段数を制限して、遅延や同期エラーの発生を回避することができる。
【００２１】
より具体的には、前記特性を有するネットとは、所定の高さのグリッチが発生しているグリッチ発生ネットであり、前記記憶手段は、前記グリッチ発生ネットにおいて、ネットを構成しているセルの間に配置すべき所定セルの個数の制限を示す段数制限を前記構成条件情報として記憶しており、前記選択手段は、前記グリッチ発生ネットを前記選択し、前記生成手段は、前記選択した前記グリッチ発生ネットにおける所定のセル種間にあるセルの個数が前記段数制限を満たす前記新ネット構成情報を生成することとしてもよい。
【００２２】
グリッチが発生しているネットにおいては、バッファを挿入することで、グリッチエラーを解消することができるため、上述した構成を備えることにより、グリッチエラーを解消することができる。
また、前記特性を有するネットとは、フリップフロップが直結しているFF直結ネットであり、前記記憶手段は、前記FF直結ネットにおいて、フリップフロップ間の遅延時間の制限を前記構成条件情報として記憶しており、前記選択手段は、前記FF直結ネットを前記選択し、前記生成手段は、前記選択した前記FF直結ネットにおいて、フリップフロップ間の遅延時間の制限が前記構成条件情報に示される条件を満たすようフリップフロップ間に挿入するバッファの数を制御して前記新ネット構成情報を生成することとしてもよい。
【００２３】
フリップフロップが直結しているネットでは、信号到達が速すぎることによりホールドエラーが発生することがあるが、上述した構成を備えることにより、バッファを挿入してホールドエラーを解消することができる。
また、ネットに伝播しているパルスの周波数が高いと、遅延値が大きいセル等に高い周波数のパルスが入ることでパルスが消失する、いわゆるパルスリジェクトが発生することがある。
【００２４】
そこで、前記特性を有するネットとは、高周波の信号が伝播している高周波ネットであり、前記記憶手段は、所定のセルが接続可能なネットの最大周波数の制限を示す最大周波数情報を前記構成条件情報として記憶しており、前記選択手段は、前記高周波ネットを選択し、前記生成手段は、前記選択した前記高周波ネットにおいて、前記高周波ネットに接続するセルが、前記記憶手段に記憶されている前記最大周波数情報に示される制限を満たすよう、前記高周波ネットに接続するセルを制御して前記新ネット構成情報を生成することとしてもよい。
【００２５】
これにより、高周波ネットに接続するセルを制限して、パルスリジェクトの発生を防止することができる。
また、ある特性のネットに対して、所定のセルを接続することで、論理回路を最適化することができる場合がある。具体的には、バスに反射波が発生する場合に、バスに終端抵抗を接続することで、インピーダンスを整合させることで論理回路を最適化することができる。
【００２６】
そこで、前記記憶手段は、所定のセルを前記１の特性を有するネットに接続する数の制限を前記構成条件情報として記憶しており、前記生成手段は、前記所定のセルが前記１の特性を有するネットに接続する数が、前記記憶されている前記制限を満たす前記新ネット構成情報を生成することとしてもよい。具体的には、前記特性を有するネットとは、バス信号が流れるネットであるバス信号ネットであり、前記記憶手段は、終端抵抗を前記バス信号ネットに接続する数の制限を前記構成条件情報として記憶しており、前記選択手段は、前記バス信号ネットを前記選択し、前記生成手段は、前記選択した前記バス信号ネットにおいて、前記バス信号ネットに接続する前記終端抵抗の個数が、前記記憶されている前記接続する数の制限を満たす前記新ネット構成情報を生成することとしてもよい。
【００２７】
これにより、バスに終端抵抗を接続してインピーダンスを整合させることができる。
また、セルをネットに接続する接続位置を適切にすることが望ましい場合がある。例えば、故障やエラー等の検出のために、観測対象のネットを設けることがある。このネットに、フリップフロップを接続して、エラー等を検出する。しかし、フリップフロップを接続する位置によっては、ネット上のエラーを十分に検出できない場合がある。例えば、ネットの入力側に近づけてフリップフロップを接続すると、ネットの中央付近のエラーを検出できない。
【００２８】
そこで、前記記憶手段は、所定のセルを前記１の特性を有するネットに接続する位置の制限を前記構成条件情報として記憶しており、前記生成手段は、前記所定のセルが前記１の特性を有するネットに接続する位置が、前記記憶されている前記制限を満たす前記新ネット構成情報を生成することとしてもよい。具体的には、前記特性を有するネットとは、ネットを観測する対象として指定された観測対象ネットであり、前記記憶手段は、フリップフロップを前記観測対象ネットに接続する位置の制限を前記構成条件情報として記憶しており、前記選択手段は、前記観測対象ネットを前記選択し、前記生成手段は、前記選択した前記観測対象ネットにおいて、フリップフロップを前記観測対象ネットに接続する位置が、前記記憶されている前記接続する位置の制限を満たす前記新ネット構成情報を生成することとしてもよい。
【００２９】
これにより、セルをネットに接続する接続位置を、望ましい場所とすることができる。
ところで、高トグルネットにセルが接続する場合、電圧の変動が比較的大きいため、セルの配置位置によっては、ＩＲドロップが発生することがある。
具体的に説明すると、セルは、セルにプラスの電圧を供給する供給線と、マイナスの電圧を供給する供給線とのペアを介して電力の供給を受ける。複数のセルが、同一の供給線のペアにより電力の供給を受けるとき、前記複数のセルは同一のｒｏｗにあるという。
【００３０】
ここで、消費電力の大きい複数のセルを、同じｒｏｗに配置した場合に、前記セルが高トグルネットに接続すると、電力が十分に供給されずにＩＲドロップが発生することがある。
また、電圧を供給する供給線のうち、同一の極性を有する複数の供給線を接続し、ｒｏｗをまたいで配線される供給線をストラップ配線というが、このストラップ配線においても、消費電力が大きいセルの電力を、あるストラップ配線から集中して供給すると、同様にＩＲドロップが発生することがある。
【００３１】
そこで、前記特性を有するネットとは、所定の高さのトグル率となっているネットである高トグルネットであり、前記記憶手段は、前記高トグルネットに接続する第１セルと、前記第１セルとは異なる第２セルの配置に関する制限を前記構成条件情報として記憶しており、前記選択手段は、前記高トグルネットを前記選択し、前記生成手段は、前記高トグルネットに接続するセルと、当該セルとは異なる他のセルの配置位置が、前記記憶されている前記配置に関する制限を満たす前記新ネット構成情報を生成するとしてもよい。具体的には、前記記憶手段は、前記第１セルと、前記第２セルを、ｒｏｗの間隔を所定数空けて配置する制限を前記構成条件情報として記憶しており、前記生成手段は、前記記憶されている前記制限に示される前記ｒｏｗの間隔を空けて、前記高トグルネットに接続するセルと、当該セルとは異なる他のセルとを配置するとしてもよい。また、前記記憶手段は、前記第１セルと、前記第２セルを、所定数のストラップ配線を挟んで配置する制限を前記構成条件情報として記憶しており、前記生成手段は、前記記憶されている前記制限に示される、前記所定数のストラップ配線を挟んで、前記高トグルネットに接続するセルと、当該セルとは異なる他のセルとを配置するとしてもよい。
【００３２】
これにより、ＩＲドロップの発生を防ぐことができる。
また、ある配線が、並行している他の配線から悪影響を受けることによりクロストークが発生してネットに遅延が起こる場合がある。
この場合のために、前記特性を有するネットとは、所定の高さのクロストークが発生しているクロストーク発生ネットであり、前記記憶手段は、前記クロストーク発生ネットが、他の配線と並行して配線されている長さである並行配線長の制限を前記構成条件情報として記憶しており、前記選択手段は、前記クロストーク発生ネットを前記選択し、前記生成手段は、前記クロストーク発生ネットに並行して配線されている所定の配線と、前記クロストーク発生ネットの配線との並行配線長が、前記記憶されている前記並行配線長の制限を満たす前記新ネット構成情報を生成するとしてもよい。
【００３３】
これにより、並行配線長の制限を考慮してネットを構成するので、クロストークの発生を防ぐことができる。
また、本発明は、１の特性を有するネットについて、前記特性に対応して、前記特性を有するネットの構成が満たすべき条件を示す構成条件情報を記憶している記憶手段を有する論理回路合成装置に、論理合成を行わせる論理回路合成方法であって、複数のネットの構成を示す原ネット構成情報を取得する取得ステップと、前記取得した原ネット構成情報に示される前記複数のネットから、前記１の特性を有するネットを選択する選択ステップと、前記原ネット構成情報に示される前記複数のネットのうち、前記選択したネットを対象として、前記記憶されている前記構成条件情報に示される前記構成の条件を満たす新ネット構成情報を生成する生成ステップとを含むことを特徴とする論理回路合成方法でもある。
【００３４】
また、本発明は、１の特性を有するネットについて、前記特性に対応して、前記特性を有するネットの構成が満たすべき条件を示す構成条件情報を記憶している記憶手段を有する論理回路合成装置に、論理合成を行わせる処理を制御する制御プログラムであって、複数のネットの構成を示す原ネット構成情報を取得する取得ステップと、前記取得した原ネット構成情報に示される前記複数のネットから、前記１の特性を有するネットを選択する選択ステップと、前記原ネット構成情報に示される前記複数のネットのうち、前記選択したネットを対象として、前記記憶されている前記構成条件情報に示される前記構成の条件を満たす新ネット構成情報を生成する生成ステップとを含むことを特徴とする制御プログラムでもある。
【発明を実施するための最良の形態】
【００３５】
本明細書では、１０の実施の形態について説明する。
これら１０の実施の形態は、共通する部分があるので、まずその共通部分について説明する。
＜各実施の形態の共通部分＞
１．１  概要
以下、論理回路合成装置１の、本発明の各実施形態において共通する部分について、図面を用いて説明する。
【００３６】
１．１．１  各実施形態において共通する構成の概要
各実施形態に共通する、本発明の論理回路合成装置１の概要は以下の通りである。
論理回路合成装置１は、論理ゲートやフリップフロップなどを、特定の半導体テクノロジに依存する基本回路であるセルに置き換える際に参照するライブラリを記憶している。ライブラリには、複数のセルについて、セルの入力ピンや出力ピンなど、セルの構成に関する情報が記憶されている。
【００３７】
また、セルとセルとの接続関係を示すものをネットというが、このライブラリに、セルが所定の特性を有するネットと接続する際の、ネットの構成の制限、すなわちネットの構成が満たすべき条件を示す構成条件情報を付して予め記憶しておく。この構成条件情報は、セルごとに付しておく。
なお、所定の特性を有するネットとは、詳しくは各実施形態において説明するが、例えば、回路上において物理的に分割される単位となるブロックの境界にあるネットや、エラーが発生しているネットなどである。
【００３８】
また、構成条件情報に示される条件は、ネットの特性と対応している。例えば、ブロックの境界にあるネットが長配線であると、SignalEM（シグナルエレクトロマイグレーション）エラーやSlew（スリュー）エラー等が発生するため、ブロックの境界にあるネットの配線長が所定距離以下となるように配線長の制限を定めたものを、ネットの構成が満たすべき条件とする。
【００３９】
１．１．２  各実施形態において共通する動作の概要
次に、各実施形態において共通する動作を説明する。
論理回路合成装置１は、セルやネットの配置位置を示し、論理回路を表すネットリストから、所定の特性を有するネットを選択する。選択したネットが、ライブラリ中の構成条件情報に示される条件を満たすように、セルの配置位置やセル間の配線経路を決定する。
【００４０】
このようにして、論理回路合成装置１は、論理回路の最適化を行う。論理回路合成装置１は、最適化を行った後のネットリストを出力する。
１．１．３  各実施形態において異なる点の概要
次に、各実施形態において異なる点の概要を説明する。
各実施形態においては、具体的には、選択にかかるネットの特性がそれぞれ異なる。例えば、実施の形態１では、ブロックの境界にあるネットを、所定の特性を有するネットとしているし、実施の形態２では、配線密度が所定度合以上である混雑しているネットを、所定の特性を有するネットとしている。
【００４１】
また、上述したように、構成条件情報は、ネットの特性と対応している。そのため、ライブラリに記憶されている構成条件情報に示される条件が、各実施形態において異なる。また、各実施形態においては、ライブラリ中の構成条件情報に示される条件を満たすように、論理回路の最適化を行うため、例えば、ネットの配線長を制限したり、バッファを挿入したりなど、最適化の実現方法が各実施形態において異なる。そのため、ネットリストのデータ構造が、各実施形態において異なる。
【００４２】
以上のように、各実施形態において共通する点、異なる点の概要を説明した。次に、より具体的に、各実施形態において共通する構成を説明する。
１．１．４  論理回路合成装置１の構成
ここで、各実施形態において共通する、論理回路合成装置１を構成する各機能ブロックについて、図面を用いて説明する。
【００４３】
図１は、論理回路合成装置１の機能ブロック図である。
同図に示すように、論理回路合成装置１は、取得部１０２と、ネット選択部１０３と、記憶部１０６と、合成部１０８とからなる。なお、ライブラリやネットリストは、各実施形態においてそれぞれ異なるものであるが、図面を参照して説明する便宜上、以下の説明では、実施の形態１におけるライブラリやネットリストである、ライブラリ１０７や原ネットリスト１０１や新ネットリスト１１１を用いて説明する。
【００４４】
１．１．４．１  取得部１０２
取得部１０２は、原ネットリスト１０１を、例えばハードディスクやメモリから読み出したり、ネットワークを介してデータを受信したりすることにより取得する。取得した原ネットリスト１０１を、ネット選択部１０３へ出力する。
１．１．４．２  ネット選択部１０３
ネット選択部１０３は、解析部１０４と、属性付加部１０５を含み、原ネットリスト１０１に含まれる複数のネットのうち、所定の特性を有するネットを選択して、選択したネットにネット属性を付加する。
【００４５】
解析部１０４においては、取得部１０２から原ネットリスト１０１を受け付けて、原ネットリスト１０１を解析する。具体的には、シミュレーション等により、クロストークやSignalEMエラーなどのエラーが発生しているネットを特定する特性解析ツールを実行したり、ネットリストに基づいて、ブロックの境界にあるネットやバスなどを検出したりする。解析の結果、原ネットリスト１０１に示される複数のネットから、所定の特性を有するネットを選択する。なお、特性解析ツールは、従来より用いられているものであるため、詳細な説明を省略する。
【００４６】
また、属性付加部１０５においては、解析部１０４において選択されたネットに対し、当該ネットが所定の特性を有することを示すために、所定の特性を示す名称を、ネット属性として原ネットリスト１０１に付加する。なお、選択にかかるネットにネット属性が付加されていることは、ネットリストにおいて示される。属性付加部１０５は、ネット属性を付加した原ネットリスト１０１を、合成部１０８へ出力する。
【００４７】
１．１．４．３  記憶部１０６
記憶部１０６は、ライブラリ１０７を記憶している。記憶部１０６は、例えばRAM（Random Access Memory）として実現される。
ライブラリ１０７は、セルのライブラリである。ライブラリ１０７には、ライブラリ中のセルごとに、このセルが所定の特性を有するネットと接続する際の、ネットの構成が満たすべき条件を示す構成条件情報が含まれている。
【００４８】
１．１．４．４  合成部１０８
合成部１０８は、ネットリスト生成部１０９と、ネットリスト出力部１１０を含み、構成条件情報に示される条件を満たすネットリストを生成して出力する。
ネットリスト生成部１０９においては、属性付加部１０５から出力され、ネット属性が付加された原ネットリスト１０１と、記憶部１０６で記憶されているライブラリ１０７とに基づいて、ライブラリ１０７の構成条件情報に示される条件を満たす新ネットリスト１１１を生成する。この処理の詳細については、「１．３  動作」において詳しく説明する。
【００４９】
また、ネットリスト出力部１１０は、ネットリスト生成部１０９において生成された新ネットリスト１１１を、例えば外部の装置へ出力する。
１．１．５  本発明の具体的な実現方法
なお、上述した論理回路合成装置１は、CPU（Central Processing Unit）、ROM（Read Only Memory）、RAM（Random Access Memory）等を備えるコンピュータシステムとして実現される。上述した論理回路合成装置１の各機能ブロックは、コンピュータシステムを構成するハードウェアおよびハードウェア上で実行されるコンピュータプログラムとして実現される。前記コンピュータプログラムに従ってCPUが動作することにより、論理回路合成装置１はその機能を達成する。
【００５０】
また、この他にも、上述した論理回路合成装置１の各機能ブロックを、ハードウェアにより実現することとしてもよいし、一部をソフトウェアにより実現することとしてもよい。
１．１．６  各実施形態において共通する動作
次に、各実施形態において共通する、論理回路合成装置１の動作を説明する。
【００５１】
図２は、論理回路合成装置１の動作を示すフローチャートである。
同図に示すように、論理回路合成装置１は、まず、取得部１０２によって、原ネットリスト１０１を取得する（ステップＳ２０１）。
原ネットリスト１０１を取得すると、解析部１０４によって、原ネットリスト１０１を解析する（ステップＳ２０２）。
【００５２】
解析の結果、原ネットリスト１０１に示されるネットから、所定の特性を有するネットを、解析部１０４によって選択する（ステップＳ２０３）。
選択されたネットに対し、特性に対応するネット属性を、属性付加部１０５によって付加する（ステップＳ２０４）。
論理回路合成装置１は、所定の特性を有するネットにネット属性が付加された原ネットリスト１０１と、記憶部１０６に記憶されているライブラリ１０７とに基づいて、ライブラリ１０７の構成条件情報に示される条件を満たす新ネットリスト１１１を、ネットリスト生成部１０９によって生成する（ステップＳ２０５）。なお、ステップＳ２０５については、各実施形態で動作の詳細が異なるため、それぞれの実施形態で詳しく説明する。
【００５３】
論理回路合成装置１は、ネットリスト生成部１０９によって新ネットリスト１１１が生成されると、生成された新ネットリスト１１１を、ネットリスト出力部１１０によって出力する（ステップＳ２０６）。
１．２  各実施形態の説明
次に、各実施形態において異なる点を詳細に説明する。
【００５４】
「１．１．３  各実施形態において異なる点の概要」で上述したように、各実施形態においては、ライブラリやネットリストのデータ構造が異なる。また、論理回路の最適化の実現方法、具体的にはステップＳ２０５の処理も異なる。
そこで、以下の実施形態では、ライブラリやネットリストのデータ構造の違いと、ステップＳ２０５の違いについて、具体的に説明する。
【００５５】
１．３  実施の形態１のデータ
以下、記憶部１０６が記憶しているライブラリ１０７のデータ構造と、ネットリストのデータ構造について説明する。
１．３．１  ライブラリ１０７
ライブラリは、複数種類のセルそれぞれについて、セルに関する情報を記憶している。以下、各実施形態では、ライブラリ中の１のセルに関する情報について説明する。
【００５６】
図３は、ライブラリ１０７に含まれる、１のセルについてのデータ構造を示す図である。
１．３．１．１  ライブラリのデータ構造
同図（ａ）に示すように、ライブラリ１０７の１件のレコード１０７ａには、リファレンス名３０と、入力ピン３１と、出力ピン３２とが含まれる。
【００５７】
リファレンス名３０は、マッピングの対象となるセルを参照するためのリファレンス名を示す。同図では「ＢＵＦ１」と示されているが、これはセルがバッファであることを示している。また、このライブラリが「ＢＵＦ１」のバッファに対するものであることを示している。
入力ピン３１は、セルに入力される信号を受け付けるためのピンのリファレンス名を示す。同図では、入力ピンを「Ａ」としている。
【００５８】
出力ピン３２は、セルから信号を出力するためのピンのリファレンス名を示す。同図では、出力ピンを「Ｙ」としている。
なお、リファレンス名３０、入力ピン３１、出力ピン３２のデータタイプは文字列である。
１．３．１．２  ピンのデータ構造
また、同図（ｂ）では、ピンのデータ構造も示している。ピンのデータ中のレコード１０７ｂには、ピン名３３と、構成条件情報名３４とが含まれる。
【００５９】
ピン名３３は、ピンのリファレンス名を示す。同図では、ピン名３３は「Ｙ」と示されている。これは、出力ピン３２に示される「Ｙ」と対応している。
構成条件情報名３４は、構成条件情報を適用する対象となるネット属性のリファレンス名を示す。同図では、ブロックの境界にあるネットを示す「hierarchy」がリファレンス名として示されている。これは、ピン名３３に示されるピンと、ネット属性として「hierarchy」が付加されているネットとの接続において、構成条件情報を適用することを示している。
【００６０】
なお、ピン名３３、構成条件情報名３４のデータタイプは文字列である。
１．３．１．３  構成条件情報のデータ構造
また、同図（ｃ）では、構成条件情報のデータ構造も示している。構成条件情報のデータ中のレコード１０７ｃには、構成条件情報名３５と、接続タイプ３６と、対象となるリファレンス名３７と、最大距離３８とが含まれる。
【００６１】
構成条件情報名３５は、構成条件情報を適用する対象となるネット属性のリファレンス名を示す。同図では「hierarchy」と示されており、構成条件情報名３４の「hierarchy」と対応している。
接続タイプ３６は、ピン名３３に示されるピンと、対象となるリファレンス名３７に指定されているリファレンス先とが直接に接続しているか否かを示す。リファレンス先と直接接続している場合は「connected_cell」、直接接続していない場合は「all_cell」と示す。同図では、「connected_cell」となっているので、対象となるリファレンス先と直接接続していることが示されている。
【００６２】
対象となるリファレンス名３７は、ピン名３３に示されるピンとの間でネットを構成する場合に、構成条件情報を適用する対象となるリファレンス先を指定するためのパラメータである。同図では、対象となるリファレンス名３７は、「ＢＵＦ２」と示されている。「ＢＵＦ２」は、バッファを示す。すなわち、リファレンス名３０に示される「ＢＵＦ１」のピン「Ｙ」は、リファレンス名「ＢＵＦ２」を有するバッファとの構成において構成条件情報が適用される。
【００６３】
最大距離３８は、構成条件情報を適用する対象となるリファレンス間の最大距離の制限を示す。同図では、「３０」と示されている。これは、リファレンス名「ＢＵＦ１」からリファレンス名「ＢＵＦ２」までの距離を３０以下とする制限であることを示している。なお、この距離の単位は、いかなるものを用いてもよい。例えばマイクロメートル単位としてもよい。
【００６４】
なお、構成条件情報名３５、対象となるリファレンス名３７のデータタイプは文字列である。接続タイプ３６は、「connected_cell」か「all_cell」かであり、データタイプはリストである。最大距離３８のデータタイプは数値である。
１．３．２  ネットリストのデータ構造
次に、ネットリストのデータ構造について説明する。ネットリストには、複数のネットの情報が含まれている。以下の実施形態では、ネットリスト中の１のネットについてのデータ構造を説明する。
【００６５】
図４は、ネットリストに含まれる、１のネットについてのデータ構造を示す図である。ネットリストは、ネットと、ネットのインスタンスとからなる。
１．３．２．１  ネットのデータ構造
図４（ａ）は、ネットリスト中の、１のネットのデータ構造を示す図である。
同図（ａ）に示すように、ネットの１件のレコード４００ａには、ネット名称４０と、ネット属性４１と、インスタンス名４２とが含まれる。インスタンスとは、ネットに含まれる下位の回路のことを言う。
【００６６】
ネット名称４０は、ネットのリファレンス名を示す。
ネット属性４１は、ネットに付加されているネット属性を示す。同図では、「hierarchy」と示されており、このネットに対して「hierarchy」のネット属性が付加されていることが示されている。
インスタンス名４２は、ネットの始端に接続しているインスタンスのリファレンス名を示す。
【００６７】
１．３．２．２  インスタンスのデータ構造
図４（ｂ）は、ネットリスト中の、１のネットのインスタンスのデータ構造を示す図である。
同図に示すように、インスタンスのレコード４００ｂには、インスタンス名４３と、リファレンス名４４と、構成条件情報名４５と、対象インスタンス４６と、インスタンスの位置４７と、対象インスタンスの位置４８とが含まれる。
【００６８】
インスタンス名４３は、インスタンスのリファレンス名を示す。同図に示すように、インスタンス名４３は、ネットのデータ構造のインスタンス名４２に示されるインスタンスのリファレンス名と対応している。
リファレンス名４４は、インスタンス名４３に示されるインスタンスに含まれているセルのリファレンス名を示す。同図では、「ＢＵＦ１」と示されており、「ＢＵＦ１＿ＩＮＳＴ１」のインスタンスには、「ＢＵＦ１」のセルが含まれることが示されている。
【００６９】
構成条件情報名４５は、ライブラリ１０７中の構成条件情報を適用してネットを構成している場合に、適用にかかる構成条件情報に対応するネット属性のリファレンス名を示している。また、構成条件情報名４５にデータが格納されていることは、すなわち、ネットの構成において、構成条件情報を適用してネットを構成していることを示している。
対象インスタンス４６は、インスタンス名４３に示されるインスタンスが、構成条件情報名４５に示されるネット属性に対応する構成条件情報を適用する対象としているインスタンスのリファレンス名を示す。
【００７０】
インスタンスの位置４７は、インスタンス名４３に示されるインスタンスの配置位置を示す。なお、インスタンスの配置位置は、Ｘ座標の位置とＹ座標の位置を（Ｘ，Ｙ）として表す。（０，０）となる位置は、回路基板上のいずれの位置でもよいが、例えば回路基板のいずれかの角とする。同図では、インスタンスの位置４７は（１０，２０）となっており、「ＢＵＦ１＿ＩＮＳＴ１」のリファレンス名を有するインスタンスが、Ｘ座標の位置が１０、Ｙ座標の位置が２０となる位置に配置されていることを示している。
【００７１】
対象インスタンスの位置４８は、対象インスタンス４６に示されるインスタンスの配置位置を示す。同図では、対象インスタンスの位置４８は、（３９，２０）となっており、対象インスタンス４６に示される「ＢＵＦ２＿ＩＮＳＴ１」のリファレンス名を有するインスタンスが、Ｘ座標の位置が３９、Ｙ座標の位置が２０となる位置に配置されていることを示している。
【００７２】
１．４  ネットリスト生成処理の詳細
次に、ステップＳ２０５の処理について詳しく説明する。
図５は、構成条件情報に示される条件を満たすネットリストをネットリスト生成部１０９が生成する処理の詳細を示すフローチャートである。なお、実施の形態１では、所定の特性を有するネットとは、ブロックの境界にあるネットとしている。そこで、以下の説明では、ブロックの境界にあるネットを対象として、ライブラリ１０７の構成条件情報に示される条件を満たすネットリストを生成する処理を説明する。また、ステップＳ２０４においては、属性付加部１０５は、ブロックの境界にあるネットを示す「hierarchy」をネット属性として付加するものとする。
【００７３】
図５に示すように、合成部１０８のネットリスト生成部１０９は、属性付加部１０５から出力され、ネット属性が付加された原ネットリスト１０１を取得する（ステップＳ５０１）。
また、記憶部１０６に記憶されているライブラリ１０７を読み込む（ステップＳ５０２）。
【００７４】
ネットリスト生成部１０９は、原ネットリスト１０１から、ネット属性「hierarchy」がネット属性４１に付加されているネットを抽出する（ステップＳ５０３）。
また、ネット属性「hierarchy」に対応する構成条件情報を有するセルを、ライブラリ１０７から選択する（ステップＳ５０４）。本実施形態では、図２に示すように、リファレンス名「ＢＵＦ１」のバッファに、ネット属性「hierarchy」に対応する構成条件情報が記憶されているので、ネットリスト生成部１０９は、「ＢＵＦ１」のバッファを、ライブラリ１０７から選択する。
【００７５】
ネットリスト生成部１０９は、ライブラリ１０７を参照して、ネット属性「hierarchy」に対応する構成条件情報が記憶されているセルである「ＢＵＦ１」を選択すると、「ＢＵＦ１」の接続タイプ３６、対象となるリファレンス名３７、最大距離３８を読み出す。本実施形態では、構成条件情報に示される条件には、リファレンス名「ＢＵＦ２」と直接に接続して、最大距離が３０以下と示されている。ネットリスト生成部１０９は、このような条件を読み出して、ネットの構成が、このような条件を満たすようにネットリストを生成する。
【００７６】
具体的な生成方法を説明すると、ネットリスト生成部１０９は、まず、ステップＳ５０４において選択したセル、すなわち「ＢＵＦ１」のリファレンス名を有するバッファを、ネット属性「hierarchy」のネットの始端に挿入する（ステップＳ５０５）。次に、ステップＳ５０４において選択したセルのライブラリの、対象となるリファレンス名３７に示されるリファレンス名のセル、すなわち「ＢＵＦ２」のリファレンス名を有するバッファを、ネット属性「hierarchy」のネットの終端に挿入する（ステップＳ５０６）。そして、ネット属性「hierarchy」のネットのネット長を、最大距離３８に示される距離以下、すなわち３０以下の距離となるよう調整する（ステップＳ５０７）。
【００７７】
このようにして、ネットリスト生成部１０９は、調整が行われた新ネットリスト１１１を生成する。
１．５  ネットの構成の遷移
上述のように、合成部１０８のネットリスト生成部１０９が新ネットリスト１１１を生成する処理を説明してきたが、ここで、原ネットリスト１０１に示されるネットの構成が、ネットリスト生成部１０９の処理によってどのように遷移するかを、図６に示す。
【００７８】
図６は、ネットの構成の遷移を示す図である。
図６（ａ）は、原ネットリスト１０１における一部のネットの構成を示す図である。
同図（ａ）に示すように、原ネットリスト１０１には、ブロック６０１と、ブロックの境界にあるネット６０２（６０２ａ、６０２ｂ）が、原ネットリスト１０１における一部のネットの構成として示されている。
【００７９】
論理回路合成装置１は、ステップＳ２０２、ステップＳ２０３、ステップＳ２０４の処理を行うことで、この原ネットリスト１０１に示されるネットのうち、ブロックの境界にあるネット６０２（６０２ａ、６０２ｂ）に対し、ネット属性「hierarchy」を付加する。そして、ステップＳ２０５、具体的にはステップＳ５０１〜ステップＳ５０７の処理を行って、新ネットリスト１１１を生成する。
【００８０】
図６（ｂ）は、新ネットリスト１１１における一部のネットの構成を示す図である。
同図に示すように、新ネットリスト１１１には、ブロック６０１と、ブロックの境界にあるネット６０２（６０２ａ、６０２ｂ）と、「ＢＵＦ１」のバッファ６０３（６０３ａ、６０３ｂ）と、「ＢＵＦ２」のバッファ６０４（６０４ａ、６０４ｂ）とが、新ネットリスト１１１における一部のネットの構成として示されている。
【００８１】
「ＢＵＦ１」の配置位置は、例えば、（１０，２０）であり、「ＢＵＦ２」の配置位置は、（３９，２０）である。すなわち、「ＢＵＦ１」と「ＢＵＦ２」との間の距離は、３０以下である。したがって、このネットの構成は、ライブラリ１０７の最大距離３８で示される条件を満たす。
１．６  ネットリストの更新過程
ここで、論理回路合成装置１が処理を行う過程で、ネットリストに保持されているデータがどのように更新されていくかを説明する。
【００８２】
図７は、ネットリストの更新過程を示す図である。
図７（ａ）は、ステップＳ２０１の処理により、取得部１０２が取得したときの原ネットリスト１０１である。ネットの名称がネット名称４０に示されているが、ネット属性はまだ付加されていない状態である。
図７（ｂ）は、ステップＳ２０４の処理により、属性付加部１０５がネットにネット属性「hierarchy」を付加した状態で、その後ステップＳ２０５においてネットリスト生成部１０９に入力される原ネットリスト１０１である。ネット属性４１に、ネット属性「hierarchy」が付加されている。
【００８３】
図７（ｃ）は、ネットリスト生成部１０９によって生成される新ネットリスト１１１である。インスタンスのデータ構造において、ネットの構成がインスタンスの位置４７および対象インスタンスの位置４８に示されている。
＜実施の形態２＞
２．１  概要
以下、本発明にかかる論理回路合成装置の、別の実施形態について説明する。
【００８４】
実施の形態２においては、論理回路合成装置１は、配線密度が所定値よりも大きいネットである、混雑するネットを、所定の特性を有するネットとして選択する。
ネットが混雑していると、セルの配置が困難になるなどの問題が発生する。この問題を解消するために、例えば、ピンが多く混雑しやすいセル種は、混雑しているネットと接続するときに、配線長を長くするように予め構成条件情報を定めておくと、配線混雑を防ぐことができる。具体的には、フリップフロップを、混雑しているネットから離す方向に配置することとする。
【００８５】
また、ライブラリのデータ構造が実施の形態１と一部異なるため、実施の形態２においては、記憶部１０６が記憶しているライブラリを、ライブラリ２０７として説明する。
また、ネットリストのデータ構造が実施の形態１と異なるため、実施の形態２においては、取得部１０２が取得するネットリストを、原ネットリスト２０１とし、ネットリスト生成部１０９が生成するネットリストを、新ネットリスト２１１とする。
【００８６】
その他、実施の形態１と共通する各機能ブロックについては、実施の形態１と同一の参照符号を付して説明を省略する。
＜データ＞
２．２  データ
以下、記憶部１０６が記憶しているライブラリ２０７のデータ構造と、ネットリストのデータ構造について説明する。
【００８７】
２．２．１  ライブラリ２０７
図８は、ライブラリ２０７に含まれる、１のセルについてのデータ構造を示す図である。
２．２．１．１  ライブラリのデータ構造
同図（ａ）に示すように、ライブラリ２０７の１件のレコード２０７ａには、リファレンス名８０と、入力ピン８１と、出力ピン８２とが含まれる。具体的に格納されるデータは実施の形態１と異なるが、リファレンス名８０、入力ピン８１、出力ピン８２は、それぞれ図３のリファレンス名３０、入力ピン３１、出力ピン３２と同様にリファレンス名などを示すものであるため、説明を省略する。
【００８８】
格納されるデータの違いについて具体的に説明すると、図８に示す通り、実施の形態２では、リファレンス名８０に「ＦＦ１」というデータが格納されている。これは、セルがフリップフロップであることを示している。また、入力ピン８１は「ＣＫ」、出力ピン８２は「Ｑ」と示されている。
２．２．１．２  ピンのデータ構造
また、同図（ｂ）では、ピンのデータ構造も示している。ピンのデータ中のレコード２０７ｂには、ピン名８３と、構成条件情報名８４とが含まれる。
【００８９】
ピン名８３、構成条件情報名８４は、それぞれ図３のピン名３３、構成条件情報名３４と同様であるため説明を省略する。
実施の形態２では、ピン名８３に「Ｑ」と示されている。これは、出力ピン８２に示される「Ｑ」と対応している。また、構成条件情報名８４には、「congestion」と示されている。「congestion」は、混雑しているネットを示すネット属性のリファレンス名である。
【００９０】
２．２．１．３  構成条件情報のデータ構造
また、同図（ｃ）に、構成条件情報のデータ構造を示す。構成条件情報のデータ中のレコード２０７ｃには、構成条件情報名８５、接続タイプ８６、対象となるリファレンス名８７、最小距離８８とが含まれる。実施の形態１と比べて、特に、最小距離８８を含む点で異なる。
【００９１】
構成条件情報名８５、接続タイプ８６、対象となるリファレンス名８７は、それぞれ図３の構成条件情報名３５、接続タイプ３６、対象となるリファレンス名３７と同様であるため説明を省略する。
実施の形態２では、構成条件情報名８５に「congestion」と示されている。また、接続タイプ８６に「all_cell」と示されている。また、対象となるリファレンス名８７に「ＦＦ２」と示されている。「ＦＦ２」は、フリップフロップを示す。
【００９２】
最小距離８８は、構成条件情報を適用する対象となるリファレンス間の最小距離の制限を示す。図８（ｃ）では、「２０」と示されている。これは、リファレンス名「ＦＦ１」からリファレンス名「ＦＦ２」までの距離を２０以上にする制限であることを示している。
なお、最小距離８８のデータタイプは数値である。
【００９３】
２．２．２  ネットリストのデータ構造
図９は、実施の形態２にかかるネットリストに含まれる、１のネットについてのデータ構造を示す図である。
２．２．２．１  ネットのデータ構造
図９（ａ）は、ネットリスト中の、１のネットのデータ構造を示す図である。
【００９４】
同図（ａ）に示すように、ネットの１件のレコード９００ａには、ネット名称９０と、ネット属性９１と、インスタンス名９２とが含まれる。
ネット名称９０、ネット属性９１、インスタンス名９２は、それぞれ、図４のネット名称４０、ネット属性４１、インスタンス名４２と同様であるため説明を省略する。
実施の形態２では、ネット属性９１に「congestion」と示されており、このネットに対して「congestion」のネット属性が付加されていることが示されている。
【００９５】
２．２．２．２  インスタンスのデータ構造
図９（ｂ）は、ネットリスト中の、１のネットのインスタンスのデータ構造を示す図である。
同図（ｂ）に示すように、インスタンスのレコード９００ｂには、インスタンス名９３と、リファレンス名９４と、構成条件情報名９５と、対象インスタンス９６と、インスタンスの位置９７と、対象インスタンスの位置９８とが含まれるが、それぞれ図４（ｂ）のインスタンス名４３と、リファレンス名４４と、構成条件情報名４５と、対象インスタンス４６と、インスタンスの位置４７と、対象インスタンスの位置４８と同様であるため説明を省略する。
【００９６】
２．３  ネットリスト生成処理の詳細
次に、実施の形態２における、ステップＳ２０５の処理について詳しく説明する。
なお、実施の形態２では、所定の特性を有するネットを、混雑するネットとしている。また、解析部１０４は、図２のステップＳ２０２において、論理回路の配線経路を示すレイアウト情報に基づいてネットの混雑状況を確認し、ステップＳ２０３において、配線密度が所定値より大きいネットを選択することとする。また、属性付加部１０５は、選択されたネットに「congestion」をネット属性として付加するものとする。
【００９７】
図１０は、実施の形態２におけるステップＳ２０５の処理の詳細を示す図である。
図１０に示すように、ネットリスト生成部１０９は、属性付加部１０５から出力され、ネット属性が付加された原ネットリスト２０１を取得する（ステップＳ１００１）。
また、記憶部１０６に記憶されているライブラリ２０７を読み込む。このとき、構成条件情報名８４に「congestion」と示されているセルを抽出する。本実施形態の例では、「ＦＦ１」のバッファを抽出する（ステップＳ１００２）。
【００９８】
ネットリスト生成部１０９は、原ネットリスト２０１から、ネット属性「congestion」がネット属性９１に付加されているネットを抽出する（ステップＳ１００３）。
次に、ネット属性「congestion」のネットに接続し、リファレンス名「ＦＦ１」を有するセルを抽出する（ステップＳ１００４）。
また、ネット属性「congestion」のネットに接続し、「ＦＦ１」のライブラリの対象となるリファレンス名８７に示されるセル、すなわち本実施形態の例ではリファレンス名「ＦＦ２」を有するセルを抽出する（ステップＳ１００５）。
【００９９】
「ＦＦ１」のセルと「ＦＦ２」のセルとを抽出すると、「ＦＦ１」と「ＦＦ２」との距離が、「ＦＦ１」のライブラリの最小距離８８に示される値以上、すなわち２０以上となるよう調整する（ステップＳ１００６）。
２．４  ネットの構成の遷移
図１１は、ネットの構成の遷移を示す図である。
【０１００】
図１１（ａ）は、原ネットリスト２０１における一部のネットの構成を示す図である。
同図（ａ）に示すように、原ネットリスト２０１には、フリップフロップ１１０１と、フリップフロップ１１０２と、混雑しているネット１１０３とが、原ネットリスト２０１における一部のネットの構成として示されている。混雑しているネット１１０３は、フリップフロップ１１０１とフリップフロップ１１０２とを接続している。フリップフロップ１１０１は「ＦＦ１」のリファレンス名を有し、フリップフロップ１１０２は「ＦＦ２」のリファレンス名を有するとする。
【０１０１】
論理回路合成装置１は、ステップＳ２０２、ステップＳ２０３、ステップＳ２０４の処理を行うことで、この原ネットリスト２０１に示されるネットのうち、混雑しているネット１１０３に対し、ネット属性「congestion」を付加する。そして、ステップＳ２０５、具体的にはステップＳ１００１〜ステップＳ１００６の処理を行って、新ネットリスト２１１を生成する。
【０１０２】
図１１（ｂ）は、新ネットリスト２１１における一部のネットの構成を示す図である。
同図に示すように、新ネットリスト２１１には、フリップフロップ１１０１と、フリップフロップ１１０２と、混雑しているネット１１０３とが、新ネットリスト２１１における一部のネットの構成として示されている。
「ＦＦ１」の配置位置は、例えば、（１０，２０）であり、「ＦＦ２」の配置位置は、（３１，２０）である。すなわち、「ＦＦ１」と「ＦＦ２」との間の距離は、２０以上である。したがって、このネットの構成は、ライブラリ２０７の最小距離８８で示される条件を満たす。
【０１０３】
２．５  ネットリストの更新過程
ここで、実施の形態２における論理回路合成装置１が処理を行う過程で、ネットリストに保持されているデータがどのように更新されていくかを説明する。
図１２は、ネットリストの更新過程を示す図である。
図１２（ａ）は、ステップＳ２０１の処理により、取得部１０２が取得したときの原ネットリスト２０１である。ネット属性はまだ付加されていない状態である。また、インスタンスの位置がインスタンスの位置８７および対象インスタンスの位置８８において示されている。
【０１０４】
図１２（ｂ）は、ステップＳ２０４の処理により、属性付加部１０５がネットにネット属性「congestion」を付加した状態で、その後ステップＳ２０５においてネットリスト生成部１０９に入力される原ネットリスト２０１である。ネット属性９１に、ネット属性「congestion」が付加されている。
図１２（ｃ）は、ネットリスト生成部１０９によって生成される新ネットリスト２１１である。インスタンスのデータ構造において、構成条件情報を適用してフリップフロップ間の距離を２０以上とした後のネットの構成が示されている。
【０１０５】
２．６  実施の形態２の変形例
ここで、実施の形態２の変形例について説明する。上述の例で示した最小距離の制限に加えて、セルを離す方向を構成条件情報の条件に含めてもよい。例えば、あるセルは垂直方向に配置する制限を与え、他のセルには水平方向に配置する制限を各セルの構成条件情報に加える。このような制限を加えて、水平方向の配線リソースが少ないセルの配置方向を垂直方向に限定することなどにより、配線混雑を防ぐことができる。
【０１０６】
なお、以下に示す実施の形態２の変形例の説明では、記憶部１０６が記憶しているライブラリを、ライブラリ２０７−１とする。また、取得部１０２が取得するネットリストを、原ネットリスト２０１−１とし、ネットリスト生成部１０９が生成するネットリストを、新ネットリスト２１１−１とする。
以下、具体的に説明する。
【０１０７】
２．７  実施の形態２の変形例のデータ
変形例における、記憶部１０６が記憶しているライブラリ２０７−１のデータ構造と、ネットリストのデータ構造について説明する。
２．７．１  ライブラリ２０７−１
図１３は、ライブラリ２０７−１に含まれる、１のセルについてのデータ構造を示す図である。
【０１０８】
２．７．１．１  ライブラリのデータ構造
同図（ａ）に示すように、ライブラリ２０７−１の１件のレコード２０７−１ａには、リファレンス名１３０と、入力ピン１３１と、出力ピン１３２とが含まれる。リファレンス名１３０、入力ピン１３１、出力ピン１３２は、それぞれ図８のリファレンス名８０、入力ピン８１、出力ピン８２と同様にリファレンス名などを示すものであるため、説明を省略する。
【０１０９】
２．７．１．２  ピンのデータ構造
また、同図（ｂ）では、ピンのデータ構造も示している。ピンのデータ中のレコード２０７−１ｂには、ピン名１３３と、構成条件情報名１３４とが含まれる。
ピン名１３３、構成条件情報名１３４は、それぞれ図８のピン名８３、構成条件情報名８４と同様であるため説明を省略する。
【０１１０】
２．７．１．３  構成条件情報のデータ構造
また、同図（ｃ）に、構成条件情報のデータ構造を示す。構成条件情報のデータ中のレコード２０７−１ｃには、構成条件情報名１３５、接続タイプ１３６、対象となるリファレンス名１３７、最小距離１３８、方向１３９とが含まれる。上述の実施の形態２と変形例とでは、方向１３９が変形例においては含まれる点で異なる。
【０１１１】
構成条件情報名１３５、接続タイプ１３６、対象となるリファレンス名１３７、最小距離１３８は、それぞれ図８の構成条件情報名８５、接続タイプ８６、対象となるリファレンス名８７、最小距離８８と同様であるため説明を省略する。
図１３に示すように、対象となるリファレンス名１３７、最小距離１３８においては、複数のデータを格納している。なお、変形例の場合に限らず、各データ項目において、複数のデータを格納することとしてよい。同図の例では、「ＦＦ２」と「ＦＦ３」の２つについてのデータを格納している。「ＦＦ２」は距離を２０以上離し、「ＦＦ３」は距離を４０以上離すことが示されている。なお、「ＦＦ３」はフリップフロップを示す。
【０１１２】
方向１３９は、対象となるリファレンス名１３７に示されるセルの配置方向を示す。方向１３９に「vertical」と示されている場合は、リファレンス名１３０のセルとの関係で、対象となるリファレンス名１３７に示されるセルを垂直方向に配置することを示す。また、方向１３９に「horizon」と示されている場合は、リファレンス名１３０のセルとの関係で、対象となるリファレンス名１３７に示されるセルを水平方向に配置することを示す。
【０１１３】
なお、方向１３９のデータタイプは、「vertical」と「horizon」からなるリストである。
２．７．２  ネットリストのデータ構造
図１４は、実施の形態２の変形例にかかるネットリストに含まれる、１のネットについてのデータ構造を示す図である。
【０１１４】
２．７．２．１  ネットのデータ構造
図１４（ａ）は、ネットリスト中の、１のネットのデータ構造を示す図である。
同図（ａ）に示すように、ネットの１件のレコード１４００ａには、ネット名称１４０と、ネット属性１４１と、インスタンス名１４２とが含まれる。
ネット名称１４０、ネット属性１４１、インスタンス名１４２は、それぞれ、図９のネット名称９０、ネット属性９１、インスタンス名９２と同様であるため説明を省略する。
【０１１５】
２．７．２．２  インスタンスのデータ構造
図１４（ｂ）は、ネットリスト中の、１のネットのインスタンスのデータ構造を示す図である。
同図（ｂ）に示すように、インスタンスのレコード１４００ｂには、インスタンス名１４３と、リファレンス名１４４と、構成条件情報名１４５と、対象インスタンス１４６と、インスタンスの位置１４７と、対象インスタンスの位置１４８とが含まれるが、それぞれ図９（ｂ）のインスタンス名９３と、リファレンス名９４と、構成条件情報名９５と、対象インスタンス９６と、インスタンスの位置９７と、対象インスタンスの位置９８と同様であるため説明を省略する。
【０１１６】
変形例においては、対象となるインスタンス１４７、対象インスタンスの位置１４８において、複数のインスタンスそれぞれについてデータを格納することとしている。
２．８  変形例におけるネットリスト生成処理の詳細
次に、実施の形態２の変形例における、ステップＳ２０５の処理について詳しく説明する。
【０１１７】
変形例においても、解析部１０４は、図２のステップＳ２０２において、論理回路の配線経路を示すレイアウト情報に基づいてネットの混雑状況を確認し、ステップＳ２０３において、配線密度が所定値より大きいネットを選択することとする。また、属性付加部１０５は、選択されたネットに「congestion」をネット属性として付加するものとする。
なお、上述の実施の形態２とでは、セルの配置方向を考慮して論理回路合成装置１が合成を行う点で異なる。
【０１１８】
図１５は、実施の形態２の変形例におけるステップＳ２０５の処理の詳細を示す図である。
なお、ステップＳ１５０１、ステップＳ１５０２、ステップＳ１５０３、ステップＳ１５０４、ステップＳ１５０５の処理は、それぞれ図１０のステップＳ１００１、ステップＳ１００２、ステップＳ１００３、ステップＳ１００４、ステップＳ１００５と同様であるため説明を省略する。なお、ステップＳ１５０５においては、本実施形態の例では、「ＦＦ２」と「ＦＦ３」が抽出される。
【０１１９】
ステップＳ１５０５において、リファレンス名「ＦＦ２」を有するセルを抽出すると、ネット属性「congestion」のネットに接続し、リファレンス名「ＦＦ３」を有するセルを抽出する（ステップＳ１５０６）。
「ＦＦ１」のセルと「ＦＦ２」のセルと「ＦＦ３」のセルとを抽出すると、「ＦＦ１」と「ＦＦ２」との垂直方向の距離が、「ＦＦ１」のライブラリの方向１３９で「vertical」に対応する最小距離１３８に示される値以上、すなわち２０以上となるよう調整する（ステップＳ１５０７）。
【０１２０】
また、「ＦＦ１」と「ＦＦ３」との水平方向の距離が、「ＦＦ１」のライブラリの方向１３９で「horizon」に対応する最小距離１３８に示される値以上、すなわち４０以上となるよう調整する（ステップＳ１５０８）。
２．９  ネットの構成の遷移
図１６は、ネットの構成の遷移を示す図である。
【０１２１】
図１６（ａ）は、原ネットリスト２０１−１における一部のネットの構成を示す図である。
同図（ａ）に示すように、原ネットリスト２０１−１には、フリップフロップ１６０１と、フリップフロップ１６０２と、フリップフロップ１６０３とが水平方向に配置され、また、混雑しているネット１６０４とが、原ネットリスト２０１−１における一部のネットの構成として示されている。混雑しているネット１６０４は、フリップフロップ１６０１とフリップフロップ１６０２とフリップフロップ１６０３とを接続している。フリップフロップ１６０１は「ＦＦ１」のリファレンス名を有し、配置位置が（１０，１０）とする。フリップフロップ１６０２は「ＦＦ２」のリファレンス名を有し、配置位置が（２０，１０）とする。フリップフロップ１６０３は「ＦＦ３」のリファレンス名を有し、配置位置が（３０，１０）とする。
【０１２２】
論理回路合成装置１は、ステップＳ２０２、ステップＳ２０３、ステップＳ２０４の処理を行うことで、この原ネットリスト２０１−１に示されるネットのうち、混雑しているネット１６０４に対し、ネット属性「congestion」を付加する。そして、ステップＳ２０５、具体的にはステップＳ１５０１〜ステップＳ１５０８の処理を行って、新ネットリスト２１１を生成する。
【０１２３】
図１６（ｂ）は、新ネットリスト２１１−１における一部のネットの構成を示す図である。
同図に示すように、新ネットリスト２１１−１には、フリップフロップ１６０１と、フリップフロップ１６０２と、フリップフロップ１６０３と、混雑しているネット１６０４とが、新ネットリスト２１１における一部のネットの構成として示されている。
【０１２４】
ここで、「ＦＦ１」の配置位置は、（１０，１０）であり、「ＦＦ２」の配置位置は、（１０，６０）である。すなわち、「ＦＦ１」と「ＦＦ２」との間の距離は、２０以上であり、かつ、垂直方向に離されて配置されている。また、「ＦＦ３」の配置位置は、（６０，１０）である。すなわち、「ＦＦ１」と「ＦＦ３」との間の距離は４０以上であり、かつ、水平方向に離されて配置されている。したがって、このネットの構成は、ライブラリ２０７−１の最小距離１３８および方向１３９で示される条件を満たす。
【０１２５】
２．１０  ネットリストの更新過程
ここで、実施の形態２の変形例における論理回路合成装置１が処理を行う過程で、ネットリストに保持されているデータがどのように更新されていくかを説明する。
図１７は、ネットリストの更新過程を示す図である。
図１７（ａ）は、ステップＳ２０１の処理により、取得部１０２が取得したときの原ネットリスト２０１である。
【０１２６】
図１７（ｂ）は、ステップＳ２０４の処理により、属性付加部１０５がネットにネット属性「congestion」を付加した状態で、その後ステップＳ２０５においてネットリスト生成部１０９に入力される原ネットリスト２０１である。
図１７（ｃ）は、ネットリスト生成部１０９によって生成される新ネットリスト２１１である。インスタンスのデータ構造において、構成条件情報を適用してフリップフロップ間の距離および配置方向を調整した後のネットの構成が示されている。
＜実施の形態３＞
３．１  概要
以下、本発明にかかる論理回路合成装置の、別の実施形態について説明する。
【０１２７】
実施の形態３においては、論理回路合成装置１は、所定の高さのグリッチが発生しているグリッチ発生ネットを、所定の特性を有するネットとして選択する。
グリッチエラーが発生していると、フリップフロップが異常動作を起こすおそれがある。これを解消するためには、バッファを適切な数だけ挿入するとよい。バッファが所定数だけ挿入されていると、エラーが減衰して、フリップフロップの異常動作を防ぐことができる。あるセルから、フリップフロップまでの間に挿入すべきバッファの数を「段数」と言うこととする。例えば、あるセルからフリップフロップまでの間に２つ以上のバッファを挿入すべきであるとき、挿入すべきバッファの段数は２段以上である。
【０１２８】
また、ライブラリのデータ構造が実施の形態１と一部異なるため、実施の形態３においては、ライブラリ３０７として説明する。
また、ネットリストのデータ構造が実施の形態１と異なるため、実施の形態３においては、ネットリストをそれぞれ原ネットリスト３０１、新ネットリスト３１１とする。
その他、実施の形態１と共通する各機能ブロックについては、実施の形態１と同一の参照符号を付して説明を省略する。
【０１２９】
３．２  データ
以下、記憶部１０６が記憶しているライブラリ３０７のデータ構造と、ネットリストのデータ構造について説明する。
３．２．１  ライブラリ３０７
図１８は、ライブラリ３０７に含まれる、１のセルについてのデータ構造を示す図である。
【０１３０】
３．２．１．１  ライブラリのデータ構造
同図（ａ）に示すように、ライブラリ３０７の１件のレコード３０７ａには、リファレンス名１８０と、入力ピン１８１と、出力ピン１８２とが含まれる。リファレンス名１８０、入力ピン１８１、出力ピン１８２は、それぞれ図３のリファレンス名３０、入力ピン３１、出力ピン３２と同様にリファレンス名などを示すものであるため、説明を省略する。
【０１３１】
３．２．１．２  ピンのデータ構造
また、同図（ｂ）では、ピンのデータ構造も示している。ピンのデータ中のレコード３０７ｂには、ピン名１８３と、構成条件情報名１８４とが含まれる。
ピン名１８３、構成条件情報名１８４は、それぞれ図３のピン名３３、構成条件情報名３４と同様であるため説明を省略する。
【０１３２】
実施の形態３では、構成条件情報名１８４には、「glitch」と示されている。「glitch」は、グリッチ発生ネットを示すネット属性のリファレンス名である。
３．２．１．３  構成条件情報のデータ構造
また、同図（ｃ）に、構成条件情報のデータ構造を示す。構成条件情報のデータ中のレコード３０７ｃには、構成条件情報名１８５、接続タイプ１８６、対象となるリファレンス名１８７、最小段数１８８とが含まれる。実施の形態１と比べて、特に、最小段数１８８を含む点で異なる。
【０１３３】
構成条件情報名１８５、接続タイプ１８６、対象となるリファレンス名１８７は、それぞれ図３の構成条件情報名３５、接続タイプ３６、対象となるリファレンス名３７と同様であるため説明を省略する。
実施の形態３では、構成条件情報名１８５に「glitch」と示されている。また、対象となるリファレンス名１８７に「ＦＦ１」「ＦＦ２」「ＦＦ３」と示されている。これは、リファレンス名１８０に示される「ＢＵＦ１」から、「ＦＦ１」、「ＦＦ２」、「ＦＦ３」を対象として、これら「ＦＦ１」等との間にバッファを挿入すべきであることを示している。
【０１３４】
最小段数１８８は、構成条件情報を適用する対象となるリファレンス間に挿入すべきバッファの最小の段数の制限を示す。図１８（ｃ）では、「２」と示されている。これは、リファレンス名１８０に示される「ＢＵＦ１」から、対象となるリファレンス名１８７に示される「ＦＦ１」等までの間に、２段以上のバッファを挿入すべきであることを示している。
【０１３５】
なお、最小段数１８８のデータタイプは数値である。
３．２．２  ネットリストのデータ構造
図１９は、実施の形態３にかかるネットリストに含まれる、１のネットのデータ構造を示す図である。
３．２．２．１  ネットのデータ構造
図１９（ａ）は、ネットリスト中の、１のネットのデータ構造を示す図である。
【０１３６】
同図（ａ）に示すように、ネットの１件のレコード１９００ａには、ネット名称１９０と、ネット属性１９１と、インスタンス名１９２とが含まれる。
ネット名称１９０、ネット属性１９１、インスタンス名１９２は、それぞれ、図４のネット名称４０、ネット属性４１、インスタンス名４２と同様であるため説明を省略する。
実施の形態３では、ネット属性１９１に「glitch」と示されており、このネットに対して「glitch」のネット属性が付加されていることが示されている。
【０１３７】
３．２．２．２  インスタンスのデータ構造
図１９（ｂ）は、ネットリスト中の、１のネットのインスタンスのデータ構造を示す図である。
同図（ｂ）に示すように、インスタンスのレコード１９００ｂには、インスタンス名１９３と、リファレンス名１９４と、構成条件情報名１９５と、対象インスタンス１９６と、段数情報１９７が含まれる。実施の形態１と比べて、特に、段数情報１９７を含む点で異なる。インスタンス名１９３と、リファレンス名１９４と、構成条件情報名１９５と、対象インスタンス１９６とは、それぞれ図４（ｂ）のインスタンス名４３と、リファレンス名４４と、構成条件情報名４５と、対象インスタンス４６と同様であるため説明を省略する。
【０１３８】
段数情報１９７は、インスタンス名１９３から対象インスタンス１９６までの間に挿入されているバッファの段数を示す。同図では「２」と示されており、２つのバッファが挿入されていることが示されている。
３．３  ネットリスト生成処理の詳細
次に、実施の形態３における、ステップＳ２０５の処理について詳しく説明する。
【０１３９】
なお、実施の形態３では、所定の特性を有するネットを、グリッチ発生ネットとしている。また、解析部１０４は、図２のステップＳ２０２において、選択対象となるグリッチ発生ネットの、グリッチの高さを指定して解析を行い、解析の結果抽出されたネットをステップＳ２０３において選択することとする。また、属性付加部１０５は、ステップＳ２０４において、選択されたネットに「glitch」をネット属性として付加するものとする。
【０１４０】
図２０は、実施の形態３におけるステップＳ２０５の処理の詳細を示す図である。
図２０に示すように、ネットリスト生成部１０９は、属性付加部１０５から出力され、ネット属性が付加された原ネットリスト３０１を取得する（ステップＳ２００１）。
また、記憶部１０６に記憶されているライブラリ３０７を読み込む（ステップＳ２００２）。
【０１４１】
ネットリスト生成部１０９は、原ネットリスト３０１から、ネット属性「glitch」がネット属性１９１に付加されているネットを抽出する（ステップＳ２００３）。
次に、読み込んだライブラリ３０７を参照して、構成条件情報名１８４に「glitch」と示されているセルを抽出する。本実施形態の例では「ＢＵＦ１」のバッファを抽出する。そして、ネット属性「glitch」のネットに接続し、リファレンス名「ＢＵＦ１」を有するセルを抽出する（ステップＳ２００４）。
【０１４２】
また、「ＦＦ１」「ＦＦ２」「ＦＦ３」のリファレンス名を有するセルを抽出する（ステップＳ２００５）。
ネットリスト生成部１０９は、「ＢＵＦ１」から「ＦＦ１」「ＦＦ２」「ＦＦ３」のそれぞれのセルまでに配置されているバッファの段数が、「ＢＵＦ１」のライブラリの最小段数１８８に示される値以上の段数であるか判断する。すなわち、バッファの段数が２段以上であるか判断する（ステップＳ２００６）。
【０１４３】
ステップＳ２００６において、バッファの段数が「ＦＦ１」「ＦＦ２」「ＦＦ３」のそれぞれに対して、「ＢＵＦ１」のライブラリの最小段数１８８に示される値以上の段数であれば処理を終了する。すなわち、本実施形態の例では段数が２段以上であれば、処理を終了する（ステップＳ２００６：ＹＥＳ）。
ステップＳ２００６において、「ＢＵＦ１」のライブラリの最小段数１８８に示される値以上の段数でなければ、すなわち、本実施形態の例ではバッファの段数が２段以上でなければ（ステップＳ２００６：ＮＯ）、「ＦＦ１」「ＦＦ２」「ＦＦ３」のそれぞれに対して段数が「ＢＵＦ１」のライブラリの最小段数３８８に示される値以上となるようにバッファを祖入する。本実施形態の例では、段数が２段以上となるようにバッファを挿入する（ステップＳ２００７）。
【０１４４】
３．４  ネットの構成の遷移
図２１は、ネットの構成の遷移を示す図である。
図２１（ａ）は、原ネットリスト３０１における一部のネットの構成を示す図である。
同図（ａ）に示すように、原ネットリスト３０１には、バッファ２１０１と、フリップフロップ２１０２と、バッファ２１０３と、グリッチ発生ネット２１０４とが、原ネットリスト３０１における一部のネットの構成として示されている。バッファ２１０１は「ＢＵＦ１」のリファレンス名を有し、フリップフロップ２１０２は「ＦＦ１」のリファレンス名を有するとする。
【０１４５】
論理回路合成装置１は、ステップＳ２０２、ステップＳ２０３、ステップＳ２０４の処理を行うことで、この原ネットリスト３０１に示されるネットのうち、グリッチ発生ネット２１０４に対し、ネット属性「glitch」を付加する。そして、ステップＳ２０５、具体的にはステップＳ２００１〜ステップＳ２００７の処理を行って、新ネットリスト３１１を生成する。
【０１４６】
図２１（ｂ）は、新ネットリスト３１１における一部のネットの構成を示す図である。
同図に示すように、新ネットリスト３１１には、バッファ２１０１と、フリップフロップ２１０２と、バッファ２１０３と、グリッチ発生ネット２１０４と、バッファ２１０５とが、新ネットリスト３１１における一部のネットの構成として示されている。「ＢＵＦ１」のリファレンス名を有するバッファ２１０１から「ＦＦ１」のリファレンス名を有するフリップフロップ２１０２までの段数が、２段となっている。
【０１４７】
したがって、このネットの構成は、ライブラリ３０７の最小段数１８８で示される条件を満たす。
３．５  ネットリストの更新過程
ここで、実施の形態３における論理回路合成装置１が処理を行う過程で、ネットリストに保持されているデータがどのように更新されていくかを説明する。
【０１４８】
図２２は、ネットリストの更新過程を示す図である。
図２２（ａ）は、ステップＳ２０１の処理により、取得部１０２が取得したときの原ネットリスト３０１である。ネット属性はまだ付加されていない状態である。また、段数情報１９７に、バッファの段数が「１」と示されている。
図２２（ｂ）は、ステップＳ２０４の処理により、属性付加部１０５がネットにネット属性「glitch」を付加した状態で、その後ステップＳ２０５においてネットリスト生成部１０９に入力される原ネットリスト３０１である。ネット属性１９１に、ネット属性「glitch」が付加されている。
【０１４９】
図２２（ｃ）は、ネットリスト生成部１０９によって生成される新ネットリスト３１１である。インスタンスのデータ構造において、構成条件情報を適用して、「ＢＵＦ１」のバッファと「ＦＦ１」のフリップフロップとの間に配置されるバッファの段数を２段とした後のネットの構成が示されている。
＜実施の形態４＞
４．１  概要
以下、本発明にかかる論理回路合成装置の、別の実施形態について説明する。
【０１５０】
実施の形態４においては、論理回路合成装置１は、高い周波数が伝播している高周波ネットを、所定の特性を有するネットとして選択する。
遅延値が大きいセルなどに高い周波数のパルスが入ると、パルスが消失するパルスリジェクトが発生することがある。この場合は、パルスリジェクトが発生しているセルを、高い周波数のネットとの接続が可能なセルに置き換えることでパルスリジェクトを防止することができる。実施の形態４においては、最大３００ＭＨｚまでの周波数のネットと接続できるセルと、最大６００ＭＨｚまでの周波数のネットと接続できるセルとを、ライブラリに記憶していることとする。
【０１５１】
また、ライブラリのデータ構造が実施の形態１と一部異なるため、実施の形態４においては、ライブラリ４０７として説明する。
また、ネットリストのデータ構造が実施の形態１と異なるため、実施の形態４においては、ネットリストをそれぞれ原ネットリスト４０１、新ネットリスト４１１とする。
その他、実施の形態１と共通する各機能ブロックについては、実施の形態１と同一の参照符号を付して説明を省略する。
【０１５２】
４．２  データ
以下、記憶部１０６が記憶しているライブラリ４０７のデータ構造と、ネットリストのデータ構造について説明する。
４．２．１  ライブラリ４０７
図２３は、ライブラリ４０７に含まれる、１のセルについてのデータ構造を示す図である。
【０１５３】
４．２．１．１  ライブラリのデータ構造
同図（ａ）に示すように、ライブラリ４０７の１件のレコード４０７ａには、リファレンス名２３０と、入力ピン２３１と、出力ピン２３２とが含まれる。リファレンス名２３０、入力ピン２３１、出力ピン２３２は、それぞれ図３のリファレンス名３０、入力ピン３１、出力ピン３２と同様にリファレンス名などを示すものであるため、説明を省略する。
【０１５４】
４．２．１．２  ピンのデータ構造
また、同図（ｂ）では、ピンのデータ構造も示している。ピンのデータ中のレコード４０７ｂには、ピン名２３３と、構成条件情報名２３４とが含まれる。
ピン名２３３、構成条件情報名２３４は、それぞれ図３のピン名３３、構成条件情報名３４と同様であるため説明を省略する。
【０１５５】
実施の形態４では、構成条件情報名２３４には、「high_frequency」と示されている。「high_frequency」は、高周波ネットを示すネット属性のリファレンス名である。
４．２．１．３  構成条件情報のデータ構造
また、同図（ｃ）に、構成条件情報のデータ構造を示す。構成条件情報のデータ中のレコード４０７ｃには、構成条件情報名２３５、接続タイプ２３６、最大周波数２３７とが含まれる。実施の形態１と比べて、特に、最大周波数２３７を含む点で異なる。
【０１５６】
構成条件情報名２３５、接続タイプ２３６は、それぞれ図３の構成条件情報名３５、接続タイプ３６と同様であるため説明を省略する。実施の形態４では、構成条件情報名２３５に「high_frequency」と示されている。
最大周波数２３７は、リファレンス名２３０に示されるセルが接続を許可するネットの最大周波数（ＭＨｚ単位）を示す。図２３（ｃ）では、「３００」と示されている。これは、リファレンス名２３０に示される「ＢＵＦ１」が、最大３００ＭＨｚまでの周波数のネットと接続を許可することを示している。また、図示していないが、ライブラリ４０７には、リファレンス名「ＢＵＦ２」についてのライブラリも記憶されており、「ＢＵＦ２」の最大周波数２３７は「６００」と示されていることとする。すなわち、「ＢＵＦ２」のバッファは、最大６００ＭＨｚまでの周波数のネットと接続が許可されていることとする。
【０１５７】
なお、最大周波数２３７のデータタイプは数値である。
４．２．２  ネットリストのデータ構造
図２４は、実施の形態４にかかるネットリストに含まれる、１のネットのデータ構造を示す図である。
４．２．２．１  ネットのデータ構造
図２４（ａ）は、ネットリスト中の、１のネットのデータ構造を示す図である。
【０１５８】
同図（ａ）に示すように、ネットの１件のレコード２４００ａには、ネット名称２４０と、ネット属性２４１と、インスタンス名２４２とが含まれる。
ネット名称２４０、ネット属性２４１、インスタンス名２４２は、それぞれ、図４のネット名称４０、ネット属性４１、インスタンス名４２と同様であるため説明を省略する。
実施の形態４では、ネット属性２４１に「high_frequency」と示されており、このネットに対して「high_frequency」のネット属性が付加されていることが示されている。
【０１５９】
４．２．２．２  インスタンスのデータ構造
図２４（ｂ）は、ネットリスト中の、１のネットのインスタンスのデータ構造を示す図である。
同図（ｂ）に示すように、インスタンスのレコード２４００ｂには、インスタンス名２４３と、リファレンス名２４４と、構成条件情報名２４５と、最大周波数情報２４６とが含まれる。実施の形態１と比べて、特に、最大周波数情報２４６を含む点で異なる。インスタンス名２４３と、リファレンス名２４４と、構成条件情報名２４５とは、それぞれ図４（ｂ）のインスタンス名４３と、リファレンス名４４と、構成条件情報名４５と同様であるため説明を省略する。
【０１６０】
最大周波数情報２４６は、インスタンス名２４３に示されるインスタンスが接続を許可するネットの最大周波数の制限を示す。同図では「６００」と示されており、「ＢＵＦ２＿ＩＮＳＴ６」のインスタンスが、最大６００ＭＨｚの周波数のネットと接続が許可されていることを示す。
４．３  ネットリスト生成処理の詳細
次に、実施の形態４における、ステップＳ２０５の処理について詳しく説明する。
【０１６１】
なお、実施の形態４では、所定の特性を有するネットを、高周波ネットとしている。また、解析部１０４は、図２のステップＳ２０２において、選択対象となる高周波ネットの、周波数の下限を指定して解析を行い、解析の結果、指定された値以上の周波数を持つネットを抽出する。抽出されたネットをステップＳ２０３において選択することとする。また、属性付加部１０５は、ステップＳ２０４において、選択されたネットに「high_frequency」をネット属性として付加するものとする。また、ネット選択部１０３は、解析部１０４の解析において指定された周波数の値を、ネットリスト生成部１０９に通知することとする。なお、指定にかかる周波数の値を保持しておき、ネットリスト生成部１０９が保持されている値を読み出すこととしてもよい。
【０１６２】
図２５は、実施の形態４におけるステップＳ２０５の処理の詳細を示す図である。
図２５に示すように、ネットリスト生成部１０９は、属性付加部１０５から出力され、ネット属性が付加された原ネットリスト４０１を取得する（ステップＳ２５０１）。
また、記憶部１０６に記憶されているライブラリ４０７を読み込む（ステップＳ２５０２）。
【０１６３】
ネットリスト生成部１０９は、原ネットリスト４０１から、ネット属性「high_frequency」がネット属性２４１に付加されているネットを抽出する（ステップＳ２５０３）。
次に、ネット属性「high_frequency」のネットに接続し、リファレンス名「ＢＵＦ１」を有するセルと、「ＢＵＦ２」を有するセルとを抽出する（ステップＳ２５０４）。
ネットリスト生成部１０９は、解析部１０４の解析において指定された周波数の値が３００ＭＨｚ以下か否かを判断する（ステップＳ２５０５）。
【０１６４】
ステップＳ２５０５において、３００ＭＨｚ以下と判断されれば（ステップＳ２５０５：ＹＥＳ）、処理を終了する。
ステップＳ２５０５において、３００ＭＨｚ以下でないと判断されれば（ステップＳ２５０５：ＮＯ）、解析部１０４の解析において指定された周波数の値が６００ＭＨｚ以下か否かを判断する（ステップＳ２５０６）。
【０１６５】
ステップＳ２５０６において、６００ＭＨｚ以下と判断されれば（ステップＳ２５０６：ＹＥＳ）、ネットリスト生成部１０９は、「ＢＵＦ１」を「ＢＵＦ２」と置き換える（Ｓ２５０７）。
ステップＳ２５０６において、６００ＭＨｚ以下でないと判断されれば（ステップＳ２５０６：ＮＯ）、論理回路の構成を変更して合成する（ステップＳ２５０８）。
【０１６６】
なお、上述の実施形態では、「ＢＵＦ１」と「ＢＵＦ２」のバッファが接続を許可するネットの最大周波数が、それぞれ３００ＭＨｚと６００ＭＨｚであったため、解析部１０４の解析において指定された値が３００ＭＨｚか６００ＭＨｚかの場合の処理について説明したが、解析部１０４の解析において指定する周波数の大きさはこれらの値に限らない。セルが接続可能な周波数に応じて柔軟に定めることが望ましい。
【０１６７】
４．４  ネットの構成の遷移
図２６は、ネットの構成の遷移を示す図である。
図２６（ａ）は、原ネットリスト４０１における一部のネットの構成を示す図である。
同図（ａ）に示すように、原ネットリスト４０１には、バッファ２６０１と、高周波ネット２６０２とが、原ネットリスト４０１における一部のネットの構成として示されている。バッファ２６０１は「ＢＵＦ１」のリファレンス名を有するとする。また、高周波ネット２６０２には、４００ＭＨｚの周波数が伝播しているとする。また、解析部の指定にかかる周波数を４００ＭＨｚとする。
【０１６８】
論理回路合成装置１は、ステップＳ２０２、ステップＳ２０３、ステップＳ２０４の処理を行うことで、この原ネットリスト４０１に示されるネットのうち、高周波ネット２６０２に対し、ネット属性「high_frequency」を付加する。そして、ステップＳ２０５、具体的にはステップＳ２５０１〜ステップＳ２５０８の処理を行って、新ネットリスト４１１を生成する。
【０１６９】
図２６（ｂ）は、新ネットリスト４１１における一部のネットの構成を示す図である。
同図に示すように、新ネットリスト４１１には、バッファ２６０３と、高周波ネット２６０２とが、新ネットリスト３１１における一部のネットの構成として示されている。ここで、バッファ２６０３は、最大６００ＭＨｚまでの周波数のネットと接続することができる「ＢＵＦ２」のリファレンス名を有する。
【０１７０】
したがって、このネットの構成は、ライブラリ４０７の最大周波数２３７で示される条件を満たす。
４．５  ネットリストの更新過程
ここで、実施の形態４における論理回路合成装置１が処理を行う過程で、ネットリストに保持されているデータがどのように更新されていくかを説明する。
【０１７１】
図２７は、ネットリストの更新過程を示す図である。
図２７（ａ）は、ステップＳ２０１の処理により、取得部１０２が取得したときの原ネットリスト４０１である。ネット属性はまだ付加されていない状態である。また、最大周波数情報２４６に、「３００」と示されている。
図２７（ｂ）は、ステップＳ２０４の処理により、属性付加部１０５がネットにネット属性「high_frequency」を付加した状態で、その後ステップＳ２０５においてネットリスト生成部１０９に入力される原ネットリスト４０１である。ネット属性２４１に、ネット属性「high_frequency」が付加されている。
【０１７２】
図２７（ｃ）は、ネットリスト生成部１０９によって生成される新ネットリスト４１１である。インスタンスのデータ構造において、構成条件情報を適用して、「ＢＵＦ１」のバッファが「ＢＵＦ２」のバッファに置き換えられた後のネットの構成が示されている。
＜実施の形態５＞
５．１  概要
以下、本発明にかかる論理回路合成装置の、別の実施形態について説明する。
【０１７３】
実施の形態５においては、論理回路合成装置１は、バス信号が流れるバス信号ネットを、所定の特性を有するネットとして選択する。
バス信号が流れるネットでは、反射波が発生して信号に悪影響を及ぼすことがある。これを解消するためには、バス信号が流れるネットに終端抵抗を接続するとよい。こうすることで、バス信号が流れるネットのインピーダンスを整合させて、反射波の発生を抑えることができる。
【０１７４】
また、ライブラリのデータ構造が実施の形態１と一部異なるため、実施の形態５においては、ライブラリ５０７として説明する。
また、ネットリストのデータ構造が実施の形態１と異なるため、実施の形態５においては、ネットリストをそれぞれ原ネットリスト５０１、新ネットリスト５１１とする。
その他、実施の形態１と共通する各機能ブロックについては、実施の形態１と同一の参照符号を付して説明を省略する。
【０１７５】
５．２  データ
以下、記憶部１０６が記憶しているライブラリ５０７のデータ構造と、ネットリストのデータ構造について説明する。
５．２．１  ライブラリ５０７
図２８は、ライブラリ５０７に含まれる、１のセルについてのデータ構造を示す図である。
【０１７６】
５．２．１．１  ライブラリのデータ構造
同図（ａ）に示すように、ライブラリ５０７の１件のレコード５０７ａには、リファレンス名２８０と、入力ピン２８１とが含まれる。リファレンス名２８０、入力ピン２８１は、それぞれ図３のリファレンス名３０、入力ピン３１と同様にリファレンス名などを示すものであるため、説明を省略する。
【０１７７】
リファレンス名２８０には「ＲＥＧ１」と示されているが、これは終端抵抗についてのライブラリであることを示している。
５．２．１．２  ピンのデータ構造
また、同図（ｂ）では、ピンのデータ構造も示している。ピンのデータ中のレコード５０７ｂには、ピン名２８３と、構成条件情報名２８４とが含まれる。
【０１７８】
ピン名２８３、構成条件情報名２８４は、それぞれ図３のピン名３３、構成条件情報名３４と同様であるため説明を省略する。
実施の形態５では、構成条件情報名２８４には、「BUS」と示されている。「BUS」は、バス信号ネットを示すネット属性のリファレンス名である。
５．２．１．３  構成条件情報のデータ構造
また、同図（ｃ）に、構成条件情報のデータ構造を示す。構成条件情報のデータ中のレコード５０７ｃには、構成条件情報名２８５、接続タイプ２８６、接続インスタンス数２８７とが含まれる。実施の形態１と比べて、特に、接続インスタンス数２８７を含む点で異なる。
【０１７９】
構成条件情報名２８５、接続タイプ２８６は、それぞれ図３の構成条件情報名３５、接続タイプ３６と同様であるため説明を省略する。実施の形態５では、構成条件情報名２８５に「BUS」と示されている。
接続インスタンス数２８７は、リファレンス名２８０に示されるセルが、構成条件情報名２８５に示される「BUS」のネット属性を有するネットに接続する際の接続数の制限を示す。同図では「１」と示されており、「ＲＥＧ１」のリファレンス名を有する抵抗を、「BUS」のネット属性を有するネットに１個だけ接続を許可することが示されている。
【０１８０】
なお、接続インスタンス数２８７のデータタイプは整数である。
５．２．２  ネットリストのデータ構造
図２９は、実施の形態５にかかるネットリストに含まれる、１のネットのデータ構造を示す図である。
５．２．２．１  ネットのデータ構造
図２９（ａ）は、ネットリスト中の、１のネットのデータ構造を示す図である。
【０１８１】
同図（ａ）に示すように、ネットの１件のレコード２９００ａには、ネット名称２９０と、ネット属性２９１と、インスタンス名２９２とが含まれる。
ネット名称２９０、ネット属性２９１、インスタンス名２９２は、それぞれ、図４のネット名称４０、ネット属性４１、インスタンス名４２と同様であるため説明を省略する。
実施の形態５では、ネット属性２９１に「BUS」と示されており、このネットに対して「BUS」のネット属性が付加されていることが示されている。
【０１８２】
５．２．２．２  インスタンスのデータ構造
図２９（ｂ）は、ネットリスト中の、１のネットのインスタンスのデータ構造を示す図である。
同図（ｂ）に示すように、インスタンスのレコード２９００ｂには、インスタンス名２９３と、リファレンス名２９４と、構成条件情報名２９５と、接続インスタンス数情報２９６とが含まれる。実施の形態１と比べて、特に、接続インスタンス数情報２９６を含む点で異なる。インスタンス名１９３と、リファレンス名１９４と、構成条件情報名１９５は、それぞれ図４（ｂ）のインスタンス名４３と、リファレンス名４４と、構成条件情報名４５とと同様であるため説明を省略する。
【０１８３】
接続インスタンス数情報２９６は、インスタンス名２９３に示されるインスタンスがネットに接続している数を示す。同図では「１」と示されており、ネット属性「BUS」を有するネットに、インスタンス名「ＲＥＧ１＿ＩＮＳＴ７」のインスタンスが１つ接続していることを示している。
５．３  ネットリスト生成処理の詳細
次に、実施の形態５における、ステップＳ２０５の処理について詳しく説明する。
【０１８４】
なお、実施の形態５では、所定の特性を有するネットを、バス信号ネットとしている。また、解析部１０４は、図２のステップＳ２０２において、バス信号を指定し、原ネットリスト５１１を解析して、指定したバス信号が流れるネットを抽出し、抽出されたネットをステップＳ２０３において選択することとする。また、属性付加部１０５は、ステップＳ２０４において、選択されたネットに「BUS」をネット属性として付加するものとする。
【０１８５】
図３０は、実施の形態５におけるステップＳ２０５の処理の詳細を示す図である。
図３０に示すように、ネットリスト生成部１０９は、属性付加部１０５から出力され、ネット属性が付加された原ネットリスト５０１を取得する（ステップＳ３００１）。
また、記憶部１０６に記憶されているライブラリ５０７を読み込む（ステップＳ３００２）。
【０１８６】
ネットリスト生成部１０９は、原ネットリスト５０１から、ネット属性「BUS」がネット属性２９１に付加されているネットを抽出する（ステップＳ３００３）。
ネットリスト生成部１０９は、「BUS」のネット属性を有するネットを抽出すると、「BUS」のネットに終端抵抗が接続されているか否かを判断する（ステップＳ３００４）。
ステップＳ３００４において、「BUS」のネット属性のネットに終端抵抗が接続されていると判断されると（ステップＳ３００４：ＹＥＳ）、処理を終了する。
【０１８７】
ステップＳ３００４において、「BUS」のネット属性のネットに終端抵抗が接続されていないと判断されると（ステップＳ３００４：ＮＯ）、ステップＳ３００２において読み出したライブラリ５０７から、構成条件情報名２８４に「BUS」と示されているセル、実施の形態５では「ＲＥＧ１」のリファレンス名を有する終端抵抗を読み出す。読み出した「ＲＥＧ１」の終端抵抗を、「ＲＥＧ１」のライブラリの接続インスタンス数情報２８７に示される数だけ、「BUS」のネット属性のネットに接続する（ステップＳ３００５）。実施の形態５では、「ＲＥＧ１」のリファレンス名を有する終端抵抗を、１個、「BUS」のネット属性のネットに接続する。
【０１８８】
５．４  ネットの構成の遷移
図３１は、ネットの構成の遷移を示す図である。
図３１（ａ）は、原ネットリスト５０１における一部のネットの構成を示す図である。
同図（ａ）に示すように、原ネットリスト５０１には、バス信号が流れるバス信号ネット３１０１と、インバータ３１０２と、ｏｒ回路３１０３と、インバータ３１０４とが、原ネットリスト５０１における一部のネットの構成として示されている。
【０１８９】
論理回路合成装置１は、ステップＳ２０２、ステップＳ２０３、ステップＳ２０４の処理を行うことで、この原ネットリスト５０１に示されるネットのうち、バス信号ネット３１０１に対し、ネット属性「BUS」を付加する。そして、ステップＳ２０５、具体的にはステップＳ３００１〜ステップＳ３００５の処理を行って、新ネットリスト５１１を生成する。
【０１９０】
図３１（ｂ）は、新ネットリスト５１１における一部のネットの構成を示す図である。
同図に示すように、新ネットリスト５１１には、図３１（ａ）に示す構成に加えて、「ＲＥＧ１」のリファレンス名を有する終端抵抗３１０５が、新ネットリスト５１１における一部のネットの構成として示されている。
したがって、このネットの構成は、ライブラリ５０７の接続インスタンス数２８７で示される条件を満たす。
【０１９１】
５．５  ネットリストの更新過程
ここで、実施の形態５における論理回路合成装置１が処理を行う過程で、ネットリストに保持されているデータがどのように更新されていくかを説明する。
図３２は、ネットリストの更新過程を示す図である。
図３２（ａ）は、ステップＳ２０１の処理により、取得部１０２が取得したときの原ネットリスト５０１である。ネット属性はまだ付加されていない状態である。
【０１９２】
図３２（ｂ）は、ステップＳ２０４の処理により、属性付加部１０５がネットにネット属性「BUS」を付加した状態で、その後ステップＳ２０５においてネットリスト生成部１０９に入力される原ネットリスト５０１である。ネット属性２９１に、ネット属性「BUS」が付加されている。
図３２（ｃ）は、ネットリスト生成部１０９によって生成される新ネットリスト５１１である。インスタンスのデータ構造において、構成条件情報を適用して、「ＲＥＧ１」の終端抵抗を、１個、バス信号ネットに接続した後のネットの構成が示されている。
＜実施の形態６＞
６．１  概要
以下、本発明にかかる論理回路合成装置の、別の実施形態について説明する。
【０１９３】
実施の形態６においては、論理回路合成装置１は、所定の高さのトグル率のネットである高トグルネットを、所定の特性を有するネットとして選択する。
トグル率が高いということは、ネットにおいて電圧の切り替わりの頻度が高いということである。フリップフロップなどの消費電力が大きいセルで、電圧の切り替わり頻度が高いと、セルからの発熱が大きくなる。したがって、高トグルネットにおいて、消費電力の大きいセル同士が比較的近い距離で接続されると、局所的に発熱が大きくなり、セルからの発熱に基づくノイズの影響が大きくなるおそれがある。これを解消するためには、消費電力が大きいセル同士を離して配置するとよい。こうすることで、局所的な発熱を防ぐことができる。
【０１９４】
また、ライブラリのデータ構造が実施の形態１と一部異なるため、実施の形態６においては、ライブラリ６０７として説明する。
また、ネットリストのデータ構造が実施の形態１と異なるため、実施の形態６においては、ネットリストをそれぞれ原ネットリスト６０１、新ネットリスト６１１とする。
その他、実施の形態１と共通する各機能ブロックについては、実施の形態１と同一の参照符号を付して説明を省略する。
【０１９５】
６．２  データ
以下、記憶部１０６が記憶しているライブラリ６０７のデータ構造と、ネットリストのデータ構造について説明する。
６．２．１  ライブラリ６０７
図３３は、ライブラリ６０７に含まれる、１のセルについてのデータ構造を示す図である。
【０１９６】
６．２．１．１  ライブラリのデータ構造
同図（ａ）に示すように、ライブラリ６０７の１件のレコード６０７ａには、リファレンス名３３０と、入力ピン３３１と、出力ピン３３２とが含まれる。リファレンス名３３０、入力ピン３３１、出力ピン３３２は、それぞれ図３のリファレンス名３０、入力ピン３１、出力ピン３２と同様にリファレンス名などを示すものであるため、説明を省略する。
【０１９７】
６．２．１．２  ピンのデータ構造
また、同図（ｂ）では、ピンのデータ構造も示している。ピンのデータ中のレコード６０７ｂには、ピン名３３３と、構成条件情報名３３４とが含まれる。
ピン名３３３、構成条件情報名３３４は、それぞれ図３のピン名３３、構成条件情報名３４と同様であるため説明を省略する。
【０１９８】
実施の形態６では、構成条件情報名３３４には、「toggle」と示されている。「toggle」は、高トグルネットを示すネット属性のリファレンス名である。
６．２．１．３  構成条件情報のデータ構造
また、同図（ｃ）に、構成条件情報のデータ構造を示す。構成条件情報のデータ中のレコード６０７ｃには、構成条件情報名３３５、接続タイプ３３６、対象となるリファレンス名３３７、最小距離３３８とが含まれる。実施の形態１と比べて、特に、最小距離３３８を含む点で異なる。
【０１９９】
構成条件情報名３３５、接続タイプ３３６、対象となるリファレンス名３３７は、それぞれ図３の構成条件情報名３５、接続タイプ３６、対象となるリファレンス名３７と同様であるため説明を省略する。
最小距離３３８は、リファレンス名３３０に示されるセルと、対象となるリファレンス名３３７に示されるセルとの間の最小距離を示す。
【０２００】
実施の形態６では、構成条件情報名３３５に「toggle」と示されている。また、対象となるリファレンス名１８７に「ＦＦ２」「ＦＦ３」と示されている。これは、リファレンス名１８０に示される「ＦＦ１」と「ＦＦ２」または「ＦＦ１」と「ＦＦ３」との距離を、最小距離３３８に示される距離以上に離すべきであることを示している。
なお、最小距離３３８のデータタイプは数値である。
【０２０１】
６．２．２  ネットリストのデータ構造
図３４は、実施の形態６にかかるネットリストに含まれる、１のネットのデータ構造を示す図である。
６．２．２．１  ネットのデータ構造
図３４（ａ）は、ネットリスト中の、１のネットのデータ構造を示す図である。
【０２０２】
同図（ａ）に示すように、ネットの１件のレコード３４００ａには、ネット名称３４０と、ネット属性３４１と、インスタンス名３４２とが含まれる。
ネット名称３４０、ネット属性３４１、インスタンス名３４２は、それぞれ、図４のネット名称４０、ネット属性４１、インスタンス名４２と同様であるため説明を省略する。
実施の形態６では、ネット属性３４１に「toggle」と示されており、このネットに対して「toggle」のネット属性が付加されていることが示されている。
【０２０３】
６．２．２．２  インスタンスのデータ構造
図３４（ｂ）は、ネットリスト中の、１のネットのインスタンスのデータ構造を示す図である。
同図（ｂ）に示すように、インスタンスのレコード３４００ｂには、インスタンス名３４３と、リファレンス名３４４と、構成条件情報名３４５と、対象インスタンス３４６と、インスタンスの位置３４７と、対象インスタンスの位置３４８が含まれる。インスタンス名３４３と、リファレンス名３４４と、構成条件情報名３４５と、対象インスタンス３４６と、インスタンスの位置３４７と、対象インスタンスの位置３４８は、それぞれ図４（ｂ）のインスタンス名４３と、リファレンス名４４と、構成条件情報名４５と、対象インスタンス４６と、インスタンスの位置４７と、対象インスタンスの位置４８と同様であるため説明を省略する。
【０２０４】
６．３  ネットリスト生成処理の詳細
次に、実施の形態６における、ステップＳ２０５の処理について詳しく説明する。
なお、実施の形態６では、所定の特性を有するネットを、高トグルネットとしている。また、解析部１０４は、図２のステップＳ２０２において、選択対象となる高トグルネットの、トグル率の高さを指定して解析を行い、解析の結果抽出されたネットをステップＳ２０３において選択することとする。また、属性付加部１０５は、ステップＳ２０４において、選択されたネットに「toggle」をネット属性として付加するものとする。
【０２０５】
図３５は、実施の形態６におけるステップＳ２０５の処理の詳細を示す図である。
図３５に示すように、ネットリスト生成部１０９は、属性付加部１０５から出力され、ネット属性が付加された原ネットリスト６０１を取得する（ステップＳ３５０１）。
また、記憶部１０６に記憶されているライブラリ６０７を読み込む（ステップＳ３５０２）。ライブラリ６０７には、リファレンス名「ＦＦ１」のフリップフロップに、構成条件情報名３３４が「toggle」である構成条件情報が付加されている。
【０２０６】
ネットリスト生成部１０９は、原ネットリスト６０１から、ネット属性「toggle」がネット属性３４１に付加されているネットを抽出する（ステップＳ３５０３）。
ライブラリ６０７を参照し、構成条件情報名３３４に「toggle」が付加されているセル、すなわちリファレンス名「ＦＦ１」のフリップフロップのライブラリを読み出す。ネットリスト生成部１０９は、ネット属性「toggle」のネットに接続し、リファレンス名「ＦＦ１」を有するセルを抽出する（ステップＳ３５０４）。
【０２０７】
また、リファレンス名「ＦＦ１」のセルのライブラリの、対象となるリファレンス名３３７を参照し、対象となるリファレンス名３３７に「ＦＦ２」「ＦＦ３」と示されていることを読み出すと、原ネットリスト６０１から「ＦＦ２」「ＦＦ３」のリファレンス名を有するセルを抽出する（ステップＳ３５０５）。
ネットリスト生成部１０９は、抽出した「ＦＦ１」「ＦＦ２」「ＦＦ３」のセルを対象として、「ＦＦ１」から「ＦＦ２」までの距離、および「ＦＦ１」から「ＦＦ３」までの距離を、「ＦＦ１」のライブラリの最小距離３３８に示される数値以上、すなわち２０以上とする（ステップＳ３５０６）。
【０２０８】
６．４  ネットの構成の遷移
図３６は、ネットの構成の遷移を示す図である。
図３６（ａ）は、原ネットリスト６０１における一部のネットの構成を示す図である。
同図（ａ）に示すように、原ネットリスト６０１には、高トグルネット３６０１と、フリップフロップ３６０２と、フリップフロップ３６０３とが、原ネットリスト６０１における一部のネットの構成として示されている。フリップフロップ３６０２は「ＦＦ１」のリファレンス名を有し、フリップフロップ３６０３は「ＦＦ２」のリファレンス名を有するとする。
【０２０９】
論理回路合成装置１は、ステップＳ２０２、ステップＳ２０３、ステップＳ２０４の処理を行うことで、この原ネットリスト６０１に示されるネットのうち、高トグルネット３６０１に対し、ネット属性「toggle」を付加する。そして、ステップＳ２０５、具体的にはステップＳ３５０１〜ステップＳ３５０６の処理を行って、新ネットリスト６１１を生成する。
【０２１０】
図３６（ｂ）は、新ネットリスト６１１における一部のネットの構成を示す図である。
同図に示すように、新ネットリスト６１１には、高トグルネット３６０１と、フリップフロップ３６０２と、フリップフロップ３６０３とが、新ネットリスト６１１における一部のネットの構成として示されている。ネットリスト生成部１０９の処理により、フリップフロップ３６０２とフリップフロップ３６０３との間の距離が２０以上となっている。
【０２１１】
したがって、このネットの構成は、ライブラリ６０７の最小距離３３８で示される条件を満たす。
６．５  ネットリストの更新過程
ここで、実施の形態６における論理回路合成装置１が処理を行う過程で、ネットリストに保持されているデータがどのように更新されていくかを説明する。
【０２１２】
図３７は、ネットリストの更新過程を示す図である。
図３７（ａ）は、ステップＳ２０１の処理により、取得部１０２が取得したときの原ネットリスト６０１である。ネット属性はまだネットに付加されていない状態である。
図３７（ｂ）は、ステップＳ２０４の処理により、属性付加部１０５がネットにネット属性「toggle」を付加した状態で、その後ステップＳ２０５においてネットリスト生成部１０９に入力される原ネットリスト６０１である。ネット属性３４１に、ネット属性「toggle」が付加されている。
【０２１３】
図３７（ｃ）は、ネットリスト生成部１０９によって生成される新ネットリスト６１１である。インスタンスのデータ構造において、構成条件情報を適用して、インスタンス「ＦＦ１＿ＩＮＳＴ８」とインスタンス「ＦＦ２＿ＩＮＳＴ８」との間の距離が２０以上となっていることが示されている。ここで、インスタンス「ＦＦ１＿ＩＮＳＴ８」は、「ＦＦ１」のフリップフロップ、インスタンス「ＦＦ２＿ＩＮＳＴ８」は、「ＦＦ２」のフリップフロップを示す。
【０２１４】
６．６  実施の形態６の変形例１
なお、上述の実施の形態６では、具体的には、高トグルネットに接続するフリップフロップ間の距離を所定値より大きくすることとしていたが、このセル間の距離制限に代えて、セルに電力を供給するための配線である供給線に関する制限を適用して論理合成を行うこととしてもよい。供給線は複数本あり、プラスの電圧がかかっている配線とマイナスの電圧がかかっている配線が交互に平行に配置されている。複数のセルが、あるプラスおよびマイナスの供給線のペアを介して電力の供給を受けるとき、前記複数のセルは、同一のｒｏｗにあるという。逆に、ｒｏｗが異なるとは、セルが接続しているプラス電圧の供給線またはマイナス電圧の供給線の少なくとも１つが異なることをいう。
【０２１５】
複数のセルの電力を、同じｒｏｗから供給すると、電力が十分に供給されず、ＩＲドロップが発生することがある。
そこで、複数のセルがなるべく異なるｒｏｗから電力の供給を受けるように、ｒｏｗに関する配置制限を構成条件情報に含めることで、消費電力が大きいセルを同じｒｏｗに配置しない等により、ＩＲドロップの発生を低減することができる。
【０２１６】
なお、以下に示す実施の形態６の変形例１の説明では、記憶部１０６が記憶しているライブラリを、ライブラリ６０７−１とする。また、取得部１０２が取得するネットリストを、原ネットリスト６０１−１とし、ネットリスト生成部１０９が生成するネットリストを、新ネットリスト６１１−１とする。
６．７  実施の形態６の変形例１のデータ
変形例における、記憶部１０６が記憶しているライブラリ６０７−１のデータ構造と、ネットリストのデータ構造について説明する。
【０２１７】
６．７．１  ライブラリ６０７−１
図３８は、ライブラリ６０７−１に含まれる、１のセルについてのデータ構造を示す図である。
６．７．１．１  ライブラリのデータ構造
同図（ａ）に示すように、ライブラリ６０７−１の１件のレコード６０７−１ａには、リファレンス名３８０と、入力ピン３８１と、出力ピン３８２とが含まれる。リファレンス名３８０、入力ピン３８１、出力ピン３８２は、それぞれ図３３のリファレンス名３３０、入力ピン３３１、出力ピン３３２と同様にリファレンス名などを示すものであるため、説明を省略する。
【０２１８】
６．７．１．２  ピンのデータ構造
また、同図（ｂ）では、ピンのデータ構造も示している。ピンのデータ中のレコード６０７−１ｂには、ピン名３８３と、構成条件情報名３８４とが含まれる。
ピン名３８３、構成条件情報名３８４は、それぞれ図３３のピン名３３３、構成条件情報名３３４と同様であるため説明を省略する。
【０２１９】
６．７．１．３  構成条件情報のデータ構造
また、同図（ｃ）に、構成条件情報のデータ構造を示す。構成条件情報のデータ中のレコード６０７−１ｃには、構成条件情報名３８５、接続タイプ３８６、対象となるリファレンス名３８７、最小ｒｏｗ間隔３８８とが含まれる。上述の実施の形態６と変形例１とでは、最小ｒｏｗ間隔３８８が変形例１においては含まれる点で異なる。
【０２２０】
構成条件情報名３８５、接続タイプ３８６、対象となるリファレンス名３８７は、それぞれ図３３の構成条件情報名３３５、接続タイプ３３６、対象となるリファレンス名３３７と同様であるため説明を省略する。
最小ｒｏｗ間隔３８８は、リファレンス名３８０に示されるセルと、対象となるリファレンス名３８７に示されるセルとを、最小ｒｏｗ間隔３８８に示される値の分だけｒｏｗを離して配置すべきことを示す。同図の例では、最小ｒｏｗ間隔３８８に「１」と示されており、これは、例えばリファレンス名３８０に示される「ＦＦ１」と、対象となるリファレンス名３８７に示されるセル「ＦＦ２」を、ｒｏｗを１つ離して配置すべきことを示す。
【０２２１】
なお、最小ｒｏｗ間隔３８８のデータタイプは、整数である。
６．７．２  ネットリストのデータ構造
図３９は、実施の形態６の変形例１にかかるネットリストに含まれる、１のネットのデータ構造を示す図である。
６．７．２．１  ネットのデータ構造
図３９（ａ）は、ネットリスト中の、１のネットのデータ構造を示す図である。
【０２２２】
同図（ａ）に示すように、ネットの１件のレコード３９００ａには、ネット名称３９０と、ネット属性３９１と、インスタンス名３９２とが含まれる。
ネット名称３９０、ネット属性３９１、インスタンス名３９２は、それぞれ、図３４のネット名称３４０、ネット属性３４１、インスタンス名３４２と同様であるため説明を省略する。
【０２２３】
６．７．２．２  インスタンスのデータ構造
図３９（ｂ）は、ネットリスト中の、１のネットのインスタンスのデータ構造を示す図である。
同図（ｂ）に示すように、インスタンスのレコード３９００ｂには、インスタンス名３９３と、リファレンス名３９４と、構成条件情報名３９５と、対象インスタンス３９６と、インスタンスの位置３９７と、対象インスタンスの位置３９８が含まれる。
【０２２４】
インスタンス名３９３と、リファレンス名３９４と、構成条件情報名３９５と、対象インスタンス３９６と、インスタンスの位置３９７と、対象インスタンスの位置３９８は、それぞれ図３４（ｃ）のインスタンス名３４３と、リファレンス名３４４と、構成条件情報名３４５と、対象インスタンス３４６と、インスタンスの位置３４７と、対象インスタンスの位置３４８と同様であるため説明を省略する。
【０２２５】
なお、変形例１においては、対象となるインスタンス３９６、対象インスタンスの位置３９８において、複数のインスタンスそれぞれについてデータを格納することとしている。
６．８  変形例１におけるネットリスト生成処理の詳細
次に、実施の形態６の変形例１における、ステップＳ２０５の処理について詳しく説明する。
【０２２６】
ステップＳ２０２、ステップＳ２０３については、上述の実施の形態６と同様である。
なお、上述の実施の形態６とでは、ｒｏｗに関する配置制限を考慮して論理回路合成装置１が合成を行う点で異なる。
図４０は、実施の形態６の変形例１におけるステップＳ２０５の処理の詳細を示す図である。
【０２２７】
なお、ステップＳ４００１、ステップＳ４００２、ステップＳ４００３、ステップＳ４００４、ステップＳ４００５の処理は、それぞれ図３５のステップＳ３５０１、ステップＳ３５０２、ステップＳ３５０３、ステップＳ３５０４、ステップＳ３５０５と同様であるため説明を省略する。
ステップＳ４００５の処理に続いて、ネットリスト生成部１０９は、「ＦＦ１」のセルと「ＦＦ２」のセルを、ｒｏｗの間隔を１以上離して配置する。また、ネットリスト生成部１０９は、「ＦＦ１」のセルと「ＦＦ３」のセルを、「ＦＦ１」のライブラリの最小ｒｏｗ間隔３８８に示される数値以上離して配置する。すなわちｒｏｗの間隔を１以上離して配置する（ステップＳ４００６）。
【０２２８】
６．９  ネットの構成の遷移
図４１は、ネットの構成の遷移を示す図である。
図４１（ａ）は、原ネットリスト６０１−１における一部のネットの構成を示す図である。
同図（ａ）に示すように、原ネットリスト６０１−１には、高トグルネット４１０１と、ｒｏｗ４１０２と、ｒｏｗ４１０３と、ｒｏｗ４１０４と、ｒｏｗ４１０５と、ｒｏｗ４１０６と、ｒｏｗ４１０７と、フリップフロップ４１０８と、フリップフロップ４１０９と、フリップフロップ４１１０とが、原ネットリスト６０１−１における一部のネットの構成として示されている。フリップフロップ４１０８は「ＦＦ１」のリファレンス名を有する。また、フリップフロップ４１０９は「ＦＦ２」のリファレンス名を有する。また、フリップフロップ４１１０は「ＦＦ３」のリファレンス名を有する。
【０２２９】
論理回路合成装置１は、ステップＳ２０２、ステップＳ２０３、ステップＳ２０４の処理を行うことで、この原ネットリスト６０１−１に示されるネットのうち、高トグルネット４１０１に対し、ネット属性「toggle」を付加する。そして、ステップＳ２０５、具体的にはステップＳ４００１〜ステップＳ４００６の処理を行って、新ネットリスト６１１−１を生成する。
【０２３０】
図４１（ｂ）は、新ネットリスト６１１−１における一部のネットの構成を示す図である。
同図に示すように、新ネットリスト６１１−１には、原ネットリスト６１１−１に含まれるセルと同様のセルが、新ネットリスト６１１−１における一部のネットの構成として示されている。
【０２３１】
ここで、同図に示すように、新ネットリスト６１１−１においては、「ＦＦ１」は、ｒｏｗ４１０４から電力の供給を受けている。また、「ＦＦ２」は、ｒｏｗ４１０５から電力の供給を受けている。また、「ＦＦ３」は、ｒｏｗ４１０３から電力の供給を受けている。すなわち、「ＦＦ１」「ＦＦ２」「ＦＦ３」は、異なるｒｏｗに配置されている。
その結果、「ＦＦ１」の配置位置は、インスタンスの位置３９７に示されるとおり（１０，３０）であり、「ＦＦ２」の配置位置は、対象インスタンスの位置３９８に示されるとおり（２０，４０）であり、「ＦＦ３」の配置位置は、対象インスタンスの位置３９８に示されるとおり、（３０，２０）となっている。
【０２３２】
このネットの構成は、ライブラリ６０７−１の最小ｒｏｗ間隔３８８で示される条件を満たす。
６．１０  ネットリストの更新過程
ここで、実施の形態６の変形例１における論理回路合成装置１が処理を行う過程で、ネットリストに保持されているデータがどのように更新されていくかを説明する。
【０２３３】
図４２は、ネットリストの更新過程を示す図である。
図４２（ａ）は、ステップＳ２０１の処理により、取得部１０２が取得したときの原ネットリスト６０１−１である。
図４２（ｂ）は、ステップＳ２０４の処理により、属性付加部１０５がネットにネット属性「toggle」を付加した状態で、その後ステップＳ２０５においてネットリスト生成部１０９に入力される原ネットリスト６０１−１である。
【０２３４】
図４２（ｃ）は、ネットリスト生成部１０９によって生成される新ネットリスト６１１−１である。インスタンスのデータ構造において、構成条件情報を適用してフリップフロップ間の配置位置を調整した後のネットの構成が示されている。
６．１１  実施の形態６の変形例２
上述の変形例１ではｒｏｗに関する配置制限を構成条件情報に含めていたが、この他にも、ストラップ配線を考慮してセルを配置することとしてもよい。
【０２３５】
ストラップ配線とは、ｒｏｗに電力を供給する供給線同士を接続する配線であり、ｒｏｗをまたいで配線される。ストラップ配線は、ｒｏｗにプラスの電圧を供給する供給線同士を接続したものと、ｒｏｗにマイナスの電圧を供給する供給線同士を接続したものとからなる。これらストラップ配線は、通常、複数本存在する。
ｒｏｗの場合と同様に、複数のセルの電力を、同じストラップ配線から供給すると、電力が十分に供給されず、ＩＲドロップが発生することがある。
【０２３６】
そこで、複数のセルがなるべく異なるストラップ配線から電力の供給を受けるように、ストラップ配線に関する配置制限を構成条件情報に含めることで、ＩＲドロップの発生を低減することができる。
なお、以下に示す実施の形態６の変形例２の説明では、記憶部１０６が記憶しているライブラリを、ライブラリ６０７−２とする。また、取得部１０２が取得するネットリストを、原ネットリスト６０１−２とし、ネットリスト生成部１０９が生成するネットリストを、新ネットリスト６１１−２とする。
【０２３７】
６．１２  実施の形態６の変形例２のデータ
変形例２における、記憶部１０６が記憶しているライブラリ６０７−２のデータ構造と、ネットリストのデータ構造について説明する。
６．１２．１  ライブラリ６０７−２
図４３は、ライブラリ６０７−２に含まれる、１のセルについてのデータ構造を示す図である。
【０２３８】
６．１２．１．１  ライブラリのデータ構造
同図（ａ）に示すように、ライブラリ６０７−２の１件のレコード６０７−２ａには、リファレンス名４３０と、入力ピン４３１と、出力ピン４３２とが含まれる。リファレンス名４３０、入力ピン４３１、出力ピン４３２は、それぞれ図３３のリファレンス名３３０、入力ピン３３１、出力ピン３３２と同様にリファレンス名などを示すものであるため、説明を省略する。
【０２３９】
６．１２．１．２  ピンのデータ構造
また、同図（ｂ）では、ピンのデータ構造も示している。ピンのデータ中のレコード６０７−２ｂには、ピン名４３３と、構成条件情報名４３４とが含まれる。
ピン名４３３、構成条件情報名４３４は、それぞれ図３３のピン名３３３、構成条件情報名３３４と同様であるため説明を省略する。
【０２４０】
６．１２．１．３  構成条件情報のデータ構造
また、同図（ｃ）に、構成条件情報のデータ構造を示す。構成条件情報のデータ中のレコード６０７−２ｃには、構成条件情報名４３５、接続タイプ４３６、対象となるリファレンス名４３７、最小ストラップ間隔４３８とが含まれる。上述の実施の形態６と変形例２とでは、最小ストラップ間隔４３８が変形例２においては含まれる点で異なる。
【０２４１】
構成条件情報名４３５、接続タイプ４３６、対象となるリファレンス名４３７は、それぞれ図３３の構成条件情報名３３５、接続タイプ３３６、対象となるリファレンス名３３７と同様であるため説明を省略する。
最小ストラップ間隔４３８は、リファレンス名４３０に示されるセルと、対象となるリファレンス名４３７に示されるセルとを、最小ストラップ間隔４３８に示される値の分だけストラップ配線を挟んで配置すべきことを示す。同図の例では、最小ストラップ間隔４３８に「１」と示されており、これは、例えばリファレンス名４３０に示される「ＦＦ１」と、対象となるリファレンス名４３７に示されるセル「ＦＦ２」を、ストラップ配線を１本挟んで配置すべきことを示す。
【０２４２】
なお、最小ストラップ間隔４３８のデータタイプは、整数である。
６．１２．２  ネットリストのデータ構造
図４４は、実施の形態６の変形例２にかかるネットリストに含まれる、１のネットのデータ構造を示す図である。
６．１２．２．１  ネットのデータ構造
図４４（ａ）は、ネットリスト中の、１のネットのデータ構造を示す図である。
【０２４３】
同図（ａ）に示すように、ネットの１件のレコード４４００ａには、ネット名称４４０と、ネット属性４４１と、インスタンス名４４２とが含まれる。
ネット名称４４０、ネット属性４４１、インスタンス名４４２は、それぞれ、図３４のネット名称３４０、ネット属性３４１、インスタンス名３４２と同様であるため説明を省略する。
【０２４４】
６．１２．２．２  インスタンスのデータ構造
図４４（ｂ）は、ネットリスト中の、１のネットのインスタンスのデータ構造を示す図である。
同図（ｂ）に示すように、インスタンスのレコード４４００ｂには、インスタンス名４４３と、リファレンス名４４４と、構成条件情報名４４５と、対象インスタンス４４６と、インスタンスの位置４４７と、対象インスタンスの位置４４８が含まれる。
【０２４５】
インスタンス名４４３と、リファレンス名４４４と、構成条件情報名４４５と、対象インスタンス４４６と、インスタンスの位置４４７と、対象インスタンスの位置４４８は、それぞれ図３４（ｃ）のインスタンス名３４３と、リファレンス名３４４と、構成条件情報名３４５と、対象インスタンス３４６と、インスタンスの位置３４７と、対象インスタンスの位置３４８と同様であるため説明を省略する。
【０２４６】
なお、変形例２においては、対象となるインスタンス４４６、対象インスタンスの位置４４８において、複数のインスタンスそれぞれについてデータを格納することとしている。
６．１３  変形例２におけるネットリスト生成処理の詳細
次に、実施の形態６の変形例２における、ステップＳ２０５の処理について詳しく説明する。
【０２４７】
ステップＳ２０２、ステップＳ２０３については、上述の実施の形態６と同様である。
なお、上述の実施の形態６とでは、ストラップ配線に関する配置制限を考慮して論理回路合成装置１が合成を行う点で異なる。
図４５は、実施の形態６の変形例１におけるステップＳ２０５の処理の詳細を示す図である。
【０２４８】
なお、ステップＳ４５０１、ステップＳ４５０２、ステップＳ４５０３、ステップＳ４５０４、ステップＳ４５０５の処理は、それぞれ図３５のステップＳ３５０１、ステップＳ３５０２、ステップＳ３５０３、ステップＳ３５０４、ステップＳ３５０５と同様であるため説明を省略する。
ステップＳ４５０５の処理に続いて、ネットリスト生成部１０９は、「ＦＦ１」のセルと「ＦＦ２」のセルを、ストラップ配線を１本挟んで配置する。また、ネットリスト生成部１０９は、「ＦＦ１」のセルと「ＦＦ３」のセルを、「ＦＦ１」のライブラリの最小ストラップ間隔４３８に示される数値以上離して配置する。すなわち、ストラップ配線を１本挟んで配置する（ステップＳ４５０６）。
【０２４９】
６．１４  ネットの構成の遷移
図４６は、ネットの構成の遷移を示す図である。
図４６（ａ）は、原ネットリスト６０１−２における一部のネットの構成を示す図である。
同図（ａ）に示すように、原ネットリスト６０１−２には、高トグルネット４６０１と、ストラップ配線４６０２と、ストラップ配線４６０３と、フリップフロップ４６０４と、フリップフロップ４６０５と、フリップフロップ４６０６とが、原ネットリスト６０１−２における一部のネットの構成として示されている。フリップフロップ４６０４は「ＦＦ１」のリファレンス名を有する。また、フリップフロップ４６０５は「ＦＦ２」のリファレンス名を有する。また、フリップフロップ４６０６は「ＦＦ３」のリファレンス名を有する。
【０２５０】
論理回路合成装置１は、ステップＳ２０２、ステップＳ２０３、ステップＳ２０４の処理を行うことで、この原ネットリスト６０１−２に示されるネットのうち、高トグルネット４６０１に対し、ネット属性「toggle」を付加する。そして、ステップＳ２０５、具体的にはステップＳ４５０１〜ステップＳ４５０６の処理を行って、新ネットリスト６１１−２を生成する。
【０２５１】
図４６（ｂ）は、新ネットリスト６１１−２における一部のネットの構成を示す図である。
同図に示すように、新ネットリスト６１１−２には、原ネットリスト６１１−２に含まれるセルと同様のセルが、新ネットリスト６１１−２における一部のネットの構成として示されている。
【０２５２】
ここで、同図に示すように、新ネットリスト６１１−２においては、「ＦＦ１」「ＦＦ２」「ＦＦ３」は、ストラップ配線を１本挟んで配置されている。
このネットの構成は、ライブラリ６０７−２の最小ストラップ間隔４３８で示される条件を満たす。
６．１５  ネットリストの更新過程
ここで、実施の形態６の変形例２における論理回路合成装置１が処理を行う過程で、ネットリストに保持されているデータがどのように更新されていくかを説明する。
【０２５３】
図４７は、ネットリストの更新過程を示す図である。
図４７（ａ）は、ステップＳ２０１の処理により、取得部１０２が取得したときの原ネットリスト６０１−２である。
図４７（ｂ）は、ステップＳ２０４の処理により、属性付加部１０５がネットにネット属性「toggle」を付加した状態で、その後ステップＳ２０５においてネットリスト生成部１０９に入力される原ネットリスト６０１−２である。
【０２５４】
図４７（ｃ）は、ネットリスト生成部１０９によって生成される新ネットリスト６１１−２である。インスタンスのデータ構造において、構成条件情報を適用してフリップフロップ間の配置位置を調整した後のネットの構成が示されている。
＜実施の形態７＞
７．１  概要
以下、本発明にかかる論理回路合成装置の、別の実施形態について説明する。
【０２５５】
実施の形態７においては、論理回路合成装置１は、フリップフロップが直結しているＦＦ直結ネットを、所定の特性を有するネットとして選択する。
フリップフロップが直結しているネットにおいては、信号が第１のフリップフロップの出力ピンから出発して第２のフリップフロップの入力ピンに到達するまでの時間がクロック周期に入っている必要がある。信号到達が速すぎる場合をホールドエラーというが、このホールドエラーに対しては、バッファを挿入することでエラーを解消できる。
【０２５６】
そこで、実施の形態７では、第１のフリップフロップから第２のフリップフロップまでの遅延が所定時間以上、例えば１ナノ秒以上となるようにバッファをフリップフロップ間に挿入する。なお、この所定時間は、例えば、第１のフリップフロップの内部遅延時間と第２のフリップフロップのホールドチェック時間に基づいて、ホールドエラーが発生しない時間を予め定めておく。また、論理回路におけるフリップフロップ間の遅延時間は、シミュレーション等により計測される。
【０２５７】
また、ライブラリのデータ構造が実施の形態１と一部異なるため、実施の形態７においては、ライブラリ７０７として説明する。
また、ネットリストのデータ構造が実施の形態１と異なるため、実施の形態７においては、ネットリストをそれぞれ原ネットリスト７０１、新ネットリスト７１１とする。
その他、実施の形態１と共通する各機能ブロックについては、実施の形態１と同一の参照符号を付して説明を省略する。
【０２５８】
７．２  データ
以下、記憶部１０６が記憶しているライブラリ７０７のデータ構造と、ネットリストのデータ構造について説明する。
７．２．１  ライブラリ７０７
図４８は、ライブラリ７０７に含まれる、１のセルについてのデータ構造を示す図である。
【０２５９】
７．２．１．１  ライブラリのデータ構造
同図（ａ）に示すように、ライブラリ７０７の１件のレコード７０７ａには、リファレンス名４８０と、入力ピン４８１と、出力ピン４８２とが含まれる。リファレンス名４８０、入力ピン４８１、出力ピン４８２は、それぞれ図３のリファレンス名３０、入力ピン３１、出力ピン３２と同様にリファレンス名などを示すものであるため、説明を省略する。
【０２６０】
７．２．１．２  ピンのデータ構造
また、同図（ｂ）では、ピンのデータ構造も示している。ピンのデータ中のレコード７０７ｂには、ピン名４８３と、構成条件情報名４８４とが含まれる。
ピン名４８３、構成条件情報名４８４は、それぞれ図３のピン名３３、構成条件情報名３４と同様であるため説明を省略する。
【０２６１】
実施の形態７では、構成条件情報名４８４には、「shift」と示されている。「shift」は、フリップフロップが直結しているネットを示すネット属性のリファレンス名である。
７．２．１．３  構成条件情報のデータ構造
また、同図（ｃ）に、構成条件情報のデータ構造を示す。構成条件情報のデータ中のレコード７０７ｃには、構成条件情報名４８５、接続タイプ４８６、対象となるリファレンス名４８７、最小遅延４８８とが含まれる。実施の形態１と比べて、特に、最小遅延４８８を含む点で異なる。
【０２６２】
構成条件情報名４８５、接続タイプ４８６、対象となるリファレンス名４８７は、それぞれ図３の構成条件情報名３５、接続タイプ３６、対象となるリファレンス名３７と同様であるため説明を省略する。
実施の形態７では、構成条件情報名４８５に「shift」と示されている。また、対象となるリファレンス名４８７に「ＦＦ２」と示されている。これは、「ＦＦ２」とリファレンス名４８０に示される「ＦＦ１」との間にバッファを挿入する等して遅延時間を調整すべきであることを示している。
【０２６３】
最小遅延４８８は、構成条件情報を適用する対象となるリファレンス間の遅延の最小時間を示す。すなわち、最小遅延４８８に示される時間以上の遅延とすべきであることを示す。時間の単位は、例えばナノ秒である。図４８（ｃ）では、「１」と示されている。これは、リファレンス名４８０に示される「ＦＦ１」から、対象となるリファレンス名４８７に示される「ＦＦ２」までの遅延を１ナノ秒以上とすべきことを示している。
【０２６４】
なお、最小遅延４８８のデータタイプは数値である。
７．２．２  ネットリストのデータ構造
図４９は、実施の形態７にかかるネットリストに含まれる、１のネットのデータ構造を示す図である。
７．２．２．１  ネットのデータ構造
図４９（ａ）は、ネットリスト中の、１のネットのデータ構造を示す図である。
【０２６５】
同図（ａ）に示すように、ネットの１件のレコード４９００ａには、ネット名称４９０と、ネット属性４９１と、インスタンス名４９２とが含まれる。
ネット名称４９０、ネット属性４９１、インスタンス名４９２は、それぞれ、図４のネット名称４０、ネット属性４１、インスタンス名４２と同様であるため説明を省略する。
実施の形態７では、ネット属性４９１に「shift」と示されており、このネットに対して「shift」のネット属性が付加されていることが示されている。
【０２６６】
７．２．２．２  インスタンスのデータ構造
図４９（ｂ）は、ネットリスト中の、１のネットのインスタンスのデータ構造を示す図である。
同図（ｂ）に示すように、インスタンスのレコード４９００ｂには、インスタンス名４９３と、リファレンス名４９４と、構成条件情報名４９５と、対象インスタンス４９６と、遅延情報４９７が含まれる。実施の形態１と比べて、特に、遅延情報４９７を含む点で異なる。インスタンス名４９３と、リファレンス名４９４と、構成条件情報名４９５と、対象インスタンス４９６とは、それぞれ図４（ｂ）のインスタンス名４３と、リファレンス名４４と、構成条件情報名４５と、対象インスタンス４６と同様であるため説明を省略する。
【０２６７】
遅延情報４９７は、インスタンス名４９３から対象インスタンス４９６までの遅延時間を示す。遅延時間の単位は、例えばナノ秒である。同図では「１．１」と示されており、インスタンス間の遅延時間が１．１ナノ秒であることが示されている。
７．３  ネットリスト生成処理の詳細
次に、実施の形態７における、ステップＳ２０５の処理について詳しく説明する。
【０２６８】
なお、実施の形態７では、所定の特性を有するネットを、ＦＦ直結ネットとしている。また、解析部１０４は、図２のステップＳ２０２において、レイアウト情報に基づいてＦＦ直結ネットを抽出し、抽出されたネットをステップＳ２０３において選択することとする。また、属性付加部１０５は、ステップＳ２０４において、選択されたネットに「shift」をネット属性として付加するものとする。
【０２６９】
図５０は、実施の形態７におけるステップＳ２０５の処理の詳細を示す図である。
図５０に示すように、ネットリスト生成部１０９は、属性付加部１０５から出力され、ネット属性が付加された原ネットリスト７０１を取得する（ステップＳ５００１）。
また、記憶部１０６に記憶されているライブラリ７０７を読み込む。このとき、構成条件情報名４８４に「shift」と示されているセルを抽出する。本実施形態の例では、「ＦＦ１」を抽出する（ステップＳ５００２）。
【０２７０】
ネットリスト生成部１０９は、原ネットリスト７０１から、ネット属性「shift」がネット属性４９１に付加されているネットを抽出する（ステップＳ５００３）。
次に、ネット属性「shift」のネットに接続しているセルのうち、ライブラリの構成条件情報名４８４に「shift」と示されているセルと、当該セルの対象となるリファレンス名４８７に示されるセルのペアを抽出する。本実施形態の例では、「ＦＦ１」「ＦＦ２」のセルのペアを抽出する（ステップＳ５００４）。
【０２７１】
ライブラリ７０７の「ＦＦ１」の最小遅延４８８を参照し、遅延させるべき時間を読み出すと、ＦＦ１からＦＦ２までの遅延が、最小遅延４８８に示される最小時間以上、すなわち１ナノ秒以上になるようバッファをＦＦ１とＦＦ２の間に挿入する（ステップＳ５００５）。
７．４  ネットの構成の遷移
図５１は、ネットの構成の遷移を示す図である。
【０２７２】
図５１（ａ）は、原ネットリスト７０１における一部のネットの構成を示す図である。
同図（ａ）に示すように、原ネットリスト７０１には、ＦＦ直結ネット５１０１と、フリップフロップ５１０２と、フリップフロップ５１０３とが、原ネットリスト７０１における一部のネットの構成として示されている。フリップフロップ５１０２は「ＦＦ１」のリファレンス名を有し、フリップフロップ５１０３は「ＦＦ２」のリファレンス名を有するとする。
【０２７３】
論理回路合成装置１は、ステップＳ２０２、ステップＳ２０３、ステップＳ２０４の処理を行うことで、この原ネットリスト７０１に示されるネットのうち、ＦＦ直結ネット５１０１に対し、ネット属性「shift」を付加する。そして、ステップＳ２０５、具体的にはステップＳ５００１〜ステップＳ５００５の処理を行って、新ネットリスト７１１を生成する。
【０２７４】
図５１（ｂ）は、新ネットリスト７１１における一部のネットの構成を示す図である。
同図に示すように、新ネットリスト７１１には、ＦＦ直結ネット５１０１と、フリップフロップ５１０２と、フリップフロップ５１０３と、バッファ５１０４とが、新ネットリスト７１１における一部のネットの構成として示されている。「ＦＦ１」と「ＦＦ２」との間に、バッファ５１０４が挿入され、フリップフロップ間の遅延時間が１ナノ秒以上となっている。
【０２７５】
したがって、このネットの構成は、ライブラリ７０７の最小遅延４８８で示される条件を満たす。
７．５  ネットリストの更新過程
ここで、実施の形態７における論理回路合成装置１が処理を行う過程で、ネットリストに保持されているデータがどのように更新されていくかを説明する。
【０２７６】
図５２は、ネットリストの更新過程を示す図である。
図５２（ａ）は、ステップＳ２０１の処理により、取得部１０２が取得したときの原ネットリスト７０１である。ネット属性はまだ付加されていない状態である。また、遅延情報４９７に、ネットの遅延時間が「０．９」と示されている。これは、ライブラリ７０７の最小遅延４８８に示される、ＦＦ直結ネットにおける遅延時間の制限を満たしていない。
【０２７７】
図５２（ｂ）は、ステップＳ２０４の処理により、属性付加部１０５がネットにネット属性「shift」を付加した状態で、その後ステップＳ２０５においてネットリスト生成部１０９に入力される原ネットリスト７０１である。ネット属性４９１に、ネット属性「shift」が付加されている。
図５２（ｃ）は、ネットリスト生成部１０９によって生成される新ネットリスト７１１である。インスタンスのデータ構造において、構成条件情報を適用して、バッファを挿入してフリップフロップ間の遅延時間が最小遅延４８８に示される制限を満たすよう再構成した後のネットの構成が示されている。
＜実施の形態８＞
８．１  概要
以下、本発明にかかる論理回路合成装置の、別の実施形態について説明する。
【０２７８】
実施の形態８においては、論理回路合成装置１は、ネットを観測することで故障等を検出するために配置する観測対象ネットを、所定の特性を有するネットとして選択する。ネットの観測は、例えば、フリップフロップを観測対象ネットに接続することで行う。すなわち、観測対象ネットに入力される信号と、観測対象ネットからフリップフロップに入力される信号とを比較することで、故障等を検出することができる。
【０２７９】
ただし、観測対象ネットにフリップフロップを接続する位置によっては、故障等の検出が十分ではない場合がある。例えば、観測対象ネットの入力側に近づけてフリップフロップを観測対象ネットに接続すると、観測対象ネットの中央付近などで故障があった場合に故障を検出できない。
そこで、実施の形態８においては、フリップフロップを、観測対象ネットの出力側に近づけて配置するという配置制限を、構成条件情報としてライブラリに記憶しておくこととする。
【０２８０】
また、ライブラリのデータ構造が実施の形態１と一部異なるため、実施の形態８においては、ライブラリ８０７として説明する。
また、ネットリストのデータ構造が実施の形態１と異なるため、実施の形態８においては、ネットリストをそれぞれ原ネットリスト８０１、新ネットリスト８１１とする。
その他、実施の形態１と共通する各機能ブロックについては、実施の形態１と同一の参照符号を付して説明を省略する。
【０２８１】
８．２  データ
以下、記憶部１０６が記憶しているライブラリ８０７のデータ構造と、ネットリストのデータ構造について説明する。
８．２．１  ライブラリ８０７
図５３は、ライブラリ８０７に含まれる、１のセルについてのデータ構造を示す図である。
【０２８２】
８．２．１．１  ライブラリのデータ構造
同図（ａ）に示すように、ライブラリ８０７の１件のレコード８０７ａには、リファレンス名５３０と、入力ピン５３１と、出力ピン５３２とが含まれる。リファレンス名５３０、入力ピン５３１、出力ピン５３２は、それぞれ図３のリファレンス名３０、入力ピン３１、出力ピン３２と同様にリファレンス名などを示すものであるため、説明を省略する。
【０２８３】
８．２．１．２  ピンのデータ構造
また、同図（ｂ）では、ピンのデータ構造も示している。ピンのデータ中のレコード８０７ｂには、ピン名５３３と、構成条件情報名５３４とが含まれる。
ピン名５３３、構成条件情報名５３４は、それぞれ図３のピン名３３、構成条件情報名３４と同様であるため説明を省略する。
【０２８４】
実施の形態８では、構成条件情報名５３４には、「observation」と示されている。「observation」は、観測対象ネットを示すネット属性のリファレンス名である。
８．２．１．３  構成条件情報のデータ構造
また、同図（ｃ）に、構成条件情報のデータ構造を示す。構成条件情報のデータ中のレコード８０７ｃには、構成条件情報名５３５、接続タイプ５３６、接続位置５３７とが含まれる。実施の形態１と比べて、特に、接続位置５３７を含む点で異なる。
【０２８５】
構成条件情報名５３５、接続タイプ５３６は、それぞれ図３の構成条件情報名３５、接続タイプ３６と同様であるため説明を省略する。
実施の形態８では、構成条件情報名５３５に「observation」と示されている。
接続位置５３７は、リファレンス名５３０に示されるセルを、構成条件情報名５３５に示されるリファレンス名と同一のネット属性を有するネットと接続する際の接続位置の制限を示す。接続位置５３７のデータタイプは、「start」と「middle」と「end」の３つからなるリストである。「start」の場合は、ネットの入力側にセルを接続し、「middle」の場合は、ネットの中央付近に接続し、「end」の場合は、ネットの出力側に接続することを示す。図５３（ｃ）では、接続位置５３７は、「end」と示されている。これは、リファレンス名５３０に示される「ＦＦ１」を、ネット属性「observation」を有するネットの出力側に接続すべきであることを示している。
【０２８６】
８．２．２  ネットリストのデータ構造
図５４は、実施の形態８にかかるネットリストに含まれる、１のネットのデータ構造を示す図である。
８．２．２．１  ネットのデータ構造
図５４（ａ）は、ネットリスト中の、１のネットのデータ構造を示す図である。
【０２８７】
同図（ａ）に示すように、ネットの１件のレコード５４００ａには、ネット名称５４０と、ネット属性５４１と、インスタンス名５４２とが含まれる。
ネット名称５４０、ネット属性５４１、インスタンス名５４２は、それぞれ、図４のネット名称４０、ネット属性４１、インスタンス名４２と同様であるため説明を省略する。
実施の形態８では、ネット属性５４１に「observation」と示されており、このネットに対して「observation」のネット属性が付加されていることが示されている。
【０２８８】
８．２．２．２  インスタンスのデータ構造
図５４（ｂ）は、ネットリスト中の、１のネットのインスタンスのデータ構造を示す図である。
同図（ｂ）に示すように、インスタンスのレコード５４００ｂには、インスタンス名５４３と、リファレンス名５４４と、構成条件情報名５４５と、接続位置情報５４６とが含まれる。実施の形態１と比べて、特に、接続位置情報５４６を含む点で異なる。インスタンス名５４３と、リファレンス名５４４と、構成条件情報名５４５は、それぞれ図４（ｂ）のインスタンス名４３と、リファレンス名４４と、構成条件情報名４５と同様であるため説明を省略する。
【０２８９】
接続位置情報５４６は、インスタンス名５４３に示されるインスタンスが、ネット名称５４０のネットと接続している位置示す。接続位置情報５４６には、「start」「middle」「end」のいずれかが格納される。「start」の場合は、インスタンスがネットの入力側に接続され、「middle」の場合はネットの中央付近、「end」の場合は、ネットの出力側に接続されている琴を示す。同図では「end」と示されており、リファレンス名５４４に示される「ＦＦ１」のフリップフロップが、ネット名称５４０に示される「ＮＥＴ１２」の出力側に接続されていることが示されている。
【０２９０】
８．３  ネットリスト生成処理の詳細
次に、実施の形態８における、ステップＳ２０５の処理について詳しく説明する。
なお、実施の形態８では、所定の特性を有するネットを、観測対象ネットとしている。また、解析部１０４は、図２のステップＳ２０２において、レイアウト情報に基づいて、観測対象とするネットを指定し、指定したネットを、ステップＳ２０３において選択することとする。また、属性付加部１０５は、ステップＳ２０４において、選択されたネットに「observation」をネット属性として付加するものとする。
【０２９１】
図５５は、実施の形態８におけるステップＳ２０５の処理の詳細を示す図である。
図５５に示すように、ネットリスト生成部１０９は、属性付加部１０５から出力され、ネット属性が付加された原ネットリスト８０１を取得する（ステップＳ５５０１）。
また、記憶部１０６に記憶されているライブラリ８０７を読み込む（ステップＳ５５０２）。
【０２９２】
ネットリスト生成部１０９は、原ネットリスト８０１から、ネット属性「observation」がネット属性５４１に付加されているネットを抽出する（ステップＳ５５０３）。
次に、ライブラリ８０７に基づいて、構成条件情報名５３４に「observation」が付加されているセルのリファレンス名を読み出す。実施の形態８では、「ＦＦ１」のフリップフロップを読み出す。ネットリスト生成部１０９は、ネット属性「observation」のネットに接続し、ライブラリ８０７から読み出したリファレンス名を有するセルを抽出する。すなわち、ネット属性「observation」のネットに接続している「ＦＦ１」のフリップフロップを抽出する（ステップＳ５５０４）。
【０２９３】
セルを抽出すると、抽出したセルにかかる接続位置情報５４６を参照して、抽出したセルの配置位置を調整する。すなわち、本実施形態の例では、「ＦＦ１」の接続位置情報５４６に示されている「end」という条件を満たすために、「ＦＦ１」の接続位置を、ネット属性「observation」のネットの終端になるようにする（ステップＳ５５０５）。
８．４  ネットの構成の遷移
図５６は、ネットの構成の遷移を示す図である。
【０２９４】
図５６（ａ）は、原ネットリスト８０１における一部のネットの構成を示す図である。
同図（ａ）に示すように、原ネットリスト８０１には、観測対象ネット５６０１と、フリップフロップ５６０２と、ＡＮＤセル５６０３と、出力ポート５６０４とが、原ネットリスト８０１における一部のネットの構成として示されている。フリップフロップ５６０２は観測対象ネット５６０１の入力側に接続され、また、フリップフロップ５６０２は「ＦＦ１」のリファレンス名を有するとする。
【０２９５】
論理回路合成装置１は、ステップＳ２０２、ステップＳ２０３、ステップＳ２０４の処理を行うことで、この原ネットリスト８０１に示されるネットのうち、観測対象ネット５６０４に対し、ネット属性「observation」を付加する。そして、ステップＳ２０５、具体的にはステップＳ５５０１〜ステップＳ５５０５の処理を行って、新ネットリスト８１１を生成する。
【０２９６】
図５６（ｂ）は、新ネットリスト８１１における一部のネットの構成を示す図である。
同図に示すように、新ネットリスト８１１には、上述の図５６（ａ）と同様のセルが、新ネットリスト８１１における一部のネットの構成として示されているが、図５６（ａ）と比べて、フリップフロップ５６０２が、観測対象ネット５６０１の出力側に近づけて接続されている。
【０２９７】
したがって、このネットの構成は、ライブラリ８０７の接続位置５３７で示される条件を満たす。
８．５  ネットリストの更新過程
ここで、実施の形態８における論理回路合成装置１が処理を行う過程で、ネットリストに保持されているデータがどのように更新されていくかを説明する。
【０２９８】
図５７は、ネットリストの更新過程を示す図である。
図５７（ａ）は、ステップＳ２０１の処理により、取得部１０２が取得したときの原ネットリスト８０１である。ネット属性はまだ付加されていない状態である。また、接続位置情報５４６に、「start」と示されている。
図５７（ｂ）は、ステップＳ２０４の処理により、属性付加部１０５がネットにネット属性「observation」を付加した状態で、その後ステップＳ２０５においてネットリスト生成部１０９に入力される原ネットリスト８０１である。ネット属性５４１に、ネット属性「observation」が付加されている。
【０２９９】
図５７（ｃ）は、ネットリスト生成部１０９によって生成される新ネットリスト８１１である。インスタンスのデータ構造において、構成条件情報を適用して、「ＦＦ１」のフリップフロップを、観測対象ネットの出力側に接続した後のネットの構成が示されている。
＜実施の形態９＞
９．１  概要
以下、本発明にかかる論理回路合成装置の、別の実施形態について説明する。
【０３００】
実施の形態９においては、論理回路合成装置１は、SignalEM（シグナルエレクトロマイグレーション）エラーとなっているSignalEM違反ネットを、所定の特性を有するネットとして選択する。
SignalEM違反が起きている場合、SignalEMエラーを解消するために、ビアをダブルビア化する必要がある。しかしながら、複数のレイヤーからなる基板を接続する複数のビアの全てをダブルビア化する必要はなく、また、回路の密集度を高めるためにも、ダブルビア化するビアの個数は必要最小限とし、ダブルビア化にあわせて、配線を許可するレイヤーを少なくすることが望ましい。
【０３０１】
そこで、実施の形態９においては、ライブラリにおいて、所定のセルがネットを構成する際に、ダブルビア化するビアと、配線を許可するレイヤーとを制限することとしている。
また、ライブラリのデータ構造が実施の形態１と一部異なるため、実施の形態９においては、ライブラリ９０７として説明する。
【０３０２】
また、ネットリストのデータ構造が実施の形態１と異なるため、実施の形態９においては、ネットリストをそれぞれ原ネットリスト９０１、新ネットリスト９１１とする。
その他、実施の形態１と共通する各機能ブロックについては、実施の形態１と同一の参照符号を付して説明を省略する。
９．２  データ
以下、記憶部１０６が記憶しているライブラリ９０７のデータ構造と、ネットリストのデータ構造について説明する。
【０３０３】
９．２．１  ライブラリ９０７
図５８は、ライブラリ９０７に含まれる、１のセルについてのデータ構造を示す図である。
９．２．１．１  ライブラリのデータ構造
同図（ａ）に示すように、ライブラリ９０７の１件のレコード９０７ａには、リファレンス名５８０と、入力ピン５８１と、出力ピン５８２とが含まれる。リファレンス名５８０、入力ピン５８１、出力ピン５８２は、それぞれ図３のリファレンス名３０、入力ピン３１、出力ピン３２と同様にリファレンス名などを示すものであるため、説明を省略する。
【０３０４】
９．２．１．２  ピンのデータ構造
また、同図（ｂ）では、ピンのデータ構造も示している。ピンのデータ中のレコード９０７ｂには、ピン名５８３と、構成条件情報名５８４とが含まれる。
ピン名５８３、構成条件情報名５８４は、それぞれ図３のピン名３３、構成条件情報名３４と同様であるため説明を省略する。
【０３０５】
実施の形態９では、構成条件情報名５８４には、「SignalEM」と示されている。「SignalEM」は、SignalEM違反ネットを示すネット属性のリファレンス名である。
９．２．１．３  構成条件情報のデータ構造
また、同図（ｃ）に、構成条件情報のデータ構造を示す。構成条件情報のデータ中のレコード９０７ｃには、構成条件情報名５８５、接続タイプ５８６、配線許可層５８７と、ダブルビア層５８８とが含まれる。実施の形態１と比べて、特に、配線許可層５８７、ダブルビア層５８８を含む点で異なる。
【０３０６】
構成条件情報名５８５、接続タイプ５８６は、それぞれ図３の構成条件情報名３５、接続タイプ３６と同様であるため説明を省略する。
実施の形態９では、構成条件情報名５８５に「SignalEM」と示されている。
配線許可層５８７は、リファレンス名５８０に示されるセルが使用を許可される配線レイヤーの指定を示す。同図では「Ｍ１」「Ｍ２」と示されており、リファレンス名５８０に示される「ＢＵＦ１」のバッファが、「Ｍ１」のリファレンス名を有するレイヤーと、「Ｍ２」のリファレンス名を有するレイヤーとの接続を許可されていることが示されている。
【０３０７】
ダブルビア層５８８は、ダブルビア化するビアの指定を示す。同図では「Ｖ１」と示されており、「Ｖ１」のリファレンス名を有するビアをダブルビア化することが示されている。
９．２．２  ネットリストのデータ構造
図５９は、実施の形態９にかかるネットリストに含まれる、１のネットのデータ構造を示す図である。
【０３０８】
９．２．２．１  ネットのデータ構造
図５９（ａ）は、ネットリスト中の、１のネットのデータ構造を示す図である。
同図（ａ）に示すように、ネットの１件のレコード５９００ａには、ネット名称５９０と、ネット属性５９１と、インスタンス名５９２とが含まれる。
ネット名称５９０、ネット属性５９１、インスタンス名５９２は、それぞれ、図４のネット名称４０、ネット属性４１、インスタンス名４２と同様であるため説明を省略する。
【０３０９】
実施の形態９では、ネット属性５９１に「SignalEM」と示されており、このネットに対して「SignalEM」のネット属性が付加されていることが示されている。
９．２．２．２  インスタンスのデータ構造
図５９（ｂ）は、ネットリスト中の、１のネットのインスタンスのデータ構造を示す図である。
【０３１０】
同図（ｂ）に示すように、インスタンスのレコード５９００ｂには、インスタンス名５９３と、リファレンス名５９４と、構成条件情報名５９５と、対象インスタンス５９６と、配線層５９７と、ダブルビア層５９８とがが含まれる。実施の形態１と比べて、特に、配線層５９７と、ダブルビア層５９８とを含む点で異なる。インスタンス名５９３と、リファレンス名５９４と、構成条件情報名５９５と、対象インスタンス５９６は、それぞれ図４（ｂ）のインスタンス名４３と、リファレンス名４４と、構成条件情報名４５、対象インスタンス４６と同様であるため説明を省略する。
【０３１１】
配線層５９７は、ネット名称５９０に示されるネットが配線しているレイヤーを示す。同図では「Ｍ１」「Ｍ２」と示されており、「ＮＥＴ１３」が、「Ｍ１」と「Ｍ２」のレイヤーに配線していることを示している。
ダブルビア層５９８は、ネット名称５９０に示されるネットがダブルビア化しているビアを示す。同図では「Ｖ１」と示されており、「ＮＥＴ１３」が、「Ｖ１」のビアをダブルビア化していることを示している。
【０３１２】
９．３  ネットリスト生成処理の詳細
次に、実施の形態９における、ステップＳ２０５の処理について詳しく説明する。
なお、実施の形態９では、所定の特性を有するネットを、SignalEM違反ネットとしている。また、解析部１０４は、図２のステップＳ２０２において、SignalEM違反のルールを設定する。SignalEM違反のルールとは、例えば、配線が経由するレイヤーの数や、配線長などである。ルールを設定して、ルールに違反するネットを原ネットリスト９０１から検出する処理を行う。そして、解析部１０４は、検出したネットをステップＳ２０３において選択することとする。また、属性付加部１０５は、ステップＳ２０４において、選択されたネットに「SignalEM」をネット属性として付加するものとする。
【０３１３】
図６０は、実施の形態９におけるステップＳ２０５の処理の詳細を示す図である。
図６０に示すように、ネットリスト生成部１０９は、属性付加部１０５から出力され、ネット属性が付加された原ネットリスト９０１を取得する（ステップＳ６００１）。
また、記憶部１０６に記憶されているライブラリ９０７を読み込む（ステップＳ６００２）。
【０３１４】
ネットリスト生成部１０９は、原ネットリスト９０１から、ネット属性「SignalEM」がネット属性５９１に付加されているネットを抽出する（ステップＳ６００３）。
次に、ライブラリ９０７に基づいて、構成条件情報名５８４に「SignalEM」が付加されているセルのリファレンス名５８０と、配線許可層５８７と、ダブルビア層５８８を読み出す。実施の形態９では、例えば「ＢＵＦ１」のバッファを読み出す。また、ネットリスト生成部１０９は、ネット属性「SignalEM」のネットの始端のセルを「ＢＵＦ１」とし、読み出した配線許可層５８７に示されるレイヤーのみで配線する。具体的には、このネット属性「SignalEM」のネットを、「Ｍ１」「Ｍ２」レイヤーのみで配線する（ステップＳ６００４）。
【０３１５】
また、ネットリスト生成部１０９は、読み出したダブルビア層５８８に示されるビアをダブルビア化する。具体的には、ネット属性「SignalEM」のネットにおいて、「Ｖ１」のビアをダブルビア化する（ステップＳ６００５）。
９．４  ネットの構成の遷移
図６１は、ネットの構成の遷移を示す図である。
【０３１６】
図６１（ａ）は、原ネットリスト９０１における一部のネットの構成を示す図である。
同図（ａ）に示すように、原ネットリスト９０１には、SignalEM違反ネット６１０１と、バッファ６１０２と、バッファ６１０３と、Ｍ１層配線６１０４と、Ｍ２層配線６１０５と、Ｍ３層配線６１０６と、Ｍ４層配線６１０７と、Ｖ１ビア６１０８と、Ｖ２ビア６１０９と、Ｖ３ビア６１１０とが、原ネットリスト９０１における一部のネットの構成として示されている。バッファ６１０２は「ＢＵＦ１」のリファレンス名を有し、バッファ６１０３は「ＢＵＦ２」のリファレンス名を有するとする。なお、同図の例では、レイヤー「Ｍ１」と「Ｍ２」とを接続するビアを「Ｖ１」、レイヤー「Ｍ２」と「Ｍ３」とを接続するビアを「Ｖ２」、レイヤー「Ｍ３」と「Ｍ４」とを接続するビアを「Ｖ３」としている。
【０３１７】
論理回路合成装置１は、ステップＳ２０２、ステップＳ２０３、ステップＳ２０４の処理を行うことで、この原ネットリスト９０１に示されるネットのうち、SignalEM違反ネット６１０４に対し、ネット属性「SignalEM」を付加する。そして、ステップＳ２０５、具体的にはステップＳ６００１〜ステップＳ６００５の処理を行って、新ネットリスト９１１を生成する。
【０３１８】
図６１（ｂ）は、新ネットリスト９１１における一部のネットの構成を示す図である。
同図に示すように、新ネットリスト９１１には、バッファ６１０２と、バッファ６１０３と、Ｍ１層配線６１０４と、Ｍ２層配線６１０５と、Ｖ１ビア６１０８とが、新ネットリスト９１１における一部のネットの構成として示されている。このネットの構成は、ライブラリ９０７の配線許可層５８７、ダブルビア層５８８で示される条件を満たす。
【０３１９】
９．５  ネットリストの更新過程
ここで、実施の形態９における論理回路合成装置１が処理を行う過程で、ネットリストに保持されているデータがどのように更新されていくかを説明する。
図６２は、ネットリストの更新過程を示す図である。
図６２（ａ）は、ステップＳ２０１の処理により、取得部１０２が取得したときの原ネットリスト９０１である。ネット属性はまだ付加されていない状態である。また、配線層５９７に示されるように、インスタンス名５９３に示されるインスタンスから対象インスタンス５９６に示されるインスタンスまで、「Ｍ１」「Ｍ２」「Ｍ３」「Ｍ４」の４層のレイヤーを経由している。
【０３２０】
図６２（ｂ）は、ステップＳ２０４の処理により、属性付加部１０５がネットにネット属性「SignalEM」を付加した状態で、その後ステップＳ２０５においてネットリスト生成部１０９に入力される原ネットリスト９０１である。ネット属性５９１に、ネット属性「SignalEM」が付加されている。
図６２（ｃ）は、ネットリスト生成部１０９によって生成される新ネットリスト９１１である。インスタンスのデータ構造において、構成条件情報を適用して、配線レイヤーを「Ｍ１」「Ｍ２」とし、ダブルビア化するビアを「Ｖ１」としてSignalEM違反を解消した後のネットの構成が示されている。
＜実施の形態１０＞
１０．１  概要
以下、本発明にかかる論理回路合成装置の、別の実施形態について説明する。
【０３２１】
実施の形態１０においては、論理回路合成装置１は、所定の大きさのクロストークが発生しているクロストーク発生ネットを、所定の特性を有するネットとして選択する。クロストークとは、配線が、並行して配置されている配線から悪影響を受けることである。したがって、並行して配線されている長さを所定の長さより短くすることで、クロストークを解消することができる。
【０３２２】
また、ライブラリのデータ構造が実施の形態１と一部異なるため、実施の形態１０においては、ライブラリ１００７として説明する。
また、ネットリストのデータ構造が実施の形態１と異なるため、実施の形態１０においては、ネットリストをそれぞれ原ネットリスト１００１、新ネットリスト１０１１とする。
【０３２３】
その他、実施の形態１と共通する各機能ブロックについては、実施の形態１と同一の参照符号を付して説明を省略する。
１０．２  データ
以下、記憶部１０６が記憶しているライブラリ１００７のデータ構造と、ネットリストのデータ構造について説明する。
【０３２４】
１０．２．１  ライブラリ１００７
図６３は、ライブラリ１００７に含まれる、１のセルについてのデータ構造を示す図である。
１０．２．１．１  ライブラリのデータ構造
同図（ａ）に示すように、ライブラリ１００７の１件のレコード１００７ａには、リファレンス名６３０と、入力ピン６３１と、出力ピン６３２とが含まれる。リファレンス名６３０、入力ピン６３１、出力ピン６３２は、それぞれ図３のリファレンス名３０、入力ピン３１、出力ピン３２と同様にリファレンス名などを示すものであるため、説明を省略する。
【０３２５】
１０．２．１．２  ピンのデータ構造
また、同図（ｂ）では、ピンのデータ構造も示している。ピンのデータ中のレコード１００７ｂには、ピン名６３３と、構成条件情報名６３４とが含まれる。
ピン名６３３、構成条件情報名６３４は、それぞれ図３のピン名３３、構成条件情報名３４と同様であるため説明を省略する。
【０３２６】
実施の形態１０では、構成条件情報名６３４には、「crosstalk」と示されている。「crosstalk」は、クロストーク発生ネットを示すネット属性のリファレンス名である。
１０．２．１．３  構成条件情報のデータ構造
また、同図（ｃ）に、構成条件情報のデータ構造を示す。構成条件情報のデータ中のレコード１００７ｃには、構成条件情報名６３５、接続タイプ６３６、最大並行配線長６３７とが含まれる。実施の形態１と比べて、特に、最大並行配線長６３７を含む点で異なる。
【０３２７】
構成条件情報名６３５、接続タイプ６３６は、それぞれ図３の構成条件情報名３５、接続タイプ３６と同様であるため説明を省略する。実施の形態１０では、構成条件情報名６３５に「crosstalk」と示されている。
最大並行配線長６３７は、リファレンス名６３０に示されるセルが接続するネットに対してクロストークの影響を与えるネットとの最大並行配線長の制限を示す。図６３（ｃ）では、「３０」と示されている。これは、リファレンス名６３０に示される「ＢＵＦ１」と接続するネットと、クロストークの影響を与える他のネットとが並行して配置されている配線長を３０以下とすることを示している。
【０３２８】
なお、最大並行配線長６３７のデータタイプは数値である。
１０．２．２  ネットリストのデータ構造
図６４は、実施の形態１０にかかるネットリストに含まれる、１のネットのデータ構造を示す図である。
１０．２．２．１  ネットのデータ構造
図６４（ａ）は、ネットリスト中の、１のネットのデータ構造を示す図である。
【０３２９】
同図（ａ）に示すように、ネットの１件のレコード６４００ａには、ネット名称６４０と、ネット属性６４１と、インスタンス名６４２とが含まれる。
ネット名称６４０、ネット属性６４１、インスタンス名６４２は、それぞれ、図４のネット名称４０、ネット属性４１、インスタンス名４２と同様であるため説明を省略する。
実施の形態１０では、ネット属性６４１に「crosstalk」と示されており、このネットに対して「crosstalk」のネット属性が付加されていることが示されている。
【０３３０】
１０．２．２．２  インスタンスのデータ構造
図６４（ｂ）は、ネットリスト中の、１のネットのインスタンスのデータ構造を示す図である。
同図（ｂ）に示すように、インスタンスのレコード６４００ｂには、インスタンス名６４３と、リファレンス名６４４と、構成条件情報名６４５と、最大並行配線長６４６とが含まれる。実施の形態１と比べて、特に、最大並行配線長６４６を含む点で異なる。インスタンス名６４３と、リファレンス名６４４と、構成条件情報名６４５とは、それぞれ図４（ｂ）のインスタンス名４３と、リファレンス名４４と、構成条件情報名４５と同様であるため説明を省略する。
【０３３１】
最大並行配線長６４６は、ネット名称６４０に示されるネットと、他のネットとが並行して配置されている最大の並行配線長を示す。同図では「２０」と示されており、他のネットとの並行配線長の最大が２０であることが示されている。
１０．３  ネットリスト生成処理の詳細
次に、実施の形態１０における、ステップＳ２０５の処理について詳しく説明する。
【０３３２】
なお、実施の形態１０では、所定の特性を有するネットを、クロストーク発生ネットとしている。また、解析部１０４は、図２のステップＳ２０２において、選択対象となるクロストーク発生ネットの、クロストークの大きさの入力を受け付けて、ネットリストを解析して、受け付けた大きさ以上のクロストークが発生しているネットを抽出する。抽出されたネットをステップＳ２０３において選択することとする。また、属性付加部１０５は、ステップＳ２０４において、選択されたネットに「crosstalk」をネット属性として付加するものとする。
【０３３３】
図６５は、実施の形態１０におけるステップＳ２０５の処理の詳細を示す図である。
図６５に示すように、ネットリスト生成部１０９は、属性付加部１０５から出力され、ネット属性が付加された原ネットリスト１００１を取得する（ステップＳ６５０１）。
また、記憶部１０６に記憶されているライブラリ１００７を読み込む（ステップＳ６５０２）。
【０３３４】
ネットリスト生成部１０９は、原ネットリスト１００１から、ネット属性「crosstalk」がネット属性６４１に付加されているネットを抽出する（ステップＳ６５０３）。
構成条件情報名６３４に「crosstalk」を有するセルを、ライブラリ１００７から選択する（ステップＳ６５０４）。
ネットリスト生成部１０９は、ネット属性「crosstalk」を有するネットの始端に接続されているセルのライブラリに、構成条件情報名６３４が「crosstalk」を有していれば、そのセルの最大並行配線長６３７を読み出す。また、ネット属性「crosstalk」を有するネットに影響を与えるネットのセグメントを抽出する（ステップＳ６５０５）。セグメントとは、ネットの一部分である。
【０３３５】
抽出したセグメントを対象として、読み出した最大並行配線長６３７に示される制限を満たすように、並行配線長を調整する（ステップＳ６５０６）。具体的には、抽出したセグメントと、ネット属性「crosstalk」を有するネットとの最大並行配線長を、最大並行配線長６３７に示される距離である３０以下にする。
１０．４  ネットの構成の遷移
図６６は、ネットの構成の遷移を示す図である。
【０３３６】
図６６（ａ）は、原ネットリスト１００１における一部のネットの構成を示す図である。
同図（ａ）に示すように、原ネットリスト１００１には、クロストーク発生ネット６６０１と、バッファ６６０２と、ネットのセグメント６６０３、６６０４、６６０５とが、原ネットリスト１００１における一部のネットの構成として示されている。バッファ６６０２は「ＢＵＦ１」のリファレンス名を有し、「crosstalk」に対応する構成条件情報を記憶しているとする。また、この例では、クロストーク発生ネット６６０１にクロストークの影響を与えているのは、セグメント６６０３のみであり、セグメント６６０４、６６０５は距離が離れていてクロストークの影響を与えないとする。
【０３３７】
論理回路合成装置１は、ステップＳ２０２、ステップＳ２０３、ステップＳ２０４の処理を行うことで、この原ネットリスト１００１に示されるネットのうち、クロストーク発生ネット６６０１に対し、ネット属性「crosstalk」を付加する。そして、ステップＳ２０５、具体的にはステップＳ６５０１〜ステップＳ６５０６の処理を行って、新ネットリスト１０１１を生成する。
【０３３８】
図６６（ｂ）は、新ネットリスト１０１１における一部のネットの構成を示す図である。
同図に示すように、新ネットリスト１０１１には、同図（ａ）と同様のネット等が、新ネットリスト３１１における一部のネットの構成として示されているが、クロストーク発生ネット６６０１にクロストークの影響を与えているセグメント６６０３と、クロストーク発生ネット６６０１との並行配線長が同図（ａ）と比較して短くなっている。
【０３３９】
１０．５  ネットリストの更新過程
ここで、実施の形態１０における論理回路合成装置１が処理を行う過程で、ネットリストに保持されているデータがどのように更新されていくかを説明する。
図６７は、ネットリストの更新過程を示す図である。
図６７（ａ）は、ステップＳ２０１の処理により、取得部１０２が取得したときの原ネットリスト１００１である。ネット属性はまだ付加されていない状態である。また、最大並行配線長６４６に、「４０」と示されている。これは、「ＢＵＦ１」についてのライブラリの最大並行配線長６３７に示される条件を満たしていない。
【０３４０】
図６７（ｂ）は、ステップＳ２０４の処理により、属性付加部１０５がネットにネット属性「crosstalk」を付加した状態で、その後ステップＳ２０５においてネットリスト生成部１０９に入力される原ネットリスト１００１である。ネット属性６４１に、ネット属性「crosstalk」が付加されている。
図６７（ｃ）は、ネットリスト生成部１０９によって生成される新ネットリスト１０１１である。インスタンスのデータ構造において、構成条件情報を適用して、最大並行配線長６４６が「２０」となった後のネットの構成が示されている。
＜補足＞
以上のように本発明にかかる論理回路合成装置について実施の形態に基づいて説明したが、以下のように変形することもでき、本発明は上述の実施の形態で示した論理回路合成装置に限られないことは勿論である。
（１）例えば、既存のセルのライブラリ、例えばLibertyフォーマットのライブラリに、構成条件情報に対応する情報を付加することとしてもよい。Libertyフォーマットにおいては、セルの接続対象を制限するために、接続クラス属性（connection_class）を用いているが、この接続クラス属性に、構成条件情報を付加するとよい。ライブラリの記述方法は、各実施形態のデータで説明した例で説明すると、例えば実施の形態１の図３の場合、リファレンス名３０を「Cell()」、構成条件情報名３４を「connection_class_constraint()」と表記し、さらに、構成条件情報のデータ構造に含まれる接続タイプ３６を「type」、対象となるリファレンス名３７を「related_cell」、最大距離３８を「max_distance」と表記して、「ＢＵＦ１」についてのライブラリを、
Cell(BUF1){
pin(A){
connection_class_constraint(hierarchy){
type : connected_cell ;
related_cell : " BUF2 " ;
max_distance : 30 ;
}
}
}
と表現する。
【０３４１】
また、同様に、実施の形態２の場合は、
Cell(FF1){
pin(Q){
connection_class_constraint(congestion){
type : all_cell ;
related_cell : " FF2 " ;
min_distance : 20 ;
}
}
}
などと表現する。
【０３４２】
また、同様に、実施の形態２の変形例１の場合は、方向１３９を「direction」として、
Cell(FF1){
pin(Q){
connection_class_constraint(congestion){
type : all_cell ;
related_cell : " FF2 " ;
min_distance : 20 ;
direction : vertical
}
connection_class_constraint(congestion){
type : all_cell ;
related_cell : " FF3 " ;
min_distance : 40 ;
direction : horizon
}
}
}
などと表現する。
【０３４３】
また、同様に、実施の形態３の場合は、最小段数１８８を「min_level」として、
Cell(BUF1){
pin(Y){
connection_class_constraint(glitch){
type : connected_cell ;
related_cell : " FF1 FF2 FF3 " ;
min_distance : 2 ;
}
}
}
などと表現する。
【０３４４】
また、同様に、実施の形態４の場合は、最大周波数２３７を「max_frequency」として、
Cell(BUF1){
pin(A){
connection_class_constraint(hige_frequency){
type : connected_cell ;
max_frequency : 300 ;
}
}
}
Cell(BUF2){
pin(A){
connection_class_constraint(hige_frequency){
type : connected_cell ;
max_frequency : 600 ;
}
}
}
などと表現する。
【０３４５】
また、同様に、実施の形態５の場合は、接続インスタンス数２８７を「number」として、
Cell(REG1){
pin(A){
connection_class_constraint(BUS){
type : connected_cell ;
number : 1 ;
}
}
}
などと表現する。
【０３４６】
また、同様に、実施の形態６の場合は、
Cell(FF1){
pin(Q){
connection_class_constraint(toggle){
type : all_cell ;
related_cell : " FF2 FF3" ;
min_distance : 20 ;
}
}
}
などと表現する。
【０３４７】
また、同様に、実施の形態６の変形例１の場合は、最小ｒｏｗ間隔３８８を「min_row」として、
Cell(FF1){
pin(Q){
connection_class_constraint(toggle){
type : all_cell ;
related_cell : " FF2 FF3" ;
min_row : 1 ;
}
}
}
などと表現する。
【０３４８】
また、同様に、実施の形態６の変形例２の場合は、最小ストラップ間隔４３８を「min_strap」として、
Cell(FF1){
pin(Q){
connection_class_constraint(toggle){
type : all_cell ;
related_cell : " FF2 FF3" ;
min_strap : 1 ;
}
}
}
などと表現する。
【０３４９】
また、同様に、実施の形態７の場合は、最小遅延４８８を「min_delay」として、
Cell(FF1){
pin(Q){
connection_class_constraint(shift){
type : connected_cell ;
related_cell : " FF2" ;
min_delay : 1 ;
}
}
}
などと表現する。
【０３５０】
また、同様に、実施の形態８の場合は、接続位置５３７を「position」として、
Cell(FF1){
pin(D){
connection_class_constraint(observation){
type : connected_cell ;
position : end ;
}
}
}
などと表現する。
【０３５１】
また、同様に、実施の形態９の場合は、配線許可層５８７を「layer」、ダブルビア層５８８を「double_via」として、
Cell(BUF1){
pin(Y){
connection_class_constraint(SignalEM){
type : connected_cell ;
layer : M1 , M2 ;
double_via : V1 ;
}
}
}
などと表現する。
【０３５２】
また、同様に、実施の形態１０の場合は、最大並行配線長６３７を「max_parallel_length」として、
Cell(BUF1){
pin(Y){
connection_class_constraint(crosstalk){
type : connected_cell ;
max_parallel_length : 30 ;
}
}
}
などと表現する。
【０３５３】
また、Libertyフォーマット以外にも、さまざまなライブラリフォーマットにおいて、構成条件情報を付加して上述の論理合成を行うこととしてもよい。
（２）上記の情報処理装置は、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記ＲＡＭまたはハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、情報処理装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
（３）上記の情報処理装置を構成する構成要素の一部または全部は、１個のシステムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ：大規模集積回路）から構成されているとしてもよい。システムＬＳＩは、複数の構成部を１個のチップ上に集積して製造された超多機能ＬＳＩであり、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどを含んで構成されるコンピュータシステムである。前記ＲＡＭには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、システムＬＳＩは、その機能を達成する。
（４）上記の情報処理装置を構成する構成要素の一部または全部は、情報処理装置に脱着可能なＩＣカードまたは単体のモジュールから構成されているとしてもよい。前記ＩＣカードまたは前記モジュールは、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどから構成されるコンピュータシステムである。前記ＩＣカードまたは前記モジュールは、上記の超多機能ＬＳＩを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、前記ＩＣカードまたは前記モジュールは、その機能を達成する。このＩＣカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
（５）本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
【０３５４】
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ）、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。
【０３５５】
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。
【０３５６】
また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送することにより、または前記プログラムまたは前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
（６）上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
【産業上の利用可能性】
【０３５７】
本発明の論理回路合成装置は、セルが接続するネットの特性に応じて、所定の制限を満たすように自動的に合成するので、論理回路の開発期間・工数短縮に有用である。
【図面の簡単な説明】
【０３５８】
【図１】論理回路合成装置１の機能ブロック図。
【図２】論理回路合成装置１の動作を示すフローチャート。
【図３】ライブラリ１０７に含まれる、１のセルについてのデータ構造を示す図。
【図４】ネットリストに含まれる、１のネットについてのデータ構造を示す図。
【図５】構成条件情報に示される条件を満たすネットリストを合成部１０８が生成する処理の詳細を示すフローチャート。
【図６】ネットの構成の遷移を示す図。
【図７】ネットリストの更新過程を示す図。
【図８】ライブラリ２０７に含まれる、１のセルについてのデータ構造を示す図。
【図９】実施の形態２にかかるネットリストに含まれる、１のネットについてのデータ構造を示す図。
【図１０】実施の形態２におけるステップＳ２０５の処理の詳細を示す図。
【図１１】ネットの構成の遷移を示す図。
【図１２】ネットリストの更新過程を示す図。
【図１３】ライブラリ２０７−１に含まれる、１のセルについてのデータ構造を示す図である。
【図１４】実施の形態２の変形例にかかるネットリストに含まれる、１のネットについてのデータ構造を示す図。
【図１５】実施の形態２の変形例におけるステップＳ２０５の処理の詳細を示す図。
【図１６】ネットの構成の遷移を示す図。
【図１７】ネットリストの更新過程を示す図。
【図１８】ライブラリ３０７に含まれる、１のセルについてのデータ構造を示す図。
【図１９】実施の形態３にかかるネットリストに含まれる、１のネットのデータ構造を示す図。
【図２０】実施の形態３におけるステップＳ２０５の処理の詳細を示す図。
【図２１】ネットの構成の遷移を示す図。
【図２２】ネットリストの更新過程を示す図。
【図２３】ライブラリ４０７に含まれる、１のセルについてのデータ構造を示す図。
【図２４】実施の形態４にかかるネットリストに含まれる、１のネットのデータ構造を示す図。
【図２５】実施の形態３におけるステップＳ２０５の処理の詳細を示す図。
【図２６】ネットの構成の遷移を示す図。
【図２７】ネットリストの更新過程を示す図。
【図２８】ライブラリ５０７に含まれる、１のセルについてのデータ構造を示す図。
【図２９】実施の形態５にかかるネットリストに含まれる、１のネットのデータ構造を示す図。
【図３０】実施の形態５におけるステップＳ２０５の処理の詳細を示す図。
【図３１】ネットの構成の遷移を示す図。
【図３２】ネットリストの更新過程を示す図。
【図３３】ライブラリ６０７に含まれる、１のセルについてのデータ構造を示す図
【図３４】実施の形態６にかかるネットリストに含まれる、１のネットのデータ構造を示す図。
【図３５】実施の形態６におけるステップＳ２０５の処理の詳細を示す図。
【図３６】ネットの構成の遷移を示す図。
【図３７】ネットリストの更新過程を示す図。
【図３８】ライブラリ６０７−１に含まれる、１のセルについてのデータ構造を示す図。
【図３９】実施の形態６の変形例１にかかるネットリストに含まれる、１のネットのデータ構造を示す図。
【図４０】実施の形態６の変形例１におけるステップＳ２０５の処理の詳細を示す図。
【図４１】ネットの構成の遷移を示す図。
【図４２】ネットリストの更新過程を示す図。
【図４３】ライブラリ６０７−２に含まれる、１のセルについてのデータ構造を示す図。
【図４４】実施の形態６の変形例２にかかるネットリストに含まれる、１のネットのデータ構造を示す図。
【図４５】実施の形態６の変形例１におけるステップＳ２０５の処理の詳細を示す図。
【図４６】ネットの構成の遷移を示す図。
【図４７】ネットリストの更新過程を示す図。
【図４８】ライブラリ７０７に含まれる、１のセルについてのデータ構造を示す図。
【図４９】実施の形態７にかかるネットリストに含まれる、１のネットのデータ構造を示す図。
【図５０】実施の形態７におけるステップＳ２０５の処理の詳細を示す図。
【図５１】ネットの構成の遷移を示す図。
【図５２】ネットリストの更新過程を示す図。
【図５３】ライブラリ８０７に含まれる、１のセルについてのデータ構造を示す図。
【図５４】実施の形態８にかかるネットリストに含まれる、１のネットのデータ構造を示す図。
【図５５】実施の形態８におけるステップＳ２０５の処理の詳細を示す図。
【図５６】ネットの構成の遷移を示す図。
【図５７】ネットリストの更新過程を示す図。
【図５８】ライブラリ９０７に含まれる、１のセルについてのデータ構造を示す図。
【図５９】実施の形態９にかかるネットリストに含まれる、１のネットのデータ構造を示す図。
【図６０】実施の形態９におけるステップＳ２０５の処理の詳細を示す図。
【図６１】ネットの構成の遷移を示す図。
【図６２】ネットリストの更新過程を示す図。
【図６３】ライブラリ１００７に含まれる、１のセルについてのデータ構造を示す図。
【図６４】実施の形態１０にかかるネットリストに含まれる、１のネットのデータ構造を示す図。
【図６５】実施の形態１０におけるステップＳ２０５の処理の詳細を示す図。
【図６６】ネットの構成の遷移を示す図。
【図６７】ネットリストの更新過程を示す図。
【符号の説明】
【０３５９】
１  論理回路合成装置
１０２  取得部
１０３  ネット選択部
１０４  解析部
１０５  属性付加部
１０６  記憶部
１０８  合成部
１０９  ネットリスト生成部
１１０  ネットリスト出力部
【図１】
2008140061.tif 000003
【図２】
2008140061.tif 000004
【図３】
2008140061.tif 000005
【図４】
2008140061.tif 000006
【図５】
2008140061.tif 000007
【図６】
2008140061.tif 000008
【図７】
2008140061.tif 000009
【図８】
2008140061.tif 000010
【図９】
2008140061.tif 000011
【図１０】
2008140061.tif 000012
【図１１】
2008140061.tif 000013
【図１２】
2008140061.tif 000014
【図１３】
2008140061.tif 000015
【図１４】
2008140061.tif 000016
【図１５】
2008140061.tif 000017
【図１６】
2008140061.tif 000018
【図１７】
2008140061.tif 000019
【図１８】
2008140061.tif 000020
【図１９】
2008140061.tif 000021
【図２０】
2008140061.tif 000022
【図２１】
2008140061.tif 000023
【図２２】
2008140061.tif 000024
【図２３】
2008140061.tif 000025
【図２４】
2008140061.tif 000026
【図２５】
2008140061.tif 000027
【図２６】
2008140061.tif 000028
【図２７】
2008140061.tif 000029
【図２８】
2008140061.tif 000030
【図２９】
2008140061.tif 000031
【図３０】
2008140061.tif 000032
【図３１】
2008140061.tif 000033
【図３２】
2008140061.tif 000034
【図３３】
2008140061.tif 000035
【図３４】
2008140061.tif 000036
【図３５】
2008140061.tif 000037
【図３６】
2008140061.tif 000038
【図３７】
2008140061.tif 000039
【図３８】
2008140061.tif 000040
【図３９】
2008140061.tif 000041
【図４０】
2008140061.tif 000042
【図４１】
2008140061.tif 000043
【図４２】
2008140061.tif 000044
【図４３】
2008140061.tif 000045
【図４４】
2008140061.tif 000046
【図４５】
2008140061.tif 000047
【図４６】
2008140061.tif 000048
【図４７】
2008140061.tif 000049
【図４８】
2008140061.tif 000050
【図４９】
2008140061.tif 000051
【図５０】
2008140061.tif 000052
【図５１】
2008140061.tif 000053
【図５２】
2008140061.tif 000054
【図５３】
2008140061.tif 000055
【図５４】
2008140061.tif 000056
【図５５】
2008140061.tif 000057
【図５６】
2008140061.tif 000058
【図５７】
2008140061.tif 000059
【図５８】
2008140061.tif 000060
【図５９】
2008140061.tif 000061
【図６０】
2008140061.tif 000062
【図６１】
2008140061.tif 000063
【図６２】
2008140061.tif 000064
【図６３】
2008140061.tif 000065
【図６４】
2008140061.tif 000066
【図６５】
2008140061.tif 000067
【図６６】
2008140061.tif 000068
【図６７】
2008140061.tif 000069