JP2008140061A - 論理回路合成装置 - Google Patents

論理回路合成装置 Download PDF

Info

Publication number
JP2008140061A
JP2008140061A JP2006324897A JP2006324897A JP2008140061A JP 2008140061 A JP2008140061 A JP 2008140061A JP 2006324897 A JP2006324897 A JP 2006324897A JP 2006324897 A JP2006324897 A JP 2006324897A JP 2008140061 A JP2008140061 A JP 2008140061A
Authority
JP
Japan
Prior art keywords
net
configuration
name
condition information
cell
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2006324897A
Other languages
English (en)
Inventor
Shoji Takaoka
昇二 高岡
Atsushi Yamamoto
敦志 山本
Tomohiro Tsuda
朋弘 津田
Susumu Hiramatsu
享 平松
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2006324897A priority Critical patent/JP2008140061A/ja
Priority to US11/947,417 priority patent/US20080250379A1/en
Publication of JP2008140061A publication Critical patent/JP2008140061A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Logic Circuits (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

【課題】クロストーク遅延やシグナルエレクトロマイグレーションなど、ネットの構成に起因するエラーが発生した際に、ネットの構成を設計者が調整する必要がありLSI設計効率が低下する。
【解決手段】論理回路合成装置は、予め所定の特性を有するネットについて、特性に対応してネットの構成が満たすべき条件をセルのライブラリに記憶しておく。ネットリストから、所定の特性を有するネットを選択する。選択したネットにおいて、ライブラリ中に記憶されている条件に従って論理合成を行う。
【選択図】図2

Description

本発明は、論理回路を合成する技術に関し、特に、論理回路を最適化する技術に関する。
大規模かつ高性能のLSI(Large Scale Integration)の設計を短期間で行うために、論理回路の生成を自動的に行う論理回路合成装置が広く利用されている。
論理回路合成装置は、ハードウェア記述言語(HDL:Hardware Description Language)で表現されたRTL(register transfer level)記述などに基づいて、ゲートレベルの論理展開を行う。論理展開後、消費電力やチップ面積や遅延時間などを調整するために、論理の最適化を行う。最適化の後、論理ゲートやフリップフロップなどを、所望の半導体製造技術のライブラリ、例えばLiberty(.lib)フォーマットのライブラリに用意されたマクロセルに置き換えるマッピングを行う。
このようにして、論理回路合成装置は、セルとセルとの接続関係を示すネットについての情報を複数含み、論理回路を示すネットリストを出力する。
従来においては、性能がより最適化された論理回路を論理回路合成装置に合成させるために、セルが所定のセルまたはネットとのみ接続するようセルの接続対象を制限し、その制限のもとで論理回路合成装置に論理合成を行わせる技術が用いられている(下記の特許文献1参照)。
具体的には、論理回路合成装置は、ハイインピーダンス状態の信号が入力されると貫通電流が発生する論理素子と、貫通電流が発生しない論理素子とを区別して記憶しておく。ハイインピーダンス状態の信号が入力されると貫通電流が発生する論理素子とは、例えばインバータ論理素子である。
回路に貫通電流が発生すると、回路の消費電力が大きくなるので、論理回路合成装置は、ある論理回路を合成する際に、ハイインピーダンス状態の信号が流れるバスと、インバータ論理素子の入力ピンとを接続しないよう、例えば論理式が等価な別の構成の論理回路に置き換えるなどして合成を行う。これにより、貫通電流が発生しない論理回路を合成することができる。
特開平10−84270号公報
ところで、小型かつ高機能の集積回路の需要が高まるにつれて、回路の密集度を高めるために、セルを接続する配線の幅が微細化してきている。配線幅が微細化すると、配線が他の配線やセルから受ける悪影響が大きくなり、配線の長さやネットに接続するセルの配置位置など、ネットの構成に起因するエラーの悪影響が無視できなくなっている。エラーとしては、例えば、配線が長配線であるために発生するシグナルエレクトロマイグレーションエラーや、並行して配置されている配線から受けるクロストーク遅延などがある。
この悪影響に対処するために、従来、回路の設計者は、合成後の論理回路をシミュレーション等によって解析し、遅延などのエラーが発生しているネットを特定する。そして、エラーを解消すべく設計者がネットの構成を調整した上で再度論理合成をやり直すという作業を繰り返している。そのため、設計者がエラーを取り除くための作業量が大きくなっており、回路の設計が長期化するという問題が発生している。
そこで、本発明は、論理回路の設計のさらなる短縮化を図り、LSIの設計効率を高めるため、自動的に、ネットの構成に起因する悪影響を除去して論理回路を合成する論理回路合成装置を提供することを目的とする。
上記課題を解決するため、本発明の論理回路合成装置は、1の特性を有するネットについて、前記特性に対応して、前記特性を有するネットの構成が満たすべき条件を示す構成条件情報を記憶している記憶手段と、複数のネットの構成を示す原ネット構成情報を取得する取得手段と、前記取得した原ネット構成情報に示される前記複数のネットから、前記1の特性を有するネットを選択する選択手段と、前記原ネット構成情報に示される前記複数のネットのうち、前記選択したネットを対象として、前記記憶されている前記構成条件情報に示される前記構成の条件を満たす新ネット構成情報を生成する生成手段とを備えることを特徴とする。
上述の構成を備える論理回路合成装置は、1の特性に対応して、前記特性を有するネットの構成が満たすべき条件を示す構成条件情報を記憶している。ここで、特性を有するネットとは、例えば遅延やエラーが発生しているネットである。また、原ネット構成情報にあるネットのうちの1の特性を有するネットを対象として、構成条件情報に示される条件を満たす新ネット構成情報を生成する。
したがって、論理回路合成装置は、ネットの特性に対応して、ネットの構成を最適化することができ、回路設計者の作業を要することなく、当該特性を有するネットに対して、特性に対応した条件を満たすようにネットの構成を調整して、新ネット構成情報を生成することができる。
ネットの構成に起因するエラーとしては、ネットの配線長によるものがある。例えば、上述のように、ネットの配線長が長すぎると、シグナルエレクトロマイグレーションエラーなどが発生する。
そこで、前記記憶手段は、前記特性に対応して、前記特性を有するネットの配線長に関する条件を前記構成条件情報として記憶し、前記生成手段は、前記配線長に関する条件を満たす前記新ネット構成情報を生成するとしてもよい。
これにより、ネットの配線長を適切に調整することができる。
より具体的に、ネットの特性を挙げると、例えば、ネットの特性として、ブロックの境界にまたがるネットがある。ブロックの境界にあるネットが長配線であると、シグナルエレクトロマイグレーションエラーや、Slewエラーが発生する。
そこで、前記特性を有するネットとは、ブロックの境界にまたがる境界ネットであり、前記記憶手段は、前記境界ネットの最大配線長の制限を前記構成条件情報として記憶しており、前記選択手段は、前記境界ネットを前記選択し、前記生成手段は、前記選択した前記境界ネットの配線長が、前記最大配線長の制限を満たす前記新ネット構成情報を生成するとしてもよい。
これにより、シグナルエレクトロマイグレーションエラーやSlewエラーの発生を防ぐことができる。
また、ネットの配線長が短すぎることも問題となることがある。例えば、ネットの密集度が所定度合以上であると、セルの配置が困難になる。このような場合は、例えば、ピンが多く混雑しやすいセル種を、混雑しているネットから離すことで配線混雑を防ぐことができる。
そこで、前記特性を有するネットとは、ネットの密集度が所定値以上である混雑しているネットであり、前記記憶手段は、前記混雑しているネットの最小配線長の制限を前記構成条件情報として記憶しており、前記選択手段は、前記混雑しているネットを前記選択し、前記生成手段は、前記選択した前記混雑しているネットの配線長が、前記最小配線長の制限を満たす前記新ネット構成情報を生成するとしてもよい。
これにより、配線混雑を防ぐことができる。
この他にも、特定の高さのトグル率が発生しているネットがあると、電圧の切り替わりが頻繁なために、局所的な発熱が起こりやすくなる。
そこで、前記特性を有するネットとは、所定の高さのトグル率となっているネットである高トグルネットであり、前記記憶手段は、前記高トグルネットの最小配線長の制限を前記構成条件情報として記憶しており、前記選択手段は、前記高トグルネットを前記選択し、前記生成手段は、前記選択した前記高トグルネットの配線長が、前記最小配線長の制限を満たす前記新ネット構成情報を生成するとしてもよい。
これにより、例えば、消費電力が大きいセルを、最小配線長以上の長さとなるようにネットから離すことで、局所的な発熱を防ぐことができる。
また、上述のように、ネットの配線長が問題となる場合の他に、ネットの配線方向が問題となることがある。
例えば、回路において、水平方向にセルが集中すると、垂直方向の配線リソースが少ないセル種を配置しにくくなる。
そこで、前記記憶手段は、前記特性に対応して、前記特性を有するネットの、回路上の配線方向に関する条件を前記構成条件情報として記憶し、前記生成手段は、前記配線方向に関する条件を満たす前記新ネット構成情報を生成することとしてもよい。
これにより、水平方向の配線リソースが少ないセル種や、垂直方向の配線リソースが少ないセル種を、適切に配置することができる。
より具体的には、前記特性を有するネットとは、ネットの密集度が所定値以上である混雑しているネットであり、前記記憶手段は、前記混雑しているネットの配線方向の制限を前記構成条件情報として記憶しており、前記選択手段は、前記混雑しているネットを前記選択し、前記生成手段は、前記選択した前記混雑しているネットの配線方向が、前記配線方向の制限を満たす前記新ネット構成情報を生成することとしてもよい。
これにより、混雑しているネットから離すように、配線リソースに応じて、セル種を適切に配置することができ、配線混雑を防ぐことができる。
また、ネットの配線長や配線方向の他に、所定のセルの間にあるセルの個数が適切でないために問題となることがある。例えば、信号がフリップフロップの出力ピンから、他のフリップフロップの入力ピンに到達するまでが速すぎるためにホールドエラーが起こることがある。
そこで、前記記憶手段は、前記特性に対応して、ネットを構成しているセルの間に配置すべき所定のセルの個数の制限を示す段数制限を前記構成条件情報として記憶しており、前記生成手段は、前記段数制限を満たす前記新ネット構成情報を生成することとしてもよい。
これにより、所定のセル間に配置するセルの段数を制限して、遅延や同期エラーの発生を回避することができる。
より具体的には、前記特性を有するネットとは、所定の高さのグリッチが発生しているグリッチ発生ネットであり、前記記憶手段は、前記グリッチ発生ネットにおいて、ネットを構成しているセルの間に配置すべき所定セルの個数の制限を示す段数制限を前記構成条件情報として記憶しており、前記選択手段は、前記グリッチ発生ネットを前記選択し、前記生成手段は、前記選択した前記グリッチ発生ネットにおける所定のセル種間にあるセルの個数が前記段数制限を満たす前記新ネット構成情報を生成することとしてもよい。
グリッチが発生しているネットにおいては、バッファを挿入することで、グリッチエラーを解消することができるため、上述した構成を備えることにより、グリッチエラーを解消することができる。
また、前記特性を有するネットとは、フリップフロップが直結しているFF直結ネットであり、前記記憶手段は、前記FF直結ネットにおいて、フリップフロップ間の遅延時間の制限を前記構成条件情報として記憶しており、前記選択手段は、前記FF直結ネットを前記選択し、前記生成手段は、前記選択した前記FF直結ネットにおいて、フリップフロップ間の遅延時間の制限が前記構成条件情報に示される条件を満たすようフリップフロップ間に挿入するバッファの数を制御して前記新ネット構成情報を生成することとしてもよい。
フリップフロップが直結しているネットでは、信号到達が速すぎることによりホールドエラーが発生することがあるが、上述した構成を備えることにより、バッファを挿入してホールドエラーを解消することができる。
また、ネットに伝播しているパルスの周波数が高いと、遅延値が大きいセル等に高い周波数のパルスが入ることでパルスが消失する、いわゆるパルスリジェクトが発生することがある。
そこで、前記特性を有するネットとは、高周波の信号が伝播している高周波ネットであり、前記記憶手段は、所定のセルが接続可能なネットの最大周波数の制限を示す最大周波数情報を前記構成条件情報として記憶しており、前記選択手段は、前記高周波ネットを選択し、前記生成手段は、前記選択した前記高周波ネットにおいて、前記高周波ネットに接続するセルが、前記記憶手段に記憶されている前記最大周波数情報に示される制限を満たすよう、前記高周波ネットに接続するセルを制御して前記新ネット構成情報を生成することとしてもよい。
これにより、高周波ネットに接続するセルを制限して、パルスリジェクトの発生を防止することができる。
また、ある特性のネットに対して、所定のセルを接続することで、論理回路を最適化することができる場合がある。具体的には、バスに反射波が発生する場合に、バスに終端抵抗を接続することで、インピーダンスを整合させることで論理回路を最適化することができる。
そこで、前記記憶手段は、所定のセルを前記1の特性を有するネットに接続する数の制限を前記構成条件情報として記憶しており、前記生成手段は、前記所定のセルが前記1の特性を有するネットに接続する数が、前記記憶されている前記制限を満たす前記新ネット構成情報を生成することとしてもよい。具体的には、前記特性を有するネットとは、バス信号が流れるネットであるバス信号ネットであり、前記記憶手段は、終端抵抗を前記バス信号ネットに接続する数の制限を前記構成条件情報として記憶しており、前記選択手段は、前記バス信号ネットを前記選択し、前記生成手段は、前記選択した前記バス信号ネットにおいて、前記バス信号ネットに接続する前記終端抵抗の個数が、前記記憶されている前記接続する数の制限を満たす前記新ネット構成情報を生成することとしてもよい。
これにより、バスに終端抵抗を接続してインピーダンスを整合させることができる。
また、セルをネットに接続する接続位置を適切にすることが望ましい場合がある。例えば、故障やエラー等の検出のために、観測対象のネットを設けることがある。このネットに、フリップフロップを接続して、エラー等を検出する。しかし、フリップフロップを接続する位置によっては、ネット上のエラーを十分に検出できない場合がある。例えば、ネットの入力側に近づけてフリップフロップを接続すると、ネットの中央付近のエラーを検出できない。
そこで、前記記憶手段は、所定のセルを前記1の特性を有するネットに接続する位置の制限を前記構成条件情報として記憶しており、前記生成手段は、前記所定のセルが前記1の特性を有するネットに接続する位置が、前記記憶されている前記制限を満たす前記新ネット構成情報を生成することとしてもよい。具体的には、前記特性を有するネットとは、ネットを観測する対象として指定された観測対象ネットであり、前記記憶手段は、フリップフロップを前記観測対象ネットに接続する位置の制限を前記構成条件情報として記憶しており、前記選択手段は、前記観測対象ネットを前記選択し、前記生成手段は、前記選択した前記観測対象ネットにおいて、フリップフロップを前記観測対象ネットに接続する位置が、前記記憶されている前記接続する位置の制限を満たす前記新ネット構成情報を生成することとしてもよい。
これにより、セルをネットに接続する接続位置を、望ましい場所とすることができる。
ところで、高トグルネットにセルが接続する場合、電圧の変動が比較的大きいため、セルの配置位置によっては、IRドロップが発生することがある。
具体的に説明すると、セルは、セルにプラスの電圧を供給する供給線と、マイナスの電圧を供給する供給線とのペアを介して電力の供給を受ける。複数のセルが、同一の供給線のペアにより電力の供給を受けるとき、前記複数のセルは同一のrowにあるという。
ここで、消費電力の大きい複数のセルを、同じrowに配置した場合に、前記セルが高トグルネットに接続すると、電力が十分に供給されずにIRドロップが発生することがある。
また、電圧を供給する供給線のうち、同一の極性を有する複数の供給線を接続し、rowをまたいで配線される供給線をストラップ配線というが、このストラップ配線においても、消費電力が大きいセルの電力を、あるストラップ配線から集中して供給すると、同様にIRドロップが発生することがある。
そこで、前記特性を有するネットとは、所定の高さのトグル率となっているネットである高トグルネットであり、前記記憶手段は、前記高トグルネットに接続する第1セルと、前記第1セルとは異なる第2セルの配置に関する制限を前記構成条件情報として記憶しており、前記選択手段は、前記高トグルネットを前記選択し、前記生成手段は、前記高トグルネットに接続するセルと、当該セルとは異なる他のセルの配置位置が、前記記憶されている前記配置に関する制限を満たす前記新ネット構成情報を生成するとしてもよい。具体的には、前記記憶手段は、前記第1セルと、前記第2セルを、rowの間隔を所定数空けて配置する制限を前記構成条件情報として記憶しており、前記生成手段は、前記記憶されている前記制限に示される前記rowの間隔を空けて、前記高トグルネットに接続するセルと、当該セルとは異なる他のセルとを配置するとしてもよい。また、前記記憶手段は、前記第1セルと、前記第2セルを、所定数のストラップ配線を挟んで配置する制限を前記構成条件情報として記憶しており、前記生成手段は、前記記憶されている前記制限に示される、前記所定数のストラップ配線を挟んで、前記高トグルネットに接続するセルと、当該セルとは異なる他のセルとを配置するとしてもよい。
これにより、IRドロップの発生を防ぐことができる。
また、ある配線が、並行している他の配線から悪影響を受けることによりクロストークが発生してネットに遅延が起こる場合がある。
この場合のために、前記特性を有するネットとは、所定の高さのクロストークが発生しているクロストーク発生ネットであり、前記記憶手段は、前記クロストーク発生ネットが、他の配線と並行して配線されている長さである並行配線長の制限を前記構成条件情報として記憶しており、前記選択手段は、前記クロストーク発生ネットを前記選択し、前記生成手段は、前記クロストーク発生ネットに並行して配線されている所定の配線と、前記クロストーク発生ネットの配線との並行配線長が、前記記憶されている前記並行配線長の制限を満たす前記新ネット構成情報を生成するとしてもよい。
これにより、並行配線長の制限を考慮してネットを構成するので、クロストークの発生を防ぐことができる。
また、本発明は、1の特性を有するネットについて、前記特性に対応して、前記特性を有するネットの構成が満たすべき条件を示す構成条件情報を記憶している記憶手段を有する論理回路合成装置に、論理合成を行わせる論理回路合成方法であって、複数のネットの構成を示す原ネット構成情報を取得する取得ステップと、前記取得した原ネット構成情報に示される前記複数のネットから、前記1の特性を有するネットを選択する選択ステップと、前記原ネット構成情報に示される前記複数のネットのうち、前記選択したネットを対象として、前記記憶されている前記構成条件情報に示される前記構成の条件を満たす新ネット構成情報を生成する生成ステップとを含むことを特徴とする論理回路合成方法でもある。
また、本発明は、1の特性を有するネットについて、前記特性に対応して、前記特性を有するネットの構成が満たすべき条件を示す構成条件情報を記憶している記憶手段を有する論理回路合成装置に、論理合成を行わせる処理を制御する制御プログラムであって、複数のネットの構成を示す原ネット構成情報を取得する取得ステップと、前記取得した原ネット構成情報に示される前記複数のネットから、前記1の特性を有するネットを選択する選択ステップと、前記原ネット構成情報に示される前記複数のネットのうち、前記選択したネットを対象として、前記記憶されている前記構成条件情報に示される前記構成の条件を満たす新ネット構成情報を生成する生成ステップとを含むことを特徴とする制御プログラムでもある。
本明細書では、10の実施の形態について説明する。
これら10の実施の形態は、共通する部分があるので、まずその共通部分について説明する。
<各実施の形態の共通部分>
1.1 概要
以下、論理回路合成装置1の、本発明の各実施形態において共通する部分について、図面を用いて説明する。
1.1.1 各実施形態において共通する構成の概要
各実施形態に共通する、本発明の論理回路合成装置1の概要は以下の通りである。
論理回路合成装置1は、論理ゲートやフリップフロップなどを、特定の半導体テクノロジに依存する基本回路であるセルに置き換える際に参照するライブラリを記憶している。ライブラリには、複数のセルについて、セルの入力ピンや出力ピンなど、セルの構成に関する情報が記憶されている。
また、セルとセルとの接続関係を示すものをネットというが、このライブラリに、セルが所定の特性を有するネットと接続する際の、ネットの構成の制限、すなわちネットの構成が満たすべき条件を示す構成条件情報を付して予め記憶しておく。この構成条件情報は、セルごとに付しておく。
なお、所定の特性を有するネットとは、詳しくは各実施形態において説明するが、例えば、回路上において物理的に分割される単位となるブロックの境界にあるネットや、エラーが発生しているネットなどである。
また、構成条件情報に示される条件は、ネットの特性と対応している。例えば、ブロックの境界にあるネットが長配線であると、SignalEM(シグナルエレクトロマイグレーション)エラーやSlew(スリュー)エラー等が発生するため、ブロックの境界にあるネットの配線長が所定距離以下となるように配線長の制限を定めたものを、ネットの構成が満たすべき条件とする。
1.1.2 各実施形態において共通する動作の概要
次に、各実施形態において共通する動作を説明する。
論理回路合成装置1は、セルやネットの配置位置を示し、論理回路を表すネットリストから、所定の特性を有するネットを選択する。選択したネットが、ライブラリ中の構成条件情報に示される条件を満たすように、セルの配置位置やセル間の配線経路を決定する。
このようにして、論理回路合成装置1は、論理回路の最適化を行う。論理回路合成装置1は、最適化を行った後のネットリストを出力する。
1.1.3 各実施形態において異なる点の概要
次に、各実施形態において異なる点の概要を説明する。
各実施形態においては、具体的には、選択にかかるネットの特性がそれぞれ異なる。例えば、実施の形態1では、ブロックの境界にあるネットを、所定の特性を有するネットとしているし、実施の形態2では、配線密度が所定度合以上である混雑しているネットを、所定の特性を有するネットとしている。
また、上述したように、構成条件情報は、ネットの特性と対応している。そのため、ライブラリに記憶されている構成条件情報に示される条件が、各実施形態において異なる。また、各実施形態においては、ライブラリ中の構成条件情報に示される条件を満たすように、論理回路の最適化を行うため、例えば、ネットの配線長を制限したり、バッファを挿入したりなど、最適化の実現方法が各実施形態において異なる。そのため、ネットリストのデータ構造が、各実施形態において異なる。
以上のように、各実施形態において共通する点、異なる点の概要を説明した。次に、より具体的に、各実施形態において共通する構成を説明する。
1.1.4 論理回路合成装置1の構成
ここで、各実施形態において共通する、論理回路合成装置1を構成する各機能ブロックについて、図面を用いて説明する。
図1は、論理回路合成装置1の機能ブロック図である。
同図に示すように、論理回路合成装置1は、取得部102と、ネット選択部103と、記憶部106と、合成部108とからなる。なお、ライブラリやネットリストは、各実施形態においてそれぞれ異なるものであるが、図面を参照して説明する便宜上、以下の説明では、実施の形態1におけるライブラリやネットリストである、ライブラリ107や原ネットリスト101や新ネットリスト111を用いて説明する。
1.1.4.1 取得部102
取得部102は、原ネットリスト101を、例えばハードディスクやメモリから読み出したり、ネットワークを介してデータを受信したりすることにより取得する。取得した原ネットリスト101を、ネット選択部103へ出力する。
1.1.4.2 ネット選択部103
ネット選択部103は、解析部104と、属性付加部105を含み、原ネットリスト101に含まれる複数のネットのうち、所定の特性を有するネットを選択して、選択したネットにネット属性を付加する。
解析部104においては、取得部102から原ネットリスト101を受け付けて、原ネットリスト101を解析する。具体的には、シミュレーション等により、クロストークやSignalEMエラーなどのエラーが発生しているネットを特定する特性解析ツールを実行したり、ネットリストに基づいて、ブロックの境界にあるネットやバスなどを検出したりする。解析の結果、原ネットリスト101に示される複数のネットから、所定の特性を有するネットを選択する。なお、特性解析ツールは、従来より用いられているものであるため、詳細な説明を省略する。
また、属性付加部105においては、解析部104において選択されたネットに対し、当該ネットが所定の特性を有することを示すために、所定の特性を示す名称を、ネット属性として原ネットリスト101に付加する。なお、選択にかかるネットにネット属性が付加されていることは、ネットリストにおいて示される。属性付加部105は、ネット属性を付加した原ネットリスト101を、合成部108へ出力する。
1.1.4.3 記憶部106
記憶部106は、ライブラリ107を記憶している。記憶部106は、例えばRAM(Random Access Memory)として実現される。
ライブラリ107は、セルのライブラリである。ライブラリ107には、ライブラリ中のセルごとに、このセルが所定の特性を有するネットと接続する際の、ネットの構成が満たすべき条件を示す構成条件情報が含まれている。
1.1.4.4 合成部108
合成部108は、ネットリスト生成部109と、ネットリスト出力部110を含み、構成条件情報に示される条件を満たすネットリストを生成して出力する。
ネットリスト生成部109においては、属性付加部105から出力され、ネット属性が付加された原ネットリスト101と、記憶部106で記憶されているライブラリ107とに基づいて、ライブラリ107の構成条件情報に示される条件を満たす新ネットリスト111を生成する。この処理の詳細については、「1.3 動作」において詳しく説明する。
また、ネットリスト出力部110は、ネットリスト生成部109において生成された新ネットリスト111を、例えば外部の装置へ出力する。
1.1.5 本発明の具体的な実現方法
なお、上述した論理回路合成装置1は、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)等を備えるコンピュータシステムとして実現される。上述した論理回路合成装置1の各機能ブロックは、コンピュータシステムを構成するハードウェアおよびハードウェア上で実行されるコンピュータプログラムとして実現される。前記コンピュータプログラムに従ってCPUが動作することにより、論理回路合成装置1はその機能を達成する。
また、この他にも、上述した論理回路合成装置1の各機能ブロックを、ハードウェアにより実現することとしてもよいし、一部をソフトウェアにより実現することとしてもよい。
1.1.6 各実施形態において共通する動作
次に、各実施形態において共通する、論理回路合成装置1の動作を説明する。
図2は、論理回路合成装置1の動作を示すフローチャートである。
同図に示すように、論理回路合成装置1は、まず、取得部102によって、原ネットリスト101を取得する(ステップS201)。
原ネットリスト101を取得すると、解析部104によって、原ネットリスト101を解析する(ステップS202)。
解析の結果、原ネットリスト101に示されるネットから、所定の特性を有するネットを、解析部104によって選択する(ステップS203)。
選択されたネットに対し、特性に対応するネット属性を、属性付加部105によって付加する(ステップS204)。
論理回路合成装置1は、所定の特性を有するネットにネット属性が付加された原ネットリスト101と、記憶部106に記憶されているライブラリ107とに基づいて、ライブラリ107の構成条件情報に示される条件を満たす新ネットリスト111を、ネットリスト生成部109によって生成する(ステップS205)。なお、ステップS205については、各実施形態で動作の詳細が異なるため、それぞれの実施形態で詳しく説明する。
論理回路合成装置1は、ネットリスト生成部109によって新ネットリスト111が生成されると、生成された新ネットリスト111を、ネットリスト出力部110によって出力する(ステップS206)。
1.2 各実施形態の説明
次に、各実施形態において異なる点を詳細に説明する。
「1.1.3 各実施形態において異なる点の概要」で上述したように、各実施形態においては、ライブラリやネットリストのデータ構造が異なる。また、論理回路の最適化の実現方法、具体的にはステップS205の処理も異なる。
そこで、以下の実施形態では、ライブラリやネットリストのデータ構造の違いと、ステップS205の違いについて、具体的に説明する。
1.3 実施の形態1のデータ
以下、記憶部106が記憶しているライブラリ107のデータ構造と、ネットリストのデータ構造について説明する。
1.3.1 ライブラリ107
ライブラリは、複数種類のセルそれぞれについて、セルに関する情報を記憶している。以下、各実施形態では、ライブラリ中の1のセルに関する情報について説明する。
図3は、ライブラリ107に含まれる、1のセルについてのデータ構造を示す図である。
1.3.1.1 ライブラリのデータ構造

