JP6036429B2 - 設計支援装置、設計支援プログラム、および設計支援方法 - Google Patents

設計支援装置、設計支援プログラム、および設計支援方法 Download PDF

Info

Publication number
JP6036429B2
JP6036429B2 JP2013054773A JP2013054773A JP6036429B2 JP 6036429 B2 JP6036429 B2 JP 6036429B2 JP 2013054773 A JP2013054773 A JP 2013054773A JP 2013054773 A JP2013054773 A JP 2013054773A JP 6036429 B2 JP6036429 B2 JP 6036429B2
Authority
JP
Japan
Prior art keywords
circuit
resistance
resistor
circuit model
open
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.)
Active
Application number
JP2013054773A
Other languages
English (en)
Other versions
JP2014182430A (ja
Inventor
未来 寺部
未来 寺部
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013054773A priority Critical patent/JP6036429B2/ja
Priority to US14/101,973 priority patent/US8904328B2/en
Publication of JP2014182430A publication Critical patent/JP2014182430A/ja
Application granted granted Critical
Publication of JP6036429B2 publication Critical patent/JP6036429B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/3312Timing analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/12Timing analysis or timing optimisation

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)
  • Design And Manufacture Of Integrated Circuits (AREA)

Description

本発明は、回路の設計を支援する設計支援装置、設計支援プログラム、および設計支援方法に関する。
電子回路の開発では、多くの場合、設計段階で回路の解析が行われる。回路解析として、例えばタイミング解析がある。タイミング解析では、回路の動作シミュレーションが行われ、要求されたタイミングで回路が動作するかどうかが確認される。タイミング解析を行うことで、例えば配線遅延によるタイミングエラーを見つけ出し、タイミングエラーが発生しないように回路を修正することができる。しかも、回路の規模が大きくなるほどタイミングの制約を満たす回路設計が難しくなる。そのため、タイミング解析により、タイミングエラーの発生の有無を確認することは重要である。例えばクロック周波数が数GHzを超えるような超高速LSI(Large Scale Integration)内部で使用されるマクロにおいては、非常に精度の高いタイミング解析が求められる。ここでマクロとは、LSIの機能ごとにブロック化したときの、1ブロックの回路である。
回路のタイミング解析の手法としては、例えばSPICE(Simulation Program with Integrated Circuit Emphasis)と呼ばれるソフトウェアを用いたシミュレーションによる解析が知られている。SPICEなどのソフトウェアを用いたシミュレーションにより、高精度のタイミング解析が可能である。ただし、高精度のタイミング解析には非常に長い処理時間が必要であり、例えばある程度以上の巨大マクロについては、実用的な時間でタイミング解析を終えることは困難となる。
そこで、回路を簡略化してシミュレーションを行う方法が考えられている。例えば、規模の大きな負荷回路を、仮想制御電圧源を用いて簡略化することが考えられている。
また回路シミュレーションの負荷を必要以上に重くせずかつ解析精度を向上させるように、開放端を持つ素子の開放端の解消や直流経路のないノードを解消する技術が考えられている。この技術では、開放端を有する付随素子の中で、全端子あるいは1つを除く全端子が開放端である付随素子をすべて削除することが提案されている。
特開2006−146595号公報 特開平9−325982号公報
しかし、従来の回路モデルの簡略化技術では、回路モデルの過度な簡略化により、タイミング解析の解析精度を悪化させることがある。例えば、全端子あるいは1つを除く全端子が開放端である素子をすべて削除すると、タイミング解析上影響の大きい素子までも削除される場合がある。タイミング解析上影響の大きい素子が削除されると、その素子が実際の回路の動作タイミングに与える影響の分だけ、タイミング解析の解析結果に誤差が生じ、解析精度が悪化してしまう。
なお、回路モデルの過度な簡略化により解析精度が悪化するという問題は、タイミング解析以外の解析においても同様に生じる問題である。
1つの側面では、本発明は、解析精度に応じた適切な回路モデルの簡略化を可能とすることを目的とする。
1つの側面では、回路を表す回路モデルに含まれる抵抗から、1つの端子以外の端子が開放されており、かつ抵抗値が閾値以下の抵抗を検出する検出手段と、前記回路モデルから検出された該抵抗を削除する削除手段と、を有する設計支援装置が提供される。
1つの側面によれば、解析精度に応じた適切な回路モデルの簡略化が可能となる。
第1の実施の形態に係る設計支援装置の機能を示す図である。 抵抗の短絡の一例を示す図である。 抵抗の縮退の一例を示す図である。 オープンな配線抵抗を含む回路の一例を示す図である。 オープンな配線抵抗を含む回路の回路モデルの一例を示す図である。 回路モデルの簡略化の一例を示す図である。 閾値より大きな抵抗値を有するオープンな抵抗を残した回路モデルの簡略化の一例を示す図である。 回路モデルに含まれるネットリストの一例を示す図である。 第2の実施の形態に用いるコンピュータのハードウェアの一構成例を示す図である。 第2の実施の形態におけるコンピュータが有する機能を示すブロック図である。 回路モデルのデータ構造の一例を示す図である。 解析精度と解析精度係数との関係の一例を示す図である。 解析精度係数記憶部のデータ構造の一例を示す図である。 回路情報記憶部内の回路情報のデータ構造の一例を示す図である。 回路モデル簡略化処理の手順の一例を示すフローチャートである。 オープン抵抗削減処理の手順の一例を示すフローチャートである。 概算抵抗値の第1の決定例を示す図である。 概算抵抗値の第2の決定例を示す図である。 閾値の算出例を示す図である。 ネットリスト内のオープンな抵抗の削減例を示す図である。 抵抗の縮退処理の一例を示す図である。 微小抵抗の短絡処理の一例を示す図である。
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
まず第1の実施の形態について説明する。第1の実施の形態では、設計支援装置が、回路をモデル化した回路モデルに含まれる抵抗のうち、1つの端子以外の端子が開放されている抵抗を検出し、検出された抵抗の抵抗値が閾値以下の場合、回路モデルからその抵抗のデータを削除する。端子が開放されているとは、例えば端子が他の素子、電源、またはグランドに接続されていない状態である。以下、1つの端子以外の端子が開放されている抵抗を、オープンな抵抗と呼ぶ。第1の実施の形態によれば、許容できる解析精度が得られる範囲内での適切な回路モデルの簡略化が可能となる。
なお回路モデルでは、回路上の配線も、細かな区間ごとに抵抗などの素子に置き換えられている。そのため、回路モデルにおける抵抗といった場合、抵抗器などの電子部品の他、配線も含まれる。
図1は、第1の実施の形態に係る設計支援装置の機能を示す図である。設計支援装置CPは、記憶手段1、決定手段2、検出手段3、および削除手段4を有する。
記憶手段1は、電子的な回路を表す回路モデル1aを記憶する。回路モデル1aには、例えば、複数の抵抗R1〜R6が含まれている。また回路モデル1aには、各抵抗R1〜R6の抵抗値が設定されている。図1の例では、抵抗R1の抵抗値はr1Ω、抵抗R2の抵抗値はr2Ω、抵抗R3の抵抗値はr3Ω、抵抗R4の抵抗値はr4Ω、抵抗R5の抵抗値はr5Ω、抵抗R6の抵抗値はr6Ωである。
決定手段2は、回路モデル1aを用いた回路の動作シミュレーションにおける解析精度に基づいて、閾値を決定する。例えば決定手段2は、解析精度が高いほど、閾値を低くする。また決定手段2は、回路モデル1aに含まれる1または複数の部分回路ごとに、部分回路の回路構成に応じた閾値を決定する。そのために決定手段2は、例えば部分回路について、1つの端子以外の端子が開放されているすべての抵抗を削除した状態で、並列または直列接続された複数の抵抗の合成抵抗値を計算する。そして決定手段2は、合成抵抗を用いて、その部分回路に適用する閾値を決定する。
なお複数の部分回路ごと閾値を決定する場合において、例えば、回路の動作シミュレーションにおいて求められる解析精度に応じた係数を、予め定義しておくことができる。この場合、決定手段2は、部分回路内の抵抗値に基づいて算出した値に係数を乗算し、乗算結果を部分回路の閾値とする。例えば決定手段2は、部分回路について、1つの端子以外の端子が開放されているすべての抵抗を削除した状態で、並列または直列接続された複数の抵抗の合成抵抗値と、並列または直列接続されていない抵抗の抵抗値とを比較する。そして決定手段2は、比較された抵抗値のうちの最大の抵抗値に、係数を乗算し、乗算結果を部分回路の閾値とする。
検出手段3は、回路モデル1aに含まれる抵抗R1〜R6から、1つの端子以外の端子が開放されており、かつ抵抗値が閾値以下の抵抗を検出する。なお複数の部分回路ごとに閾値が決定された場合、検出手段3は、例えば1つの端子以外の端子が開放されている抵抗であり、かつ該抵抗を含む部分回路の閾値以下の抵抗値を有する抵抗を検出する。
削除手段4は、回路モデル1aから、検出手段3によって検出された抵抗を削除する。
このような設計支援装置CPにより、回路モデル1aの簡略化が行われる。例えば図1の例では、決定手段2において、閾値が決定される。例えば決定手段2により、回路モデル1a内のオープンなすべての抵抗を削除した状態で、複数の抵抗で接続された区間の合成抵抗値を計算する。図1の例では、回路モデル1a内の抵抗R1〜R6のうち、抵抗R5,R6がオープンな抵抗である。そこで例えば決定手段2により、回路モデル1aのコピーが生成され、そのコピーから抵抗R5,R6が削除される。抵抗R2,R3は直列接続であるため、抵抗R2,R3は、抵抗R2,R3の抵抗値の合成抵抗値r7(r7=r2+r3)を有する抵抗R7に置き換えられる。そして、抵抗R1,R4,R7の抵抗値が比較され、最大の抵抗値が求められる。図1の例では、r4<r1<r7であり、抵抗R7の抵抗値が最も大きい。そこで抵抗r7に解析精度に応じた係数Kを乗算した値が、閾値となる。
閾値が決定すると、検出手段3により、回路モデル1aの中から、削除の条件を満たす抵抗が検出される。削除の条件とは、抵抗値が閾値以下であること、かつオープンな抵抗であることである。図1の例では、抵抗値が閾値r0以下なのは、抵抗R2,R4,R5である。またオープンな抵抗は、抵抗R5,R6である。すると、削除の条件を満たすのは、抵抗R5のみとなる。そこで検出手段3により、削除対象として抵抗R5が検出される。すると、削除手段4により、回路モデル1aから抵抗R5が削除される。
このように、オープンな抵抗のうち、抵抗値が閾値以下の抵抗のみを回路モデル1aから削除するようにすることで、過度な簡略化をせずに、回路モデル1aの簡略化が可能となる。すなわち、回路モデル1aを用いた回路の特性の解析における解析精度に応じて閾値を決定しておけば、解析精度に応じた回路モデル1aの適切な簡略化が可能となる。このようにして簡略化した回路モデル1aを用いて回路の特性を解析すれば、その解析に求められる精度を満しつつ、効率的な解析を行うことができる。
なお、第1の実施の形態では、閾値を決定手段2が計算によって算出しているが、ユーザが予め閾値を設定しておいてもよい。
なお、決定手段2、検出手段3、削除手段4は、例えば設計支援装置CPが有するプロセッサにより実現することができる。また、記憶手段1は、例えば設計支援装置CPが有するRAM(Random Access Memory)により実現することができる。
また、図1に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。
〔第2の実施の形態〕
次に第2の実施の形態について説明する。第2の実施の形態では、下記の2点を主な工夫とすることで、タイミング解析上の精度が高く、かつ、実用的な時間で解析可能な簡略回路モデルを生成可能にするものである。
・タイミング解析用の回路モデルを簡略化するために、まず一旦オープンな抵抗をすべて短絡させた状態での合成抵抗値を計算し、ネットリストごとの最大抵抗値を算出する。この最大抵抗値を元に、タイミング解析の精度に応じたネットリストごとの、抵抗削除の閾値を決定する。
・決定した閾値に基づいて、あらためてオリジナルの回路モデルを用いてオープンな抵抗の中でもタイミング解析上影響の少ない抵抗のみを短絡させる。
なおネットリストとは、回路モデル上で2つ以上のトランジスタをつなぐ一連の抵抗群である。このネットリストは、第1の実施の形態で説明した部分回路の一例である。
また第2の実施の形態では、閾値以下の抵抗値を有するオープンな抵抗の短絡と、他の回路モデル簡略化の手法とを組み合わせる。他の回路モデル簡略化の手法としては、モデルを抽象化する方法や、モデルを縮退する方法がある。
回路モデルの抽象化では、例えば、微小な抵抗の短絡、容量の除去、特定の回路形状を持つ抵抗の短絡が行われる。抵抗の短絡と抵抗の縮退とは、以下のように定義される。
・抵抗の短絡の定義:抵抗素子がないもの(0Ωである)とし、両端の頂点をつなぐ。
・抵抗の縮退の定義:オームの法則等に従い、合成抵抗に置き換える。
図2は、抵抗の短絡の一例を示す図である。図2では、上段に短絡前の回路を示し、下段に短絡後の回路を示している。
図2に示す短絡前の回路では、3つの抵抗R11,R12,R13が直列に接続されている。抵抗R11は、頂点21と頂点22との間に設けられている。抵抗R12は、頂点22と頂点23との間に設けられている。抵抗R13は、頂点23と頂点24との間に設けられている。
ここで抵抗R12を短絡した場合を想定する。抵抗R12を短絡する場合、抵抗R12が消去され、頂点22と頂点23とが繋げられる。例えば頂点23に接続されていた抵抗R13は、頂点23に代えて頂点22に接続される。
このようにして、抵抗が短絡される。抵抗が短絡されると、回路上の抵抗の数が減り、タイミング解析における計算量が削減される。
モデルの抽象化は、タイミング解析の精度に対する影響が少ない素子を対象に行われる。例えば以下のような素子に対して、短絡等の処理が行われる。
・微小な抵抗値を持つ配線抵抗の短絡
・微小な容量値を持つ配線容量の除去
・オープンな抵抗のうち、抵抗値が閾値以下の抵抗の短絡
なお抵抗値が微小かどうかは、抵抗値が予め設定された値より小さいかどうかで判断される。容量値が微小かどうかは、容量値が予め設定された値より小さいかどうかで判断される。
回路モデルの簡略化方法としては、モデルの抽象化の他に、モデルの縮退がある。モデルの縮退とは、オームの法則に従って配線抵抗/配線容量などを縮退させることである。
図3は、抵抗の縮退の一例を示す図である。図3では、抵抗の縮退が2段階に分けて行われている。1回目の縮退は、並列抵抗の縮退であり、2回目の縮退は、直列抵抗の縮退である。図3では、上から順に、縮退前の回路、1回目の縮退後の回路、2回目の縮退後の回路が示されている。
縮退前は、回路が4つの抵抗R21〜R24で構成されている。抵抗R21は、頂点31と頂点32との間に設けられている。抵抗R22と抵抗R23とは、頂点32と頂点33との間に並列接続で設けられている。抵抗R24は、頂点33と頂点34との間に設けられている。
縮退前の回路に対して並列抵抗の縮退が行われると、抵抗R23と抵抗R24とが、1つの抵抗R25に置き換えられる。抵抗R25は、頂点32と頂点R33との間に設けられている。その結果、1回目の縮退後の回路は、抵抗R21、抵抗R25、および抵抗R24の直列接続となる。抵抗R25の抵抗値は、抵抗R23と抵抗R24との合成抵抗値である。並列接続の合成抵抗値は、並列接続されるすべての抵抗の抵抗値の乗算結果を、それらの抵抗の抵抗値の総和で除算した値である。
1回目の縮退後の回路に対して直列抵抗の縮退が行われると、抵抗R21、抵抗R25、および抵抗R24が、1つの抵抗R26に置き換えられる。抵抗R26は、縮退前の回路の両端の2つの頂点31,34の間に設けられている。抵抗R26の抵抗値は、抵抗R26は、抵抗R21、抵抗R25、および抵抗R24の合成抵抗である。直列接続の合成抵抗値は、直列接続されるすべての抵抗の抵抗値の総和である。
このようにして抵抗が縮退される。抵抗の縮退によっても、抵抗の短絡と同様に回路上の抵抗の数が減る。その結果、タイミング解析における計算量が削減される。
以上のように、回路モデルの抽象化や縮退により、回路モデルを簡略化することができる。特にオープンな配線抵抗は、配線抵抗の縮退を阻害する要因になりやすい。
図4は、オープンな配線抵抗を含む回路の一例を示す図である。図4に示す回路では、3つの配線41〜43を介して、2つのトランジスタTR1,TR2が接続されている。トランジスタTR1は配線41に接続されており、トランジスタTR2は配線43に接続されている。そして配線41と配線43との間が、配線42で接続されている。
このとき、回路モデルを作成する場合、配線41〜43を定義するために、配線上に頂点51〜58が設定される。例えば配線41の両端に2つの頂点51,53が設定される。配線42の両端に2つの頂点56,57が設定される。配線43の両端に2つの頂点52,58が設定される。また配線41と配線42との交差部分の中心に頂点54が設定される。さらに配線43と配線42との交差部分の中心に頂点55が設定される。
配線上に設定した頂点間の配線抵抗が、回路モデルでは、抵抗を示す素子として表される。
図5は、オープンな配線抵抗を含む回路の回路モデルの一例を示す図である。図5には、図4に示した回路から生成した回路モデルが示されている。
回路モデルでは、頂点51と頂点54との間の配線が、抵抗R31で表される。頂点54と頂点53との間の配線が、抵抗R32で表される。頂点54と頂点55との間の配線が、抵抗R33で表される。頂点54と頂点55との間の配線が、抵抗R34で表される。頂点55と頂点57との間の配線が、抵抗R35で表される。頂点55と頂点58との間の配線が、抵抗R36で表される。頂点52と頂点55との間の配線が、抵抗R37で表される。
図5では、トランジスタTR1,TR2に接する頂点51,52は、黒丸で示している。また配線を抵抗に置き換えたときの抵抗同士の接する頂点54,55を、二重丸で示している。さらに開放されている頂点53,56〜58を、白丸で示している。このような頂点の表記方法は、図17〜図22においても同様である。
図5に示した回路モデルは、開放されている頂点53,56〜58に接続されている抵抗R32,R33,R35,R36が存在するため、縮退する余地がない。ここで、抵抗R32,R33,R35,R36を短絡して回路モデルを簡略化することができれば、さらに回路モデルの縮退が可能となる。
図6は、回路モデルの簡略化の一例を示す図である。開放されている頂点53,56〜58に接続されている抵抗R32,R33,R35,R36を短絡させた場合、図6の上段のような回路モデルとなる。この回路モデルでは、3つの抵抗R31,R34,R37が直列に接続されている。そこで、抵抗の縮退が可能となる。
図6の下段に、抵抗を縮退後の回路モデルが示されている。縮退によって、3つの抵抗R31,R34,R37は、1つの抵抗R38に置き換えられている。抵抗R38の抵抗値は、3つの抵抗R31,R34,R37の合成抵抗値である。
このように、オープンな抵抗をできるだけ短絡させ、その結果として回路モデルから削除することで、さらに回路モデルの簡略化が可能となる。しかし、タイミング解析の分野では高精度なシミュレーションが求められるため、回路モデルの過度な簡略化は、実測値との乖離を発生させる原因となる。例えば、回路中に抵抗があったとき、抵抗としての機能だけではなく、寄生容量と呼ばれる静電容量が現れる。すると、オープンな抵抗は直流の電流は流れないものの、微量な容量として回路の動作に作用する。そのため、タイミング解析を高精度で行う場合、オープンな抵抗であっても、安易に回路モデルから削除するのは適切ではない。
図4に示した回路では、オープンな抵抗に置き換えられた配線区間のうち、頂点53と頂点54との間の配線区間は、他よりも長く、抵抗値も大きい。タイミング解析に求める精度が低ければ、頂点53と頂点54との間の配線区間に対応する抵抗も、回路モデルから削除可能である。他方、高精度でタイミング解析を行う場合、ある程度以上の抵抗値の抵抗を回路モデルから削除してしまうと、その抵抗が存在することに起因する寄生容量などの影響がタイミング解析に反映されず、求められる解析精度が得られない可能性がある。そこで、第2の実施の形態では、抵抗の閾値を設定し、その閾値以下の抵抗値のオープンな抵抗について短絡し、それ以外のオープンな抵抗の短絡は抑止する。
図7は、閾値より大きな抵抗値を有するオープンな抵抗を残した回路モデルの簡略化の一例を示す図である。図7の例は、オープンな抵抗のうち、抵抗R32だけが、抵抗値が閾値より大きかった場合である。図7の上段に、オープンな抵抗のうち、抵抗値が閾値以下の抵抗を短絡後の回路モデルが示されている。この例では、図5に示した抵抗R33,R35,R36は削除されているが、抵抗R32は短絡されずに回路モデルに残されている。また抵抗R34と抵抗R37は、直列接続となり縮退可能である。
図7の下段に、抵抗を縮退後の回路モデルが示されている。縮退によって、2つの抵抗R34,R37は、1つの抵抗R39に置き換えられている。抵抗R39の抵抗値は、2つの抵抗R34,R37の合成抵抗値である。
このように、所定の閾値よりも大きな抵抗値を有する抵抗は、オープンな抵抗であっても短絡の対象から除外することで、タイミング解析の精度の低下を抑止しつつ、十分な回路モデルの簡略化を図ることができる。
ここで、オープンな抵抗を短絡の対象とするか否かの閾値は、例えば、タイミング解析に求められる解析精度に応じて決定される。なお、タイミング解析に求められる解析精度は、回路全体で一定とは限らない。特に、大規模なLSI回路のタイミング解析を行う場合、回路内のネットリストごとに、異なる解析精度が求められる場合がある。そこで、第2の実施の形態では、オープンな抵抗を短絡の対象とするか否かの閾値を、ネットリストごとに決定するものとする。
図8は、回路モデルに含まれるネットリストの一例を示す図である。図8に示す回路モデルは、4つのトランジスタTR3〜TR6を含んでいる。またトランジスタTR3〜TR6には、頂点61〜70を介して、抵抗R41〜R48が接続されている。
トランジスタTR3,TR4,TR6は、3つの抵抗R41〜R43を介して接続されている。そこで3つの抵抗R41〜R43と、抵抗R41〜R43によるトランジスタTR3,TR4,TR6間の接続関係が、1つのネットリスト71となる。同様に、図8に示す回路モデルには、ネットリスト72〜74が含まれる。
解析精度の低下を抑止させて回路モデルを簡略化する機能は、例えば、回路モデルの作成およびタイミング解析を行うコンピュータにソフトウェアによって実装することができる。
図9は、第2の実施の形態に用いるコンピュータのハードウェアの一構成例を示す図である。コンピュータ100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介してRAM102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、またはDSP(Digital Signal Processor)である。プロセッサ101の機能の少なくとも一部を、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現してもよい。
RAM102は、コンピュータ100の主記憶装置として使用される。RAM102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、プロセッサ101による処理に必要な各種データが格納される。
バス109に接続されている周辺機器としては、HDD(Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108がある。
HDD103は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD103は、コンピュータ100の補助記憶装置として使用される。HDD103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
グラフィック処理装置104には、モニタ11が接続されている。グラフィック処理装置104は、プロセッサ101からの命令に従って、画像をモニタ11の画面に表示させる。モニタ11としては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
入力インタフェース105には、キーボード12とマウス13とが接続されている。入力インタフェース105は、キーボード12やマウス13から送られてくる信号をプロセッサ101に送信する。なお、マウス13は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
光学ドライブ装置106は、レーザ光などを利用して、光ディスク14に記録されたデータの読み取りを行う。光ディスク14は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク14には、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
機器接続インタフェース107は、コンピュータ100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置15やメモリリーダライタ16を接続することができる。メモリ装置15は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ16は、メモリカード17へのデータの書き込み、またはメモリカード17からのデータの読み出しを行う装置である。メモリカード17は、カード型の記録媒体である。
ネットワークインタフェース108は、ネットワーク10に接続されている。ネットワークインタフェース108は、ネットワーク10を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
以上のようなハードウェア構成によって、第2の実施の形態の処理機能を実現することができる。なお、図1に示した設計支援装置CPも、図9に示したコンピュータ100と同様のハードウェアにより実現することができる。
コンピュータ100は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。コンピュータ100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、コンピュータ100に実行させるプログラムをHDD103に格納しておくことができる。プロセッサ101は、HDD103内のプログラムの少なくとも一部をRAM102にロードし、プログラムを実行する。またコンピュータ100に実行させるプログラムを、光ディスク14、メモリ装置15、メモリカード17などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、HDD103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
次に、コンピュータ100の機能について説明する。
図10は、第2の実施の形態におけるコンピュータが有する機能を示すブロック図である。コンピュータ100は、CAD(Computer Aided Design)システム110、回路モデル記憶部120、解析精度係数記憶部130、設計支援部140、簡略モデル記憶部150、および解析部160を有する。
CADシステム110は、ユーザからの入力に基づいて、CADによりLSIなどの回路を設計する。またCADシステム110は、LSI内のマクロを設計することもある。CADシステム110は、設計した回路に基づく回路モデルを生成し、回路モデル記憶部120に格納する。なお回路モデルの形式は、例えばSPICEフォーマットのテキストファイルが挙げられる。
回路モデル記憶部120は、LSIまたはLSI内のマクロなどの電子的な回路を示す回路モデルを記憶する。例えば、RAM102またはHDD103の記憶領域の一部が、回路モデル記憶部120として使用される。
解析精度係数記憶部130は、設計した回路のタイミング解析に求められる精度に応じた係数(解析精度係数)を記憶する。解析精度係数は、例えば高いタイミング解析精度が求められるほど、小さい値が設定される。第2の実施の形態では、解析精度係数は、0より大きく、1より小さい実数とする。このような解析精度係数に基づいて、オープンな抵抗の短絡の要否判定に用いる閾値が決定される。なお、解析精度係数は、ユーザの操作により、解析精度係数記憶部130に格納される。例えばRAM102またはHDD103の記憶領域の一部が、解析精度係数記憶部130として使用される。
設計支援部140は、回路モデル記憶部120に格納されている回路モデルを簡略化し、簡略化した回路モデル(簡略モデル)を生成する。そして設計支援部140は、生成した簡略モデルを、簡略モデル記憶部150に格納する。
簡略モデル記憶部150は、簡略モデルを記憶する。例えばRAM102またはHDD103の記憶領域の一部が、簡略モデル記憶部150として使用される。
解析部160は、簡略モデル記憶部150に記憶された簡略モデルに基づいて、回路のタイミング解析を行う。例えば解析部160には、タイミング解析に求められる解析精度がユーザから指定される。そして解析部160は、簡略モデルによるタイミング解析を、指定された精度で実行する。タイミング解析により、回路の動作タイミングのずれが判定され、許容されるずれを超えた動作があれば、解析部160からタイミングエラーが出力される。
次に、設計支援部140の機能を詳細に説明する。設計支援部140は、モデル読み込み部141、回路情報記憶部142、オープン抵抗削減部143、縮退部144、微小抵抗短絡部145、微小容量除去部146、およびモデル出力部147を有する。
モデル読み込み部141は、回路モデル記憶部120から回路モデルを読み込む。モデル読み込み部141は、読み込んだ回路モデルを回路情報記憶部142に格納する。
回路情報記憶部142は、簡略化対象の回路モデルを記憶する。例えばRAM102またはHDD103の記憶領域の一部が、回路情報記憶部142として使用される。
オープン抵抗削減部143は、回路モデル内のオープンな抵抗のうち、抵抗値が閾値以下の抵抗を短絡する。短絡により、その抵抗は、回路モデルから削除される。例えばオープン抵抗削減部143は、解析精度係数記憶部130から、解析精度係数を取得する。次にオープン抵抗削減部143は、取得した解析精度係数に基づいて、ネットリストごとの閾値を決定する。さらにオープン抵抗削減部143は、回路情報記憶部142に格納された回路モデルに含まれるオープンな抵抗のうち、抵抗値が、その抵抗が含まれるネットリストの閾値以下の抵抗を、短絡対象とする。そしてオープン抵抗削減部143は、短絡対象のオープンな抵抗を短絡させるように、回路情報記憶部142に格納された回路モデルを更新する。
縮退部144は、閾値以下の抵抗値を有するオープンな抵抗を短絡後の回路モデルを縮退させる。例えば縮退部144は、オープンな抵抗の短絡処理が完了すると、回路情報記憶部142内の回路モデルから、縮退可能な抵抗・容量素子などの素子を検索する。そして縮退部144は、該当する素子を縮退させるように、回路情報記憶部142内の回路モデルを更新する。
微小抵抗短絡部145は、所定の値以下の微小な抵抗値を有する抵抗を短絡後の回路モデルを短絡させる。微小抵抗短絡部145は、微小な抵抗値であれば、その抵抗値がオープンな抵抗かどうかに関係なく短絡させる。抵抗値が微小か否かの判定基準となる所定の値は、オープンな抵抗を短絡させるか否かの閾値より小さな値である。例えば微小抵抗短絡部145は、縮退処理が完了すると、回路情報記憶部142内の回路モデルから、抵抗値が微小な抵抗を検索する。そして微小抵抗短絡部145は、該当する素子を縮退させるように、回路情報記憶部142内の回路モデルを更新する。
微小容量除去部146は、所定の値以下の微小な容量値を有する容量素子を除去後の回路モデルを除去させる。例えば微小容量除去部146は、微小な抵抗の短絡処理が完了すると、回路情報記憶部142内の回路モデルから、容量値が微小な容量素子を検索する。そして微小容量除去部146は、該当する素子を縮退させるように、回路情報記憶部142内の回路モデルを更新する。
モデル出力部147は、簡略化された回路モデル(簡略モデル)を出力する。例えばモデル出力部147は、回路情報記憶部142から簡略モデルを取得し、取得した簡略モデルを簡略モデル記憶部150に格納する。
以上のような機能により、回路モデルの作成、回路モデルの簡略化、および簡略モデルによるタイミング解析が可能となる。なお、図10に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。またオープン抵抗削減部143は、図1に示した第1の実施の形態における決定手段2、検出手段3、削除手段4の機能を包含する要素の一例である。さらに回路情報記憶部142は、図1に示した第1の実施の形態における記憶手段1の一例である。
次に、CADシステム110により作成され、回路モデル記憶部120に格納される回路モデルについて詳細に説明する。
図11は、回路モデルのデータ構造の一例を示す図である。CADシステム110は、ユーザからの操作入力に基づいて、LSIなどの回路を設計する。設計内容には、素子間の配線パターンも含まれる。CADシステム110は、設計された回路は、回路モデルとしでデータ化される。またCADシステム110は、回路モデルに基づいて、回路図111を表示することができる。回路図111では、回路モデルに組み込まれた素子が記号で表されている。なお、回路モデルでは、素子間を接続する配線は、例えば抵抗に置き換えて表現されている。配線を置き換えた抵抗を含め、各素子の端子は、頂点の位置で表される。
CADシステム110は、例えば、回路図111に示された回路モデルのデータを含む回路情報ファイル121を作成する。回路情報ファイル121は、例えば回路図をテキスト形式で書き表したデータが書き込まれたファイルである。そしてCADシステム110は、作成した回路情報ファイル121を、回路モデル記憶部120に格納する。
回路情報ファイル121には、例えば、トランジスタ情報121a、抵抗情報121b、容量素子情報121cが含まれる。トランジスタ情報121aには、回路モデルに含まれるトランジスタの識別情報、そのトランジスタの端子が接続される頂点の識別情報、駆動する電源種別(vdd,vssなど)、トランジスタの種類などが含まれる。トランジスタの種類は、例えばMOSFET(Metal-Oxide-Semiconductor Field-Effect Transistor)のp型か、n型かなどの情報である。抵抗情報121bには、回路モデルに含まれる抵抗の識別情報、その抵抗の端子が接続される頂点の識別情報、抵抗値などが含まれる。容量素子情報121cには、回路モデルに含まれる容量素子の識別情報、その容量素子の端子が接続される頂点の識別情報、電気容量値などが含まれる。
なお、回路情報ファイル121には、図11には示した情報以外にも、各頂点の位置を示す情報など、回路モデルの再現に使用する各種情報が含まれる。
次に、解析精度係数記憶部130に格納される解析精度係数について説明する。解析精度係数は、タイミング解析に求められる精度に応じて決定される。例えば、解析精度が高いほど、解析精度係数の値を小さくする。
図12は、解析精度と解析精度係数との関係の一例を示す図である。図12では、横軸にタイミング解析精度、縦軸に解析精度係数をとり、タイミング解析の精度に応じた解析精度係数の例を示している。なおタイミング解析精度は、例えば動作タイミングの遅延時間(秒)の解析精度である。解析可能な遅延時間の精度が短いほど、解析精度が高い。そこで図12の例では、タイミング解析精度の値が小さいほど、解析精度係数は小さい値となる。
回路設計を行うユーザは、図12に示すようなタイミング解析精度と精度解析係数との関係を考慮して、解析精度係数記憶部130に、回路モデルの簡略化に使用する解析精度係数を格納する。
図13は、解析精度係数記憶部のデータ構造の一例を示す図である。解析精度係数記憶部130には、タイミング解析に求められる解析精度に応じた解析精度係数が設定されている。解析精度係数を設定することにより、ネットリストごとに、求められる解析精度に応じた適切なタイミング解析を実行することができる。
次に、設計支援部140による、解析精度係数を用いた回路モデルの簡略化について説明する。
設計支援部140は、まず、回路モデルをデータ化した回路情報ファイル121を回路モデル記憶部120から取得し、回路情報ファイル121を解釈して、簡略化に使用する回路情報を生成する。回路情報は、設計支援部140の内部データとして回路情報記憶部142に格納される。
図14は、回路情報記憶部内の回路情報のデータ構造の一例を示す図である。回路情報には、各素子のデータが含まれる。素子のデータとしては、例えばMOSリスト142a、抵抗リスト142b、容量リスト142cなどがある。MOSリスト142aは、回路モデルに含まれるトランジスタのリストである。MOSリスト142a内には、トランジスタの識別情報が設定されている。トランジスタの識別情報は、そのトランジスタの端子が接続される頂点の識別情報または電源種別に関連付けられている。抵抗リスト142b内は、回路モデルに含まれる抵抗のリストである。抵抗リスト142b内には、抵抗の識別情報が設定されている。抵抗の識別情報は、その抵抗の端子が接続されている頂点の識別情報または電源種別に関連付けられている。容量リスト142cは、回路モデルに含まれる容量素子のリストである。容量リスト142cには、容量素子の識別情報が設定されている。容量素子の識別情報は、その容量素子の端子が接続される頂点の識別情報または電源種別に関連付けられている。頂点リスト142dは、回路モデルに含まれる頂点と電源とのリストである。頂点リスト142dには、頂点の識別情報と電源の識別情報とが設定されている。頂点または電源の識別情報は、その頂点または電源に接続される素子の識別情報に関連付けられている。
なお、図14では、関連付けられた情報同士を矢印で接続している。関連付けられた情報同士は、相互参照可能である。ここで、相互参照可能とは、一方の情報に基づいて、関連付けられた他の情報を参照できることである。
回路情報に示された素子や頂点の識別情報のうち、トランジスタの識別情報を介さずに、直接または間接的に関連付けられた識別情報の集合が、1つのネットリスト142eを表している。
次に、設計支援部140における回路モデルの簡略化処理の手順について説明する。
図15は、回路モデル簡略化処理の手順の一例を示すフローチャートである。
[ステップS101]モデル読み込み部141は、回路モデル記憶部120から回路モデルを読み込む。例えば、モデル読み込み部141は、回路モデル記憶部120から回路情報ファイル121を読み出し、その回路情報ファイル121内のデータを取得する。モデル読み込み部141は、取得したデータに基づいて回路モデルを解釈し、内部データとして回路情報を生成する。そしてモデル読み込み部141は、生成した回路情報を、回路情報記憶部142に格納する。
[ステップS102]オープン抵抗削減部143は、回路モデルからオープンな抵抗を削減する。なお、この処理の詳細は後述する(図16参照)。オープン抵抗削減部143は、オープン抵抗の削減結果に従って、回路情報記憶部142内の回路情報を更新する。
[ステップS103]縮退部144は、回路モデルにおいて、縮退可能な抵抗または容量素子を縮退する。抵抗の縮退処理は、図3に示した通りである。容量素子の縮退も、抵抗と同様に行うことができる。例えば並列接続された複数の容量素子を、複数の容量素子の合成容量を有する1つの容量素子に置き換えることができる。また直列接続された複数の容量素子を、複数の容量素子の合成容量を有する1つの容量素子に置き換えることができる。縮退部144は、抵抗・容量素子の縮退結果に従って、回路情報記憶部142内の回路情報を更新する。
[ステップS104]微小抵抗短絡部145は、回路モデルに含まれる抵抗のうち、抵抗値が微小な抵抗を短絡する。抵抗値が微小な抵抗とは、例えば予め設定された所定の値よりも抵抗値が低い抵抗である。微小抵抗短絡部145は、微小抵抗の短絡結果に従って、回路情報記憶部142内の回路情報を更新する。
[ステップS105]微小容量除去部146は、回路モデルに含まれる容量素子のうち、電気容量が微小な容量素子を除去する。電気容量が微小な容量素子とは、例えば予め設定された所定の値よりも電気容量が低い容量素子である。微小容量除去部146は、微小容量の容量素子の除去結果に従って、回路情報記憶部142内の回路情報を更新する。
[ステップS106]モデル出力部147は、オープン抵抗の削減、抵抗・容量素子の縮退、微小抵抗の短絡、および微小容量の除去の各処理が終了後に回路情報記憶部142に格納されている回路情報を、簡略モデルとして出力する。例えばモデル出力部147は、回路情報を、簡略モデル記憶部150に格納する。
このようにして、回路モデルを簡略化した簡略モデルが生成される。次に、オープン抵抗削減処理の手順について説明する。
図16は、オープン抵抗削減処理の手順の一例を示すフローチャートである。
[ステップS111]オープン抵抗削減部143は、回路モデルを展開する。例えばオープン抵抗削減部143は、回路情報記憶部142から回路情報を取得し、RAM102内の領域に回路モデルを再現する。
[ステップS112]オープン抵抗削減部143は、回路モデルから、未選択のネットリストを1つ選択する。
[ステップS113]オープン抵抗削減部143は、選択したネットリスト内の抵抗のうち、オープンな抵抗をすべて短絡する。例えばオープン抵抗削減部143は、選択したネットリストから抵抗を1つずつ選択する。そしてオープン抵抗削減部143は、選択した抵抗の一方が開放されているか否かを判定する。例えば回路情報の抵抗リスト内の抵抗の識別情報に、頂点の識別情報が1つしか関連付けられていない場合、その該当する抵抗はオープンな抵抗と判定される。オープン抵抗削減部143は、選択した抵抗がオープンな抵抗であれば、回路モデル上で、その抵抗を短絡する。このように、ステップS113は、オープンな抵抗であれば、抵抗値に関係なく、その抵抗の短絡処理が行われる。
[ステップS114]オープン抵抗削減部143は、選択したネットリストの抵抗の縮退、および容量素子の縮退を行う。
[ステップS115]オープン抵抗削減部143は、オープンな抵抗の短絡、および抵抗・容量素子を行った後のネットリストに基づいて、抵抗の閾値を決定する。例えばオープン抵抗削減部143は、ネットリストの概算抵抗値を求める。そしてオープン抵抗削減部143は、概算抵抗値を基準に、タイミング解析の精度に基づいた解析精度係数を乗算し、乗算結果を閾値とする。概算抵抗値は、例えば、ネットリストのオープンな抵抗のすべてを短絡および抵抗・容量素子の縮退を行った後にネットリスト内に残存する抵抗の、最大抵抗値である。
図17は、概算抵抗値の第1の決定例を示す図である。図17に示すオリジナルのネットリスト81は、2箇所でトランジスタに接続されている(図中、トランジスタに接することを示す黒丸の頂点が2つある)。
閾値を決定する場合、まず、オリジナルのネットリスト81に含まれる抵抗R51〜R55のうち、オープンな抵抗R54,R55が、抵抗値の大小に関係なく、すべて短絡される。次に、オープンな抵抗短絡後のネットリスト82に対して抵抗の縮退処理が行われる。図17の例では、ネットリスト82に含まれる3つの抵抗R51〜R53は直列に接続されている。そこで、縮退処理により、3つの抵抗R51〜R53が、1つの抵抗R56に置き換えられる。その結果、縮退後のネットリスト83には、1つの抵抗R56のみが存在する。
このように、ネットリスト81内の抵抗R51〜R55が、1つの抵抗R56に纏められた場合、R56の抵抗値がネットリスト81の概算抵抗値となる。なおR56の抵抗値は、R51〜R53の合成抵抗値である。
また抵抗値を縮退させても複数の抵抗が残った場合、例えば、残存した各抵抗の抵抗値うち、最も大きな抵抗値(縮退後の抵抗であれば合成抵抗値)が、概略抵抗値となる。
図18は、概算抵抗値の第2の決定例を示す図である。図18に示すオリジナルのネットリスト84は、3箇所でトランジスタに接続されている(図中、トランジスタに接することを示す黒丸の頂点が3つある)。
ネットリスト84に対してオープンな抵抗の短絡処理が行われると、ネットリスト81に含まれる抵抗R61〜R66のうち、オープンな抵抗R65,R66が短絡される。次に、オープンな抵抗短絡後のネットリスト85に対して抵抗の縮退処理が行われる。図18の例では、ネットリスト85に含まれる2つの抵抗R62〜R63は直列に接続されている。そこで、縮退処理により、2つの抵抗R62〜R63が、1つの抵抗R67に置き換えられる。その結果、縮退後のネットリスト86には、3つの抵抗R61,R64,R67が残される。ネットリスト86は、これ以上縮退することができない。この場合、3つの抵抗R61,R64,R67の抵抗値が比較され、最も高い抵抗値が、ネットリスト84の概算抵抗値となる。
なお抵抗が1つに纏められなかった場合の概略抵抗値の決定方法は、他にも考えられる。例えば、ネットリストが、3つ以上のトランジスタと接続される場合、ネットリストには、トランジスタと接続される3つ以上の頂点が含まれる。この場合、3つ以上の頂点のうちの2つの頂点の対ごとに、頂点間の抵抗値を算出できる。そこで、頂点対ごとの頂点間の抵抗値のうち、最大となる抵抗値を、そのネットリストの概算抵抗値としてもよい。
概算抵抗値が求められると、オープン抵抗削減部143は、選択したネットリストに適用する、オープンな抵抗を短絡するか否かの判断の閾値を算出する。例えばオープン抵抗削減部143は、ネットリストの概算抵抗値に対して、タイミング解析で要求される精度に基づいて決定された、そのネットリストの解析精度係数を乗算する。そして、オープン抵抗削減部143は、乗算結果を閾値とする。式で表すと、以下のような式となる。
閾値=ネットリストの概算抵抗値×K
ここでK(0<K<1)は、ネットリストに適用される解析精度係数である。
図19は、閾値の算出例を示す図である。図19では、概算抵抗値87と閾値88とを、抵抗の大きさに模式化している。解析精度係数は1未満の値であるため、概算抵抗値87に解析精度係数を乗算することで得られる閾値88は、概算抵抗値87よりも小さな値となる。そして解析精度係数が小さいほど閾値88も小さくなる。閾値88が小さくなれば、オープンな抵抗のうち、短絡対象となる抵抗が少なくなり、高精度のタイミング解析が可能となる。一方、解析精度係数が大きいほど閾値88も大きくなり、多くの抵抗を短絡させ、タイミング解析の処理の効率化を図ることができる。
このようにして、選択したネットリストについても、オープン抵抗の短絡の要否判定の閾値が決定される。閾値が決定すると、オープン抵抗削減部143は、決定した閾値を、選択したネットリストに対応付けて、RAM102などの記憶媒体に格納する。
以下、図16の説明に戻る。
[ステップS116]オープン抵抗削減部143は、未選択のネットリストがあるか否かを判断する。未選択のネットリストがある場合、処理がステップS112に進められる。またすべてのネットリストが選択済みであれば、オープン抵抗削減部143は、すべてのネットリストを未選択の状態に戻す。その後、処理がステップS117に進められる。
[ステップS117]オープン抵抗削減部143は、回路モデルを再展開する。例えばオープン抵抗削減部143は、ステップS111で展開した回路モデルをRAM102から削除する。そしてオープン抵抗削減部143は、回路情報記憶部142から回路情報を読み込み、RAM102に、回路モデルを再度展開する。
[ステップS118]オープン抵抗削減部143は、未選択のネットリストのうちの1つを選択する。
[ステップS119]オープン抵抗削減部143は、選択したネットリスト内の抵抗を1つ選択する。
[ステップS120]オープン抵抗削減部143は、選択した抵抗の抵抗値と、選択したネットリストに適用する閾値とを比較する。そしてオープン抵抗削減部143は、抵抗の抵抗値が閾値以下か否かを判断する。抵抗値が閾値以下であれば、処理がステップS121に進められる。また抵抗値が閾値を超えていれば、処理がステップS123に進められる。
[ステップS121]オープン抵抗削減部143は、選択した抵抗の抵抗値が閾値以下であれば、その抵抗がオープンな抵抗か否かを判断する。オープンな抵抗であれば、処理がステップS122に進められる。オープンな抵抗でなければ、処理がステップS123に進められる。
[ステップS122]オープン抵抗削減部143は、選択した抵抗を短絡させる。
[ステップS123]オープン抵抗削減部143は、選択しているネットリスト内に未選択の抵抗があるか否かを判断する。未選択の抵抗があれば、処理がステップS119に進められる。未選択の抵抗がなければ、処理がステップS124に進められる。
ステップS119〜S123により、選択したネットリスト内の抵抗のうち、抵抗値が閾値以下のオープンな抵抗の短絡が完了する。
図20は、ネットリスト内のオープンな抵抗の削減例を示す図である。図20には、図18に示したネットリスト84についてオープンな抵抗を削減した場合の例が示されている。図18に示した用に、閾値算出のために抵抗の短絡などの処理が行われたネットリスト84は、回路情報記憶部142内のオリジナルの回路情報から、再度、RAM102に展開される。そして、短絡条件に合致する抵抗が短絡される。短絡条件とは、抵抗値が閾値以下であること、およびオープンな抵抗であることである。
ネットリスト84では、抵抗値が閾値以下なのは、抵抗R62,R64,R65である。これらの抵抗R62,R64,R65のうち、オープンな抵抗は、抵抗R65だけである。その結果、抵抗R65が短絡され、ネットリスト84から削除される。そして、短絡後のネットリスト89が生成される。
以下、図16の説明に戻る。
[ステップS124]オープン抵抗削減部143は、選択したネットリスト内のすべての抵抗について短絡の要否判定が完了した場合、未選択のネットリストがあるか否かを判断する。未選択のネットリストがあれば、処理がステップS118に進められる。未選択のネットリストがなければ、処理がステップS125に進められる。
[ステップS125]オープン抵抗削減部143は、すべてのネットリストについて、閾値以下の抵抗値のオープンな抵抗の短絡が完了した場合、展開していた回路モデルの内容を、回路情報記憶部142内の回路情報に反映する。
このようにして、各ネットリストからオープンな抵抗が削減される。その後、回路モデル全体に対して、抵抗や容量素子の縮退や微小抵抗の短絡などが行われる。
図21は、抵抗の縮退処理の一例を示す図である。図21に示すように、抵抗がオームの法則に従って縮退される。例えば直列接続の抵抗R71,R72は、それらの合成抵抗値を有する抵抗R75に縮退される。同様に、直列接続の抵抗R73,R74は、それらの合成抵抗値を有する抵抗R76に縮退される。図21の例では、直列抵抗の縮退によって生成された抵抗R75,R76は、並列接続となる。そこで並列抵抗の縮退処理により、抵抗R75,R76は、それらの合成抵抗を有する抵抗R77に縮退される。
図22は、微小抵抗の短絡処理の一例を示す図である。図22の例では、3つの抵抗R81〜R83のうち、R82のみが、所定値以下の抵抗値を有する微小抵抗であるものとする。この場合、抵抗R82が短絡される。なお、抵抗R82はオープンな抵抗ではなく、抵抗R82の端子が接続された2つの頂点91,92のうち、一方の頂点91はトランジスタに接続されている。抵抗R82を短絡すると、頂点92があった位置に、頂点91が移動することとなる。
なお図22には微小抵抗の短絡処理を示したが、微小容量素子の短絡処理も同様である。以上のような回路モデルの簡略化処理が完了すると、簡略後の回路モデルに従って回路情報記憶部142内の回路情報が更新される。そして、その回路情報が、簡略モデル記憶部150に出力される。例えば、回路情報ファイル121(図11参照)と同じデータ形式のファイルが、簡略モデル記憶部150に格納される。
このように、第2の実施の形態では、ネットリストの短絡要否判定の閾値が計算され、その閾値以下の抵抗値のオープンな抵抗が短絡される。その結果、タイミング解析に求められる解析精度に応じた、適切な回路モデルの簡略化が行われる。すなわちオープンな抵抗の短絡により、縮退率を向上させ、タイミング解析時間を短縮させながらも、タイミング解析上影響の大きいオープンな抵抗は回路モデルに残される。これにより、タイミング解析の精度低下が抑止される。
また第2の実施の形態では、オープンな回路の短絡の要否判定に用いる閾値を、解析精度係数と回路の概算抵抗値とから算出している。これにより、ユーザは、回路内の抵抗値の大小を意識せずに、解析精度係数をするだけで、適切な閾値を設定することができる。そのため、ユーザの負担が軽減される。
特に、第2の実施の形態では、ネットリストごとに閾値をすることで、ネットリストごとに解析精度が異なる場合でも、各ネットリストに適切な閾値の設定が可能となっている。このようなネットリストごとの閾値の設定を個別にユーザが行ったのでは、ユーザの負担が過大となる。しかし、第2の実施の形態では、解析精度係数を指令するだけで、各ネットリストに適切な閾値が設定できるため、ユーザの負担は非常に少なくてすむ。
なお第2の実施の形態では、タイミング解析を行う場合の回路モデルの簡略化について説明したが、タイミング解析以外の解析を行う場合でも、同様の回路モデルの簡略化を行うことができる。タイミング解析以外の解析を行う場合も、その解析の精度に応じた解析精度係数を設定することで、適切な回路モデルの簡略化が可能となる。
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
1 記憶手段
1a 回路モデル
2 決定手段
3 検出手段
4 削除手段
CP 設計支援装置

Claims (8)

  1. 回路を表す回路モデルに含まれる抵抗から、1つの端子以外の端子が開放されており、かつ抵抗値が閾値以下の抵抗を検出する検出手段と、
    前記回路モデルから検出された該抵抗を削除する削除手段と、
    を有する設計支援装置。
  2. 前記回路モデルを用いた前記回路の動作シミュレーションにおける解析精度に基づいて、閾値を決定する決定手段をさらに有することを特徴とする請求項1記載の設計支援装置。
  3. 前記決定手段は、解析精度が高いほど、閾値を低くすることを特徴とする請求項2記載の設計支援装置。
  4. 前記決定手段は、前記回路モデルに含まれる1または複数の部分回路ごとに、部分回路の回路構成に応じた閾値を決定し、
    前記検出手段は、1つの端子以外の端子が開放されている抵抗であり、かつ該抵抗を含む部分回路の閾値以下の抵抗値を有する抵抗を検出することを特徴とする請求項2または3のいずれかに記載の設計支援装置。
  5. 前記回路の動作シミュレーションにおいて求められる解析精度に応じた係数が定義されており、
    前記決定手段は、部分回路内の抵抗値に基づいて算出した値に前記係数を乗算し、乗算結果を該部分回路の閾値とすることを特徴とする請求項4記載の設計支援装置。
  6. 前記決定手段は、部分回路について、1つの端子以外の端子が開放されているすべての抵抗を削除した状態で、並列または直列接続された複数の抵抗の合成抵抗値と、並列または直列接続されていない抵抗の抵抗値とを比較し、比較された合成抵抗値および抵抗値のうちの最大の値に、前記係数を乗算し、乗算結果を該部分回路の閾値とすることを特徴とする請求項5記載の設計支援装置。
  7. コンピュータが、
    回路を表す回路モデルに含まれる抵抗から、1つの端子以外の端子が開放されており、かつ抵抗値が閾値以下の抵抗を検出し、
    前記回路モデルから検出された該抵抗を削除する、
    設計支援方法。
  8. コンピュータに、
    回路を表す回路モデルに含まれる抵抗から、1つの端子以外の端子が開放されており、かつ抵抗値が閾値以下の抵抗を検出し、
    前記回路モデルから検出された該抵抗を削除する、
    処理を実行させる設計支援プログラム。
JP2013054773A 2013-03-18 2013-03-18 設計支援装置、設計支援プログラム、および設計支援方法 Active JP6036429B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013054773A JP6036429B2 (ja) 2013-03-18 2013-03-18 設計支援装置、設計支援プログラム、および設計支援方法
US14/101,973 US8904328B2 (en) 2013-03-18 2013-12-10 Support apparatus and design support method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013054773A JP6036429B2 (ja) 2013-03-18 2013-03-18 設計支援装置、設計支援プログラム、および設計支援方法

Publications (2)

Publication Number Publication Date
JP2014182430A JP2014182430A (ja) 2014-09-29
JP6036429B2 true JP6036429B2 (ja) 2016-11-30

Family

ID=51534602

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013054773A Active JP6036429B2 (ja) 2013-03-18 2013-03-18 設計支援装置、設計支援プログラム、および設計支援方法

Country Status (2)

Country Link
US (1) US8904328B2 (ja)
JP (1) JP6036429B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101943082B1 (ko) * 2014-01-23 2019-04-18 한국전자통신연구원 무선 전력 송신 장치, 무선 전력 수신 장치, 및 무선 전력 전송 시스템
US10235485B1 (en) * 2016-09-27 2019-03-19 Altera Corporation Partial reconfiguration debugging using hybrid models
JP2018120259A (ja) * 2017-01-23 2018-08-02 富士通株式会社 回路遅延解析装置、回路遅延解析方法、および回路遅延解析プログラム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2960442B2 (ja) * 1989-09-14 1999-10-06 株式会社日立製作所 回路抽出方法
JPH09325982A (ja) * 1996-06-06 1997-12-16 Mitsubishi Electric Corp 回路シミュレーション装置
US20060117274A1 (en) * 1998-08-31 2006-06-01 Tseng Ping-Sheng Behavior processor system and method
JP2001101245A (ja) 1999-09-28 2001-04-13 Nec Ic Microcomput Syst Ltd 設計支援装置及び設計支援方法
US6671862B1 (en) * 2002-08-07 2003-12-30 Hewlett-Packard Development Company, L.P. Method and apparatus for simplifying a circuit model
JP2006031297A (ja) * 2004-07-15 2006-02-02 Matsushita Electric Ind Co Ltd 半導体集積回路における特性検証用ネットリストの生成方法
JP4313288B2 (ja) * 2004-11-19 2009-08-12 富士通株式会社 遅延特性評価のための回路シミュレーション方法、回路シミュレーションプログラム及び回路シミュレーション装置
US7886237B2 (en) * 2006-05-19 2011-02-08 International Business Machines Corporation Method of generating a functional design structure
US8351168B2 (en) * 2010-04-27 2013-01-08 Freescale Semiconductor, Inc. Open circuit detector and method therefore
CN102798787B (zh) * 2011-05-24 2014-12-10 宸鸿光电科技股份有限公司 电子设备及其断路检测系统与断路检测方法

Also Published As

Publication number Publication date
US8904328B2 (en) 2014-12-02
JP2014182430A (ja) 2014-09-29
US20140282333A1 (en) 2014-09-18

Similar Documents

Publication Publication Date Title
US8799837B2 (en) Optimizing a netlist circuit representation by leveraging binary decision diagrams to perform rewriting
JP5935544B2 (ja) 論理セルのアナログモデルを生成する方法、製品及びコンピュータシステム
JP2004501438A (ja) 集積回路検証用の高精度タイミングモデル
JP4946573B2 (ja) デカップリングセル配置方法及びデカップリングセル配置装置
CN107203676B (zh) 用以提升集成电路设计的时序性能的方法及数据处理系统
US7856608B2 (en) Method and apparatus for generating current source noise model for creating semiconductor device model used in power supply noise analysis
JP6036429B2 (ja) 設計支援装置、設計支援プログラム、および設計支援方法
US9721059B1 (en) Post-layout thermal-aware integrated circuit performance modeling
TW201738789A (zh) 電腦可讀存儲介質及積體電路的電壓降和電遷移的分析方法
JP5699768B2 (ja) 回路シミュレーション方法および回路シミュレーション装置
US20170140090A1 (en) Analysis of coupled noise for integrated circuit design
US7367005B2 (en) Method and apparatus for designing a layout, and computer product
JP4706738B2 (ja) 遅延解析装置、遅延解析方法、及びプログラム
JP5785725B2 (ja) 電力見積装置、電力見積方法及びプログラム
US20170371983A1 (en) Optimizing the layout of circuits based on multiple design constraints
US8818784B1 (en) Hardware description language (HDL) incorporating statistically derived data and related methods
US8849440B2 (en) Manufacturing control based on a final design structure incorporating both layout and client-specific manufacturing information
US8713503B2 (en) Assisting apparatus, method, and program for checking crosstalk noise between hierarchized modules in a semiconductor circuit
US10885248B1 (en) Method for modeling glitches during circuit simulation
US10552570B2 (en) Pessimism reduction in hierarchical blockage aggressors using estimated resistor and capacitor values
JP4881769B2 (ja) 半導体集積回路設計支援装置、半導体集積回路設計支援方法、半導体集積回路設計支援プログラム
US9563736B2 (en) Placement aware functional engineering change order extraction
US20160179634A1 (en) Design structure for reducing power consumption for memory device
US8612913B1 (en) Automated approach to planning critical signals and busses
JP2013524302A (ja) 精度を調節可能なマクロモデル電力解析のための方法及び装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151007

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160908

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20161004

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161017

R150 Certificate of patent or registration of utility model

Ref document number: 6036429

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150