説明

回路設計検証装置および回路設計検証方法

【課題】回路シミュレーション用のネットリストに基づいて、当該回路のファンアウトを計算できるようにすること。
【解決手段】回路設計検証装置は、半導体素子レベルの回路シミュレーション用のネットリストを、論理を構成する複数の駆動回路に分割するネットリスト分割部と、前記複数の駆動回路のそれぞれに含まれるMOSトランジスタのゲート長およびゲート幅からゲートサイズを算出するゲートサイズ算出部と、前記複数の駆動回路のそれぞれによって駆動される後段の素子の負荷容量を算出する負荷容量算出部と、算出されたゲートサイズおよび算出された負荷容量に基づいて、前記複数の駆動回路のそれぞれに対するファンアウトを算出するファンアウト算出部と、を備えている。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は回路設計検証装置および回路設計検証方法に関し、特に、大規模な回路の設計検証を行なう回路設計検証装置および回路設計検証方法に関する。
【背景技術】
【0002】
半導体回路の動作を検証するには、すべてのMOSトランジスタを対象とした回路シミュレーション(過渡解析)を行う必要がある。しかしながら、大規模回路に対する回路シミュレーションを行うには、膨大な計算時間を必要とする。また、シミュレーション結果として出力された膨大な波形をチェックする作業にも、多くの時間を費やす必要がある。
【0003】
そこで、例えば、特許文献1および特許文献2において、ファンアウトを計算して回路動作を検証するシステムが提案されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平09−091325号公報
【特許文献2】特開2005−115925号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
以下の分析は、本発明者によってなされたものである。
【0006】
特許文献1および特許文献2に記載されたシステムは、NAND回路、NOR回路のように、構成が決まった特定の回路を対象としている。しかし、DRAMのような大規模アナログ回路においては、NAND回路およびNOR回路以外の回路が複雑に組み合わされている。これらの文献に記載された技術によると、特定の回路以外の駆動回路が接続された回路構成において、ファンアウトを計算することが困難となる。
【0007】
また、駆動回路のファンアウトを計算して回路動作検証を行なう従来の方法によると、回路シミュレーションのネットリスト以外に、データベース等の多くの情報を駆動回路ごとに予め用意する必要があり、操作性が損なわれる。
【0008】
そこで、回路シミュレーション用のネットリストに基づいて、当該回路のファンアウトを計算できるようにすることが課題となる。
【課題を解決するための手段】
【0009】
本発明の第1の視点に係る回路設計検証装置は、
半導体素子レベルの回路シミュレーション用のネットリストを、論理を構成する複数の駆動回路に分割するネットリスト分割部と、
前記複数の駆動回路のそれぞれに含まれるMOSトランジスタのゲート長およびゲート幅からゲートサイズを算出するゲートサイズ算出部と、
前記複数の駆動回路のそれぞれによって駆動される後段の素子の負荷容量を算出する負荷容量算出部と、
算出されたゲートサイズおよび算出された負荷容量に基づいて、前記複数の駆動回路のそれぞれに対するファンアウトを算出するファンアウト算出部と、を備えている。
【0010】
本発明の第2の視点に係る回路設計検証方法は、
コンピュータが、半導体素子レベルの回路シミュレーション用のネットリストを、論理を構成する複数の駆動回路に分割する工程と、
前記複数の駆動回路のそれぞれに含まれるMOSトランジスタのゲート長およびゲート幅からゲートサイズを算出する工程と、
前記複数の駆動回路のそれぞれによって駆動される後段の素子の負荷容量を算出する工程と、
算出されたゲートサイズおよび算出された負荷容量に基づいて、前記複数の駆動回路のそれぞれに対するファンアウトを算出する工程と、を含む。
【発明の効果】
【0011】
本発明に係る回路設計検証装置および回路設計検証方法によると、回路シミュレーション用のネットリストに基づいて、当該回路のファンアウトを計算することが可能となる。
【図面の簡単な説明】
【0012】
【図1】第1ないし第3の実施形態に係る回路設計検証装置の構成を示すブロック図である。
【図2】第1の実施形態に係る回路設計検証装置の動作を説明するための図である。
【図3】第1の実施形態に係る回路設計検証装置の動作を示すフローチャートである。
【図4】第1の実施形態に係る回路設計検証装置におけるネットリスト分割部の動作について説明するための図である。
【図5】第1の実施形態に係る回路設計検証装置におけるゲートサイズ算出部の動作について説明するための図である。
【図6】第1の実施形態に係る回路設計検証装置における負荷容量算出部の動作について説明するための図である。
【図7】第1の実施形態に係る回路設計検証装置におけるファンアウト算出部の動作について説明するための図である。
【図8】第2の実施形態に係る回路設計検証装置の動作について説明するための図である。
【図9】第3の実施形態に係る回路設計検証装置の動作について説明するための図である。
【発明を実施するための形態】
【0013】
はじめに、本発明の概要について説明する。なお、この概要に付記する図面参照符号は、専ら理解を助けるための例示であり、本発明を図示の態様に限定することを意図するものではない。
【0014】
図1を参照すると、本発明の回路設計検証装置(10)は、半導体素子レベルの回路シミュレーション用のネットリスト(20)を、論理を構成する複数の駆動回路に分割するネットリスト分割部(11)と、前記複数の駆動回路のそれぞれに含まれるMOSトランジスタのゲート長およびゲート幅からゲートサイズを算出するゲートサイズ算出部(12)と、前記複数の駆動回路のそれぞれによって駆動される後段の素子の負荷容量を算出する負荷容量算出部(13)と、算出されたゲートサイズおよび算出された負荷容量に基づいて、前記複数の駆動回路のそれぞれに対するファンアウトを算出するファンアウト算出部(14)と、を備えている。
【0015】
また、回路設計検証装置(10)は、ネットリスト(20)に含まれるトランスファーゲートを抽出するトランスファーゲート抽出部(15)をさらに備え、負荷容量算出部(13)は、前記複数の駆動回路のそれぞれと、前記複数の駆動回路のそれぞれによって駆動される後段の素子との間に、抽出されたトランスファーゲートが接続されている場合には、該後段の素子に対する負荷容量に該トランスファーゲートの拡散層容量を組み入れるようにしてもよい。
【0016】
ここで、上記のゲートサイズを、インバータ換算のゲートサイズとしてもよい。
【0017】
また、回路設計検証装置(10)は、算出されたファンアウトを所定の閾値によってフィルタリングして出力する出力部(16)を備えていてもよい。
【0018】
本発明に係る回路設計検証装置は、半導体素子レベルの回路シミュレーション用ネットリストからファンアウトを計算する。これにより、回路動作検証を容易にかつ高速に行なう。また、本発明に係る回路設計検証装置によると、シミュレーション用のネットリストに基づいて、大規模な回路に対する動作検証を行うことが可能となる。
【0019】
(実施形態1)
第1の実施形態に係る回路設計検証装置について、図面を参照して説明する。図1は、本実施形態に係る回路設計検証装置10の構成を一例として示すブロック図である。図1を参照すると、回路設計検証装置10は、ネットリスト分割部11、ゲートサイズ算出部12、負荷容量算出部13、ファンアウト算出部14、および、出力部16を備えている。
【0020】
図2は、回路設計検証装置10の動作の概要を説明するための図である。図2を参照すると、全体回路の駆動回路へのグループ化が行われ、駆動回路ごとにファンアウトが計算される様子が示されている。
【0021】
まず、ネットリスト分割部11は、全体回路を表すネットリスト20に対し、前処理として、回路の階層展開、抵抗素子削除、MOSトランジスタの直列・並列縮退を行なう。次に、ネットリスト分割部11は、これらの操作を施したネットリストを、論理を構成する駆動回路DR1〜DR6のグループに分ける。
【0022】
ゲートサイズ算出部12は、駆動回路ごとに、MOSのゲート長およびゲート幅を算出する。次に、ゲートサイズ算出部12は、算出した駆動回路のゲート長およびゲート幅から代表的なゲートサイズを計算する。代表的なゲートサイズとして、一例として、インバータ換算のゲートサイズ(以下「等価ゲートサイズ」という。)を採用してもよい。一方、負荷容量算出部13は、駆動回路の出力部分と後段の素子の接続関係を検索して、素子のゲート容量、拡散層容量及び配線容量から負荷に相当する合計容量を計算する。
【0023】
ファンアウト算出部14は、等価ゲートサイズと負荷容量からファンアウトを計算する。これらの操作をすべての駆動回路に対して行うことで、高速かつ容易に回路全体についての回路動作検証が可能となる。
【0024】
図3は、本実施形態に係る回路設計検証装置10の動作を一例として示すフローチャートである。図3を参照して、回路設計検証装置10の動作について説明する。
【0025】
通常、回路シミュレーション用のネットリストは、回路ブロック毎に階層化されている。ネットリスト分割部11は、この階層化されたネットリストを階層展開する(ステップS1)。次に、ネットリスト分割部11は、ネットリストから、ファンアウト計算に不要な抵抗素子を削除し、MOS素子の直列・並列縮退を施す(ステップS2)。次に、ネットリスト分割部は、ネットリストを、論理を構成する駆動回路のグループへ分割する(ステップS3)。
【0026】
ゲートサイズ算出部12は、駆動回路のファンアウトを計算するために、駆動回路ごとに等価ゲートサイズを計算する(ステップS4)。
【0027】
次に、負荷容量算出部13は、駆動回路の出力と接続されている素子を検索する(ステップS5)。負荷容量算出部13は、駆動回路に接続されている素子のゲート容量や拡散層容量から合計容量を計算して、負荷容量とする(ステップS6)。
【0028】
次に、ファンアウト算出部14は、計算した駆動回路の等価ゲートサイズと負荷容量のバランス比率を計算する。この比率が、駆動回路のファンアウトとなる(ステップS7)。
【0029】
すべての駆動回路に対して、等価ゲートサイズの計算(ステップS4)、接続関係の検索(ステップS5)、負荷容量の計算(ステップS6)、および、ファンアウトの計算(ステップS7)を繰り返して行なう(ステップS8)。
【0030】
最後に、出力部16は、求めたファンアウトを、一例として、ファイルに出力する(ステップS9)。なお、出力部16は、ファイルに出力する際、閾値によってフィルタリングするようにしてもよい。これにより、検証に要する工数を削減することができる。
【0031】
図4は、ネットリスト分割部11の動作について説明するための図である。図4を参照して、設計回路中の全MOSトランジスタに対して論理を構成する駆動回路にグループ分けする方法について説明する。
【0032】
ネットリスト分割部11は、階層展開や抵抗を削除したネットリストに対して、トランジスタの接続関係を検索する。検索は、一例として、トランジスタのソース・ドレイン端子を交点とし、電源・グランド(対地)を終端とするようなグラフ理論に基づく幅優先探索で行なうことができる。このルールでグループ化した回路は、ゲート端子を入力とし、PMOSトランジスタ(以下、単に「PMOS」という。)とNMOSトランジスタ(以下、単に「NMOS」という。)の共有節点を出力とする駆動回路となる。容量素子(例えば、図4の容量素子C11)は、そのまま負荷容量に組み入れる。
【0033】
例えば、図4の左側に示した駆動回路DR7において、PMOS P4とNMOS N3の共有節点が出力接点となる。また、図4の中央に示した駆動回路DR8において、PMOS P6とNMOS N6の共有節点が出力接点となる。さらに、図4の右側に示した駆動回路DR9において、PMOS P7とNMOS N7の共有節点が出力節点となる
【0034】
図5は、ゲートサイズ算出部12の動作について説明するための図である。図5を参照して、駆動回路を代表するゲート長(「等価ゲートサイズ」という。)を計算する方法について説明する。ここでは、駆動回路を構成するMOSに制限を与えないインバータ換算のゲート長を求める方法を示す。
【0035】
等価ゲートサイズを求めるには、出力に相当する節点(例えば、図5のPMOS P13とNMOS N12との共有節点)から駆動回路のグループの終端になる電源・グランド(対地)までを、グラフ理論に基づく深さ優先探索で経路検索する。直列接続されたMOS同士についてはゲート長およびゲート幅を合成し、並列接続されたMOSについては別の等価ゲートサイズとして計算すればよい。図5においては、経路1および経路2のそれぞれに沿って計算されたゲートサイズが、等価ゲートサイズとなる。
【0036】
図6は、負荷容量算出部13の動作について説明するための図である。図6を参照して、MOSトランジスタのゲート容量や拡散層容量の計算方法について説明する。負荷容量算出部13は、駆動回路DR10の出力節点に接続されているすべてのMOS素子のゲート端子やソース・ドレイン端子の容量及び配線容量を算出し、総合計を求める。この合計した容量が、駆動回路DR10に対する負荷容量となる。
【0037】
図7は、ファンアウト算出部14の動作について説明するための図である。図7を参照して、図5において算出された等価ゲートサイズと、図6において算出された負荷容量とのバランス比率を求める方法を示す。
【0038】
まず、ファンアウト算出部14は、等価ゲートサイズから容量を求める。次に、ファンアウト算出部14は、求めた容量を使用して、図7において点線で囲んだ組み合わせのように、PMOS P31側およびNMOS N31側のそれぞれについて容量の比を計算する。この比の計算をすべての駆動回路に対して行うことで、MOSトランジスタに対する駆動能力を求めることができる。
【0039】
(実施形態2)
第2の実施形態に係る回路設計検証装置について、図面を参照して説明する。図1を参照すると、本実施形態の回路設計検証装置10は、さらに、トランスファーゲート抽出部15を備えている。
【0040】
図8は、本実施形態に係る回路設計検証装置の動作について説明するための図である。図8を参照して、駆動回路DR11と負荷容量との間にトランスファーゲートが存在する場合の処理方法について説明する。図8において、負荷容量は、PMOS P42およびNMOS N42のゲート容量である。
【0041】
トランスファーゲートは信号を制御・通過させる回路であり、負荷容量として取り扱うことができる。トランスファーゲートはPMOSとNMOSが対になった回路であり、容易に識別することができる。図8を参照すると、PMOS P41とNMOS N41とから成るトランスファーゲートが、駆動回路と駆動回路によって駆動される後段の素子(PMOS P42およびNMOS N42)との間に設けられている。
【0042】
トランスファーゲート抽出部15は、全体回路のグループ化を行なう前に、まず、トランスファーゲート回路を識別する。負荷容量算出部13は、駆動回路間の接続関係を調べる際に、図8に示すように、トランスファーゲートが挟まれている場合には、トランスファーゲートの後段に接続された合計容量に対して、トランスファーゲート自身の拡散層容量を組み入れて負荷容量を算出する。
【0043】
(実施形態3)
第3の実施形態に係る回路設計検証装置について、図面を参照して説明する。図9は、本実施形態に係る回路設計検証装置の動作について説明するための図である。図9を参照して、抵抗素子を削除する代わりに抵抗素子を容量換算し、負荷容量として組み入れる方法について説明する。
【0044】
図9を参照すると、抵抗素子を容量換算する場合には、抵抗値をMOSトランジスタがオンしたときのON抵抗に置き換える。MOSに置き換えることができれば、さらに、トランスファーゲートに置き換えることができる。トランスファーゲートに置き換えた場合には、拡散層容量とみなすことができる。
【0045】
以上のようにして、抵抗素子を負荷容量に変換することができる。したがって、本実施形態によると、第1の実施形態と異なり、ネットリストを駆動回路に分割する前に抵抗素子を削除する必要がなくなる。
【0046】
本発明に係る回路設計検証装置は、概略以下の動作にしたがって、ネットリストからファンアウトを計算する。
(1)まず、半導体素子レベルの回路シミュレーション用ネットリストから論理を構成する駆動回路にグループ分けして駆動回路の接続に組み直す。
(2)次に、ネットリストをグループ分けして接続を組み直した駆動回路ごとに、MOSトランジスタのゲート長およびゲート幅からMOSのゲートサイズを求め、回路能力の指標となる駆動能力を算出する。
(3)次に、駆動回路が駆動すべき後段の素子の接続関係を検索し、素子のゲート容量または拡散層容量、および、配線容量から合計容量を求め、負荷の指標となる負荷容量を算出する。
(4)次に、駆動回路の代表的なゲートサイズと負荷容量との比から、ファンアウトを算出する。
(5)算出した結果をユーザが指定した閾値でフィルタリングしてファイル等に出力する。
【0047】
かかる回路設計検証装置によると、以下の効果がもたらされる。
【0048】
第1に、全MOSトランジスタの回路シミュレーションを行うことなく、MOSトランジスタレベルの駆動能力を検証することができる。
【0049】
第2に波形を目視することに頼らず、数値結果に基づく客観的な設計検証が可能となる。
【0050】
第3に、NAND回路、NOR回路のみならず、複雑な組み合わせを有する回路を検証することができる。
【0051】
第4に、データベース等の特別な情報を用意することなく、回路シミュレーション用ネットリストからファンアウトを計算することができる。
【0052】
以上のことから、本発明に係る回路設計検証装置および回路設計検証方法によると、大規模アナログ回路の検証工数を大幅に短縮することができる。
【0053】
なお、上記の特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【0054】
10 回路設計検証装置
11 ネットリスト分割部
12 ゲートサイズ算出部
13 負荷容量算出部
14 ファンアウト算出部
15 トランスファーゲート抽出部
16 出力部
20 ネットリスト
DR1〜DR11 駆動回路
C1、C2、C11、C21、C31 容量素子
N1〜N7、N11〜N13 NMOSトランジスタ
N21、N22、N31、N41、N42、N51 NMOSトランジスタ
P1〜P7、P11〜P13 PMOSトランジスタ
P21、P22、P31、P41、P42、P51、P52 PMOSトランジスタ