同図(a)に示すように、ライブラリ107の1件のレコード107aには、リファレンス名30と、入力ピン31と、出力ピン32とが含まれる。
リファレンス名30は、マッピングの対象となるセルを参照するためのリファレンス名を示す。同図では「BUF1」と示されているが、これはセルがバッファであることを示している。また、このライブラリが「BUF1」のバッファに対するものであることを示している。
入力ピン31は、セルに入力される信号を受け付けるためのピンのリファレンス名を示す。同図では、入力ピンを「A」としている。
出力ピン32は、セルから信号を出力するためのピンのリファレンス名を示す。同図では、出力ピンを「Y」としている。
なお、リファレンス名30、入力ピン31、出力ピン32のデータタイプは文字列である。
1.3.1.2 ピンのデータ構造
また、同図(b)では、ピンのデータ構造も示している。ピンのデータ中のレコード107bには、ピン名33と、構成条件情報名34とが含まれる。
ピン名33は、ピンのリファレンス名を示す。同図では、ピン名33は「Y」と示されている。これは、出力ピン32に示される「Y」と対応している。
構成条件情報名34は、構成条件情報を適用する対象となるネット属性のリファレンス名を示す。同図では、ブロックの境界にあるネットを示す「hierarchy」がリファレンス名として示されている。これは、ピン名33に示されるピンと、ネット属性として「hierarchy」が付加されているネットとの接続において、構成条件情報を適用することを示している。
なお、ピン名33、構成条件情報名34のデータタイプは文字列である。
1.3.1.3 構成条件情報のデータ構造
また、同図(c)では、構成条件情報のデータ構造も示している。構成条件情報のデータ中のレコード107cには、構成条件情報名35と、接続タイプ36と、対象となるリファレンス名37と、最大距離38とが含まれる。
構成条件情報名35は、構成条件情報を適用する対象となるネット属性のリファレンス名を示す。同図では「hierarchy」と示されており、構成条件情報名34の「hierarchy」と対応している。
接続タイプ36は、ピン名33に示されるピンと、対象となるリファレンス名37に指定されているリファレンス先とが直接に接続しているか否かを示す。リファレンス先と直接接続している場合は「connected_cell」、直接接続していない場合は「all_cell」と示す。同図では、「connected_cell」となっているので、対象となるリファレンス先と直接接続していることが示されている。
対象となるリファレンス名37は、ピン名33に示されるピンとの間でネットを構成する場合に、構成条件情報を適用する対象となるリファレンス先を指定するためのパラメータである。同図では、対象となるリファレンス名37は、「BUF2」と示されている。「BUF2」は、バッファを示す。すなわち、リファレンス名30に示される「BUF1」のピン「Y」は、リファレンス名「BUF2」を有するバッファとの構成において構成条件情報が適用される。
最大距離38は、構成条件情報を適用する対象となるリファレンス間の最大距離の制限を示す。同図では、「30」と示されている。これは、リファレンス名「BUF1」からリファレンス名「BUF2」までの距離を30以下とする制限であることを示している。なお、この距離の単位は、いかなるものを用いてもよい。例えばマイクロメートル単位としてもよい。
なお、構成条件情報名35、対象となるリファレンス名37のデータタイプは文字列である。接続タイプ36は、「connected_cell」か「all_cell」かであり、データタイプはリストである。最大距離38のデータタイプは数値である。
1.3.2 ネットリストのデータ構造
次に、ネットリストのデータ構造について説明する。ネットリストには、複数のネットの情報が含まれている。以下の実施形態では、ネットリスト中の1のネットについてのデータ構造を説明する。
図4は、ネットリストに含まれる、1のネットについてのデータ構造を示す図である。ネットリストは、ネットと、ネットのインスタンスとからなる。
1.3.2.1 ネットのデータ構造
図4(a)は、ネットリスト中の、1のネットのデータ構造を示す図である。
同図(a)に示すように、ネットの1件のレコード400aには、ネット名称40と、ネット属性41と、インスタンス名42とが含まれる。インスタンスとは、ネットに含まれる下位の回路のことを言う。
ネット名称40は、ネットのリファレンス名を示す。
ネット属性41は、ネットに付加されているネット属性を示す。同図では、「hierarchy」と示されており、このネットに対して「hierarchy」のネット属性が付加されていることが示されている。
インスタンス名42は、ネットの始端に接続しているインスタンスのリファレンス名を示す。
1.3.2.2 インスタンスのデータ構造
図4(b)は、ネットリスト中の、1のネットのインスタンスのデータ構造を示す図である。
同図に示すように、インスタンスのレコード400bには、インスタンス名43と、リファレンス名44と、構成条件情報名45と、対象インスタンス46と、インスタンスの位置47と、対象インスタンスの位置48とが含まれる。
インスタンス名43は、インスタンスのリファレンス名を示す。同図に示すように、インスタンス名43は、ネットのデータ構造のインスタンス名42に示されるインスタンスのリファレンス名と対応している。
リファレンス名44は、インスタンス名43に示されるインスタンスに含まれているセルのリファレンス名を示す。同図では、「BUF1」と示されており、「BUF1_INST1」のインスタンスには、「BUF1」のセルが含まれることが示されている。
構成条件情報名45は、ライブラリ107中の構成条件情報を適用してネットを構成している場合に、適用にかかる構成条件情報に対応するネット属性のリファレンス名を示している。また、構成条件情報名45にデータが格納されていることは、すなわち、ネットの構成において、構成条件情報を適用してネットを構成していることを示している。
対象インスタンス46は、インスタンス名43に示されるインスタンスが、構成条件情報名45に示されるネット属性に対応する構成条件情報を適用する対象としているインスタンスのリファレンス名を示す。
インスタンスの位置47は、インスタンス名43に示されるインスタンスの配置位置を示す。なお、インスタンスの配置位置は、X座標の位置とY座標の位置を(X,Y)として表す。(0,0)となる位置は、回路基板上のいずれの位置でもよいが、例えば回路基板のいずれかの角とする。同図では、インスタンスの位置47は(10,20)となっており、「BUF1_INST1」のリファレンス名を有するインスタンスが、X座標の位置が10、Y座標の位置が20となる位置に配置されていることを示している。
対象インスタンスの位置48は、対象インスタンス46に示されるインスタンスの配置位置を示す。同図では、対象インスタンスの位置48は、(39,20)となっており、対象インスタンス46に示される「BUF2_INST1」のリファレンス名を有するインスタンスが、X座標の位置が39、Y座標の位置が20となる位置に配置されていることを示している。
1.4 ネットリスト生成処理の詳細
次に、ステップS205の処理について詳しく説明する。
図5は、構成条件情報に示される条件を満たすネットリストをネットリスト生成部109が生成する処理の詳細を示すフローチャートである。なお、実施の形態1では、所定の特性を有するネットとは、ブロックの境界にあるネットとしている。そこで、以下の説明では、ブロックの境界にあるネットを対象として、ライブラリ107の構成条件情報に示される条件を満たすネットリストを生成する処理を説明する。また、ステップS204においては、属性付加部105は、ブロックの境界にあるネットを示す「hierarchy」をネット属性として付加するものとする。
図5に示すように、合成部108のネットリスト生成部109は、属性付加部105から出力され、ネット属性が付加された原ネットリスト101を取得する(ステップS501)。
また、記憶部106に記憶されているライブラリ107を読み込む(ステップS502)。
ネットリスト生成部109は、原ネットリスト101から、ネット属性「hierarchy」がネット属性41に付加されているネットを抽出する(ステップS503)。
また、ネット属性「hierarchy」に対応する構成条件情報を有するセルを、ライブラリ107から選択する(ステップS504)。本実施形態では、図2に示すように、リファレンス名「BUF1」のバッファに、ネット属性「hierarchy」に対応する構成条件情報が記憶されているので、ネットリスト生成部109は、「BUF1」のバッファを、ライブラリ107から選択する。
ネットリスト生成部109は、ライブラリ107を参照して、ネット属性「hierarchy」に対応する構成条件情報が記憶されているセルである「BUF1」を選択すると、「BUF1」の接続タイプ36、対象となるリファレンス名37、最大距離38を読み出す。本実施形態では、構成条件情報に示される条件には、リファレンス名「BUF2」と直接に接続して、最大距離が30以下と示されている。ネットリスト生成部109は、このような条件を読み出して、ネットの構成が、このような条件を満たすようにネットリストを生成する。
具体的な生成方法を説明すると、ネットリスト生成部109は、まず、ステップS504において選択したセル、すなわち「BUF1」のリファレンス名を有するバッファを、ネット属性「hierarchy」のネットの始端に挿入する(ステップS505)。次に、ステップS504において選択したセルのライブラリの、対象となるリファレンス名37に示されるリファレンス名のセル、すなわち「BUF2」のリファレンス名を有するバッファを、ネット属性「hierarchy」のネットの終端に挿入する(ステップS506)。そして、ネット属性「hierarchy」のネットのネット長を、最大距離38に示される距離以下、すなわち30以下の距離となるよう調整する(ステップS507)。
このようにして、ネットリスト生成部109は、調整が行われた新ネットリスト111を生成する。
1.5 ネットの構成の遷移
上述のように、合成部108のネットリスト生成部109が新ネットリスト111を生成する処理を説明してきたが、ここで、原ネットリスト101に示されるネットの構成が、ネットリスト生成部109の処理によってどのように遷移するかを、図6に示す。
図6は、ネットの構成の遷移を示す図である。
図6(a)は、原ネットリスト101における一部のネットの構成を示す図である。
同図(a)に示すように、原ネットリスト101には、ブロック601と、ブロックの境界にあるネット602(602a、602b)が、原ネットリスト101における一部のネットの構成として示されている。
論理回路合成装置1は、ステップS202、ステップS203、ステップS204の処理を行うことで、この原ネットリスト101に示されるネットのうち、ブロックの境界にあるネット602(602a、602b)に対し、ネット属性「hierarchy」を付加する。そして、ステップS205、具体的にはステップS501〜ステップS507の処理を行って、新ネットリスト111を生成する。
図6(b)は、新ネットリスト111における一部のネットの構成を示す図である。
同図に示すように、新ネットリスト111には、ブロック601と、ブロックの境界にあるネット602(602a、602b)と、「BUF1」のバッファ603(603a、603b)と、「BUF2」のバッファ604(604a、604b)とが、新ネットリスト111における一部のネットの構成として示されている。
「BUF1」の配置位置は、例えば、(10,20)であり、「BUF2」の配置位置は、(39,20)である。すなわち、「BUF1」と「BUF2」との間の距離は、30以下である。したがって、このネットの構成は、ライブラリ107の最大距離38で示される条件を満たす。
1.6 ネットリストの更新過程
ここで、論理回路合成装置1が処理を行う過程で、ネットリストに保持されているデータがどのように更新されていくかを説明する。
図7は、ネットリストの更新過程を示す図である。
図7(a)は、ステップS201の処理により、取得部102が取得したときの原ネットリスト101である。ネットの名称がネット名称40に示されているが、ネット属性はまだ付加されていない状態である。
図7(b)は、ステップS204の処理により、属性付加部105がネットにネット属性「hierarchy」を付加した状態で、その後ステップS205においてネットリスト生成部109に入力される原ネットリスト101である。ネット属性41に、ネット属性「hierarchy」が付加されている。
図7(c)は、ネットリスト生成部109によって生成される新ネットリスト111である。インスタンスのデータ構造において、ネットの構成がインスタンスの位置47および対象インスタンスの位置48に示されている。
<実施の形態2>
2.1 概要
以下、本発明にかかる論理回路合成装置の、別の実施形態について説明する。
実施の形態2においては、論理回路合成装置1は、配線密度が所定値よりも大きいネットである、混雑するネットを、所定の特性を有するネットとして選択する。
ネットが混雑していると、セルの配置が困難になるなどの問題が発生する。この問題を解消するために、例えば、ピンが多く混雑しやすいセル種は、混雑しているネットと接続するときに、配線長を長くするように予め構成条件情報を定めておくと、配線混雑を防ぐことができる。具体的には、フリップフロップを、混雑しているネットから離す方向に配置することとする。
また、ライブラリのデータ構造が実施の形態1と一部異なるため、実施の形態2においては、記憶部106が記憶しているライブラリを、ライブラリ207として説明する。
また、ネットリストのデータ構造が実施の形態1と異なるため、実施の形態2においては、取得部102が取得するネットリストを、原ネットリスト201とし、ネットリスト生成部109が生成するネットリストを、新ネットリスト211とする。
その他、実施の形態1と共通する各機能ブロックについては、実施の形態1と同一の参照符号を付して説明を省略する。
<データ>
2.2 データ
以下、記憶部106が記憶しているライブラリ207のデータ構造と、ネットリストのデータ構造について説明する。
2.2.1 ライブラリ207
図8は、ライブラリ207に含まれる、1のセルについてのデータ構造を示す図である。
2.2.1.1 ライブラリのデータ構造
同図(a)に示すように、ライブラリ207の1件のレコード207aには、リファレンス名80と、入力ピン81と、出力ピン82とが含まれる。具体的に格納されるデータは実施の形態1と異なるが、リファレンス名80、入力ピン81、出力ピン82は、それぞれ図3のリファレンス名30、入力ピン31、出力ピン32と同様にリファレンス名などを示すものであるため、説明を省略する。
格納されるデータの違いについて具体的に説明すると、図8に示す通り、実施の形態2では、リファレンス名80に「FF1」というデータが格納されている。これは、セルがフリップフロップであることを示している。また、入力ピン81は「CK」、出力ピン82は「Q」と示されている。
2.2.1.2 ピンのデータ構造
また、同図(b)では、ピンのデータ構造も示している。ピンのデータ中のレコード207bには、ピン名83と、構成条件情報名84とが含まれる。
ピン名83、構成条件情報名84は、それぞれ図3のピン名33、構成条件情報名34と同様であるため説明を省略する。
実施の形態2では、ピン名83に「Q」と示されている。これは、出力ピン82に示される「Q」と対応している。また、構成条件情報名84には、「congestion」と示されている。「congestion」は、混雑しているネットを示すネット属性のリファレンス名である。
2.2.1.3 構成条件情報のデータ構造
また、同図(c)に、構成条件情報のデータ構造を示す。構成条件情報のデータ中のレコード207cには、構成条件情報名85、接続タイプ86、対象となるリファレンス名87、最小距離88とが含まれる。実施の形態1と比べて、特に、最小距離88を含む点で異なる。
構成条件情報名85、接続タイプ86、対象となるリファレンス名87は、それぞれ図3の構成条件情報名35、接続タイプ36、対象となるリファレンス名37と同様であるため説明を省略する。
実施の形態2では、構成条件情報名85に「congestion」と示されている。また、接続タイプ86に「all_cell」と示されている。また、対象となるリファレンス名87に「FF2」と示されている。「FF2」は、フリップフロップを示す。
最小距離88は、構成条件情報を適用する対象となるリファレンス間の最小距離の制限を示す。図8(c)では、「20」と示されている。これは、リファレンス名「FF1」からリファレンス名「FF2」までの距離を20以上にする制限であることを示している。
なお、最小距離88のデータタイプは数値である。
2.2.2 ネットリストのデータ構造
図9は、実施の形態2にかかるネットリストに含まれる、1のネットについてのデータ構造を示す図である。
2.2.2.1 ネットのデータ構造
図9(a)は、ネットリスト中の、1のネットのデータ構造を示す図である。
同図(a)に示すように、ネットの1件のレコード900aには、ネット名称90と、ネット属性91と、インスタンス名92とが含まれる。
ネット名称90、ネット属性91、インスタンス名92は、それぞれ、図4のネット名称40、ネット属性41、インスタンス名42と同様であるため説明を省略する。
実施の形態2では、ネット属性91に「congestion」と示されており、このネットに対して「congestion」のネット属性が付加されていることが示されている。
2.2.2.2 インスタンスのデータ構造
図9(b)は、ネットリスト中の、1のネットのインスタンスのデータ構造を示す図である。
同図(b)に示すように、インスタンスのレコード900bには、インスタンス名93と、リファレンス名94と、構成条件情報名95と、対象インスタンス96と、インスタンスの位置97と、対象インスタンスの位置98とが含まれるが、それぞれ図4(b)のインスタンス名43と、リファレンス名44と、構成条件情報名45と、対象インスタンス46と、インスタンスの位置47と、対象インスタンスの位置48と同様であるため説明を省略する。
2.3 ネットリスト生成処理の詳細
次に、実施の形態2における、ステップS205の処理について詳しく説明する。
なお、実施の形態2では、所定の特性を有するネットを、混雑するネットとしている。また、解析部104は、図2のステップS202において、論理回路の配線経路を示すレイアウト情報に基づいてネットの混雑状況を確認し、ステップS203において、配線密度が所定値より大きいネットを選択することとする。また、属性付加部105は、選択されたネットに「congestion」をネット属性として付加するものとする。
図10は、実施の形態2におけるステップS205の処理の詳細を示す図である。
図10に示すように、ネットリスト生成部109は、属性付加部105から出力され、ネット属性が付加された原ネットリスト201を取得する(ステップS1001)。
また、記憶部106に記憶されているライブラリ207を読み込む。このとき、構成条件情報名84に「congestion」と示されているセルを抽出する。本実施形態の例では、「FF1」のバッファを抽出する(ステップS1002)。
ネットリスト生成部109は、原ネットリスト201から、ネット属性「congestion」がネット属性91に付加されているネットを抽出する(ステップS1003)。
次に、ネット属性「congestion」のネットに接続し、リファレンス名「FF1」を有するセルを抽出する(ステップS1004)。
また、ネット属性「congestion」のネットに接続し、「FF1」のライブラリの対象となるリファレンス名87に示されるセル、すなわち本実施形態の例ではリファレンス名「FF2」を有するセルを抽出する(ステップS1005)。
「FF1」のセルと「FF2」のセルとを抽出すると、「FF1」と「FF2」との距離が、「FF1」のライブラリの最小距離88に示される値以上、すなわち20以上となるよう調整する(ステップS1006)。
2.4 ネットの構成の遷移
図11は、ネットの構成の遷移を示す図である。
図11(a)は、原ネットリスト201における一部のネットの構成を示す図である。
同図(a)に示すように、原ネットリスト201には、フリップフロップ1101と、フリップフロップ1102と、混雑しているネット1103とが、原ネットリスト201における一部のネットの構成として示されている。混雑しているネット1103は、フリップフロップ1101とフリップフロップ1102とを接続している。フリップフロップ1101は「FF1」のリファレンス名を有し、フリップフロップ1102は「FF2」のリファレンス名を有するとする。
論理回路合成装置1は、ステップS202、ステップS203、ステップS204の処理を行うことで、この原ネットリスト201に示されるネットのうち、混雑しているネット1103に対し、ネット属性「congestion」を付加する。そして、ステップS205、具体的にはステップS1001〜ステップS1006の処理を行って、新ネットリスト211を生成する。
図11(b)は、新ネットリスト211における一部のネットの構成を示す図である。
同図に示すように、新ネットリスト211には、フリップフロップ1101と、フリップフロップ1102と、混雑しているネット1103とが、新ネットリスト211における一部のネットの構成として示されている。
「FF1」の配置位置は、例えば、(10,20)であり、「FF2」の配置位置は、(31,20)である。すなわち、「FF1」と「FF2」との間の距離は、20以上である。したがって、このネットの構成は、ライブラリ207の最小距離88で示される条件を満たす。
2.5 ネットリストの更新過程
ここで、実施の形態2における論理回路合成装置1が処理を行う過程で、ネットリストに保持されているデータがどのように更新されていくかを説明する。
図12は、ネットリストの更新過程を示す図である。
図12(a)は、ステップS201の処理により、取得部102が取得したときの原ネットリスト201である。ネット属性はまだ付加されていない状態である。また、インスタンスの位置がインスタンスの位置87および対象インスタンスの位置88において示されている。
図12(b)は、ステップS204の処理により、属性付加部105がネットにネット属性「congestion」を付加した状態で、その後ステップS205においてネットリスト生成部109に入力される原ネットリスト201である。ネット属性91に、ネット属性「congestion」が付加されている。
図12(c)は、ネットリスト生成部109によって生成される新ネットリスト211である。インスタンスのデータ構造において、構成条件情報を適用してフリップフロップ間の距離を20以上とした後のネットの構成が示されている。
2.6 実施の形態2の変形例
ここで、実施の形態2の変形例について説明する。上述の例で示した最小距離の制限に加えて、セルを離す方向を構成条件情報の条件に含めてもよい。例えば、あるセルは垂直方向に配置する制限を与え、他のセルには水平方向に配置する制限を各セルの構成条件情報に加える。このような制限を加えて、水平方向の配線リソースが少ないセルの配置方向を垂直方向に限定することなどにより、配線混雑を防ぐことができる。
なお、以下に示す実施の形態2の変形例の説明では、記憶部106が記憶しているライブラリを、ライブラリ207−1とする。また、取得部102が取得するネットリストを、原ネットリスト201−1とし、ネットリスト生成部109が生成するネットリストを、新ネットリスト211−1とする。
以下、具体的に説明する。
2.7 実施の形態2の変形例のデータ
変形例における、記憶部106が記憶しているライブラリ207−1のデータ構造と、ネットリストのデータ構造について説明する。
2.7.1 ライブラリ207−1
図13は、ライブラリ207−1に含まれる、1のセルについてのデータ構造を示す図である。
2.7.1.1 ライブラリのデータ構造
同図(a)に示すように、ライブラリ207−1の1件のレコード207−1aには、リファレンス名130と、入力ピン131と、出力ピン132とが含まれる。リファレンス名130、入力ピン131、出力ピン132は、それぞれ図8のリファレンス名80、入力ピン81、出力ピン82と同様にリファレンス名などを示すものであるため、説明を省略する。
2.7.1.2 ピンのデータ構造
また、同図(b)では、ピンのデータ構造も示している。ピンのデータ中のレコード207−1bには、ピン名133と、構成条件情報名134とが含まれる。
ピン名133、構成条件情報名134は、それぞれ図8のピン名83、構成条件情報名84と同様であるため説明を省略する。
2.7.1.3 構成条件情報のデータ構造
また、同図(c)に、構成条件情報のデータ構造を示す。構成条件情報のデータ中のレコード207−1cには、構成条件情報名135、接続タイプ136、対象となるリファレンス名137、最小距離138、方向139とが含まれる。上述の実施の形態2と変形例とでは、方向139が変形例においては含まれる点で異なる。
構成条件情報名135、接続タイプ136、対象となるリファレンス名137、最小距離138は、それぞれ図8の構成条件情報名85、接続タイプ86、対象となるリファレンス名87、最小距離88と同様であるため説明を省略する。
図13に示すように、対象となるリファレンス名137、最小距離138においては、複数のデータを格納している。なお、変形例の場合に限らず、各データ項目において、複数のデータを格納することとしてよい。同図の例では、「FF2」と「FF3」の2つについてのデータを格納している。「FF2」は距離を20以上離し、「FF3」は距離を40以上離すことが示されている。なお、「FF3」はフリップフロップを示す。
方向139は、対象となるリファレンス名137に示されるセルの配置方向を示す。方向139に「vertical」と示されている場合は、リファレンス名130のセルとの関係で、対象となるリファレンス名137に示されるセルを垂直方向に配置することを示す。また、方向139に「horizon」と示されている場合は、リファレンス名130のセルとの関係で、対象となるリファレンス名137に示されるセルを水平方向に配置することを示す。
なお、方向139のデータタイプは、「vertical」と「horizon」からなるリストである。
2.7.2 ネットリストのデータ構造
図14は、実施の形態2の変形例にかかるネットリストに含まれる、1のネットについてのデータ構造を示す図である。
2.7.2.1 ネットのデータ構造
図14(a)は、ネットリスト中の、1のネットのデータ構造を示す図である。
同図(a)に示すように、ネットの1件のレコード1400aには、ネット名称140と、ネット属性141と、インスタンス名142とが含まれる。
ネット名称140、ネット属性141、インスタンス名142は、それぞれ、図9のネット名称90、ネット属性91、インスタンス名92と同様であるため説明を省略する。
2.7.2.2 インスタンスのデータ構造
図14(b)は、ネットリスト中の、1のネットのインスタンスのデータ構造を示す図である。
同図(b)に示すように、インスタンスのレコード1400bには、インスタンス名143と、リファレンス名144と、構成条件情報名145と、対象インスタンス146と、インスタンスの位置147と、対象インスタンスの位置148とが含まれるが、それぞれ図9(b)のインスタンス名93と、リファレンス名94と、構成条件情報名95と、対象インスタンス96と、インスタンスの位置97と、対象インスタンスの位置98と同様であるため説明を省略する。
変形例においては、対象となるインスタンス147、対象インスタンスの位置148において、複数のインスタンスそれぞれについてデータを格納することとしている。
2.8 変形例におけるネットリスト生成処理の詳細
次に、実施の形態2の変形例における、ステップS205の処理について詳しく説明する。
変形例においても、解析部104は、図2のステップS202において、論理回路の配線経路を示すレイアウト情報に基づいてネットの混雑状況を確認し、ステップS203において、配線密度が所定値より大きいネットを選択することとする。また、属性付加部105は、選択されたネットに「congestion」をネット属性として付加するものとする。
なお、上述の実施の形態2とでは、セルの配置方向を考慮して論理回路合成装置1が合成を行う点で異なる。
図15は、実施の形態2の変形例におけるステップS205の処理の詳細を示す図である。
なお、ステップS1501、ステップS1502、ステップS1503、ステップS1504、ステップS1505の処理は、それぞれ図10のステップS1001、ステップS1002、ステップS1003、ステップS1004、ステップS1005と同様であるため説明を省略する。なお、ステップS1505においては、本実施形態の例では、「FF2」と「FF3」が抽出される。
ステップS1505において、リファレンス名「FF2」を有するセルを抽出すると、ネット属性「congestion」のネットに接続し、リファレンス名「FF3」を有するセルを抽出する(ステップS1506)。
「FF1」のセルと「FF2」のセルと「FF3」のセルとを抽出すると、「FF1」と「FF2」との垂直方向の距離が、「FF1」のライブラリの方向139で「vertical」に対応する最小距離138に示される値以上、すなわち20以上となるよう調整する(ステップS1507)。
また、「FF1」と「FF3」との水平方向の距離が、「FF1」のライブラリの方向139で「horizon」に対応する最小距離138に示される値以上、すなわち40以上となるよう調整する(ステップS1508)。
2.9 ネットの構成の遷移
図16は、ネットの構成の遷移を示す図である。
図16(a)は、原ネットリスト201−1における一部のネットの構成を示す図である。
同図(a)に示すように、原ネットリスト201−1には、フリップフロップ1601と、フリップフロップ1602と、フリップフロップ1603とが水平方向に配置され、また、混雑しているネット1604とが、原ネットリスト201−1における一部のネットの構成として示されている。混雑しているネット1604は、フリップフロップ1601とフリップフロップ1602とフリップフロップ1603とを接続している。フリップフロップ1601は「FF1」のリファレンス名を有し、配置位置が(10,10)とする。フリップフロップ1602は「FF2」のリファレンス名を有し、配置位置が(20,10)とする。フリップフロップ1603は「FF3」のリファレンス名を有し、配置位置が(30,10)とする。
論理回路合成装置1は、ステップS202、ステップS203、ステップS204の処理を行うことで、この原ネットリスト201−1に示されるネットのうち、混雑しているネット1604に対し、ネット属性「congestion」を付加する。そして、ステップS205、具体的にはステップS1501〜ステップS1508の処理を行って、新ネットリスト211を生成する。
図16(b)は、新ネットリスト211−1における一部のネットの構成を示す図である。
同図に示すように、新ネットリスト211−1には、フリップフロップ1601と、フリップフロップ1602と、フリップフロップ1603と、混雑しているネット1604とが、新ネットリスト211における一部のネットの構成として示されている。
ここで、「FF1」の配置位置は、(10,10)であり、「FF2」の配置位置は、(10,60)である。すなわち、「FF1」と「FF2」との間の距離は、20以上であり、かつ、垂直方向に離されて配置されている。また、「FF3」の配置位置は、(60,10)である。すなわち、「FF1」と「FF3」との間の距離は40以上であり、かつ、水平方向に離されて配置されている。したがって、このネットの構成は、ライブラリ207−1の最小距離138および方向139で示される条件を満たす。
2.10 ネットリストの更新過程
ここで、実施の形態2の変形例における論理回路合成装置1が処理を行う過程で、ネットリストに保持されているデータがどのように更新されていくかを説明する。
図17は、ネットリストの更新過程を示す図である。
図17(a)は、ステップS201の処理により、取得部102が取得したときの原ネットリスト201である。
図17(b)は、ステップS204の処理により、属性付加部105がネットにネット属性「congestion」を付加した状態で、その後ステップS205においてネットリスト生成部109に入力される原ネットリスト201である。
図17(c)は、ネットリスト生成部109によって生成される新ネットリスト211である。インスタンスのデータ構造において、構成条件情報を適用してフリップフロップ間の距離および配置方向を調整した後のネットの構成が示されている。
<実施の形態3>
3.1 概要
以下、本発明にかかる論理回路合成装置の、別の実施形態について説明する。
実施の形態3においては、論理回路合成装置1は、所定の高さのグリッチが発生しているグリッチ発生ネットを、所定の特性を有するネットとして選択する。
グリッチエラーが発生していると、フリップフロップが異常動作を起こすおそれがある。これを解消するためには、バッファを適切な数だけ挿入するとよい。バッファが所定数だけ挿入されていると、エラーが減衰して、フリップフロップの異常動作を防ぐことができる。あるセルから、フリップフロップまでの間に挿入すべきバッファの数を「段数」と言うこととする。例えば、あるセルからフリップフロップまでの間に2つ以上のバッファを挿入すべきであるとき、挿入すべきバッファの段数は2段以上である。
また、ライブラリのデータ構造が実施の形態1と一部異なるため、実施の形態3においては、ライブラリ307として説明する。
また、ネットリストのデータ構造が実施の形態1と異なるため、実施の形態3においては、ネットリストをそれぞれ原ネットリスト301、新ネットリスト311とする。
その他、実施の形態1と共通する各機能ブロックについては、実施の形態1と同一の参照符号を付して説明を省略する。
3.2 データ
以下、記憶部106が記憶しているライブラリ307のデータ構造と、ネットリストのデータ構造について説明する。
3.2.1 ライブラリ307
図18は、ライブラリ307に含まれる、1のセルについてのデータ構造を示す図である。
3.2.1.1 ライブラリのデータ構造
同図(a)に示すように、ライブラリ307の1件のレコード307aには、リファレンス名180と、入力ピン181と、出力ピン182とが含まれる。リファレンス名180、入力ピン181、出力ピン182は、それぞれ図3のリファレンス名30、入力ピン31、出力ピン32と同様にリファレンス名などを示すものであるため、説明を省略する。
3.2.1.2 ピンのデータ構造
また、同図(b)では、ピンのデータ構造も示している。ピンのデータ中のレコード307bには、ピン名183と、構成条件情報名184とが含まれる。
ピン名183、構成条件情報名184は、それぞれ図3のピン名33、構成条件情報名34と同様であるため説明を省略する。
実施の形態3では、構成条件情報名184には、「glitch」と示されている。「glitch」は、グリッチ発生ネットを示すネット属性のリファレンス名である。
3.2.1.3 構成条件情報のデータ構造
また、同図(c)に、構成条件情報のデータ構造を示す。構成条件情報のデータ中のレコード307cには、構成条件情報名185、接続タイプ186、対象となるリファレンス名187、最小段数188とが含まれる。実施の形態1と比べて、特に、最小段数188を含む点で異なる。
構成条件情報名185、接続タイプ186、対象となるリファレンス名187は、それぞれ図3の構成条件情報名35、接続タイプ36、対象となるリファレンス名37と同様であるため説明を省略する。
実施の形態3では、構成条件情報名185に「glitch」と示されている。また、対象となるリファレンス名187に「FF1」「FF2」「FF3」と示されている。これは、リファレンス名180に示される「BUF1」から、「FF1」、「FF2」、「FF3」を対象として、これら「FF1」等との間にバッファを挿入すべきであることを示している。
最小段数188は、構成条件情報を適用する対象となるリファレンス間に挿入すべきバッファの最小の段数の制限を示す。図18(c)では、「2」と示されている。これは、リファレンス名180に示される「BUF1」から、対象となるリファレンス名187に示される「FF1」等までの間に、2段以上のバッファを挿入すべきであることを示している。
なお、最小段数188のデータタイプは数値である。
3.2.2 ネットリストのデータ構造
図19は、実施の形態3にかかるネットリストに含まれる、1のネットのデータ構造を示す図である。
3.2.2.1 ネットのデータ構造
図19(a)は、ネットリスト中の、1のネットのデータ構造を示す図である。
同図(a)に示すように、ネットの1件のレコード1900aには、ネット名称190と、ネット属性191と、インスタンス名192とが含まれる。
ネット名称190、ネット属性191、インスタンス名192は、それぞれ、図4のネット名称40、ネット属性41、インスタンス名42と同様であるため説明を省略する。
実施の形態3では、ネット属性191に「glitch」と示されており、このネットに対して「glitch」のネット属性が付加されていることが示されている。
3.2.2.2 インスタンスのデータ構造
図19(b)は、ネットリスト中の、1のネットのインスタンスのデータ構造を示す図である。
同図(b)に示すように、インスタンスのレコード1900bには、インスタンス名193と、リファレンス名194と、構成条件情報名195と、対象インスタンス196と、段数情報197が含まれる。実施の形態1と比べて、特に、段数情報197を含む点で異なる。インスタンス名193と、リファレンス名194と、構成条件情報名195と、対象インスタンス196とは、それぞれ図4(b)のインスタンス名43と、リファレンス名44と、構成条件情報名45と、対象インスタンス46と同様であるため説明を省略する。
段数情報197は、インスタンス名193から対象インスタンス196までの間に挿入されているバッファの段数を示す。同図では「2」と示されており、2つのバッファが挿入されていることが示されている。
3.3 ネットリスト生成処理の詳細
次に、実施の形態3における、ステップS205の処理について詳しく説明する。
なお、実施の形態3では、所定の特性を有するネットを、グリッチ発生ネットとしている。また、解析部104は、図2のステップS202において、選択対象となるグリッチ発生ネットの、グリッチの高さを指定して解析を行い、解析の結果抽出されたネットをステップS203において選択することとする。また、属性付加部105は、ステップS204において、選択されたネットに「glitch」をネット属性として付加するものとする。
図20は、実施の形態3におけるステップS205の処理の詳細を示す図である。
図20に示すように、ネットリスト生成部109は、属性付加部105から出力され、ネット属性が付加された原ネットリスト301を取得する(ステップS2001)。
また、記憶部106に記憶されているライブラリ307を読み込む(ステップS2002)。
ネットリスト生成部109は、原ネットリスト301から、ネット属性「glitch」がネット属性191に付加されているネットを抽出する(ステップS2003)。
次に、読み込んだライブラリ307を参照して、構成条件情報名184に「glitch」と示されているセルを抽出する。本実施形態の例では「BUF1」のバッファを抽出する。そして、ネット属性「glitch」のネットに接続し、リファレンス名「BUF1」を有するセルを抽出する(ステップS2004)。
また、「FF1」「FF2」「FF3」のリファレンス名を有するセルを抽出する(ステップS2005)。
ネットリスト生成部109は、「BUF1」から「FF1」「FF2」「FF3」のそれぞれのセルまでに配置されているバッファの段数が、「BUF1」のライブラリの最小段数188に示される値以上の段数であるか判断する。すなわち、バッファの段数が2段以上であるか判断する(ステップS2006)。
ステップS2006において、バッファの段数が「FF1」「FF2」「FF3」のそれぞれに対して、「BUF1」のライブラリの最小段数188に示される値以上の段数であれば処理を終了する。すなわち、本実施形態の例では段数が2段以上であれば、処理を終了する(ステップS2006:YES)。
ステップS2006において、「BUF1」のライブラリの最小段数188に示される値以上の段数でなければ、すなわち、本実施形態の例ではバッファの段数が2段以上でなければ(ステップS2006:NO)、「FF1」「FF2」「FF3」のそれぞれに対して段数が「BUF1」のライブラリの最小段数388に示される値以上となるようにバッファを祖入する。本実施形態の例では、段数が2段以上となるようにバッファを挿入する(ステップS2007)。
3.4 ネットの構成の遷移
図21は、ネットの構成の遷移を示す図である。
図21(a)は、原ネットリスト301における一部のネットの構成を示す図である。
同図(a)に示すように、原ネットリスト301には、バッファ2101と、フリップフロップ2102と、バッファ2103と、グリッチ発生ネット2104とが、原ネットリスト301における一部のネットの構成として示されている。バッファ2101は「BUF1」のリファレンス名を有し、フリップフロップ2102は「FF1」のリファレンス名を有するとする。
論理回路合成装置1は、ステップS202、ステップS203、ステップS204の処理を行うことで、この原ネットリスト301に示されるネットのうち、グリッチ発生ネット2104に対し、ネット属性「glitch」を付加する。そして、ステップS205、具体的にはステップS2001〜ステップS2007の処理を行って、新ネットリスト311を生成する。
図21(b)は、新ネットリスト311における一部のネットの構成を示す図である。
同図に示すように、新ネットリスト311には、バッファ2101と、フリップフロップ2102と、バッファ2103と、グリッチ発生ネット2104と、バッファ2105とが、新ネットリスト311における一部のネットの構成として示されている。「BUF1」のリファレンス名を有するバッファ2101から「FF1」のリファレンス名を有するフリップフロップ2102までの段数が、2段となっている。
したがって、このネットの構成は、ライブラリ307の最小段数188で示される条件を満たす。
3.5 ネットリストの更新過程
ここで、実施の形態3における論理回路合成装置1が処理を行う過程で、ネットリストに保持されているデータがどのように更新されていくかを説明する。
図22は、ネットリストの更新過程を示す図である。
図22(a)は、ステップS201の処理により、取得部102が取得したときの原ネットリスト301である。ネット属性はまだ付加されていない状態である。また、段数情報197に、バッファの段数が「1」と示されている。
図22(b)は、ステップS204の処理により、属性付加部105がネットにネット属性「glitch」を付加した状態で、その後ステップS205においてネットリスト生成部109に入力される原ネットリスト301である。ネット属性191に、ネット属性「glitch」が付加されている。
図22(c)は、ネットリスト生成部109によって生成される新ネットリスト311である。インスタンスのデータ構造において、構成条件情報を適用して、「BUF1」のバッファと「FF1」のフリップフロップとの間に配置されるバッファの段数を2段とした後のネットの構成が示されている。
<実施の形態4>
4.1 概要
以下、本発明にかかる論理回路合成装置の、別の実施形態について説明する。
実施の形態4においては、論理回路合成装置1は、高い周波数が伝播している高周波ネットを、所定の特性を有するネットとして選択する。
遅延値が大きいセルなどに高い周波数のパルスが入ると、パルスが消失するパルスリジェクトが発生することがある。この場合は、パルスリジェクトが発生しているセルを、高い周波数のネットとの接続が可能なセルに置き換えることでパルスリジェクトを防止することができる。実施の形態4においては、最大300MHzまでの周波数のネットと接続できるセルと、最大600MHzまでの周波数のネットと接続できるセルとを、ライブラリに記憶していることとする。
また、ライブラリのデータ構造が実施の形態1と一部異なるため、実施の形態4においては、ライブラリ407として説明する。
また、ネットリストのデータ構造が実施の形態1と異なるため、実施の形態4においては、ネットリストをそれぞれ原ネットリスト401、新ネットリスト411とする。
その他、実施の形態1と共通する各機能ブロックについては、実施の形態1と同一の参照符号を付して説明を省略する。
4.2 データ
以下、記憶部106が記憶しているライブラリ407のデータ構造と、ネットリストのデータ構造について説明する。
4.2.1 ライブラリ407
図23は、ライブラリ407に含まれる、1のセルについてのデータ構造を示す図である。
4.2.1.1 ライブラリのデータ構造
同図(a)に示すように、ライブラリ407の1件のレコード407aには、リファレンス名230と、入力ピン231と、出力ピン232とが含まれる。リファレンス名230、入力ピン231、出力ピン232は、それぞれ図3のリファレンス名30、入力ピン31、出力ピン32と同様にリファレンス名などを示すものであるため、説明を省略する。
4.2.1.2 ピンのデータ構造
また、同図(b)では、ピンのデータ構造も示している。ピンのデータ中のレコード407bには、ピン名233と、構成条件情報名234とが含まれる。
ピン名233、構成条件情報名234は、それぞれ図3のピン名33、構成条件情報名34と同様であるため説明を省略する。
実施の形態4では、構成条件情報名234には、「high_frequency」と示されている。「high_frequency」は、高周波ネットを示すネット属性のリファレンス名である。
4.2.1.3 構成条件情報のデータ構造
また、同図(c)に、構成条件情報のデータ構造を示す。構成条件情報のデータ中のレコード407cには、構成条件情報名235、接続タイプ236、最大周波数237とが含まれる。実施の形態1と比べて、特に、最大周波数237を含む点で異なる。
構成条件情報名235、接続タイプ236は、それぞれ図3の構成条件情報名35、接続タイプ36と同様であるため説明を省略する。実施の形態4では、構成条件情報名235に「high_frequency」と示されている。
最大周波数237は、リファレンス名230に示されるセルが接続を許可するネットの最大周波数(MHz単位)を示す。図23(c)では、「300」と示されている。これは、リファレンス名230に示される「BUF1」が、最大300MHzまでの周波数のネットと接続を許可することを示している。また、図示していないが、ライブラリ407には、リファレンス名「BUF2」についてのライブラリも記憶されており、「BUF2」の最大周波数237は「600」と示されていることとする。すなわち、「BUF2」のバッファは、最大600MHzまでの周波数のネットと接続が許可されていることとする。
なお、最大周波数237のデータタイプは数値である。
4.2.2 ネットリストのデータ構造
図24は、実施の形態4にかかるネットリストに含まれる、1のネットのデータ構造を示す図である。
4.2.2.1 ネットのデータ構造
図24(a)は、ネットリスト中の、1のネットのデータ構造を示す図である。
同図(a)に示すように、ネットの1件のレコード2400aには、ネット名称240と、ネット属性241と、インスタンス名242とが含まれる。
ネット名称240、ネット属性241、インスタンス名242は、それぞれ、図4のネット名称40、ネット属性41、インスタンス名42と同様であるため説明を省略する。
実施の形態4では、ネット属性241に「high_frequency」と示されており、このネットに対して「high_frequency」のネット属性が付加されていることが示されている。
4.2.2.2 インスタンスのデータ構造
図24(b)は、ネットリスト中の、1のネットのインスタンスのデータ構造を示す図である。
同図(b)に示すように、インスタンスのレコード2400bには、インスタンス名243と、リファレンス名244と、構成条件情報名245と、最大周波数情報246とが含まれる。実施の形態1と比べて、特に、最大周波数情報246を含む点で異なる。インスタンス名243と、リファレンス名244と、構成条件情報名245とは、それぞれ図4(b)のインスタンス名43と、リファレンス名44と、構成条件情報名45と同様であるため説明を省略する。
最大周波数情報246は、インスタンス名243に示されるインスタンスが接続を許可するネットの最大周波数の制限を示す。同図では「600」と示されており、「BUF2_INST6」のインスタンスが、最大600MHzの周波数のネットと接続が許可されていることを示す。
4.3 ネットリスト生成処理の詳細
次に、実施の形態4における、ステップS205の処理について詳しく説明する。
なお、実施の形態4では、所定の特性を有するネットを、高周波ネットとしている。また、解析部104は、図2のステップS202において、選択対象となる高周波ネットの、周波数の下限を指定して解析を行い、解析の結果、指定された値以上の周波数を持つネットを抽出する。抽出されたネットをステップS203において選択することとする。また、属性付加部105は、ステップS204において、選択されたネットに「high_frequency」をネット属性として付加するものとする。また、ネット選択部103は、解析部104の解析において指定された周波数の値を、ネットリスト生成部109に通知することとする。なお、指定にかかる周波数の値を保持しておき、ネットリスト生成部109が保持されている値を読み出すこととしてもよい。
図25は、実施の形態4におけるステップS205の処理の詳細を示す図である。
図25に示すように、ネットリスト生成部109は、属性付加部105から出力され、ネット属性が付加された原ネットリスト401を取得する(ステップS2501)。
また、記憶部106に記憶されているライブラリ407を読み込む(ステップS2502)。
ネットリスト生成部109は、原ネットリスト401から、ネット属性「high_frequency」がネット属性241に付加されているネットを抽出する(ステップS2503)。
次に、ネット属性「high_frequency」のネットに接続し、リファレンス名「BUF1」を有するセルと、「BUF2」を有するセルとを抽出する(ステップS2504)。
ネットリスト生成部109は、解析部104の解析において指定された周波数の値が300MHz以下か否かを判断する(ステップS2505)。
ステップS2505において、300MHz以下と判断されれば(ステップS2505:YES)、処理を終了する。
ステップS2505において、300MHz以下でないと判断されれば(ステップS2505:NO)、解析部104の解析において指定された周波数の値が600MHz以下か否かを判断する(ステップS2506)。
ステップS2506において、600MHz以下と判断されれば(ステップS2506:YES)、ネットリスト生成部109は、「BUF1」を「BUF2」と置き換える(S2507)。
ステップS2506において、600MHz以下でないと判断されれば(ステップS2506:NO)、論理回路の構成を変更して合成する(ステップS2508)。
なお、上述の実施形態では、「BUF1」と「BUF2」のバッファが接続を許可するネットの最大周波数が、それぞれ300MHzと600MHzであったため、解析部104の解析において指定された値が300MHzか600MHzかの場合の処理について説明したが、解析部104の解析において指定する周波数の大きさはこれらの値に限らない。セルが接続可能な周波数に応じて柔軟に定めることが望ましい。
4.4 ネットの構成の遷移
図26は、ネットの構成の遷移を示す図である。
図26(a)は、原ネットリスト401における一部のネットの構成を示す図である。
同図(a)に示すように、原ネットリスト401には、バッファ2601と、高周波ネット2602とが、原ネットリスト401における一部のネットの構成として示されている。バッファ2601は「BUF1」のリファレンス名を有するとする。また、高周波ネット2602には、400MHzの周波数が伝播しているとする。また、解析部の指定にかかる周波数を400MHzとする。
論理回路合成装置1は、ステップS202、ステップS203、ステップS204の処理を行うことで、この原ネットリスト401に示されるネットのうち、高周波ネット2602に対し、ネット属性「high_frequency」を付加する。そして、ステップS205、具体的にはステップS2501〜ステップS2508の処理を行って、新ネットリスト411を生成する。
図26(b)は、新ネットリスト411における一部のネットの構成を示す図である。
同図に示すように、新ネットリスト411には、バッファ2603と、高周波ネット2602とが、新ネットリスト311における一部のネットの構成として示されている。ここで、バッファ2603は、最大600MHzまでの周波数のネットと接続することができる「BUF2」のリファレンス名を有する。
したがって、このネットの構成は、ライブラリ407の最大周波数237で示される条件を満たす。
4.5 ネットリストの更新過程
ここで、実施の形態4における論理回路合成装置1が処理を行う過程で、ネットリストに保持されているデータがどのように更新されていくかを説明する。
図27は、ネットリストの更新過程を示す図である。
図27(a)は、ステップS201の処理により、取得部102が取得したときの原ネットリスト401である。ネット属性はまだ付加されていない状態である。また、最大周波数情報246に、「300」と示されている。
図27(b)は、ステップS204の処理により、属性付加部105がネットにネット属性「high_frequency」を付加した状態で、その後ステップS205においてネットリスト生成部109に入力される原ネットリスト401である。ネット属性241に、ネット属性「high_frequency」が付加されている。
図27(c)は、ネットリスト生成部109によって生成される新ネットリスト411である。インスタンスのデータ構造において、構成条件情報を適用して、「BUF1」のバッファが「BUF2」のバッファに置き換えられた後のネットの構成が示されている。
<実施の形態5>
5.1 概要
以下、本発明にかかる論理回路合成装置の、別の実施形態について説明する。
実施の形態5においては、論理回路合成装置1は、バス信号が流れるバス信号ネットを、所定の特性を有するネットとして選択する。
バス信号が流れるネットでは、反射波が発生して信号に悪影響を及ぼすことがある。これを解消するためには、バス信号が流れるネットに終端抵抗を接続するとよい。こうすることで、バス信号が流れるネットのインピーダンスを整合させて、反射波の発生を抑えることができる。
また、ライブラリのデータ構造が実施の形態1と一部異なるため、実施の形態5においては、ライブラリ507として説明する。
また、ネットリストのデータ構造が実施の形態1と異なるため、実施の形態5においては、ネットリストをそれぞれ原ネットリスト501、新ネットリスト511とする。
その他、実施の形態1と共通する各機能ブロックについては、実施の形態1と同一の参照符号を付して説明を省略する。
5.2 データ
以下、記憶部106が記憶しているライブラリ507のデータ構造と、ネットリストのデータ構造について説明する。
5.2.1 ライブラリ507
図28は、ライブラリ507に含まれる、1のセルについてのデータ構造を示す図である。
5.2.1.1 ライブラリのデータ構造
同図(a)に示すように、ライブラリ507の1件のレコード507aには、リファレンス名280と、入力ピン281とが含まれる。リファレンス名280、入力ピン281は、それぞれ図3のリファレンス名30、入力ピン31と同様にリファレンス名などを示すものであるため、説明を省略する。
リファレンス名280には「REG1」と示されているが、これは終端抵抗についてのライブラリであることを示している。
5.2.1.2 ピンのデータ構造
また、同図(b)では、ピンのデータ構造も示している。ピンのデータ中のレコード507bには、ピン名283と、構成条件情報名284とが含まれる。
ピン名283、構成条件情報名284は、それぞれ図3のピン名33、構成条件情報名34と同様であるため説明を省略する。
実施の形態5では、構成条件情報名284には、「BUS」と示されている。「BUS」は、バス信号ネットを示すネット属性のリファレンス名である。
5.2.1.3 構成条件情報のデータ構造
また、同図(c)に、構成条件情報のデータ構造を示す。構成条件情報のデータ中のレコード507cには、構成条件情報名285、接続タイプ286、接続インスタンス数287とが含まれる。実施の形態1と比べて、特に、接続インスタンス数287を含む点で異なる。
構成条件情報名285、接続タイプ286は、それぞれ図3の構成条件情報名35、接続タイプ36と同様であるため説明を省略する。実施の形態5では、構成条件情報名285に「BUS」と示されている。
接続インスタンス数287は、リファレンス名280に示されるセルが、構成条件情報名285に示される「BUS」のネット属性を有するネットに接続する際の接続数の制限を示す。同図では「1」と示されており、「REG1」のリファレンス名を有する抵抗を、「BUS」のネット属性を有するネットに1個だけ接続を許可することが示されている。
なお、接続インスタンス数287のデータタイプは整数である。
5.2.2 ネットリストのデータ構造
図29は、実施の形態5にかかるネットリストに含まれる、1のネットのデータ構造を示す図である。
5.2.2.1 ネットのデータ構造
図29(a)は、ネットリスト中の、1のネットのデータ構造を示す図である。
同図(a)に示すように、ネットの1件のレコード2900aには、ネット名称290と、ネット属性291と、インスタンス名292とが含まれる。
ネット名称290、ネット属性291、インスタンス名292は、それぞれ、図4のネット名称40、ネット属性41、インスタンス名42と同様であるため説明を省略する。
実施の形態5では、ネット属性291に「BUS」と示されており、このネットに対して「BUS」のネット属性が付加されていることが示されている。
5.2.2.2 インスタンスのデータ構造
図29(b)は、ネットリスト中の、1のネットのインスタンスのデータ構造を示す図である。
同図(b)に示すように、インスタンスのレコード2900bには、インスタンス名293と、リファレンス名294と、構成条件情報名295と、接続インスタンス数情報296とが含まれる。実施の形態1と比べて、特に、接続インスタンス数情報296を含む点で異なる。インスタンス名193と、リファレンス名194と、構成条件情報名195は、それぞれ図4(b)のインスタンス名43と、リファレンス名44と、構成条件情報名45とと同様であるため説明を省略する。
接続インスタンス数情報296は、インスタンス名293に示されるインスタンスがネットに接続している数を示す。同図では「1」と示されており、ネット属性「BUS」を有するネットに、インスタンス名「REG1_INST7」のインスタンスが1つ接続していることを示している。
5.3 ネットリスト生成処理の詳細
次に、実施の形態5における、ステップS205の処理について詳しく説明する。
なお、実施の形態5では、所定の特性を有するネットを、バス信号ネットとしている。また、解析部104は、図2のステップS202において、バス信号を指定し、原ネットリスト511を解析して、指定したバス信号が流れるネットを抽出し、抽出されたネットをステップS203において選択することとする。また、属性付加部105は、ステップS204において、選択されたネットに「BUS」をネット属性として付加するものとする。
図30は、実施の形態5におけるステップS205の処理の詳細を示す図である。
図30に示すように、ネットリスト生成部109は、属性付加部105から出力され、ネット属性が付加された原ネットリスト501を取得する(ステップS3001)。
また、記憶部106に記憶されているライブラリ507を読み込む(ステップS3002)。
ネットリスト生成部109は、原ネットリスト501から、ネット属性「BUS」がネット属性291に付加されているネットを抽出する(ステップS3003)。
ネットリスト生成部109は、「BUS」のネット属性を有するネットを抽出すると、「BUS」のネットに終端抵抗が接続されているか否かを判断する(ステップS3004)。
ステップS3004において、「BUS」のネット属性のネットに終端抵抗が接続されていると判断されると(ステップS3004:YES)、処理を終了する。
ステップS3004において、「BUS」のネット属性のネットに終端抵抗が接続されていないと判断されると(ステップS3004:NO)、ステップS3002において読み出したライブラリ507から、構成条件情報名284に「BUS」と示されているセル、実施の形態5では「REG1」のリファレンス名を有する終端抵抗を読み出す。読み出した「REG1」の終端抵抗を、「REG1」のライブラリの接続インスタンス数情報287に示される数だけ、「BUS」のネット属性のネットに接続する(ステップS3005)。実施の形態5では、「REG1」のリファレンス名を有する終端抵抗を、1個、「BUS」のネット属性のネットに接続する。
5.4 ネットの構成の遷移
図31は、ネットの構成の遷移を示す図である。
図31(a)は、原ネットリスト501における一部のネットの構成を示す図である。
同図(a)に示すように、原ネットリスト501には、バス信号が流れるバス信号ネット3101と、インバータ3102と、or回路3103と、インバータ3104とが、原ネットリスト501における一部のネットの構成として示されている。
論理回路合成装置1は、ステップS202、ステップS203、ステップS204の処理を行うことで、この原ネットリスト501に示されるネットのうち、バス信号ネット3101に対し、ネット属性「BUS」を付加する。そして、ステップS205、具体的にはステップS3001〜ステップS3005の処理を行って、新ネットリスト511を生成する。
図31(b)は、新ネットリスト511における一部のネットの構成を示す図である。
同図に示すように、新ネットリスト511には、図31(a)に示す構成に加えて、「REG1」のリファレンス名を有する終端抵抗3105が、新ネットリスト511における一部のネットの構成として示されている。
したがって、このネットの構成は、ライブラリ507の接続インスタンス数287で示される条件を満たす。
5.5 ネットリストの更新過程
ここで、実施の形態5における論理回路合成装置1が処理を行う過程で、ネットリストに保持されているデータがどのように更新されていくかを説明する。
図32は、ネットリストの更新過程を示す図である。
図32(a)は、ステップS201の処理により、取得部102が取得したときの原ネットリスト501である。ネット属性はまだ付加されていない状態である。
図32(b)は、ステップS204の処理により、属性付加部105がネットにネット属性「BUS」を付加した状態で、その後ステップS205においてネットリスト生成部109に入力される原ネットリスト501である。ネット属性291に、ネット属性「BUS」が付加されている。
図32(c)は、ネットリスト生成部109によって生成される新ネットリスト511である。インスタンスのデータ構造において、構成条件情報を適用して、「REG1」の終端抵抗を、1個、バス信号ネットに接続した後のネットの構成が示されている。
<実施の形態6>
6.1 概要
以下、本発明にかかる論理回路合成装置の、別の実施形態について説明する。
実施の形態6においては、論理回路合成装置1は、所定の高さのトグル率のネットである高トグルネットを、所定の特性を有するネットとして選択する。
トグル率が高いということは、ネットにおいて電圧の切り替わりの頻度が高いということである。フリップフロップなどの消費電力が大きいセルで、電圧の切り替わり頻度が高いと、セルからの発熱が大きくなる。したがって、高トグルネットにおいて、消費電力の大きいセル同士が比較的近い距離で接続されると、局所的に発熱が大きくなり、セルからの発熱に基づくノイズの影響が大きくなるおそれがある。これを解消するためには、消費電力が大きいセル同士を離して配置するとよい。こうすることで、局所的な発熱を防ぐことができる。
また、ライブラリのデータ構造が実施の形態1と一部異なるため、実施の形態6においては、ライブラリ607として説明する。
また、ネットリストのデータ構造が実施の形態1と異なるため、実施の形態6においては、ネットリストをそれぞれ原ネットリスト601、新ネットリスト611とする。
その他、実施の形態1と共通する各機能ブロックについては、実施の形態1と同一の参照符号を付して説明を省略する。
6.2 データ
以下、記憶部106が記憶しているライブラリ607のデータ構造と、ネットリストのデータ構造について説明する。
6.2.1 ライブラリ607
図33は、ライブラリ607に含まれる、1のセルについてのデータ構造を示す図である。
6.2.1.1 ライブラリのデータ構造
同図(a)に示すように、ライブラリ607の1件のレコード607aには、リファレンス名330と、入力ピン331と、出力ピン332とが含まれる。リファレンス名330、入力ピン331、出力ピン332は、それぞれ図3のリファレンス名30、入力ピン31、出力ピン32と同様にリファレンス名などを示すものであるため、説明を省略する。
6.2.1.2 ピンのデータ構造
また、同図(b)では、ピンのデータ構造も示している。ピンのデータ中のレコード607bには、ピン名333と、構成条件情報名334とが含まれる。
ピン名333、構成条件情報名334は、それぞれ図3のピン名33、構成条件情報名34と同様であるため説明を省略する。
実施の形態6では、構成条件情報名334には、「toggle」と示されている。「toggle」は、高トグルネットを示すネット属性のリファレンス名である。
6.2.1.3 構成条件情報のデータ構造
また、同図(c)に、構成条件情報のデータ構造を示す。構成条件情報のデータ中のレコード607cには、構成条件情報名335、接続タイプ336、対象となるリファレンス名337、最小距離338とが含まれる。実施の形態1と比べて、特に、最小距離338を含む点で異なる。
構成条件情報名335、接続タイプ336、対象となるリファレンス名337は、それぞれ図3の構成条件情報名35、接続タイプ36、対象となるリファレンス名37と同様であるため説明を省略する。
最小距離338は、リファレンス名330に示されるセルと、対象となるリファレンス名337に示されるセルとの間の最小距離を示す。
実施の形態6では、構成条件情報名335に「toggle」と示されている。また、対象となるリファレンス名187に「FF2」「FF3」と示されている。これは、リファレンス名180に示される「FF1」と「FF2」または「FF1」と「FF3」との距離を、最小距離338に示される距離以上に離すべきであることを示している。
なお、最小距離338のデータタイプは数値である。
6.2.2 ネットリストのデータ構造
図34は、実施の形態6にかかるネットリストに含まれる、1のネットのデータ構造を示す図である。
6.2.2.1 ネットのデータ構造
図34(a)は、ネットリスト中の、1のネットのデータ構造を示す図である。
同図(a)に示すように、ネットの1件のレコード3400aには、ネット名称340と、ネット属性341と、インスタンス名342とが含まれる。
ネット名称340、ネット属性341、インスタンス名342は、それぞれ、図4のネット名称40、ネット属性41、インスタンス名42と同様であるため説明を省略する。
実施の形態6では、ネット属性341に「toggle」と示されており、このネットに対して「toggle」のネット属性が付加されていることが示されている。
6.2.2.2 インスタンスのデータ構造
図34(b)は、ネットリスト中の、1のネットのインスタンスのデータ構造を示す図である。
同図(b)に示すように、インスタンスのレコード3400bには、インスタンス名343と、リファレンス名344と、構成条件情報名345と、対象インスタンス346と、インスタンスの位置347と、対象インスタンスの位置348が含まれる。インスタンス名343と、リファレンス名344と、構成条件情報名345と、対象インスタンス346と、インスタンスの位置347と、対象インスタンスの位置348は、それぞれ図4(b)のインスタンス名43と、リファレンス名44と、構成条件情報名45と、対象インスタンス46と、インスタンスの位置47と、対象インスタンスの位置48と同様であるため説明を省略する。
6.3 ネットリスト生成処理の詳細
次に、実施の形態6における、ステップS205の処理について詳しく説明する。
なお、実施の形態6では、所定の特性を有するネットを、高トグルネットとしている。また、解析部104は、図2のステップS202において、選択対象となる高トグルネットの、トグル率の高さを指定して解析を行い、解析の結果抽出されたネットをステップS203において選択することとする。また、属性付加部105は、ステップS204において、選択されたネットに「toggle」をネット属性として付加するものとする。
図35は、実施の形態6におけるステップS205の処理の詳細を示す図である。
図35に示すように、ネットリスト生成部109は、属性付加部105から出力され、ネット属性が付加された原ネットリスト601を取得する(ステップS3501)。
また、記憶部106に記憶されているライブラリ607を読み込む(ステップS3502)。ライブラリ607には、リファレンス名「FF1」のフリップフロップに、構成条件情報名334が「toggle」である構成条件情報が付加されている。
ネットリスト生成部109は、原ネットリスト601から、ネット属性「toggle」がネット属性341に付加されているネットを抽出する(ステップS3503)。
ライブラリ607を参照し、構成条件情報名334に「toggle」が付加されているセル、すなわちリファレンス名「FF1」のフリップフロップのライブラリを読み出す。ネットリスト生成部109は、ネット属性「toggle」のネットに接続し、リファレンス名「FF1」を有するセルを抽出する(ステップS3504)。
また、リファレンス名「FF1」のセルのライブラリの、対象となるリファレンス名337を参照し、対象となるリファレンス名337に「FF2」「FF3」と示されていることを読み出すと、原ネットリスト601から「FF2」「FF3」のリファレンス名を有するセルを抽出する(ステップS3505)。
ネットリスト生成部109は、抽出した「FF1」「FF2」「FF3」のセルを対象として、「FF1」から「FF2」までの距離、および「FF1」から「FF3」までの距離を、「FF1」のライブラリの最小距離338に示される数値以上、すなわち20以上とする(ステップS3506)。
6.4 ネットの構成の遷移
図36は、ネットの構成の遷移を示す図である。
図36(a)は、原ネットリスト601における一部のネットの構成を示す図である。
同図(a)に示すように、原ネットリスト601には、高トグルネット3601と、フリップフロップ3602と、フリップフロップ3603とが、原ネットリスト601における一部のネットの構成として示されている。フリップフロップ3602は「FF1」のリファレンス名を有し、フリップフロップ3603は「FF2」のリファレンス名を有するとする。
論理回路合成装置1は、ステップS202、ステップS203、ステップS204の処理を行うことで、この原ネットリスト601に示されるネットのうち、高トグルネット3601に対し、ネット属性「toggle」を付加する。そして、ステップS205、具体的にはステップS3501〜ステップS3506の処理を行って、新ネットリスト611を生成する。
図36(b)は、新ネットリスト611における一部のネットの構成を示す図である。
同図に示すように、新ネットリスト611には、高トグルネット3601と、フリップフロップ3602と、フリップフロップ3603とが、新ネットリスト611における一部のネットの構成として示されている。ネットリスト生成部109の処理により、フリップフロップ3602とフリップフロップ3603との間の距離が20以上となっている。
したがって、このネットの構成は、ライブラリ607の最小距離338で示される条件を満たす。
6.5 ネットリストの更新過程
ここで、実施の形態6における論理回路合成装置1が処理を行う過程で、ネットリストに保持されているデータがどのように更新されていくかを説明する。
図37は、ネットリストの更新過程を示す図である。
図37(a)は、ステップS201の処理により、取得部102が取得したときの原ネットリスト601である。ネット属性はまだネットに付加されていない状態である。
図37(b)は、ステップS204の処理により、属性付加部105がネットにネット属性「toggle」を付加した状態で、その後ステップS205においてネットリスト生成部109に入力される原ネットリスト601である。ネット属性341に、ネット属性「toggle」が付加されている。
図37(c)は、ネットリスト生成部109によって生成される新ネットリスト611である。インスタンスのデータ構造において、構成条件情報を適用して、インスタンス「FF1_INST8」とインスタンス「FF2_INST8」との間の距離が20以上となっていることが示されている。ここで、インスタンス「FF1_INST8」は、「FF1」のフリップフロップ、インスタンス「FF2_INST8」は、「FF2」のフリップフロップを示す。
6.6 実施の形態6の変形例1
なお、上述の実施の形態6では、具体的には、高トグルネットに接続するフリップフロップ間の距離を所定値より大きくすることとしていたが、このセル間の距離制限に代えて、セルに電力を供給するための配線である供給線に関する制限を適用して論理合成を行うこととしてもよい。供給線は複数本あり、プラスの電圧がかかっている配線とマイナスの電圧がかかっている配線が交互に平行に配置されている。複数のセルが、あるプラスおよびマイナスの供給線のペアを介して電力の供給を受けるとき、前記複数のセルは、同一のrowにあるという。逆に、rowが異なるとは、セルが接続しているプラス電圧の供給線またはマイナス電圧の供給線の少なくとも1つが異なることをいう。
複数のセルの電力を、同じrowから供給すると、電力が十分に供給されず、IRドロップが発生することがある。
そこで、複数のセルがなるべく異なるrowから電力の供給を受けるように、rowに関する配置制限を構成条件情報に含めることで、消費電力が大きいセルを同じrowに配置しない等により、IRドロップの発生を低減することができる。
なお、以下に示す実施の形態6の変形例1の説明では、記憶部106が記憶しているライブラリを、ライブラリ607−1とする。また、取得部102が取得するネットリストを、原ネットリスト601−1とし、ネットリスト生成部109が生成するネットリストを、新ネットリスト611−1とする。
6.7 実施の形態6の変形例1のデータ
変形例における、記憶部106が記憶しているライブラリ607−1のデータ構造と、ネットリストのデータ構造について説明する。
6.7.1 ライブラリ607−1
図38は、ライブラリ607−1に含まれる、1のセルについてのデータ構造を示す図である。
6.7.1.1 ライブラリのデータ構造
同図(a)に示すように、ライブラリ607−1の1件のレコード607−1aには、リファレンス名380と、入力ピン381と、出力ピン382とが含まれる。リファレンス名380、入力ピン381、出力ピン382は、それぞれ図33のリファレンス名330、入力ピン331、出力ピン332と同様にリファレンス名などを示すものであるため、説明を省略する。
6.7.1.2 ピンのデータ構造
また、同図(b)では、ピンのデータ構造も示している。ピンのデータ中のレコード607−1bには、ピン名383と、構成条件情報名384とが含まれる。
ピン名383、構成条件情報名384は、それぞれ図33のピン名333、構成条件情報名334と同様であるため説明を省略する。
6.7.1.3 構成条件情報のデータ構造
また、同図(c)に、構成条件情報のデータ構造を示す。構成条件情報のデータ中のレコード607−1cには、構成条件情報名385、接続タイプ386、対象となるリファレンス名387、最小row間隔388とが含まれる。上述の実施の形態6と変形例1とでは、最小row間隔388が変形例1においては含まれる点で異なる。
構成条件情報名385、接続タイプ386、対象となるリファレンス名387は、それぞれ図33の構成条件情報名335、接続タイプ336、対象となるリファレンス名337と同様であるため説明を省略する。
最小row間隔388は、リファレンス名380に示されるセルと、対象となるリファレンス名387に示されるセルとを、最小row間隔388に示される値の分だけrowを離して配置すべきことを示す。同図の例では、最小row間隔388に「1」と示されており、これは、例えばリファレンス名380に示される「FF1」と、対象となるリファレンス名387に示されるセル「FF2」を、rowを1つ離して配置すべきことを示す。
なお、最小row間隔388のデータタイプは、整数である。
6.7.2 ネットリストのデータ構造
図39は、実施の形態6の変形例1にかかるネットリストに含まれる、1のネットのデータ構造を示す図である。
6.7.2.1 ネットのデータ構造
図39(a)は、ネットリスト中の、1のネットのデータ構造を示す図である。
同図(a)に示すように、ネットの1件のレコード3900aには、ネット名称390と、ネット属性391と、インスタンス名392とが含まれる。
ネット名称390、ネット属性391、インスタンス名392は、それぞれ、図34のネット名称340、ネット属性341、インスタンス名342と同様であるため説明を省略する。
6.7.2.2 インスタンスのデータ構造
図39(b)は、ネットリスト中の、1のネットのインスタンスのデータ構造を示す図である。
同図(b)に示すように、インスタンスのレコード3900bには、インスタンス名393と、リファレンス名394と、構成条件情報名395と、対象インスタンス396と、インスタンスの位置397と、対象インスタンスの位置398が含まれる。
インスタンス名393と、リファレンス名394と、構成条件情報名395と、対象インスタンス396と、インスタンスの位置397と、対象インスタンスの位置398は、それぞれ図34(c)のインスタンス名343と、リファレンス名344と、構成条件情報名345と、対象インスタンス346と、インスタンスの位置347と、対象インスタンスの位置348と同様であるため説明を省略する。
なお、変形例1においては、対象となるインスタンス396、対象インスタンスの位置398において、複数のインスタンスそれぞれについてデータを格納することとしている。
6.8 変形例1におけるネットリスト生成処理の詳細
次に、実施の形態6の変形例1における、ステップS205の処理について詳しく説明する。
ステップS202、ステップS203については、上述の実施の形態6と同様である。
なお、上述の実施の形態6とでは、rowに関する配置制限を考慮して論理回路合成装置1が合成を行う点で異なる。
図40は、実施の形態6の変形例1におけるステップS205の処理の詳細を示す図である。
なお、ステップS4001、ステップS4002、ステップS4003、ステップS4004、ステップS4005の処理は、それぞれ図35のステップS3501、ステップS3502、ステップS3503、ステップS3504、ステップS3505と同様であるため説明を省略する。
ステップS4005の処理に続いて、ネットリスト生成部109は、「FF1」のセルと「FF2」のセルを、rowの間隔を1以上離して配置する。また、ネットリスト生成部109は、「FF1」のセルと「FF3」のセルを、「FF1」のライブラリの最小row間隔388に示される数値以上離して配置する。すなわちrowの間隔を1以上離して配置する(ステップS4006)。
6.9 ネットの構成の遷移
図41は、ネットの構成の遷移を示す図である。
図41(a)は、原ネットリスト601−1における一部のネットの構成を示す図である。
同図(a)に示すように、原ネットリスト601−1には、高トグルネット4101と、row4102と、row4103と、row4104と、row4105と、row4106と、row4107と、フリップフロップ4108と、フリップフロップ4109と、フリップフロップ4110とが、原ネットリスト601−1における一部のネットの構成として示されている。フリップフロップ4108は「FF1」のリファレンス名を有する。また、フリップフロップ4109は「FF2」のリファレンス名を有する。また、フリップフロップ4110は「FF3」のリファレンス名を有する。
論理回路合成装置1は、ステップS202、ステップS203、ステップS204の処理を行うことで、この原ネットリスト601−1に示されるネットのうち、高トグルネット4101に対し、ネット属性「toggle」を付加する。そして、ステップS205、具体的にはステップS4001〜ステップS4006の処理を行って、新ネットリスト611−1を生成する。
図41(b)は、新ネットリスト611−1における一部のネットの構成を示す図である。
同図に示すように、新ネットリスト611−1には、原ネットリスト611−1に含まれるセルと同様のセルが、新ネットリスト611−1における一部のネットの構成として示されている。
ここで、同図に示すように、新ネットリスト611−1においては、「FF1」は、row4104から電力の供給を受けている。また、「FF2」は、row4105から電力の供給を受けている。また、「FF3」は、row4103から電力の供給を受けている。すなわち、「FF1」「FF2」「FF3」は、異なるrowに配置されている。
その結果、「FF1」の配置位置は、インスタンスの位置397に示されるとおり(10,30)であり、「FF2」の配置位置は、対象インスタンスの位置398に示されるとおり(20,40)であり、「FF3」の配置位置は、対象インスタンスの位置398に示されるとおり、(30,20)となっている。
このネットの構成は、ライブラリ607−1の最小row間隔388で示される条件を満たす。
6.10 ネットリストの更新過程
ここで、実施の形態6の変形例1における論理回路合成装置1が処理を行う過程で、ネットリストに保持されているデータがどのように更新されていくかを説明する。
図42は、ネットリストの更新過程を示す図である。
図42(a)は、ステップS201の処理により、取得部102が取得したときの原ネットリスト601−1である。
図42(b)は、ステップS204の処理により、属性付加部105がネットにネット属性「toggle」を付加した状態で、その後ステップS205においてネットリスト生成部109に入力される原ネットリスト601−1である。
図42(c)は、ネットリスト生成部109によって生成される新ネットリスト611−1である。インスタンスのデータ構造において、構成条件情報を適用してフリップフロップ間の配置位置を調整した後のネットの構成が示されている。
6.11 実施の形態6の変形例2
上述の変形例1ではrowに関する配置制限を構成条件情報に含めていたが、この他にも、ストラップ配線を考慮してセルを配置することとしてもよい。
ストラップ配線とは、rowに電力を供給する供給線同士を接続する配線であり、rowをまたいで配線される。ストラップ配線は、rowにプラスの電圧を供給する供給線同士を接続したものと、rowにマイナスの電圧を供給する供給線同士を接続したものとからなる。これらストラップ配線は、通常、複数本存在する。
rowの場合と同様に、複数のセルの電力を、同じストラップ配線から供給すると、電力が十分に供給されず、IRドロップが発生することがある。
そこで、複数のセルがなるべく異なるストラップ配線から電力の供給を受けるように、ストラップ配線に関する配置制限を構成条件情報に含めることで、IRドロップの発生を低減することができる。
なお、以下に示す実施の形態6の変形例2の説明では、記憶部106が記憶しているライブラリを、ライブラリ607−2とする。また、取得部102が取得するネットリストを、原ネットリスト601−2とし、ネットリスト生成部109が生成するネットリストを、新ネットリスト611−2とする。
6.12 実施の形態6の変形例2のデータ
変形例2における、記憶部106が記憶しているライブラリ607−2のデータ構造と、ネットリストのデータ構造について説明する。
6.12.1 ライブラリ607−2
図43は、ライブラリ607−2に含まれる、1のセルについてのデータ構造を示す図である。
6.12.1.1 ライブラリのデータ構造
同図(a)に示すように、ライブラリ607−2の1件のレコード607−2aには、リファレンス名430と、入力ピン431と、出力ピン432とが含まれる。リファレンス名430、入力ピン431、出力ピン432は、それぞれ図33のリファレンス名330、入力ピン331、出力ピン332と同様にリファレンス名などを示すものであるため、説明を省略する。
6.12.1.2 ピンのデータ構造
また、同図(b)では、ピンのデータ構造も示している。ピンのデータ中のレコード607−2bには、ピン名433と、構成条件情報名434とが含まれる。
ピン名433、構成条件情報名434は、それぞれ図33のピン名333、構成条件情報名334と同様であるため説明を省略する。
6.12.1.3 構成条件情報のデータ構造
また、同図(c)に、構成条件情報のデータ構造を示す。構成条件情報のデータ中のレコード607−2cには、構成条件情報名435、接続タイプ436、対象となるリファレンス名437、最小ストラップ間隔438とが含まれる。上述の実施の形態6と変形例2とでは、最小ストラップ間隔438が変形例2においては含まれる点で異なる。
構成条件情報名435、接続タイプ436、対象となるリファレンス名437は、それぞれ図33の構成条件情報名335、接続タイプ336、対象となるリファレンス名337と同様であるため説明を省略する。
最小ストラップ間隔438は、リファレンス名430に示されるセルと、対象となるリファレンス名437に示されるセルとを、最小ストラップ間隔438に示される値の分だけストラップ配線を挟んで配置すべきことを示す。同図の例では、最小ストラップ間隔438に「1」と示されており、これは、例えばリファレンス名430に示される「FF1」と、対象となるリファレンス名437に示されるセル「FF2」を、ストラップ配線を1本挟んで配置すべきことを示す。
なお、最小ストラップ間隔438のデータタイプは、整数である。
6.12.2 ネットリストのデータ構造
図44は、実施の形態6の変形例2にかかるネットリストに含まれる、1のネットのデータ構造を示す図である。
6.12.2.1 ネットのデータ構造
図44(a)は、ネットリスト中の、1のネットのデータ構造を示す図である。
同図(a)に示すように、ネットの1件のレコード4400aには、ネット名称440と、ネット属性441と、インスタンス名442とが含まれる。
ネット名称440、ネット属性441、インスタンス名442は、それぞれ、図34のネット名称340、ネット属性341、インスタンス名342と同様であるため説明を省略する。
6.12.2.2 インスタンスのデータ構造
図44(b)は、ネットリスト中の、1のネットのインスタンスのデータ構造を示す図である。
同図(b)に示すように、インスタンスのレコード4400bには、インスタンス名443と、リファレンス名444と、構成条件情報名445と、対象インスタンス446と、インスタンスの位置447と、対象インスタンスの位置448が含まれる。
インスタンス名443と、リファレンス名444と、構成条件情報名445と、対象インスタンス446と、インスタンスの位置447と、対象インスタンスの位置448は、それぞれ図34(c)のインスタンス名343と、リファレンス名344と、構成条件情報名345と、対象インスタンス346と、インスタンスの位置347と、対象インスタンスの位置348と同様であるため説明を省略する。
なお、変形例2においては、対象となるインスタンス446、対象インスタンスの位置448において、複数のインスタンスそれぞれについてデータを格納することとしている。
6.13 変形例2におけるネットリスト生成処理の詳細
次に、実施の形態6の変形例2における、ステップS205の処理について詳しく説明する。
ステップS202、ステップS203については、上述の実施の形態6と同様である。
なお、上述の実施の形態6とでは、ストラップ配線に関する配置制限を考慮して論理回路合成装置1が合成を行う点で異なる。
図45は、実施の形態6の変形例1におけるステップS205の処理の詳細を示す図である。
なお、ステップS4501、ステップS4502、ステップS4503、ステップS4504、ステップS4505の処理は、それぞれ図35のステップS3501、ステップS3502、ステップS3503、ステップS3504、ステップS3505と同様であるため説明を省略する。
ステップS4505の処理に続いて、ネットリスト生成部109は、「FF1」のセルと「FF2」のセルを、ストラップ配線を1本挟んで配置する。また、ネットリスト生成部109は、「FF1」のセルと「FF3」のセルを、「FF1」のライブラリの最小ストラップ間隔438に示される数値以上離して配置する。すなわち、ストラップ配線を1本挟んで配置する(ステップS4506)。
6.14 ネットの構成の遷移
図46は、ネットの構成の遷移を示す図である。
図46(a)は、原ネットリスト601−2における一部のネットの構成を示す図である。
同図(a)に示すように、原ネットリスト601−2には、高トグルネット4601と、ストラップ配線4602と、ストラップ配線4603と、フリップフロップ4604と、フリップフロップ4605と、フリップフロップ4606とが、原ネットリスト601−2における一部のネットの構成として示されている。フリップフロップ4604は「FF1」のリファレンス名を有する。また、フリップフロップ4605は「FF2」のリファレンス名を有する。また、フリップフロップ4606は「FF3」のリファレンス名を有する。
論理回路合成装置1は、ステップS202、ステップS203、ステップS204の処理を行うことで、この原ネットリスト601−2に示されるネットのうち、高トグルネット4601に対し、ネット属性「toggle」を付加する。そして、ステップS205、具体的にはステップS4501〜ステップS4506の処理を行って、新ネットリスト611−2を生成する。
図46(b)は、新ネットリスト611−2における一部のネットの構成を示す図である。
同図に示すように、新ネットリスト611−2には、原ネットリスト611−2に含まれるセルと同様のセルが、新ネットリスト611−2における一部のネットの構成として示されている。
ここで、同図に示すように、新ネットリスト611−2においては、「FF1」「FF2」「FF3」は、ストラップ配線を1本挟んで配置されている。
このネットの構成は、ライブラリ607−2の最小ストラップ間隔438で示される条件を満たす。
6.15 ネットリストの更新過程
ここで、実施の形態6の変形例2における論理回路合成装置1が処理を行う過程で、ネットリストに保持されているデータがどのように更新されていくかを説明する。
図47は、ネットリストの更新過程を示す図である。
図47(a)は、ステップS201の処理により、取得部102が取得したときの原ネットリスト601−2である。
図47(b)は、ステップS204の処理により、属性付加部105がネットにネット属性「toggle」を付加した状態で、その後ステップS205においてネットリスト生成部109に入力される原ネットリスト601−2である。
図47(c)は、ネットリスト生成部109によって生成される新ネットリスト611−2である。インスタンスのデータ構造において、構成条件情報を適用してフリップフロップ間の配置位置を調整した後のネットの構成が示されている。
<実施の形態7>
7.1 概要
以下、本発明にかかる論理回路合成装置の、別の実施形態について説明する。
実施の形態7においては、論理回路合成装置1は、フリップフロップが直結しているFF直結ネットを、所定の特性を有するネットとして選択する。
フリップフロップが直結しているネットにおいては、信号が第1のフリップフロップの出力ピンから出発して第2のフリップフロップの入力ピンに到達するまでの時間がクロック周期に入っている必要がある。信号到達が速すぎる場合をホールドエラーというが、このホールドエラーに対しては、バッファを挿入することでエラーを解消できる。
そこで、実施の形態7では、第1のフリップフロップから第2のフリップフロップまでの遅延が所定時間以上、例えば1ナノ秒以上となるようにバッファをフリップフロップ間に挿入する。なお、この所定時間は、例えば、第1のフリップフロップの内部遅延時間と第2のフリップフロップのホールドチェック時間に基づいて、ホールドエラーが発生しない時間を予め定めておく。また、論理回路におけるフリップフロップ間の遅延時間は、シミュレーション等により計測される。
また、ライブラリのデータ構造が実施の形態1と一部異なるため、実施の形態7においては、ライブラリ707として説明する。
また、ネットリストのデータ構造が実施の形態1と異なるため、実施の形態7においては、ネットリストをそれぞれ原ネットリスト701、新ネットリスト711とする。
その他、実施の形態1と共通する各機能ブロックについては、実施の形態1と同一の参照符号を付して説明を省略する。
7.2 データ
以下、記憶部106が記憶しているライブラリ707のデータ構造と、ネットリストのデータ構造について説明する。
7.2.1 ライブラリ707
図48は、ライブラリ707に含まれる、1のセルについてのデータ構造を示す図である。
7.2.1.1 ライブラリのデータ構造
同図(a)に示すように、ライブラリ707の1件のレコード707aには、リファレンス名480と、入力ピン481と、出力ピン482とが含まれる。リファレンス名480、入力ピン481、出力ピン482は、それぞれ図3のリファレンス名30、入力ピン31、出力ピン32と同様にリファレンス名などを示すものであるため、説明を省略する。
7.2.1.2 ピンのデータ構造
また、同図(b)では、ピンのデータ構造も示している。ピンのデータ中のレコード707bには、ピン名483と、構成条件情報名484とが含まれる。
ピン名483、構成条件情報名484は、それぞれ図3のピン名33、構成条件情報名34と同様であるため説明を省略する。
実施の形態7では、構成条件情報名484には、「shift」と示されている。「shift」は、フリップフロップが直結しているネットを示すネット属性のリファレンス名である。
7.2.1.3 構成条件情報のデータ構造
また、同図(c)に、構成条件情報のデータ構造を示す。構成条件情報のデータ中のレコード707cには、構成条件情報名485、接続タイプ486、対象となるリファレンス名487、最小遅延488とが含まれる。実施の形態1と比べて、特に、最小遅延488を含む点で異なる。
構成条件情報名485、接続タイプ486、対象となるリファレンス名487は、それぞれ図3の構成条件情報名35、接続タイプ36、対象となるリファレンス名37と同様であるため説明を省略する。
実施の形態7では、構成条件情報名485に「shift」と示されている。また、対象となるリファレンス名487に「FF2」と示されている。これは、「FF2」とリファレンス名480に示される「FF1」との間にバッファを挿入する等して遅延時間を調整すべきであることを示している。
最小遅延488は、構成条件情報を適用する対象となるリファレンス間の遅延の最小時間を示す。すなわち、最小遅延488に示される時間以上の遅延とすべきであることを示す。時間の単位は、例えばナノ秒である。図48(c)では、「1」と示されている。これは、リファレンス名480に示される「FF1」から、対象となるリファレンス名487に示される「FF2」までの遅延を1ナノ秒以上とすべきことを示している。
なお、最小遅延488のデータタイプは数値である。
7.2.2 ネットリストのデータ構造
図49は、実施の形態7にかかるネットリストに含まれる、1のネットのデータ構造を示す図である。
7.2.2.1 ネットのデータ構造
図49(a)は、ネットリスト中の、1のネットのデータ構造を示す図である。
同図(a)に示すように、ネットの1件のレコード4900aには、ネット名称490と、ネット属性491と、インスタンス名492とが含まれる。
ネット名称490、ネット属性491、インスタンス名492は、それぞれ、図4のネット名称40、ネット属性41、インスタンス名42と同様であるため説明を省略する。
実施の形態7では、ネット属性491に「shift」と示されており、このネットに対して「shift」のネット属性が付加されていることが示されている。
7.2.2.2 インスタンスのデータ構造
図49(b)は、ネットリスト中の、1のネットのインスタンスのデータ構造を示す図である。
同図(b)に示すように、インスタンスのレコード4900bには、インスタンス名493と、リファレンス名494と、構成条件情報名495と、対象インスタンス496と、遅延情報497が含まれる。実施の形態1と比べて、特に、遅延情報497を含む点で異なる。インスタンス名493と、リファレンス名494と、構成条件情報名495と、対象インスタンス496とは、それぞれ図4(b)のインスタンス名43と、リファレンス名44と、構成条件情報名45と、対象インスタンス46と同様であるため説明を省略する。
遅延情報497は、インスタンス名493から対象インスタンス496までの遅延時間を示す。遅延時間の単位は、例えばナノ秒である。同図では「1.1」と示されており、インスタンス間の遅延時間が1.1ナノ秒であることが示されている。
7.3 ネットリスト生成処理の詳細
次に、実施の形態7における、ステップS205の処理について詳しく説明する。
なお、実施の形態7では、所定の特性を有するネットを、FF直結ネットとしている。また、解析部104は、図2のステップS202において、レイアウト情報に基づいてFF直結ネットを抽出し、抽出されたネットをステップS203において選択することとする。また、属性付加部105は、ステップS204において、選択されたネットに「shift」をネット属性として付加するものとする。
図50は、実施の形態7におけるステップS205の処理の詳細を示す図である。
図50に示すように、ネットリスト生成部109は、属性付加部105から出力され、ネット属性が付加された原ネットリスト701を取得する(ステップS5001)。
また、記憶部106に記憶されているライブラリ707を読み込む。このとき、構成条件情報名484に「shift」と示されているセルを抽出する。本実施形態の例では、「FF1」を抽出する(ステップS5002)。
ネットリスト生成部109は、原ネットリスト701から、ネット属性「shift」がネット属性491に付加されているネットを抽出する(ステップS5003)。
次に、ネット属性「shift」のネットに接続しているセルのうち、ライブラリの構成条件情報名484に「shift」と示されているセルと、当該セルの対象となるリファレンス名487に示されるセルのペアを抽出する。本実施形態の例では、「FF1」「FF2」のセルのペアを抽出する(ステップS5004)。
ライブラリ707の「FF1」の最小遅延488を参照し、遅延させるべき時間を読み出すと、FF1からFF2までの遅延が、最小遅延488に示される最小時間以上、すなわち1ナノ秒以上になるようバッファをFF1とFF2の間に挿入する(ステップS5005)。
7.4 ネットの構成の遷移
図51は、ネットの構成の遷移を示す図である。
図51(a)は、原ネットリスト701における一部のネットの構成を示す図である。
同図(a)に示すように、原ネットリスト701には、FF直結ネット5101と、フリップフロップ5102と、フリップフロップ5103とが、原ネットリスト701における一部のネットの構成として示されている。フリップフロップ5102は「FF1」のリファレンス名を有し、フリップフロップ5103は「FF2」のリファレンス名を有するとする。
論理回路合成装置1は、ステップS202、ステップS203、ステップS204の処理を行うことで、この原ネットリスト701に示されるネットのうち、FF直結ネット5101に対し、ネット属性「shift」を付加する。そして、ステップS205、具体的にはステップS5001〜ステップS5005の処理を行って、新ネットリスト711を生成する。
図51(b)は、新ネットリスト711における一部のネットの構成を示す図である。
同図に示すように、新ネットリスト711には、FF直結ネット5101と、フリップフロップ5102と、フリップフロップ5103と、バッファ5104とが、新ネットリスト711における一部のネットの構成として示されている。「FF1」と「FF2」との間に、バッファ5104が挿入され、フリップフロップ間の遅延時間が1ナノ秒以上となっている。
したがって、このネットの構成は、ライブラリ707の最小遅延488で示される条件を満たす。
7.5 ネットリストの更新過程
ここで、実施の形態7における論理回路合成装置1が処理を行う過程で、ネットリストに保持されているデータがどのように更新されていくかを説明する。
図52は、ネットリストの更新過程を示す図である。
図52(a)は、ステップS201の処理により、取得部102が取得したときの原ネットリスト701である。ネット属性はまだ付加されていない状態である。また、遅延情報497に、ネットの遅延時間が「0.9」と示されている。これは、ライブラリ707の最小遅延488に示される、FF直結ネットにおける遅延時間の制限を満たしていない。
図52(b)は、ステップS204の処理により、属性付加部105がネットにネット属性「shift」を付加した状態で、その後ステップS205においてネットリスト生成部109に入力される原ネットリスト701である。ネット属性491に、ネット属性「shift」が付加されている。
図52(c)は、ネットリスト生成部109によって生成される新ネットリスト711である。インスタンスのデータ構造において、構成条件情報を適用して、バッファを挿入してフリップフロップ間の遅延時間が最小遅延488に示される制限を満たすよう再構成した後のネットの構成が示されている。
<実施の形態8>
8.1 概要
以下、本発明にかかる論理回路合成装置の、別の実施形態について説明する。
実施の形態8においては、論理回路合成装置1は、ネットを観測することで故障等を検出するために配置する観測対象ネットを、所定の特性を有するネットとして選択する。ネットの観測は、例えば、フリップフロップを観測対象ネットに接続することで行う。すなわち、観測対象ネットに入力される信号と、観測対象ネットからフリップフロップに入力される信号とを比較することで、故障等を検出することができる。
ただし、観測対象ネットにフリップフロップを接続する位置によっては、故障等の検出が十分ではない場合がある。例えば、観測対象ネットの入力側に近づけてフリップフロップを観測対象ネットに接続すると、観測対象ネットの中央付近などで故障があった場合に故障を検出できない。
そこで、実施の形態8においては、フリップフロップを、観測対象ネットの出力側に近づけて配置するという配置制限を、構成条件情報としてライブラリに記憶しておくこととする。
また、ライブラリのデータ構造が実施の形態1と一部異なるため、実施の形態8においては、ライブラリ807として説明する。
また、ネットリストのデータ構造が実施の形態1と異なるため、実施の形態8においては、ネットリストをそれぞれ原ネットリスト801、新ネットリスト811とする。
その他、実施の形態1と共通する各機能ブロックについては、実施の形態1と同一の参照符号を付して説明を省略する。
8.2 データ
以下、記憶部106が記憶しているライブラリ807のデータ構造と、ネットリストのデータ構造について説明する。
8.2.1 ライブラリ807
図53は、ライブラリ807に含まれる、1のセルについてのデータ構造を示す図である。
8.2.1.1 ライブラリのデータ構造
同図(a)に示すように、ライブラリ807の1件のレコード807aには、リファレンス名530と、入力ピン531と、出力ピン532とが含まれる。リファレンス名530、入力ピン531、出力ピン532は、それぞれ図3のリファレンス名30、入力ピン31、出力ピン32と同様にリファレンス名などを示すものであるため、説明を省略する。
8.2.1.2 ピンのデータ構造
また、同図(b)では、ピンのデータ構造も示している。ピンのデータ中のレコード807bには、ピン名533と、構成条件情報名534とが含まれる。
ピン名533、構成条件情報名534は、それぞれ図3のピン名33、構成条件情報名34と同様であるため説明を省略する。
実施の形態8では、構成条件情報名534には、「observation」と示されている。「observation」は、観測対象ネットを示すネット属性のリファレンス名である。
8.2.1.3 構成条件情報のデータ構造
また、同図(c)に、構成条件情報のデータ構造を示す。構成条件情報のデータ中のレコード807cには、構成条件情報名535、接続タイプ536、接続位置537とが含まれる。実施の形態1と比べて、特に、接続位置537を含む点で異なる。
構成条件情報名535、接続タイプ536は、それぞれ図3の構成条件情報名35、接続タイプ36と同様であるため説明を省略する。
実施の形態8では、構成条件情報名535に「observation」と示されている。
接続位置537は、リファレンス名530に示されるセルを、構成条件情報名535に示されるリファレンス名と同一のネット属性を有するネットと接続する際の接続位置の制限を示す。接続位置537のデータタイプは、「start」と「middle」と「end」の3つからなるリストである。「start」の場合は、ネットの入力側にセルを接続し、「middle」の場合は、ネットの中央付近に接続し、「end」の場合は、ネットの出力側に接続することを示す。図53(c)では、接続位置537は、「end」と示されている。これは、リファレンス名530に示される「FF1」を、ネット属性「observation」を有するネットの出力側に接続すべきであることを示している。
8.2.2 ネットリストのデータ構造
図54は、実施の形態8にかかるネットリストに含まれる、1のネットのデータ構造を示す図である。
8.2.2.1 ネットのデータ構造
図54(a)は、ネットリスト中の、1のネットのデータ構造を示す図である。
同図(a)に示すように、ネットの1件のレコード5400aには、ネット名称540と、ネット属性541と、インスタンス名542とが含まれる。
ネット名称540、ネット属性541、インスタンス名542は、それぞれ、図4のネット名称40、ネット属性41、インスタンス名42と同様であるため説明を省略する。
実施の形態8では、ネット属性541に「observation」と示されており、このネットに対して「observation」のネット属性が付加されていることが示されている。
8.2.2.2 インスタンスのデータ構造
図54(b)は、ネットリスト中の、1のネットのインスタンスのデータ構造を示す図である。
同図(b)に示すように、インスタンスのレコード5400bには、インスタンス名543と、リファレンス名544と、構成条件情報名545と、接続位置情報546とが含まれる。実施の形態1と比べて、特に、接続位置情報546を含む点で異なる。インスタンス名543と、リファレンス名544と、構成条件情報名545は、それぞれ図4(b)のインスタンス名43と、リファレンス名44と、構成条件情報名45と同様であるため説明を省略する。
接続位置情報546は、インスタンス名543に示されるインスタンスが、ネット名称540のネットと接続している位置示す。接続位置情報546には、「start」「middle」「end」のいずれかが格納される。「start」の場合は、インスタンスがネットの入力側に接続され、「middle」の場合はネットの中央付近、「end」の場合は、ネットの出力側に接続されている琴を示す。同図では「end」と示されており、リファレンス名544に示される「FF1」のフリップフロップが、ネット名称540に示される「NET12」の出力側に接続されていることが示されている。
8.3 ネットリスト生成処理の詳細
次に、実施の形態8における、ステップS205の処理について詳しく説明する。
なお、実施の形態8では、所定の特性を有するネットを、観測対象ネットとしている。また、解析部104は、図2のステップS202において、レイアウト情報に基づいて、観測対象とするネットを指定し、指定したネットを、ステップS203において選択することとする。また、属性付加部105は、ステップS204において、選択されたネットに「observation」をネット属性として付加するものとする。
図55は、実施の形態8におけるステップS205の処理の詳細を示す図である。
図55に示すように、ネットリスト生成部109は、属性付加部105から出力され、ネット属性が付加された原ネットリスト801を取得する(ステップS5501)。
また、記憶部106に記憶されているライブラリ807を読み込む(ステップS5502)。
ネットリスト生成部109は、原ネットリスト801から、ネット属性「observation」がネット属性541に付加されているネットを抽出する(ステップS5503)。
次に、ライブラリ807に基づいて、構成条件情報名534に「observation」が付加されているセルのリファレンス名を読み出す。実施の形態8では、「FF1」のフリップフロップを読み出す。ネットリスト生成部109は、ネット属性「observation」のネットに接続し、ライブラリ807から読み出したリファレンス名を有するセルを抽出する。すなわち、ネット属性「observation」のネットに接続している「FF1」のフリップフロップを抽出する(ステップS5504)。
セルを抽出すると、抽出したセルにかかる接続位置情報546を参照して、抽出したセルの配置位置を調整する。すなわち、本実施形態の例では、「FF1」の接続位置情報546に示されている「end」という条件を満たすために、「FF1」の接続位置を、ネット属性「observation」のネットの終端になるようにする(ステップS5505)。
8.4 ネットの構成の遷移
図56は、ネットの構成の遷移を示す図である。
図56(a)は、原ネットリスト801における一部のネットの構成を示す図である。
同図(a)に示すように、原ネットリスト801には、観測対象ネット5601と、フリップフロップ5602と、ANDセル5603と、出力ポート5604とが、原ネットリスト801における一部のネットの構成として示されている。フリップフロップ5602は観測対象ネット5601の入力側に接続され、また、フリップフロップ5602は「FF1」のリファレンス名を有するとする。
論理回路合成装置1は、ステップS202、ステップS203、ステップS204の処理を行うことで、この原ネットリスト801に示されるネットのうち、観測対象ネット5604に対し、ネット属性「observation」を付加する。そして、ステップS205、具体的にはステップS5501〜ステップS5505の処理を行って、新ネットリスト811を生成する。
図56(b)は、新ネットリスト811における一部のネットの構成を示す図である。
同図に示すように、新ネットリスト811には、上述の図56(a)と同様のセルが、新ネットリスト811における一部のネットの構成として示されているが、図56(a)と比べて、フリップフロップ5602が、観測対象ネット5601の出力側に近づけて接続されている。
したがって、このネットの構成は、ライブラリ807の接続位置537で示される条件を満たす。
8.5 ネットリストの更新過程
ここで、実施の形態8における論理回路合成装置1が処理を行う過程で、ネットリストに保持されているデータがどのように更新されていくかを説明する。
図57は、ネットリストの更新過程を示す図である。
図57(a)は、ステップS201の処理により、取得部102が取得したときの原ネットリスト801である。ネット属性はまだ付加されていない状態である。また、接続位置情報546に、「start」と示されている。
図57(b)は、ステップS204の処理により、属性付加部105がネットにネット属性「observation」を付加した状態で、その後ステップS205においてネットリスト生成部109に入力される原ネットリスト801である。ネット属性541に、ネット属性「observation」が付加されている。
図57(c)は、ネットリスト生成部109によって生成される新ネットリスト811である。インスタンスのデータ構造において、構成条件情報を適用して、「FF1」のフリップフロップを、観測対象ネットの出力側に接続した後のネットの構成が示されている。
<実施の形態9>
9.1 概要
以下、本発明にかかる論理回路合成装置の、別の実施形態について説明する。
実施の形態9においては、論理回路合成装置1は、SignalEM(シグナルエレクトロマイグレーション)エラーとなっているSignalEM違反ネットを、所定の特性を有するネットとして選択する。
SignalEM違反が起きている場合、SignalEMエラーを解消するために、ビアをダブルビア化する必要がある。しかしながら、複数のレイヤーからなる基板を接続する複数のビアの全てをダブルビア化する必要はなく、また、回路の密集度を高めるためにも、ダブルビア化するビアの個数は必要最小限とし、ダブルビア化にあわせて、配線を許可するレイヤーを少なくすることが望ましい。
そこで、実施の形態9においては、ライブラリにおいて、所定のセルがネットを構成する際に、ダブルビア化するビアと、配線を許可するレイヤーとを制限することとしている。
また、ライブラリのデータ構造が実施の形態1と一部異なるため、実施の形態9においては、ライブラリ907として説明する。
また、ネットリストのデータ構造が実施の形態1と異なるため、実施の形態9においては、ネットリストをそれぞれ原ネットリスト901、新ネットリスト911とする。
その他、実施の形態1と共通する各機能ブロックについては、実施の形態1と同一の参照符号を付して説明を省略する。
9.2 データ
以下、記憶部106が記憶しているライブラリ907のデータ構造と、ネットリストのデータ構造について説明する。
9.2.1 ライブラリ907
図58は、ライブラリ907に含まれる、1のセルについてのデータ構造を示す図である。
9.2.1.1 ライブラリのデータ構造
同図(a)に示すように、ライブラリ907の1件のレコード907aには、リファレンス名580と、入力ピン581と、出力ピン582とが含まれる。リファレンス名580、入力ピン581、出力ピン582は、それぞれ図3のリファレンス名30、入力ピン31、出力ピン32と同様にリファレンス名などを示すものであるため、説明を省略する。
9.2.1.2 ピンのデータ構造
また、同図(b)では、ピンのデータ構造も示している。ピンのデータ中のレコード907bには、ピン名583と、構成条件情報名584とが含まれる。
ピン名583、構成条件情報名584は、それぞれ図3のピン名33、構成条件情報名34と同様であるため説明を省略する。
実施の形態9では、構成条件情報名584には、「SignalEM」と示されている。「SignalEM」は、SignalEM違反ネットを示すネット属性のリファレンス名である。
9.2.1.3 構成条件情報のデータ構造
また、同図(c)に、構成条件情報のデータ構造を示す。構成条件情報のデータ中のレコード907cには、構成条件情報名585、接続タイプ586、配線許可層587と、ダブルビア層588とが含まれる。実施の形態1と比べて、特に、配線許可層587、ダブルビア層588を含む点で異なる。
構成条件情報名585、接続タイプ586は、それぞれ図3の構成条件情報名35、接続タイプ36と同様であるため説明を省略する。
実施の形態9では、構成条件情報名585に「SignalEM」と示されている。
配線許可層587は、リファレンス名580に示されるセルが使用を許可される配線レイヤーの指定を示す。同図では「M1」「M2」と示されており、リファレンス名580に示される「BUF1」のバッファが、「M1」のリファレンス名を有するレイヤーと、「M2」のリファレンス名を有するレイヤーとの接続を許可されていることが示されている。
ダブルビア層588は、ダブルビア化するビアの指定を示す。同図では「V1」と示されており、「V1」のリファレンス名を有するビアをダブルビア化することが示されている。
9.2.2 ネットリストのデータ構造
図59は、実施の形態9にかかるネットリストに含まれる、1のネットのデータ構造を示す図である。
9.2.2.1 ネットのデータ構造
図59(a)は、ネットリスト中の、1のネットのデータ構造を示す図である。
同図(a)に示すように、ネットの1件のレコード5900aには、ネット名称590と、ネット属性591と、インスタンス名592とが含まれる。
ネット名称590、ネット属性591、インスタンス名592は、それぞれ、図4のネット名称40、ネット属性41、インスタンス名42と同様であるため説明を省略する。
実施の形態9では、ネット属性591に「SignalEM」と示されており、このネットに対して「SignalEM」のネット属性が付加されていることが示されている。
9.2.2.2 インスタンスのデータ構造
図59(b)は、ネットリスト中の、1のネットのインスタンスのデータ構造を示す図である。
同図(b)に示すように、インスタンスのレコード5900bには、インスタンス名593と、リファレンス名594と、構成条件情報名595と、対象インスタンス596と、配線層597と、ダブルビア層598とがが含まれる。実施の形態1と比べて、特に、配線層597と、ダブルビア層598とを含む点で異なる。インスタンス名593と、リファレンス名594と、構成条件情報名595と、対象インスタンス596は、それぞれ図4(b)のインスタンス名43と、リファレンス名44と、構成条件情報名45、対象インスタンス46と同様であるため説明を省略する。
配線層597は、ネット名称590に示されるネットが配線しているレイヤーを示す。同図では「M1」「M2」と示されており、「NET13」が、「M1」と「M2」のレイヤーに配線していることを示している。
ダブルビア層598は、ネット名称590に示されるネットがダブルビア化しているビアを示す。同図では「V1」と示されており、「NET13」が、「V1」のビアをダブルビア化していることを示している。
9.3 ネットリスト生成処理の詳細
次に、実施の形態9における、ステップS205の処理について詳しく説明する。
なお、実施の形態9では、所定の特性を有するネットを、SignalEM違反ネットとしている。また、解析部104は、図2のステップS202において、SignalEM違反のルールを設定する。SignalEM違反のルールとは、例えば、配線が経由するレイヤーの数や、配線長などである。ルールを設定して、ルールに違反するネットを原ネットリスト901から検出する処理を行う。そして、解析部104は、検出したネットをステップS203において選択することとする。また、属性付加部105は、ステップS204において、選択されたネットに「SignalEM」をネット属性として付加するものとする。
図60は、実施の形態9におけるステップS205の処理の詳細を示す図である。
図60に示すように、ネットリスト生成部109は、属性付加部105から出力され、ネット属性が付加された原ネットリスト901を取得する(ステップS6001)。
また、記憶部106に記憶されているライブラリ907を読み込む(ステップS6002)。
ネットリスト生成部109は、原ネットリスト901から、ネット属性「SignalEM」がネット属性591に付加されているネットを抽出する(ステップS6003)。
次に、ライブラリ907に基づいて、構成条件情報名584に「SignalEM」が付加されているセルのリファレンス名580と、配線許可層587と、ダブルビア層588を読み出す。実施の形態9では、例えば「BUF1」のバッファを読み出す。また、ネットリスト生成部109は、ネット属性「SignalEM」のネットの始端のセルを「BUF1」とし、読み出した配線許可層587に示されるレイヤーのみで配線する。具体的には、このネット属性「SignalEM」のネットを、「M1」「M2」レイヤーのみで配線する(ステップS6004)。
また、ネットリスト生成部109は、読み出したダブルビア層588に示されるビアをダブルビア化する。具体的には、ネット属性「SignalEM」のネットにおいて、「V1」のビアをダブルビア化する(ステップS6005)。
9.4 ネットの構成の遷移
図61は、ネットの構成の遷移を示す図である。
図61(a)は、原ネットリスト901における一部のネットの構成を示す図である。
同図(a)に示すように、原ネットリスト901には、SignalEM違反ネット6101と、バッファ6102と、バッファ6103と、M1層配線6104と、M2層配線6105と、M3層配線6106と、M4層配線6107と、V1ビア6108と、V2ビア6109と、V3ビア6110とが、原ネットリスト901における一部のネットの構成として示されている。バッファ6102は「BUF1」のリファレンス名を有し、バッファ6103は「BUF2」のリファレンス名を有するとする。なお、同図の例では、レイヤー「M1」と「M2」とを接続するビアを「V1」、レイヤー「M2」と「M3」とを接続するビアを「V2」、レイヤー「M3」と「M4」とを接続するビアを「V3」としている。
論理回路合成装置1は、ステップS202、ステップS203、ステップS204の処理を行うことで、この原ネットリスト901に示されるネットのうち、SignalEM違反ネット6104に対し、ネット属性「SignalEM」を付加する。そして、ステップS205、具体的にはステップS6001〜ステップS6005の処理を行って、新ネットリスト911を生成する。
図61(b)は、新ネットリスト911における一部のネットの構成を示す図である。
同図に示すように、新ネットリスト911には、バッファ6102と、バッファ6103と、M1層配線6104と、M2層配線6105と、V1ビア6108とが、新ネットリスト911における一部のネットの構成として示されている。このネットの構成は、ライブラリ907の配線許可層587、ダブルビア層588で示される条件を満たす。
9.5 ネットリストの更新過程
ここで、実施の形態9における論理回路合成装置1が処理を行う過程で、ネットリストに保持されているデータがどのように更新されていくかを説明する。
図62は、ネットリストの更新過程を示す図である。
図62(a)は、ステップS201の処理により、取得部102が取得したときの原ネットリスト901である。ネット属性はまだ付加されていない状態である。また、配線層597に示されるように、インスタンス名593に示されるインスタンスから対象インスタンス596に示されるインスタンスまで、「M1」「M2」「M3」「M4」の4層のレイヤーを経由している。
図62(b)は、ステップS204の処理により、属性付加部105がネットにネット属性「SignalEM」を付加した状態で、その後ステップS205においてネットリスト生成部109に入力される原ネットリスト901である。ネット属性591に、ネット属性「SignalEM」が付加されている。
図62(c)は、ネットリスト生成部109によって生成される新ネットリスト911である。インスタンスのデータ構造において、構成条件情報を適用して、配線レイヤーを「M1」「M2」とし、ダブルビア化するビアを「V1」としてSignalEM違反を解消した後のネットの構成が示されている。
<実施の形態10>
10.1 概要
以下、本発明にかかる論理回路合成装置の、別の実施形態について説明する。
実施の形態10においては、論理回路合成装置1は、所定の大きさのクロストークが発生しているクロストーク発生ネットを、所定の特性を有するネットとして選択する。クロストークとは、配線が、並行して配置されている配線から悪影響を受けることである。したがって、並行して配線されている長さを所定の長さより短くすることで、クロストークを解消することができる。
また、ライブラリのデータ構造が実施の形態1と一部異なるため、実施の形態10においては、ライブラリ1007として説明する。
また、ネットリストのデータ構造が実施の形態1と異なるため、実施の形態10においては、ネットリストをそれぞれ原ネットリスト1001、新ネットリスト1011とする。
その他、実施の形態1と共通する各機能ブロックについては、実施の形態1と同一の参照符号を付して説明を省略する。
10.2 データ
以下、記憶部106が記憶しているライブラリ1007のデータ構造と、ネットリストのデータ構造について説明する。
10.2.1 ライブラリ1007
図63は、ライブラリ1007に含まれる、1のセルについてのデータ構造を示す図である。
10.2.1.1 ライブラリのデータ構造
同図(a)に示すように、ライブラリ1007の1件のレコード1007aには、リファレンス名630と、入力ピン631と、出力ピン632とが含まれる。リファレンス名630、入力ピン631、出力ピン632は、それぞれ図3のリファレンス名30、入力ピン31、出力ピン32と同様にリファレンス名などを示すものであるため、説明を省略する。
10.2.1.2 ピンのデータ構造
また、同図(b)では、ピンのデータ構造も示している。ピンのデータ中のレコード1007bには、ピン名633と、構成条件情報名634とが含まれる。
ピン名633、構成条件情報名634は、それぞれ図3のピン名33、構成条件情報名34と同様であるため説明を省略する。
実施の形態10では、構成条件情報名634には、「crosstalk」と示されている。「crosstalk」は、クロストーク発生ネットを示すネット属性のリファレンス名である。
10.2.1.3 構成条件情報のデータ構造
また、同図(c)に、構成条件情報のデータ構造を示す。構成条件情報のデータ中のレコード1007cには、構成条件情報名635、接続タイプ636、最大並行配線長637とが含まれる。実施の形態1と比べて、特に、最大並行配線長637を含む点で異なる。
構成条件情報名635、接続タイプ636は、それぞれ図3の構成条件情報名35、接続タイプ36と同様であるため説明を省略する。実施の形態10では、構成条件情報名635に「crosstalk」と示されている。
最大並行配線長637は、リファレンス名630に示されるセルが接続するネットに対してクロストークの影響を与えるネットとの最大並行配線長の制限を示す。図63(c)では、「30」と示されている。これは、リファレンス名630に示される「BUF1」と接続するネットと、クロストークの影響を与える他のネットとが並行して配置されている配線長を30以下とすることを示している。
なお、最大並行配線長637のデータタイプは数値である。
10.2.2 ネットリストのデータ構造
図64は、実施の形態10にかかるネットリストに含まれる、1のネットのデータ構造を示す図である。
10.2.2.1 ネットのデータ構造
図64(a)は、ネットリスト中の、1のネットのデータ構造を示す図である。
同図(a)に示すように、ネットの1件のレコード6400aには、ネット名称640と、ネット属性641と、インスタンス名642とが含まれる。
ネット名称640、ネット属性641、インスタンス名642は、それぞれ、図4のネット名称40、ネット属性41、インスタンス名42と同様であるため説明を省略する。
実施の形態10では、ネット属性641に「crosstalk」と示されており、このネットに対して「crosstalk」のネット属性が付加されていることが示されている。
10.2.2.2 インスタンスのデータ構造
図64(b)は、ネットリスト中の、1のネットのインスタンスのデータ構造を示す図である。
同図(b)に示すように、インスタンスのレコード6400bには、インスタンス名643と、リファレンス名644と、構成条件情報名645と、最大並行配線長646とが含まれる。実施の形態1と比べて、特に、最大並行配線長646を含む点で異なる。インスタンス名643と、リファレンス名644と、構成条件情報名645とは、それぞれ図4(b)のインスタンス名43と、リファレンス名44と、構成条件情報名45と同様であるため説明を省略する。
最大並行配線長646は、ネット名称640に示されるネットと、他のネットとが並行して配置されている最大の並行配線長を示す。同図では「20」と示されており、他のネットとの並行配線長の最大が20であることが示されている。
10.3 ネットリスト生成処理の詳細
次に、実施の形態10における、ステップS205の処理について詳しく説明する。
なお、実施の形態10では、所定の特性を有するネットを、クロストーク発生ネットとしている。また、解析部104は、図2のステップS202において、選択対象となるクロストーク発生ネットの、クロストークの大きさの入力を受け付けて、ネットリストを解析して、受け付けた大きさ以上のクロストークが発生しているネットを抽出する。抽出されたネットをステップS203において選択することとする。また、属性付加部105は、ステップS204において、選択されたネットに「crosstalk」をネット属性として付加するものとする。
図65は、実施の形態10におけるステップS205の処理の詳細を示す図である。
図65に示すように、ネットリスト生成部109は、属性付加部105から出力され、ネット属性が付加された原ネットリスト1001を取得する(ステップS6501)。
また、記憶部106に記憶されているライブラリ1007を読み込む(ステップS6502)。
ネットリスト生成部109は、原ネットリスト1001から、ネット属性「crosstalk」がネット属性641に付加されているネットを抽出する(ステップS6503)。
構成条件情報名634に「crosstalk」を有するセルを、ライブラリ1007から選択する(ステップS6504)。
ネットリスト生成部109は、ネット属性「crosstalk」を有するネットの始端に接続されているセルのライブラリに、構成条件情報名634が「crosstalk」を有していれば、そのセルの最大並行配線長637を読み出す。また、ネット属性「crosstalk」を有するネットに影響を与えるネットのセグメントを抽出する(ステップS6505)。セグメントとは、ネットの一部分である。
抽出したセグメントを対象として、読み出した最大並行配線長637に示される制限を満たすように、並行配線長を調整する(ステップS6506)。具体的には、抽出したセグメントと、ネット属性「crosstalk」を有するネットとの最大並行配線長を、最大並行配線長637に示される距離である30以下にする。
10.4 ネットの構成の遷移
図66は、ネットの構成の遷移を示す図である。
図66(a)は、原ネットリスト1001における一部のネットの構成を示す図である。
同図(a)に示すように、原ネットリスト1001には、クロストーク発生ネット6601と、バッファ6602と、ネットのセグメント6603、6604、6605とが、原ネットリスト1001における一部のネットの構成として示されている。バッファ6602は「BUF1」のリファレンス名を有し、「crosstalk」に対応する構成条件情報を記憶しているとする。また、この例では、クロストーク発生ネット6601にクロストークの影響を与えているのは、セグメント6603のみであり、セグメント6604、6605は距離が離れていてクロストークの影響を与えないとする。
論理回路合成装置1は、ステップS202、ステップS203、ステップS204の処理を行うことで、この原ネットリスト1001に示されるネットのうち、クロストーク発生ネット6601に対し、ネット属性「crosstalk」を付加する。そして、ステップS205、具体的にはステップS6501〜ステップS6506の処理を行って、新ネットリスト1011を生成する。
図66(b)は、新ネットリスト1011における一部のネットの構成を示す図である。
同図に示すように、新ネットリスト1011には、同図(a)と同様のネット等が、新ネットリスト311における一部のネットの構成として示されているが、クロストーク発生ネット6601にクロストークの影響を与えているセグメント6603と、クロストーク発生ネット6601との並行配線長が同図(a)と比較して短くなっている。
10.5 ネットリストの更新過程
ここで、実施の形態10における論理回路合成装置1が処理を行う過程で、ネットリストに保持されているデータがどのように更新されていくかを説明する。
図67は、ネットリストの更新過程を示す図である。
図67(a)は、ステップS201の処理により、取得部102が取得したときの原ネットリスト1001である。ネット属性はまだ付加されていない状態である。また、最大並行配線長646に、「40」と示されている。これは、「BUF1」についてのライブラリの最大並行配線長637に示される条件を満たしていない。
図67(b)は、ステップS204の処理により、属性付加部105がネットにネット属性「crosstalk」を付加した状態で、その後ステップS205においてネットリスト生成部109に入力される原ネットリスト1001である。ネット属性641に、ネット属性「crosstalk」が付加されている。
図67(c)は、ネットリスト生成部109によって生成される新ネットリスト1011である。インスタンスのデータ構造において、構成条件情報を適用して、最大並行配線長646が「20」となった後のネットの構成が示されている。
<補足>
以上のように本発明にかかる論理回路合成装置について実施の形態に基づいて説明したが、以下のように変形することもでき、本発明は上述の実施の形態で示した論理回路合成装置に限られないことは勿論である。
(1)例えば、既存のセルのライブラリ、例えばLibertyフォーマットのライブラリに、構成条件情報に対応する情報を付加することとしてもよい。Libertyフォーマットにおいては、セルの接続対象を制限するために、接続クラス属性(connection_class)を用いているが、この接続クラス属性に、構成条件情報を付加するとよい。ライブラリの記述方法は、各実施形態のデータで説明した例で説明すると、例えば実施の形態1の図3の場合、リファレンス名30を「Cell()」、構成条件情報名34を「connection_class_constraint()」と表記し、さらに、構成条件情報のデータ構造に含まれる接続タイプ36を「type」、対象となるリファレンス名37を「related_cell」、最大距離38を「max_distance」と表記して、「BUF1」についてのライブラリを、
Cell(BUF1){
pin(A){
connection_class_constraint(hierarchy){
type : connected_cell ;
related_cell : " BUF2 " ;
max_distance : 30 ;
}
}
}
と表現する。
また、同様に、実施の形態2の場合は、
Cell(FF1){
pin(Q){
connection_class_constraint(congestion){
type : all_cell ;
related_cell : " FF2 " ;
min_distance : 20 ;
}
}
}
などと表現する。
また、同様に、実施の形態2の変形例1の場合は、方向139を「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
}
}
}
などと表現する。
また、同様に、実施の形態3の場合は、最小段数188を「min_level」として、
Cell(BUF1){
pin(Y){
connection_class_constraint(glitch){
type : connected_cell ;
related_cell : " FF1 FF2 FF3 " ;
min_distance : 2 ;
}
}
}
などと表現する。
また、同様に、実施の形態4の場合は、最大周波数237を「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 ;
}
}
}
などと表現する。
また、同様に、実施の形態5の場合は、接続インスタンス数287を「number」として、
Cell(REG1){
pin(A){
connection_class_constraint(BUS){
type : connected_cell ;
number : 1 ;
}
}
}
などと表現する。
また、同様に、実施の形態6の場合は、
Cell(FF1){
pin(Q){
connection_class_constraint(toggle){
type : all_cell ;
related_cell : " FF2 FF3" ;
min_distance : 20 ;
}
}
}
などと表現する。
また、同様に、実施の形態6の変形例1の場合は、最小row間隔388を「min_row」として、
Cell(FF1){
pin(Q){
connection_class_constraint(toggle){
type : all_cell ;
related_cell : " FF2 FF3" ;
min_row : 1 ;
}
}
}
などと表現する。
また、同様に、実施の形態6の変形例2の場合は、最小ストラップ間隔438を「min_strap」として、
Cell(FF1){
pin(Q){
connection_class_constraint(toggle){
type : all_cell ;
related_cell : " FF2 FF3" ;
min_strap : 1 ;
}
}
}
などと表現する。
また、同様に、実施の形態7の場合は、最小遅延488を「min_delay」として、
Cell(FF1){
pin(Q){
connection_class_constraint(shift){
type : connected_cell ;
related_cell : " FF2" ;
min_delay : 1 ;
}
}
}
などと表現する。
また、同様に、実施の形態8の場合は、接続位置537を「position」として、
Cell(FF1){
pin(D){
connection_class_constraint(observation){
type : connected_cell ;
position : end ;
}
}
}
などと表現する。
また、同様に、実施の形態9の場合は、配線許可層587を「layer」、ダブルビア層588を「double_via」として、
Cell(BUF1){
pin(Y){
connection_class_constraint(SignalEM){
type : connected_cell ;
layer : M1 , M2 ;
double_via : V1 ;
}
}
}
などと表現する。
また、同様に、実施の形態10の場合は、最大並行配線長637を「max_parallel_length」として、
Cell(BUF1){
pin(Y){
connection_class_constraint(crosstalk){
type : connected_cell ;
max_parallel_length : 30 ;
}
}
}
などと表現する。
また、Libertyフォーマット以外にも、さまざまなライブラリフォーマットにおいて、構成条件情報を付加して上述の論理合成を行うこととしてもよい。
(2)上記の情報処理装置は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記RAMまたはハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、情報処理装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
(3)上記の情報処理装置を構成する構成要素の一部または全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。前記RAMには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、システムLSIは、その機能を達成する。
(4)上記の情報処理装置を構成する構成要素の一部または全部は、情報処理装置に脱着可能なICカードまたは単体のモジュールから構成されているとしてもよい。前記ICカードまたは前記モジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。前記ICカードまたは前記モジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、前記ICカードまたは前記モジュールは、その機能を達成する。このICカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
(5)本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu−ray Disc)、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。
また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送することにより、または前記プログラムまたは前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
(6)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
本発明の論理回路合成装置は、セルが接続するネットの特性に応じて、所定の制限を満たすように自動的に合成するので、論理回路の開発期間・工数短縮に有用である。
論理回路合成装置1の機能ブロック図。 論理回路合成装置1の動作を示すフローチャート。 ライブラリ107に含まれる、1のセルについてのデータ構造を示す図。 ネットリストに含まれる、1のネットについてのデータ構造を示す図。 構成条件情報に示される条件を満たすネットリストを合成部108が生成する処理の詳細を示すフローチャート。 ネットの構成の遷移を示す図。 ネットリストの更新過程を示す図。 ライブラリ207に含まれる、1のセルについてのデータ構造を示す図。 実施の形態2にかかるネットリストに含まれる、1のネットについてのデータ構造を示す図。 実施の形態2におけるステップS205の処理の詳細を示す図。 ネットの構成の遷移を示す図。 ネットリストの更新過程を示す図。 ライブラリ207−1に含まれる、1のセルについてのデータ構造を示す図である。 実施の形態2の変形例にかかるネットリストに含まれる、1のネットについてのデータ構造を示す図。 実施の形態2の変形例におけるステップS205の処理の詳細を示す図。 ネットの構成の遷移を示す図。 ネットリストの更新過程を示す図。 ライブラリ307に含まれる、1のセルについてのデータ構造を示す図。 実施の形態3にかかるネットリストに含まれる、1のネットのデータ構造を示す図。 実施の形態3におけるステップS205の処理の詳細を示す図。 ネットの構成の遷移を示す図。 ネットリストの更新過程を示す図。 ライブラリ407に含まれる、1のセルについてのデータ構造を示す図。 実施の形態4にかかるネットリストに含まれる、1のネットのデータ構造を示す図。 実施の形態3におけるステップS205の処理の詳細を示す図。 ネットの構成の遷移を示す図。 ネットリストの更新過程を示す図。 ライブラリ507に含まれる、1のセルについてのデータ構造を示す図。 実施の形態5にかかるネットリストに含まれる、1のネットのデータ構造を示す図。 実施の形態5におけるステップS205の処理の詳細を示す図。 ネットの構成の遷移を示す図。 ネットリストの更新過程を示す図。 ライブラリ607に含まれる、1のセルについてのデータ構造を示す図 実施の形態6にかかるネットリストに含まれる、1のネットのデータ構造を示す図。 実施の形態6におけるステップS205の処理の詳細を示す図。 ネットの構成の遷移を示す図。 ネットリストの更新過程を示す図。 ライブラリ607−1に含まれる、1のセルについてのデータ構造を示す図。 実施の形態6の変形例1にかかるネットリストに含まれる、1のネットのデータ構造を示す図。 実施の形態6の変形例1におけるステップS205の処理の詳細を示す図。 ネットの構成の遷移を示す図。 ネットリストの更新過程を示す図。 ライブラリ607−2に含まれる、1のセルについてのデータ構造を示す図。 実施の形態6の変形例2にかかるネットリストに含まれる、1のネットのデータ構造を示す図。 実施の形態6の変形例1におけるステップS205の処理の詳細を示す図。 ネットの構成の遷移を示す図。 ネットリストの更新過程を示す図。 ライブラリ707に含まれる、1のセルについてのデータ構造を示す図。 実施の形態7にかかるネットリストに含まれる、1のネットのデータ構造を示す図。 実施の形態7におけるステップS205の処理の詳細を示す図。 ネットの構成の遷移を示す図。 ネットリストの更新過程を示す図。 ライブラリ807に含まれる、1のセルについてのデータ構造を示す図。 実施の形態8にかかるネットリストに含まれる、1のネットのデータ構造を示す図。 実施の形態8におけるステップS205の処理の詳細を示す図。 ネットの構成の遷移を示す図。 ネットリストの更新過程を示す図。 ライブラリ907に含まれる、1のセルについてのデータ構造を示す図。 実施の形態9にかかるネットリストに含まれる、1のネットのデータ構造を示す図。 実施の形態9におけるステップS205の処理の詳細を示す図。 ネットの構成の遷移を示す図。 ネットリストの更新過程を示す図。 ライブラリ1007に含まれる、1のセルについてのデータ構造を示す図。 実施の形態10にかかるネットリストに含まれる、1のネットのデータ構造を示す図。 実施の形態10におけるステップS205の処理の詳細を示す図。 ネットの構成の遷移を示す図。 ネットリストの更新過程を示す図。
符号の説明
1 論理回路合成装置
102 取得部
103 ネット選択部
104 解析部
105 属性付加部
106 記憶部
108 合成部
109 ネットリスト生成部
110 ネットリスト出力部

