(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-14
(45)【発行日】2024-08-22
(54)【発明の名称】集積回路設計を最適化するための装置及び方法
(51)【国際特許分類】
G06F 30/38 20200101AFI20240815BHJP
G06F 30/3308 20200101ALI20240815BHJP
G06F 30/337 20200101ALI20240815BHJP
【FI】
G06F30/38
G06F30/3308
G06F30/337
【外国語出願】
(21)【出願番号】P 2023016488
(22)【出願日】2023-02-07
【審査請求日】2023-02-07
(32)【優先日】2022-03-02
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2022-07-06
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】500262038
【氏名又は名称】台湾積體電路製造股▲ふん▼有限公司
【氏名又は名称原語表記】Taiwan Semiconductor Manufacturing Company,Ltd.
【住所又は居所原語表記】No.8, Li-Hsin Rd.6, Hsinchu Science Park, Hsinchu, TAIWAN
(74)【代理人】
【識別番号】100147485
【氏名又は名称】杉村 憲司
(74)【代理人】
【識別番号】230118913
【氏名又は名称】杉村 光嗣
(74)【代理人】
【識別番号】100164448
【氏名又は名称】山口 雄輔
(72)【発明者】
【氏名】呂 宗哲
(72)【発明者】
【氏名】傳 敬銘
(72)【発明者】
【氏名】張 智賢
【審査官】松浦 功
(56)【参考文献】
【文献】特開平04-074272(JP,A)
【文献】国際公開第2012/169000(WO,A1)
【文献】特開2000-181940(JP,A)
【文献】特開2010-092434(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 30/30 -30/398
(57)【特許請求の範囲】
【請求項1】
コンピュータが、
集積回路(IC)の回路設計を受け取ることと、
前記ICの第1のサブシステムの第1の回路設計と、前記ICの第2のサブシステムの第2の回路設計とを特定することであって、前記第1のサブシステムが複数のデジタル変数信号上で動作し、前記第2のサブシステムが
複数のアナログ変
数信号上で動作することと、
前記第1の回路設計に基づき第1のハードウェア記述言語(HDL)ネットリストを合成することと、
前記第2の回路設計に基づき第2のHDLネットリストを合成すること
であって、それぞれが前記複数のアナログ変数信号のうちの1つ以上の対応するアナログ変数信号の関数である複数の方程式に基づき前記第2のサブシステムを記述することを含むことと、
前記第1のHDLネットリストと前記第2のHDLネットリストの両方を入力として単一のHDLベースのシミュレータを用いて、前記ICの前記回路設計の動作を取得すること
であって、各前記方程式へ入力される複数の時間変数のそれぞれをインクリメントすることにより、前記複数のアナログ変数信号の現在の状態をそれぞれ更新することを含むことと
を含む、
回路設計を最適化するための方法。
【請求項2】
前記第2のHDLネットリストを合成することが、
微分方程式を含む前記複数の方程式のうちの第1の方程式を特定することと、
前記第1の方程式の各微分項を対応する数値微分項に変換することと
を更に含む、
請求項
1に記載の方法。
【請求項3】
前記ICの前記回路設計の動作を取得することが、
前記第1のHDLネットリストへ入力される、クロック信号又は入力信号のうちの少なくとも1つに基づき、前記複数のデジタル変数信号の現在の状態をそれぞれ更新することと
を更に含む、
請求項1に記載の方法。
【請求項4】
コンピュータにより実行されたときに前記コンピュータに集積回路(IC)設計を最適化するための方法を実行させるIC設計ツールのための命令を格納する、非一時的なコンピュータ読み取り可能記憶媒体であって、
前記方法が、
アナログ回路をモデル化するため複数の第1の状態変数を特定することと、
前記アナログ回路の作動を制御する複数の第1の状態変数で複数の積分/微分ベースの方程式を構築することと、
前記複数の積分/微分ベースの方程式を、基本的に加算、減算、乗算、及び除算演算子で構成されたそれぞれの方程式に変換することと、
前記アナログ回路の動作を取得するため、変換された前記方程式に基づき、第1のハードウェア記述言語(HDL)ベースのシミュレーションを実行すること
であって、変換された前記方程式に入力される複数の時間変数のそれぞれをインクリメントすることにより、前記複数の第1の状態変数を更新することを含むことと
を含む、
非一時的なコンピュータ読み取り可能記憶媒体。
【請求項5】
前記方法が、
デジタル回路をモデル化するため複数の第2の状態変数を特定することと、
前記デジタル回路の動作を取得するため、第2のHDLベースのシミュレーションを実行することと
を更に含む、
請求項
4に記載の非一時的なコンピュータ読み取り可能記憶媒体。
【請求項6】
前記方法が、
変換された前記方程式に基づき前記アナログ回路のためのHDLネットリストを構築することであって、前記HDLネットリストが前記第1のHDLベースのシミュレーションのための入力として用いられること
を更に含む、
請求項
4に記載の非一時的なコンピュータ読み取り可能記憶媒体。
【請求項7】
1つ以上のプロセッサを含む、集積回路(IC)設計を最適化するための装置であって、
前記1つ以上のプロセッサが、
デジタルサブシステムとアナログサブシステムとを含む前記ICのための回路設計を受け取り、
前記デジタルサブシステムのための第1のハードウェア記述言語(HDL)ネットリストを合成し、
それぞれが複数のアナログ変数信号のうちの1つ以上の対応するアナログ変数信号の関数である複数の方程式に基づき前記アナログサブシステムを記述することを含む、加算、減算、乗算、及び除算演算子のみに基づき前記アナログサブシステムのための第2のHDLネットリストを合成し、
各前記方程式へ入力される複数の時間変数のそれぞれをインクリメントすることにより、前記複数のアナログ変数信号の現在の状態をそれぞれ更新することを含む、前記第1のHDLネットリストと前記第2のHDLネットリストの両方を入力として単一のHDLベースのシミュレータを用いて、前記ICの前記回路設計の動作を取得する
よう構成された、
装置。
【請求項8】
前記1つ以上のプロセッサが、
微分方程式を含む前記複数の方程式のうちの第1の方程式を特定し、
前記第1の方程式の各微分項を対応する数値微分項に変換する
よう更に構成された、
請求項
7に記載の装置。
【請求項9】
前記1つ以上のプロセッサが、
それぞれが複数のアナログ変数信号のうちの1つ以上の対応するアナログ変数信号の関数である複数の方程式に基づき前記アナログサブシステム
を記述し、
積分方程式を含む前記複数の方程式のうちの第2の方程式を特定し、
前記第2の方程式の各積分項を対応する数値積分項に変換する
よう更に構成された、
請求項
7に記載の装置。
【発明の詳細な説明】
【背景技術】
【0001】
集積回路チップの設計は、通常、そのチップが製造されて市販されるまで何年もかかる。今日のチップは、設計における挑戦であり得る、共に相互作用するアナログコンポーネントとデジタルコンポーネントの両方を含むシステムオンチップ(SOC)を度々含んでいる。設計プロセスの1つの重要部分は、様々な種類のシミュレータを用いたチップの動作のシミュレーションである。シミュレーションは、チップがハードウェアに製造される前の、設計の概念実証の検証を提供可能である。
【発明の概要】
【発明が解決しようとする課題】
【0002】
回路シミュレーションには度々非常に長い時間を要するため、協調シミュレーション方法は低い効率や長いシミュレーション時間といったいくつかの欠点を有する。また、SPICEシミュレーション及びHDLシミュレーションの両方の実行には別途のライセンスが必要であり、協調シミュレーション以上に効率とシミュレーションタイミングに大きな犠牲を被る。
【課題を解決するための手段】
【0003】
本発明は、いくつかの実施形態において、回路設計を最適化するための方法を提供する。方法は、集積回路の回路設計を受け取ることと、ICの第1のサブシステムの第1の回路設計と、ICの第2のサブシステムの第2の回路設計とを特定することを含む。第1のサブシステムは複数のデジタル変数信号上で動作し、第2のサブシステムは複数のアナログ変数信号上で動作する。方法は、第1の回路設計に基づき第1のHDLネットリストを合成することと、第2の回路設計に基づき第2のHDLネットリストを合成することと、第1のHDLネットリストと第2のHDLネットリストの両方を入力として単一のHDLベースのシミュレータを用いてICの回路設計の動作を取得することとを更に含む。
【0004】
本発明は、いくつかの実施形態において、コンピュータにより実行されたときにコンピュータにIC設計を最適化させるための方法を実行させるIC設計ツールのための命令を格納する、非一時的なコンピュータ読み取り可能記憶媒体を提供する。方法は、集積回路の回路設計を受け取ることと、ICの第1のサブシステムの第1の回路設計と、ICの第2のサブシステムの第2の回路設計とを特定することを含む。第1のサブシステムは複数のデジタル変数信号上で動作し、第2のサブシステムは複数のアナログ変数信号上で動作する。方法は、第1の回路設計に基づき第1のHDLネットリストを合成することと、第2の回路設計に基づき第2のHDLネットリストを合成することと、第1のHDLネットリストと第2のHDLネットリストの両方を入力として単一のHDLベースのシミュレータを用いてICの回路設計の動作を取得することとを更に含む。
【0005】
本発明は、いくつかの実施形態において、IC設計を最適化するための装置を提供する。装置は、デジタルサブシステムとアナログサブシステムとを含むICの回路設計を受け取り、デジタルサブシステムのための第1のHDLネットリストを合成し、加算、減算、乗算、及び除算演算子のみに基づきアナログサブシステムのための第2のHDLネットリストを合成し、第1のHDLネットリストと第2のHDLネットリストの両方を入力として単一のHDLベースのシミュレータを用いてICの回路設計の動作を取得するよう構成された、1つ以上のプロセッサを含む。
【発明の効果】
【0006】
本発明の様々な実施形態は、混合モードシステム検証のための短いシミュレーション時間や、HDLベースのシミュレータのみの使用を要するためライセンス費用が削減される効率的なライセンス使用といった利点を提供する。他の利点には、テストベンチセットアップ/準備にほとんど努力を要さないことと、迅速な概念検証のためにユーザが開発の早期段階で高レベルモデリングをシミュレーションできることとを含む。
【図面の簡単な説明】
【0007】
本発明の態様は、添付図面と共に以下の詳細な説明を読むことで最もよく理解される。本業界の標準的な慣行に従い、様々な機能は縮尺どおりに描かれていないことに注意されたい。実際、添付図面に示される様々な機能の寸法は、説明を明確にするために任意に拡大又は縮小されている可能性がある。
【
図1】
図1は、いくつかの実施形態による、例示的な情報処理システム(IHS)のブロック図を表す。
【
図2】
図2は、いくつかの実施形態による、混合モードシステム設計をシミュレーションするアーキテクチャの例示的なブロック図を表す。
【
図3】
図3は、いくつかの実施形態による、回路設計を最適化するための例示的な方法のフロー図を表す。
【
図4】
図4は、いくつかの実施形態による、混合モードシステムをシミュレーションする追加的な動作を含む
図3のフロー図を表す。
【
図5】
図5は、いくつかの実施形態による、VCOを含むアナログ回路の例示的なブロック図を表す。
【
図6】
図6は、いくつかの実施形態による、アナログ回路の入力及び出力の波形を表す。
【
図7】
図7は、いくつかの実施形態による、RLC回路を含むアナログ回路の例示的なブロック図を表す。
【
図8】
図8は、いくつかの実施形態による、
図7のアナログ回路の様々な信号の例示的なシミュレーションを表す。
【
図9】
図9は、いくつかの実施形態による、HDLモデルのシミュレーションの精度を示す波形を表す。
【
図10】
図10は、いくつかの実施形態による、電力インピーダンス測定(PIM)回路を含む例示的な回路1000のブロック図を表す。
【
図11】
図11は、いくつかの実施形態による、
図10の例示的な回路の協調シミュレーションとHDLシミュレーションの実行の比較を示す表を表す。
【
図12】
図12は、いくつかの実施形態による、シミュレーションの従来の方法と開示される技術とを比較した表を表す。
【
図13】
図13は、いくつかの実施形態による、回路設計を最適化するためのもう1つの例示的な方法のフロー図を表す。
【
図14】
図14は、いくつかの実施形態による、回路設計を最適化するための更なる例示的な方法のフロー図を表す。
【発明を実施するための形態】
【0008】
以下の実施形態は、本発明の異なる特徴を実装するための多くの異なる実施形態又は実施例を提供する。本発明を単純化するため、要素及び配置の特定の実施例を以下に説明する。当然ながら、これらは例示であり、限定することを意図していない。例えば、以下の説明における、第2の特徴の上方又は第2の特徴上の第1の特徴の構成は、第1及び第2の特徴が直接的に接触して形成される実施形態を含んでよく、また第1及び第2の特徴が直接的に接触しないように、第1と第2の特徴の間に追加的な特徴が形成された実施形態であってもよい。加えて、本発明は様々な実施例において参照符号及び/又は文字を繰り返す可能性がある。この繰り返しは単純化及び明確化の目的のためであり、それ自体は言及される様々な実施形態及び/又は構成の間の関係性を規定するものではない。
【0009】
更に、「下」、「下方」、「低い」、「上方」、「上部」、「頂部」、「底部」等といった空間的相対語は、図に表される1つの要素又は特徴の別の要素又は特徴に対する関係性を説明するための記述を容易にするために用いられ得る。空間的相対語は、図示された方向に加え、使用中又は操作中の装置の異なる方向を包含することを意図している。装置は他に方向付けられてもよく(90度又は他の方向に回転)、ここで使用される空間的相対記述語は同様にそのように解釈されてよい。
【0010】
一般的に、集積回路(IC)縮小化と処理能力向上のため、システムオンチップ(SOC)の需要が近年増加している。そのようなSOCシステムは、通常、互いに通信するアナログサブシステムとデジタルサブシステムとの両方を含む混合モードサブシステムブロックを含む。これら混合モードブロックをシミュレーションで検証するため、従来の方法では協調シミュレーション又はアナログシミュレーションを含む。協調シミュレーションは、トランジスタレベル(例えば、Simulation Program with Integrated Circuit Emphasis(SPICE)シミュレーション)で記述されたアナログ部分と、Verilog、VHDL、及び/又はSystemVerilogといったハードウェア記述言語(HDL)にて記述されたデジタル部分とを用いて、別々のアナログブロックとデジタルブロックをシステムモデリング及び/又は設計することを含む。この協調シミュレーション方法は、SPICEシミュレーションが度々非常に長い時間を要し、SPICEシミュレーションとHDLシミュレーションの両方を実行するには別途のライセンスを必要とし、そして両コンポーネントをシミュレーションするために別々のテストベンチがセットアップされるため、低い効率や長いシミュレーション時間といったいくつかの欠点を有する。アナログシミュレータのみの使用では、アナログ部分とデジタル部分の両方をトランジスタレベルネットリストに記述することを含む。このアナログシミュレーションが高精度であり別途のライセンスの必要を省く結果となるとはいえ、効率とシミュレーションタイミングは協調シミュレーション以上に大きな犠牲を被る。更には、アナログシミュレーションはデジタル部分のためのゲートレベルHDLネットリストを要し、これは余計な努力及び設計時間を要し、高レベル動作モデリングを実行することができない。
【0011】
本発明の実施形態は、HDLレベルネットリスト及びHDLベースのシミュレーションのみを用いた混合モードシステムシミュレーション及び/又は検証のための、新規のシミュレーション方法及びシステムを含む。アナログ動作モデリングは、数値積分又はオイラー法を反復形式において用いる、HDLレベルにおける実装のための積分及び微分ベースの方程式に基づくことができる。実施形態は、混合モードシステム検証のための短いシミュレーション時間や、HDLベースのシミュレータのみの使用を要するためライセンス費用が削減される効率的なライセンス使用といった利点を提供する。他の利点には、HDLシミュレータのセットアップを要するのみであるためテストバッチセットアップ/準備にほとんど努力を要さないこと、迅速な概念検証のためユーザが開発の早期段階で高レベルモデリングをシミュレーションできることを含む。
【0012】
図1は、いくつかの実施形態による、IHS100のブロック図を表す。IHS100は、回路設計をシミュレーションするために使用可能である。IHS100は、ICを設計するため、ここで説明される任意の又は全てのプロセスを実装するために用いられるコンピュータプラットフォームであってよい。IHS100は、デスクトップコンピュータ、ワークステーション、ラップトップコンピュータ、又は特定用途向けにカスタマイズされた専用ユニットといった処理部110を含んでよい。IHS100は、ディスプレイ114と、マウス、キーボード、又はプリンタといった1つ以上の入/出力(I/O)コンポーネント112とが備えられてよい。処理部110は、バス130に接続された中央処理装置(CPU)120、メモリ122、大容量記憶装置124、ビデオアダプタ126、I/Oインターフェイス128を含んでよい。
【0013】
バス130は、メモリバス又はメモリコントローラ、周辺バス、又はビデオバスを含む、1つ以上の任意のタイプのいくつかのバスアーキテクチャであってよい。CPU120は任意のタイプの電子データプロセッサを含んでよく、メモリ122は、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)、又は読み出し専用メモリ(ROM)といった任意のタイプのシステムメモリを含んでよい。
【0014】
大容量記憶装置124は、データ、プログラム、及び他の情報を格納し、データ、プログラム、及び他の情報をバス130を介してアクセス可能とするよう構成された任意のタイプの記憶装置であってよい。大容量記憶装置124は、例えば、ハードディスクドライブ、磁気ディスクドライブ、光学ディスクドライブ等のうちの1つ以上を含んでよい。
【0015】
ビデオアダプタ126とI/Oインターフェイス128は、外部入出力デバイスを処理部110に結合するためのインターフェイスを提供する。
図1に表されるように、入出力デバイスの例には、ビデオアダプタ126に結合されたディスプレイ114と、I/Oインターフェイス128に結合されたマウス、キーボード、プリンタ等といったI/Oコンポーネント112とを含む。他のデバイスが処理部110に結合されてよく、追加的な又はより少ないインターフェイスカードが利用されてよい。例えば、シリアルインターフェイスカード(未図示)がプリンタのためのシリアルインターフェイスを提供するために用いられてよい。処理部110は、ローカルエリアネットワーク(LAN)又はワイドエリアネットワーク(WAN)への有線リンク及び/又は無線リンクであってよいネットワークインターフェイス140も含んでよい。
【0016】
IHS100は他のコンポーネント/デバイスを含んでよいことに注意されたい。例えば、IHS100は、電源、ケーブル、マザーボード、取外し可能記憶媒体、ケース等を含んでよい。これら他のコンポーネント/デバイスは、図示されていないとはいえ、IHS100の一部と見なされる。
【0017】
図2は、いくつかの実施形態による、混合モードシステムをシミュレーションするアーキテクチャ200の例示的なブロック図を表す。アーキテクチャ200は、設計モデル210とHDLシミュレータ220とを含む。設計モデル210は、ユーザがシミュレーションすることを希望する回路設計を包含可能である。設計モデル210は、アナログサブシステム212とデジタルサブシステム214とを含む混合モデルを包含可能である。ユーザの設計によって、アナログサブシステム212とデジタルサブシステム214は1つ以上の接続240を用いて互いに通信してよい。
【0018】
いくつかの実施形態において、アナログサブシステム212とデジタルサブシステム214はHDLにて記述可能である。アナログサブシステム212は、例えば、電流ミラー、演算増幅器(オペアンプ)、電圧制御発振器(VCO)、抵抗器/インダクタ/コンデンサ(RLC)コンポーネント等を包含可能である。アナログサブシステム212は、以下で更に説明するように、数値積分法及び/又はオイラー法を用いて数学的にモデル化することができる。デジタルサブシステム214は、標準セル(例えば、標準的なスタティックランダムアクセスメモリ(SRAM)セル、ダイナミックランダムアクセスメモリ(DRAM)セル)と、論理セル(例えば、NOTゲート、NANDゲート等)とを包含可能である。本発明は様々なアナログ及びデジタルサブシステムを説明するが、実施形態はこれらに限定されず、ユーザの設計によって、設計モデル210に他のアナログ及びデジタル回路素子を包含可能である。
【0019】
HDLで記述された設計モデル210は、シミュレーションのためHDLシミュレータ220へ転送230されることができる。シミュレーションはIHS100を用いて実行されてよい。例えば、HDLシミュレータ220は、HDLで記述されたIC設計を含むユーザのIC設計(例えば設計モデル210)を入力として受け取ることができる。HDLシミュレータ220は、ユーザが設計モデル210の機能を検証するために用いることのできる様々な出力ファイル及び/又は波形を生成可能である。従って、アナログコンポーネントとデジタルコンポーネントの両方を含む設計の混合モードシミュレーションが、非常に高い精度で、低コストで効率的に実行可能である。
【0020】
図3は、いくつかの実施形態による、回路設計を最適化するための例示的な方法300のフロー図を表す。例えば、方法300は、HDLにてアナログサブシステム212をモデル化することと、HDLシミュレータ220においてHDLベースの設計モデル210をシミュレーションすることとを説明する。方法300は
図1のIHS100を用いて実行されてよいが、実施形態はこれに限定されない。簡単な概要において、方法300はHDLにてアナログサブシステムをモデリングする動作310で始まり、HDLベースのアナログサブシステムモデリングで混合モードシステムをシミュレーションする動作320へ続く。
【0021】
HDLにてアナログサブシステムをモデル化すること(動作310)は、いくつかの更なる詳細な動作を包含可能である。例えば、動作310は、アナログサブシステムモデル化のための状態変数を定義する動作312を含む。状態変数は、例えば、電流、電圧、回路の温度等を含むことができる。動作310は、アナログサブシステムを積分及び微分ベースの方程式で記述する動作314も含むことができる。動作310は、積分及び微分ベースの方程式を、数値法を用いて方程式を展開することにより加算、減算、乗算、及び除算演算子のみの方程式へ変換する動作316を更に含むことができる。次いで、動作310は、展開された方程式をHDLで記述する動作318も含むことができる。
【0022】
図4は、いくつかの実施形態による、動作320の混合モードシステムをシミュレーションする追加的な動作を含む
図3のフロー図である。例えば、動作320は、結合HDLネットリストでHDLシミュレータにおいて混合モードシステムシミュレーションを開始する動作320を含むことができる。結合HDLネットリストは、アナログサブシステムのためのHDLネットリストとデジタルサブシステムのためのHDLネットリストとを含むことができる。動作320は、アナログサブシステムのため、t=t
0,t
0+Δt,t
0+2Δt…での以前の状態変数を用いて現在の状態変数を更新し、デジタルサブシステムのため、クロック又は入力変更により現在の状態及び/又は結果を更新する動作324を含むことができる。動作320は、検証条件(例えば、シミュレーション時間、ユーザ入力、出力結果、ブレークポイント等)が満たされた場合にシミュレーションを終了する動作326を含むことができる。従って、アナログサブシステムとデジタルサブシステムの両方を含む混合設計はHDLを用いてシミュレーションすることができ、シミュレーションは正確で、効率的で、安価である。
【0023】
図5は、いくつかの実施形態による、VCOを含むアナログ回路500の例示的なブロック図を表す。アナログ回路500は、動作320の間にHDLに変換(又は翻訳又は書き換え又は再モデル化)されることのできるアナログサブシステム(例えばアナログサブシステム212)の例である。
図6は、いくつかの実施形態による、アナログ回路500の入力及び出力の波形600を表す。VCOはアナログ回路500に関して説明したが、実施形態はこれに限定されず、アナログ回路500はデジタル制御発振器(DCO)等を含む任意のアナログ回路を含むことができる。
【0024】
アナログ回路500は、供給電圧AVDDの入力を時間tの関数として含むことができる。正弦波発生器502は、供給電圧AVDD(t)を入力として受け取り、正弦波の形状における出力電圧を含む出力電圧Vsine(t)を出力する。出力電圧Vsine(t)は、クロック信号CLK(t)を出力可能な方形波発生器504へ入力されることができる。波形600は、供給電圧AVDD(t)602、出力電圧Vsine(t)604、及びクロック信号CLK(t)606を表す。波形600に示されるように、供給電圧AVDD(t)602が増加すると、出力電圧Vsine(t)604の周波数が増加し、次いでクロック信号CLK(t)606の周波数も増加する。
【0025】
アナログ回路を用いてクロック信号CLK(t)を生成するために用いられる方程式は次のようなものであってよい。
【数1】
【0026】
【0027】
従って、方程式(3)における積分は、方程式(6)に示されるような数値形式として書き換える及び/又は近似させることができる。次いで、アナログ回路の全ての入力及び出力、並びにアナログ回路500自体の機能を、積分を用いることなく方程式において書き換え可能である。
【0028】
アナログ回路500が数値形式に書き換えられると、アナログ回路500はHDLにおいてモデル化することができる。HDLにおけるアナログ回路500のための疑似コードは次のようなものであってよい:
【数3】
【0029】
疑似コードは、VCOを含むアナログ回路500のハードウェア表現(又は近似)であることができる。上記疑似コードは、△tの各時間ステップにて、矢印←の右の値に基づきVout、Vclk、φnоn-lin、φlinの新たな値が記述されることを示す。例えば、Voutは方程式sin(φnоn-lin+φlin)に基づき記述されることができるといったようにである。従って、VCOを含むアナログ回路500はHDLコードを用いてハードウェアにモデル化することができる。
【0030】
従って、アナログ回路500は方程式及び積分の数値展開を用いてHDLコードに書き換えることができる。そして、HDLコードが合成されると、アナログ回路500はHDLシミュレータ(例えばHDLシミュレータ220)を用いてシミュレーションされることができる。
【0031】
図7は、いくつかの実施形態による、RLC回路を含むアナログ回路700の例示的なブロック図を表す。アナログ回路700は、動作302の間にHDLに変換(又は翻訳又は書き換え又は再モデル化)されることのできるアナログサブシステム(例えばアナログサブシステム212)の例である。
【0032】
アナログ回路700は、電圧源VDD、抵抗器R、インダクタL、コンデンサC、及び電流シンク710を含む複数の回路素子を含む。電流シンク710は、抵抗器RDCと、抵抗器RSWと、イネーブルスイッチENとを含む。電圧源VDDを通過する電流はI(t)であり、コンデンサCを流れる電流はIC(t)であり、ノード720(例えば、インダクタL、コンデンサC、及び電流シンク710に接続するノード)から流れる電流はIS(t)であり、電流シンクの等価抵抗はRTである。ノード720での電圧は、供給電圧であるAVDD(t)である。
【0033】
キルヒホッフの電圧法則(KVL)とキルヒホッフの電流法則(KCL)を用いて、アナログ回路700のための次の電流及び電圧方程式を得ることができる:
【数4】
ここで、VDDは固定供給電圧である。
【0034】
【0035】
アナログ回路700がオイラー法を用いて方程式に書き換えられると、アナログ回路700はHDLにおいてモデル化することができる。HDLにおけるアナログ回路700のための疑似コードは次のようなものであってよい:
【数6】
【0036】
疑似コードは、RLC回路を含むアナログ回路700のハードウェア表現(又は近似)であることができる。上記疑似コードは、△tの各時間ステップにて、矢印←の右の値に基づきRT、It=det_t、AVDD、IS、及びICの新たな値が記述されることを示す。例えば、RTは方程式[(RDC)-1+EN*(RSW)-1]-1に基づき記述されることができるといったようにである。従って、RLC回路を含むアナログ回路700はHDLコードを用いてハードウェアにモデル化することができる。
【0037】
従って、アナログ回路700は方程式及びオイラー法を用いてHDLコードにおいて記述することができる。そして、HDLコードが合成されると、アナログ回路700はHDLシミュレータ(例えばHDLシミュレータ220)を用いてシミュレーションされることができる。
【0038】
図8は、いくつかの実施形態による、アナログ回路700の様々な信号の例示的なシミュレーションを表す。例示的なシミュレーション800は、HDLコードを用いた、それぞれ電圧AVDD(t)と電流I(C)のシミュレーションを含む波形802と804を含む。CLK信号のシミュレーションは、クロックエッジが発生するタイミングの基準として波形806として示される。
【0039】
図7のアナログ回路700を参照し、シミュレーション800は、上記のアナログ回路700のための疑似コードを用いて記述されたHDLコードを用いた電圧AVDD(t)のシミュレーションである波形802を含む。シミュレーション800は、SPICEシミュレーションを用いた電圧AVDD(t)のシミュレーションである波形812も含む。波形802と812は、HDLを用いたシミュレーションがSPICEを用いたシミュレーションとほぼ同じ精度であることを示すよう実質的に互いに重なっている。同様に、シミュレーション800は、HDLコードを用いた電流I(t)のシミュレーションである波形804と、SPICEを用いた電流I(t)のシミュレーションである波形814とを含む。波形804と814は、HDLコードを用いたシミュレーション(波形804)が、SPICEシミュレーション(波形814)と比較し非常に正確で類似しているため、実質的に互いに重なっている。参考までに、シミュレーション810は、拡大されたシミュレーション800の一部を含む。
【0040】
図9は、本発明の実施形態による、HDLモデルのシミュレーションの精度を示す波形を表す。差分曲線902は、HDLコードに基づくアナログ回路700のシミュレーションを用いて生成された波形802とSPICEに基づくアナログ回路700のシミュレーションを用いて生成された波形812とが非常に類似していることを示している。いくつかの実施形態において、波形802の精度は、SPICEシミュレーションを用いて生成された波形812からの差分0.3%未満である。この精度は、自身の設計におけるアナログ回路をシミュレーションすることを望む設計者のニーズに適するのに十分である。
【0041】
図10は、いくつかの実施形態による、PIM回路を含む例示的な回路1000のブロック図を表す。例示的な回路1000は、センシングVCO、エッジサンプラー、デジタル制御遅延回路(DCDL)、計時DCO、及び内部電源ドメインV
DD_SENSEのための電流シンクと配電ネットワークといった、いくつかのアナログ回路ブロックを含む。例示的な回路1000は、プログラム分周器、デジタル遅延回路、疑似ランダム2値信号列(PRBS)回路、アキュムレータ、デジタル信号処理(DSP)回路、ANDゲート、及びマルチプレクサといった、いくつかのデジタル回路ブロックも含む。追加的なアナログブロック及び/又はデジタルブロックが例示的な回路1000に含まれてよい。
【0042】
図11は、いくつかの実施形態による、例示的な回路1000の協調シミュレーションとHDLシミュレーションの実行の比較を示す表を表す。従来のシミュレーションシステム及び方法では、非常に長い時間がかかり、コンピューティング能力やライセンスといった多くのリソースが必要となる可能性がある、SPICEシミュレーション又は他のトランジスタレベルシミュレーションを用いてアナログ回路ブロック(又はアナログサブシステム)をシミュレーションする可能性がある。アナログサブシステムのみがSPICEを用いてシミュレートされる協調シミュレーションを用いる場合であっても、シミュレーション実行時間は非常に緩慢である。一方、いくつかの実施形態において、アナログサブシステムがデジタル形式に変換される場合、アナログサブシステムはHDLにて記述されることができ、HDLシミュレーションがデジタルサブシステムのようにアナログサブシステムをシミュレーションすることができる。
【0043】
図11に示されるように、協調シミュレーションのシミュレーション長は256ptsであり、HDLベースのシミュレーションでは4892ptsである。用語「pts」は、一般的に、特定のシミュレーションの読み出しを算出するための単位として用いられる。協調シミュレーションのの検証時間は35時間であり、HDLベースのシミュレーションでは6時間を費やすのみである。シミュレーション長÷検証時間として定義される正規化速度は、協調シミュレーションで7.3pts/時間であり、HDLベースのシミュレーションは、協調シミュレーションよりも112倍速い815pts/時間の正規化速度を有する。特定の数字が用いられているとはいえ、実施形態はこれに限定されず、シミュレーション長、検証時間、及び正規化速度は、回路設計や、特定のシミュレータ等といった様々な要因とに応じて値が増減する可能性がある。
【0044】
図12は、いくつかの実施形態による、従来のシミュレーション方法と開示された技術とを比較した表を表す。シミュレーションのためアナログサブシステムとデジタルサブシステムの両方をモデル化するためHDLを用いるいくつかの利点が示される。
【0045】
第1に、協調シミュレーションのシミュレーション時間は、アナログサブシステムがSPICEにてシミュレーションされる必要があるため長い。アナログのみのシミュレーションのシミュレーション時間は、デジタルサブシステムでさえSPICEにてシミュレーションされるため、更に長い。一方、HDLベースのシミュレーションのためのシミュレーション時間は短い。
【0046】
第2に、協調シミュレーションは、アナログサブシステムがSPICEでシミュレーションするシミュレータを用いてシミュレーションされ、デジタルサブシステムがHDLでシミュレーションされるシミュレータを用いてシミュレーションされるため、複数のシミュレータライセンスの使用を要する。一方、アナログのみ及びHDLベースのシミュレーションは、より少ないライセンスを要する。
【0047】
第3に、アナログのみのシミュレーションは、各ゲート及び回路がトランジスタレベルでモデル化されなければならないため、例えば実証実験のための高レベルモデリングの助けとならない。一方、協調シミュレーションとHDLベースのシミュレーションの両方は高レベルモデリングを可能とする。
【0048】
第4に、アナログのみのシミュレーションは、デジタルサブシステムのためのトランジスタレベルネットリストを要し、協調シミュレーション及びHDLベースのシミュレーションでは要さない。これは、シミュレーションのために設計を合成するためにかかる時間量及びリソースを削減することができる。
【0049】
第5に、設計を縮小して設計の機能をシミュレーションする能力が重要である。アナログのみのシミュレーション方法は、各トランジスタ、抵抗器、コンデンサ等がその接続された端子を有さなければならないため、大規模設計の助けとならない。協調シミュレーション方法は、やはりアナログサブシステムに全ての接続を正確に作成することを要するため、若干良いのみである。一方、HDLベースのシミュレーションは、ゲートレベル接続が合成器により自動的に作成されるため、アナログサブシステムとデジタルサブシステムの両方を有する設計のための大幅な縮小を可能とすることができる。
【0050】
従って、HDLベースのシミュレーションは、協調シミュレーション及びアナログのみのシミュレーションに対し有利である。
【0051】
図13は、いくつかの実施形態による、回路設計を最適化するための例示的な方法1300のフロー図である。簡単な概要において、方法1300は、アナログサブシステムをHDLにてモデル化する動作1310で始まり、HDLベースのアナログサブシステムモデリングで混合モードシステムをシミュレーションする動作1320へ続く。動作1310は、アナログサブシステムのためトランジスタレベルネットリストをHDLネットリストへ直接変換又は翻訳する動作1312を含むことができる。動作1312は、アナログサブシステムがトランジスタレベルネットリストで記述されてメモリに格納されている場合、自動的に実行されることができる。プロセッサ(例えばIHS100)は、自動的にトランジスタレベルネットリストを受け取ってHDLレベルネットリストへ翻訳することができる。アナログサブシステムがHDLネットリストへ変換されると、方法1300は動作1320へ進むことができる。動作1320は
図3の動作320に類似することができ、明確化のため類似の説明は繰り返さない。
【0052】
図14は、いくつかの実施形態による、回路設計を最適化するための例示的な方法1400のフロー図を表す。例えば、方法1400は、アナログサブシステム212をHDLにてモデル化し、HDLシミュレータ220においてHDLベースの設計モデル210をシミュレーションすることを説明している。方法1400は
図1のIHS100を用いて実行されてよいが、実施形態はこれに限定されない。
【0053】
簡単な概要において、方法1400は、ICの回路設計を受け取る動作1402で始まる。方法1400は、ICの第1のサブシステムの第1の回路設計と、ICの第2のサブシステムの第2の設計とを特定する動作1404へ続く。第1のサブシステムは複数のデジタル変数信号上で動作し、第2のサブシステムは複数のアナログ変数信号上で動作する。方法1400は、第1の回路設計に基づき第1のHDLネットリストを合成する動作1406へ続く。方法1400は、第2の回路設計に基づき第2のHDLネットリストを合成する動作1408へ続く。方法1400は、第1のHDLネットリストと第2のHDLネットリストの両方を入力として単一のHDLベースのシミュレータを用いて、ICの回路設計の動作を取得する動作1410へ続く。
【0054】
動作1402は、ICの回路設計(例えば設計モデル210)を受け取ることを含む。回路設計は、IHS100又は他のコンピューティングシステムを介して提供されてよい。
【0055】
動作1404は、第1の部分をアナログサブシステム(例えばアナログサブシステム212)として特定し、第2の部分をデジタルサブシステム(例えばデジタルサブシステム214)として特定することを含む。
図10の例示的な回路1000に示されるように、アナログサブシステムは複数のアナログコンポーネントを含んでよく、デジタルサブシステムは複数のデジタルコンポーネントを含んでよい。アナログサブシステムは、元はトランジスタレベルネットリストにて記述されてよい。そのような場合、1つ以上のプロセッサがHDLネットリストを生成するために用いられてよい。いくつかの実施形態において、ユーザは、導関数及び積分を含むアナログサブシステムの動作を、数値方程式及び/又はオイラー法に翻訳してよい。動作のHDLへの翻訳は、アナログサブシステム動作の近似を含んでよい。
【0056】
動作1406は、第1の回路設計に基づき第1のHDLネットリストを合成することを含む。第1のHDLネットリストは、アナログサブシステムのHDLモデルを含んでよい。
【0057】
動作1408は、第2の回路設計に基づき第2のHDLネットリストを合成することを含む。第2のHDLネットリストは、デジタルサブシステムのHDLモデルを含んでよい。
【0058】
動作1410は、単一のHDLベースのシミュレータを用いて第1のHDLネットリストと第2のHDLネットリストをシミュレーションすることを含む。
【0059】
本発明の1つの様態は、回路設計を最適化するための方法を開示する。方法は、集積回路の回路設計を受け取ることと、ICの第1のサブシステムの第1の回路設計と、ICの第2のサブシステムの第2の回路設計とを特定することを含む。第1のサブシステムは複数のデジタル変数信号上で動作し、第2のサブシステムは複数のアナログ変数信号上で動作する。方法は、第1の回路設計に基づき第1のHDLネットリストを合成することと、第2の回路設計に基づき第2のHDLネットリストを合成することと、第1のHDLネットリストと第2のHDLネットリストの両方を入力として単一のHDLベースのシミュレータを用いて、ICの回路設計の動作を取得することとを更に含む。
前記第2のHDLネットリストを合成することが、積分方程式を含む前記複数の方程式のうちの第2の方程式を特定することと、前記第2の方程式の各積分項を対応する数値積分項に変換することとを更に含む、前記回路設計を最適化するための方法。
取得された前記動作に基づき前記ICの前記回路設計を検証することを更に含む、前記回路設計を最適化するための方法。
前記第1のサブシステムが1つ以上の論理セルを含む、前記回路設計を最適化するための方法。
前記第2のサブシステムが、電流ミラー、増幅器、電圧制御発振器、又は1つ以上の抵抗器-インダクタ-コンデンサ(RLC)コンポーネントのうちの1つ以上を含む、前記回路設計を最適化するための方法。
前記ICが、前記第1のサブシステムが、分周器、デジタル遅延回路、疑似ランダム2値信号列回路、アキュムレータ、デジタル信号処理回路を含み、前記第2のサブシステムが、電圧制御発振器、サンプラー、デジタル制御遅延線、電流シンク、及びデジタル制御発振器を含む、電力インピーダンス測定システムを含む、前記回路設計を最適化するための方法。
【0060】
本発明のもう1つの様態において、コンピュータにより実行されたときにコンピュータにIC設計を最適化するための方法を実行させるIC設計ツールのための命令を格納する、非一時的なコンピュータ読み取り可能記憶媒体を開示する。方法は、集積回路の回路設計を受け取ることと、ICの第1のサブシステムの第1の回路設計と、ICの第2のサブシステムの第2の回路設計とを特定することを含む。第1のサブシステムは複数のデジタル変数信号上で動作し、第2のサブシステムは複数のアナログ変数信号上で動作する。方法は、第1の回路設計に基づき第1のHDLネットリストを合成することと、第2の回路設計に基づき第2のHDLネットリストを合成することと、第1のHDLネットリストと第2のHDLネットリストの両方を入力として単一のHDLベースのシミュレータを用いて、ICの回路設計の動作を取得することとを更に含む。
前記第1のHDLベースのシミュレーションを実行することと、前記第2のHDLベースのシミュレーションを実行することが、単一のシミュレータにより同時に実行される、前記非一時的なコンピュータ読み取り可能記憶媒体。
前記第1のHDLベースのシミュレーションを実行することが、変換された前記方程式に入力される複数の時間変数のそれぞれをインクリメントすることにより、前記複数の第1の状態変数を更新することを含む、前記非一時的なコンピュータ読み取り可能記憶媒体。
前記アナログ回路が、電流ミラー、増幅器、電圧制御発振器、又は1つ以上の抵抗器-インダクタ-コンデンサ(RLC)コンポーネントのうちの少なくとも1つを含む、前記非一時的なコンピュータ読み取り可能記憶媒体。
【0061】
本発明の更にもう1つの様態において、IC設計を最適化するための装置を開示する。
装置は、デジタルサブシステムとアナログサブシステムとを含むICの回路設計を受け取り、デジタルサブシステムのための第1のHDLネットリストを合成し、加算、減算、乗算、及び除算演算子のみに基づきアナログサブシステムのための第2のHDLネットリストを合成し、第1のHDLネットリストと第2のHDLネットリストの両方を入力として単一のHDLベースのシミュレータを用いて、ICの回路設計の動作を取得するよう構成された1つ以上のプロセッサを含む。
前記デジタルサブシステムが1つ以上の論理セルを含む、前記IC設計を最適化するための装置。
前記アナログサブシステムが、電流ミラー、増幅器、電圧制御発振器、又は1つ以上の抵抗器-インダクタ-コンデンサ(RLC)コンポーネントのうちの1つ以上を含む、前記IC設計を最適化するための装置。
【0062】
ここで用いられるとき、用語「約」、「およそ」は、一般的に、述べられた数字のプラス又はマイナス10%を意味する。例えば、約0.5は0.45と0.55を含み、約10は9~11を含み、約1000は900~1100を含む。
【0063】
上記は、当業者が本発明の態様をより好ましく理解できるように、いくつかの実施形態の特徴を概説している。当業者は、ここで紹介した実施形態と同一の目的を実行するため、及び/又は同一の利点を達成するため、他の処理及び構造を設計又は改変するための基礎として、本開示を容易に用いることができることを理解すべきである。当業者はまた、そのような均等な構造は本発明の精神及び範囲から逸脱せず、本発明の精神及び範囲から逸脱することなく様々な改変、置き換え、及び変更を行うことができることを理解すべきである。
【産業上の利用可能性】
【0064】
本発明の回路及び方法は、システムオンチップ(SOC)設計及び回路検証に適用することができる。
【符号の説明】
【0065】
100:IHS
112:I/Oコンポーネント
114:ディスプレイ
116:ワイドエリアネットワーク(WAN)
120:中央処理装置(CPU)
122:メモリ
124:大容量記憶装置
126:ビデオアダプタ
128:I/Oインターフェイス
130:バス
140:ネットワークインターフェイス
200:アーキテクチャ
210:設計モデル
212:アナログサブシステム
214:デジタルサブシステム
220:HDLシミュレータ
230:転送
240:接続
300、1300、1400:方法
302、310、312、314、316、318、320、322、324、326、1310、1312、1320、1402、1404、1406、1408、1410:動作
500、700:アナログ回路
502:正弦波発生器
504:方形波発生器
600、802、804、806、812、814:波形
602:供給電圧AVDD(t)
604:出力電圧Vsine(t)
606:クロック信号CLK(t)
710、I:電流
720:ノード
800、810:シミュレーション
902:差分曲線
1000:例示的な回路
AVDD:電圧
C:コンデンサ
CLK:クロック信号
EN:イネーブルスイッチ
L:インダクタ
R、RDC、RSW:抵抗器
VDD:電圧源