【特許請求の範囲】
【請求項1】
半導体素子レベルの回路シミュレーション用のネットリストを、論理を構成する複数の駆動回路に分割するネットリスト分割部と、
前記複数の駆動回路のそれぞれに含まれるMOSトランジスタのゲート長およびゲート幅からゲートサイズを算出するゲートサイズ算出部と、
前記複数の駆動回路のそれぞれによって駆動される後段の素子の負荷容量を算出する負荷容量算出部と、
算出されたゲートサイズおよび算出された負荷容量に基づいて、前記複数の駆動回路のそれぞれに対するファンアウトを算出するファンアウト算出部と、を備えていることを特徴とする、回路設計検証装置。
【請求項2】
前記ネットリストに含まれるトランスファーゲートを抽出するトランスファーゲート抽出部をさらに備え、
前記負荷容量算出部は、前記複数の駆動回路のそれぞれと、前記複数の駆動回路のそれぞれによって駆動される後段の素子との間に、抽出されたトランスファーゲートが接続されている場合には、該後段の素子に対する負荷容量に該トランスファーゲートの拡散層容量を組み入れることを特徴とする、請求項1に記載の回路設計検証装置。
【請求項3】
前記ゲートサイズは、インバータ換算のゲートサイズであることを特徴とする、請求項1または2に記載の回路設計検証装置。
【請求項4】
算出されたファンアウトを所定の閾値によってフィルタリングして出力する出力部を備えていることを特徴とする、請求項1ないし3のいずれか1項に記載の回路設計検証装置。
【請求項5】
半導体素子レベルの回路シミュレーション用のネットリストを、論理を構成する複数の駆動回路に分割する工程と、
前記複数の駆動回路のそれぞれに含まれるMOSトランジスタのゲート長およびゲート幅からゲートサイズを算出する工程と、
前記複数の駆動回路のそれぞれによって駆動される後段の素子の負荷容量を算出する工程と、
算出されたゲートサイズおよび算出された負荷容量に基づいて、前記複数の駆動回路のそれぞれに対するファンアウトを算出する工程と、を含むことを特徴とする、設計回路検証方法。
【請求項6】
前記ネットリストに含まれるトランスファーゲートを抽出する工程と、
前記複数の駆動回路のそれぞれと、前記複数の駆動回路のそれぞれによって駆動される後段の素子との間に、抽出されたトランスファーゲートが接続されている場合には、該後段の素子に対する負荷容量に該トランスファーゲートの拡散層容量を組み入れる工程と、を含むことを特徴とする、請求項5に記載の設計回路検証方法。
【請求項7】
前記ゲートサイズは、インバータ換算のゲートサイズであることを特徴とする、請求項5または6に記載の設計回路検証方法。
【請求項8】
算出されたファンアウトを所定の閾値によってフィルタリングして出力する工程を含むことを特徴とする、請求項5ないし7のいずれか1項に記載の設計回路検証方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2012−203626(P2012−203626A)
【公開日】平成24年10月22日(2012.10.22)
【国際特許分類】
【出願番号】特願2011−67301(P2011−67301)
【出願日】平成23年3月25日(2011.3.25)
【出願人】(500174247)エルピーダメモリ株式会社 (2,599)
【Fターム(参考)】