Claims (21)

  1. 1の特性を有するネットについて、前記特性に対応して、前記特性を有するネットの構成が満たすべき条件を示す構成条件情報を記憶している記憶手段と、
    複数のネットの構成を示す原ネット構成情報を取得する取得手段と、
    前記取得した原ネット構成情報に示される前記複数のネットから、前記1の特性を有するネットを選択する選択手段と、
    前記原ネット構成情報に示される前記複数のネットのうち、前記選択したネットを対象として、前記記憶されている前記構成条件情報に示される前記構成の条件を満たす新ネット構成情報を生成する生成手段とを備える
    ことを特徴とする論理回路合成装置。
  2. 前記記憶手段は、前記特性に対応して、前記特性を有するネットの配線長に関する条件を前記構成条件情報として記憶し、
    前記生成手段は、前記配線長に関する条件を満たす前記新ネット構成情報を生成する
    ことを特徴とする請求項1記載の論理回路合成装置。
  3. 前記特性を有するネットとは、ブロックの境界にまたがる境界ネットであり、
    前記記憶手段は、前記境界ネットの最大配線長の制限を前記構成条件情報として記憶しており、
    前記選択手段は、前記境界ネットを前記選択し、
    前記生成手段は、前記選択した前記境界ネットの配線長が、前記最大配線長の制限を満たす前記新ネット構成情報を生成する
    ことを特徴とする請求項2記載の論理回路合成装置。
  4. 前記特性を有するネットとは、ネットの密集度が所定値以上である混雑しているネットであり、
    前記記憶手段は、前記混雑しているネットの最小配線長の制限を前記構成条件情報として記憶しており、
    前記選択手段は、前記混雑しているネットを前記選択し、
    前記生成手段は、前記選択した前記混雑しているネットの配線長が、前記最小配線長の制限を満たす前記新ネット構成情報を生成する
    ことを特徴とする請求項2記載の論理回路合成装置。
  5. 前記特性を有するネットとは、所定の高さのトグル率となっているネットである高トグルネットであり、
    前記記憶手段は、前記高トグルネットの最小配線長の制限を前記構成条件情報として記憶しており、
    前記選択手段は、前記高トグルネットを前記選択し、
    前記生成手段は、前記選択した前記高トグルネットの配線長が、前記最小配線長の制限を満たす前記新ネット構成情報を生成する
    ことを特徴とする請求項2記載の論理回路合成装置。
  6. 前記記憶手段は、前記特性に対応して、前記特性を有するネットの、回路上の配線方向に関する条件を前記構成条件情報として記憶し、
    前記生成手段は、前記配線方向に関する条件を満たす前記新ネット構成情報を生成する
    ことを特徴とする請求項1記載の論理回路合成装置。
  7. 前記特性を有するネットとは、ネットの密集度が所定値以上である混雑しているネットであり、
    前記記憶手段は、前記混雑しているネットの配線方向の制限を前記構成条件情報として記憶しており、
    前記選択手段は、前記混雑しているネットを前記選択し、
    前記生成手段は、前記選択した前記混雑しているネットの配線方向が、前記配線方向の制限を満たす前記新ネット構成情報を生成する
    ことを特徴とする請求項6記載の論理回路合成装置。
  8. 前記記憶手段は、前記特性に対応して、ネットを構成しているセルの間に配置すべき所定のセルの個数の制限を示す段数制限を前記構成条件情報として記憶しており、
    前記生成手段は、前記段数制限を満たす前記新ネット構成情報を生成する
    ことを特徴とする請求項1記載の論理回路合成装置。
  9. 前記特性を有するネットとは、所定の高さのグリッチが発生しているグリッチ発生ネットであり、
    前記記憶手段は、前記グリッチ発生ネットにおいて、ネットを構成しているセルの間に配置すべき所定セルの個数の制限を示す段数制限を前記構成条件情報として記憶しており、
    前記選択手段は、前記グリッチ発生ネットを前記選択し、
    前記生成手段は、前記選択した前記グリッチ発生ネットにおける所定のセル種間にあるセルの個数が前記段数制限を満たす前記新ネット構成情報を生成する
    ことを特徴とする請求項8記載の論理回路合成装置。
  10. 前記特性を有するネットとは、フリップフロップが直結しているFF直結ネットであり、
    前記記憶手段は、前記FF直結ネットにおいて、フリップフロップ間の遅延時間の制限を前記構成条件情報として記憶しており、
    前記選択手段は、前記FF直結ネットを前記選択し、
    前記生成手段は、前記選択した前記FF直結ネットにおいて、フリップフロップ間の遅延時間の制限が前記構成条件情報に示される条件を満たすようフリップフロップ間に挿入するバッファの数を制御して前記新ネット構成情報を生成する
    ことを特徴とする請求項1記載の論理回路合成装置。
  11. 前記特性を有するネットとは、高周波の信号が伝播している高周波ネットであり、
    前記記憶手段は、所定のセルが接続可能なネットの最大周波数の制限を示す最大周波数情報を前記構成条件情報として記憶しており、
    前記選択手段は、前記高周波ネットを選択し、
    前記生成手段は、前記選択した前記高周波ネットにおいて、前記高周波ネットに接続するセルが、前記記憶手段に記憶されている前記最大周波数情報に示される制限を満たすよう、前記高周波ネットに接続するセルを制御して前記新ネット構成情報を生成する
    ことを特徴とする請求項1記載の論理回路合成装置。
  12. 前記記憶手段は、所定のセルを前記1の特性を有するネットに接続する数の制限を前記構成条件情報として記憶しており、
    前記生成手段は、前記所定のセルが前記1の特性を有するネットに接続する数が、前記記憶されている前記制限を満たす前記新ネット構成情報を生成する
    ことを特徴とする請求項1記載の論理回路合成装置。
  13. 前記特性を有するネットとは、バス信号が流れるネットであるバス信号ネットであり、
    前記記憶手段は、終端抵抗を前記バス信号ネットに接続する数の制限を前記構成条件情報として記憶しており、
    前記選択手段は、前記バス信号ネットを前記選択し、
    前記生成手段は、前記選択した前記バス信号ネットにおいて、前記バス信号ネットに接続する前記終端抵抗の個数が、前記記憶されている前記接続する数の制限を満たす前記新ネット構成情報を生成する
    ことを特徴とする請求項12記載の論理回路合成装置。
  14. 前記記憶手段は、所定のセルを前記1の特性を有するネットに接続する位置の制限を前記構成条件情報として記憶しており、
    前記生成手段は、前記所定のセルが前記1の特性を有するネットに接続する位置が、前記記憶されている前記制限を満たす前記新ネット構成情報を生成する
    ことを特徴とする請求項1記載の論理回路合成装置。
  15. 前記特性を有するネットとは、ネットを観測する対象として指定された観測対象ネットであり、
    前記記憶手段は、フリップフロップを前記観測対象ネットに接続する位置の制限を前記構成条件情報として記憶しており、
    前記選択手段は、前記観測対象ネットを前記選択し、
    前記生成手段は、前記選択した前記観測対象ネットにおいて、フリップフロップを前記観測対象ネットに接続する位置が、前記記憶されている前記接続する位置の制限を満たす前記新ネット構成情報を生成する
    ことを特徴とする請求項14記載の論理回路合成装置。
  16. 前記特性を有するネットとは、所定の高さのトグル率となっているネットである高トグルネットであり、
    前記記憶手段は、前記高トグルネットに接続する第1セルと、前記第1セルとは異なる第2セルの配置に関する制限を前記構成条件情報として記憶しており、
    前記選択手段は、前記高トグルネットを前記選択し、
    前記生成手段は、前記高トグルネットに接続するセルと、当該セルとは異なる他のセルの配置位置が、前記記憶されている前記配置に関する制限を満たす前記新ネット構成情報を生成する
    ことを特徴とする請求項1記載の論理回路合成装置。
  17. 前記記憶手段は、前記第1セルと、前記第2セルを、rowの間隔を所定数空けて配置する制限を前記構成条件情報として記憶しており、
    前記生成手段は、前記記憶されている前記制限に示される前記rowの間隔を空けて、前記高トグルネットに接続するセルと、当該セルとは異なる他のセルとを配置する
    ことを特徴とする請求項16記載の論理回路合成装置。
  18. 前記記憶手段は、前記第1セルと、前記第2セルを、所定数のストラップ配線を挟んで配置する制限を前記構成条件情報として記憶しており、
    前記生成手段は、前記記憶されている前記制限に示される、前記所定数のストラップ配線を挟んで、前記高トグルネットに接続するセルと、当該セルとは異なる他のセルとを配置する
    ことを特徴とする請求項16記載の論理回路合成装置。
  19. 前記特性を有するネットとは、所定の高さのクロストークが発生しているクロストーク発生ネットであり、
    前記記憶手段は、前記クロストーク発生ネットが、他の配線と並行して配線されている長さである並行配線長の制限を前記構成条件情報として記憶しており、
    前記選択手段は、前記クロストーク発生ネットを前記選択し、
    前記生成手段は、前記クロストーク発生ネットに並行して配線されている所定の配線と、前記クロストーク発生ネットの配線との並行配線長が、前記記憶されている前記並行配線長の制限を満たす前記新ネット構成情報を生成する
    ことを特徴とする請求項1記載の論理回路合成装置。
  20. 1の特性を有するネットについて、前記特性に対応して、前記特性を有するネットの構成が満たすべき条件を示す構成条件情報を記憶している記憶手段を有する論理回路合成装置に、論理合成を行わせる論理回路合成方法であって、
    複数のネットの構成を示す原ネット構成情報を取得する取得ステップと、
    前記取得した原ネット構成情報に示される前記複数のネットから、前記1の特性を有するネットを選択する選択ステップと、
    前記原ネット構成情報に示される前記複数のネットのうち、前記選択したネットを対象として、前記記憶されている前記構成条件情報に示される前記構成の条件を満たす新ネット構成情報を生成する生成ステップとを含む
    ことを特徴とする論理回路合成方法。
  21. 1の特性を有するネットについて、前記特性に対応して、前記特性を有するネットの構成が満たすべき条件を示す構成条件情報を記憶している記憶手段を有する論理回路合成装置に、論理合成を行わせる処理を制御する制御プログラムであって、
    複数のネットの構成を示す原ネット構成情報を取得する取得ステップと、
    前記取得した原ネット構成情報に示される前記複数のネットから、前記1の特性を有するネットを選択する選択ステップと、
    前記原ネット構成情報に示される前記複数のネットのうち、前記選択したネットを対象として、前記記憶されている前記構成条件情報に示される前記構成の条件を満たす新ネット構成情報を生成する生成ステップとを含む
    ことを特徴とする制御プログラム。
JP2006324897A 2006-11-30 2006-11-30 論理回路合成装置 Pending JP2008140061A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006324897A JP2008140061A (ja) 2006-11-30 2006-11-30 論理回路合成装置
US11/947,417 US20080250379A1 (en) 2006-11-30 2007-11-29 Logic circuit synthesis device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006324897A JP2008140061A (ja) 2006-11-30 2006-11-30 論理回路合成装置

Publications (1)

Publication Number Publication Date
JP2008140061A true JP2008140061A (ja) 2008-06-19

Family

ID=39601460

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006324897A Pending JP2008140061A (ja) 2006-11-30 2006-11-30 論理回路合成装置

Country Status (2)

Country Link
US (1) US20080250379A1 (ja)
JP (1) JP2008140061A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9817931B1 (en) 2013-12-05 2017-11-14 The Mathworks, Inc. Systems and methods for generating optimized hardware descriptions for models
US10078717B1 (en) * 2013-12-05 2018-09-18 The Mathworks, Inc. Systems and methods for estimating performance characteristics of hardware implementations of executable models
US11550978B2 (en) 2018-12-17 2023-01-10 Mitsubishi Electric Corporation Circuit design assistance system and computer readable medium

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8276104B2 (en) * 2010-12-09 2012-09-25 Spansion Llc Stress reduction on vias and yield improvement in layout design through auto generation of via fill
US9973572B2 (en) 2015-04-14 2018-05-15 SkyKick, Inc. Server load management for data migration
US10796044B2 (en) * 2018-09-28 2020-10-06 Mentor Graphics Corporation Interface connectivity for printed circuit board schematic

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08320893A (ja) * 1995-05-24 1996-12-03 Mitsubishi Electric Corp 論理合成装置、論理合成方法及び半導体集積回路
US6189131B1 (en) * 1998-01-14 2001-02-13 Lsi Logic Corporation Method of selecting and synthesizing metal interconnect wires in integrated circuits
US7251800B2 (en) * 2003-05-30 2007-07-31 Synplicity, Inc. Method and apparatus for automated circuit design
US7530047B2 (en) * 2003-09-19 2009-05-05 Cadence Design Systems, Inc. Optimized mapping of an integrated circuit design to multiple cell libraries during a single synthesis pass

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9817931B1 (en) 2013-12-05 2017-11-14 The Mathworks, Inc. Systems and methods for generating optimized hardware descriptions for models
US10078717B1 (en) * 2013-12-05 2018-09-18 The Mathworks, Inc. Systems and methods for estimating performance characteristics of hardware implementations of executable models
US10261760B1 (en) 2013-12-05 2019-04-16 The Mathworks, Inc. Systems and methods for tracing performance information from hardware realizations to models
US11550978B2 (en) 2018-12-17 2023-01-10 Mitsubishi Electric Corporation Circuit design assistance system and computer readable medium

Also Published As

Publication number Publication date
US20080250379A1 (en) 2008-10-09

Similar Documents

Publication Publication Date Title
US8860458B2 (en) Integrated circuits with logic regions having input and output bypass paths for accessing registers
US7243315B2 (en) Methods for producing structured application-specific integrated circuits that are equivalent to field-programmable gate arrays
US8024690B2 (en) Method, system and computer program product for determining routing of data paths in interconnect circuitry providing a narrow interface for connection to a first device and a wide interface for connection to a distributed plurality of further devices
US7992122B1 (en) Method of placing and routing for power optimization and timing closure
JP2008140061A (ja) 論理回路合成装置
US7739098B2 (en) System and method for providing distributed static timing analysis with merged results
Zhao et al. Pre-bond testable low-power clock tree design for 3D stacked ICs
JP2005513626A (ja) 混在する領域クロック用のクロックツリーシンセシス
US6581199B2 (en) Engineering-change method of semiconductor circuit
JP2004139181A (ja) レイアウト装置及びプログラム
US9659123B2 (en) Systems and methods for flexibly optimizing processing circuit efficiency
US8854080B1 (en) Integrated circuits with interconnect selection circuitry
US20060247875A1 (en) Apparatus and method of delay calculation for structured ASIC
US20080229266A1 (en) Design Structure for a Clock Distribution Network, Structure, and Method for Providing Balanced Loading in Integrated Circuit Clock Trees
US6609241B2 (en) Method of designing clock wiring
US20140210512A1 (en) Rescaling
JP2004178285A (ja) 寄生素子抽出装置
US6687889B1 (en) Method and apparatus for hierarchical clock tree analysis
US20020049958A1 (en) Logical synthesizing apparatus for converting a hardware functional description into gate-level circuit information
US7669151B1 (en) Methods for reducing power supply simultaneous switching noise
US6865725B2 (en) Method and system for integrated circuit design
US10657302B1 (en) Route generation and buffer placement for disjointed power domains in an integrated circuit
US7945882B2 (en) Asynchronous circuit logical verification method, logical verification apparatus, and computer readable storage medium
JP2012174226A (ja) 半導体集積回路のレイアウト設計方法
US20080229265A1 (en) Design Structure for a Clock Distribution Network, Structure, and Method for Providing Balanced Loading in Integrated Circuit Clock Trees