JP2007305137A - 分配された同時的シミュレーション - Google Patents

分配された同時的シミュレーション Download PDF

Info

Publication number
JP2007305137A
JP2007305137A JP2007128355A JP2007128355A JP2007305137A JP 2007305137 A JP2007305137 A JP 2007305137A JP 2007128355 A JP2007128355 A JP 2007128355A JP 2007128355 A JP2007128355 A JP 2007128355A JP 2007305137 A JP2007305137 A JP 2007305137A
Authority
JP
Japan
Prior art keywords
storage unit
simulation method
circuit
circuit simulation
state
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
JP2007128355A
Other languages
English (en)
Inventor
Chi-Ho Cha
致 鎬 車
Hoon-Sang Jin
勳 相 陳
Hyunuk Jung
賢 旭 鄭
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics 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
Priority claimed from KR1020060043082A external-priority patent/KR101205325B1/ko
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2007305137A publication Critical patent/JP2007305137A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】分配された同時シミュレーション方法及びシステムを提供する。
【解決手段】少なくとも1つの貯蔵ユニットの状態を提供する段階と、少なくとも1つの貯蔵ユニットによって境界をなす回路のセグメントを提供する段階と、少なくとも1つの貯蔵ユニットの状態によってセグメントをシミュレーションする段階とを含む。システムは回路の貯蔵ユニットを記述する少なくとも1つのメモリと、メモリは、貯蔵ユニットの状態を維持し、貯蔵ユニットによって分離した組み合わせロジックを含む複数の分配されたセグメントを認識し、そして維持された状態によってそれぞれが複数のセグメントのうちの少なくとも1つを同時にシミュレーションする複数のプロセッシングユニットを含む。
【選択図】図18A

Description

本発明はデジタル回路シミュレーションに係り、さらに具体的には、分配された同時的シミュレーションに関する。
一般的に、レイアウト以後シミュレーション(post−layout simulation)はレイアウト以前シミュレーション(pre−layout simulation)と関係がない。レイアウト以後シミュレーションは、それぞれの回路レイアウトが実行されるのに必要であり、かなり長いシミュレーション時間を要求する。
従来のシミュレーションシステムのシミュレーション時間は、回路の大きさが増加することによって指数的に増加する。もし機能的検証の間にエラーがあったら、最上位レベル内の1番目の端子から逆方向に検索して、エラー位置が検出された後、エラー時点から開始されるように作られた追加的なシミュレーションが要求される。
上述のような問題を解決するために、デジタル回路を独立的なシミュレーションユニット及び独立的な回路セグメントに分配して、シミュレーション時間が減少したデジタル回路を分配された同時的シミュレーションするためのシステム及び方法が提供される。
このような目的を解決するために、本発明の一特徴によると、分配された同時的シミュレーション方法は、少なくとも1つの貯蔵ユニットの状態を提供する段階と、前記少なくとも1つの貯蔵ユニットによって境界をなす回路のセグメントを提供する段階と、前記少なくとも1つの貯蔵ユニットの状態によって前記セグメントをシミュレーションする段階とを含む。
本発明の他の特徴による分配された同時的シミュレーションシステムは、回路の貯蔵ユニットを記述する少なくとも1つのメモリと、前記メモリは、前記貯蔵ユニットの状態を維持し、前記貯蔵ユニットによって分離した組み合わせロジックを含む複数の分配されたセグメントを認識し、前記維持された状態によってそれぞれが前記複数のセグメントのうちの少なくとも1つを同時にシミュレーションする複数のプロセッシングユニットを含む。
本発明によると、デジタル回路を独立的なシミュレーションユニット及び独立的な回路セグメントに分配して、シミュレーション時間が顕著に減少する。さらに、本発明は実際ピーク電力及びサブブロック消費の報告(report)を容易にする。
以下、本発明の望ましい実施形態を添付した図面を参照して詳細に説明する。
本発明はデジタル回路シミュレーションに係り、さらに具体的には、独立した時間領域及び独立したセグメントに基いて分配されたコンピューティングを実行する分配された同時的シミュレーション方法及びシステムに関する。本発明は、サイクル−基盤(cycle based)そして/またはイベント−駆動(event−driven)を開示する。デジタル回路のための分配された同時シミュレーションシステムはデジタル回路を独立的なシミュレーション時間ユニット及び独立的な回路セグメントに分配して、シミュレーション時間を顕著に減少させる。
従来のサイクル−基盤シミュレーションの例において、ぺンティアム(Pentium(登録商標))CPUのフローティングポイントユニット(floating point unit、FPU)をシミュレーションするための一方法では、クロックサイクルごとにFPUでどのようなことが発生するかを観察することである。このような方法を徹底的なシミュレーション(exhaustive simulation)と呼ぶ。おもしろい情報はシステムの状態が変更されることによるサイクルまたはイベントなどである。
図1に示したように、従来のサイクル−基盤シミュレーションの例において発生可能なサンプルイベントの単純化されたリストは参照番号100として表示される。単純化されたリスト100は、クロックサイクル1での割り算動作開始(Division Operation Begins)、クロックサイクル4での割り算動作完了(Division Operation Completes)、クロックサイクル6での掛け算動作開始(Multiplication Operation Begins)、クロックサイクル8での掛け算動作終了(Multiplication Operation Completes)、クロックサイクルの間の無イベント(no events)及びインターラプトイベント(Interrupt Event)をさらに含む。これがクロックサイクルごとに考慮される従来のサイクル−基盤の徹底的なシミュレーションである。そのようなシミュレーションは、分配された計算技術を排除した十分なシミュレーション時間を要し、シミュレーションサイクルに基いてユーザにどのような再使用可能なシミュレーション結果をも提供しない。したがって、ユーザは特定時間に対する回路の機能検証のために0(zero)のシミュレーション時間から特定のシミュレーション時間まで同一のシミュレーションを複数回実行しなければならない。
同様に、従来のイベント−駆動シミュレーションにおいて、2つのトレースは同一の情報の量を含む。イベント−駆動シミュレーションは、システムの状態変化がないとき、時間をスキップして、実際変化またはイベントなどのみを検査する。
図2を参照すると、従来のイベント−駆動シミュレーションのイベント可能性の簡単なリストを参照符号200として表記する。リスト200は、クロックサイクル1での分割動作開始(Division Operation Begin)、クロックサイクル4での分割動作終了(Divison Operation Complete)、クロックサイクル6での掛け算動作開始(Multiplication Operation Begin)、クロックサイクル8での掛け算動作終了(Multiplication Operation Completes)及びインターラプトイベントをさらに含む。従来のイベント−駆動シミュレーションは従来のサイクル基盤徹底的なシミュレーションと比較するとき、プロセッシング時間が顕著に短縮される。
しかし、従来のイベント−駆動シミュレーションはシミュレーションサイクルの間ユーザにどのような再使用シミュレーション結果も提供しない。特定時点での回路機能を検証するために、ユーザは相変らず同一のシミュレーションを0(zero)シミュレーション時間から所定シミュレーション時間まで複数回繰り返して実行しなければならない。
本発明の望ましい実施形態を、図3から図18に示している。すべての貯蔵状態がすべてのクロックサイクルで貯蔵されれば、データは多様な観点で再使用することができる。デジタル回路は貯蔵ユニットによって閉められるか、または制限される独立的なセグメントに分割され、この独立的なセグメントが同時にシミュレーションされることで、多くの独立的な回路を同時にシミュレーションすることができる。これは空間的独立である。以前シミュレーションの間デジタル回路に貯蔵されたデータに基いてシミュレーションはどのような時点でも開始することができる。これは時間的な独立によるものである。
レイアウト以前、例えばレジスタ−トランジスターロジック(register−transistor logic;RTL)またはゲートレベルでまたはレイアウト以後シミュレーションの間またはハードウェアエミュレータによって貯蔵状態はクロックサイクルごとに貯蔵することができる。遅延がないレイアウト以前の貯蔵状態はレジスタ−トランジスタロジック、またはゲートレベル、またはレイアウト以後シミュレーションの間シミュレーション時間を短縮させるために用いることができる。
本発明の望ましい実施形態による分配された同時的シミュレーション(Distributed Simultaneous Simulation;DSS)システムは次のような用語を含む。レイアウト以前シミュレーション(pre−layout simulation)はフリップフロップ(F/F)、ゲート、トランジスタTRなどのようなすべてのネット(nets)及び回路エレメントに提供される0(zero)−遅延シミュレーションである。レイアウト以後シミュレーション(post−layout simulation)はすべての回路エレメント(例えば、F/F、ゲート、TRなど)及びネットで示す遅延以後遅延シミュレーションである。クロック領域(clock domain)は同一のクロックと接続された貯蔵ユニットを有する領域である。貯蔵トレーサ(Storage Tracer)はフリップフロップまたはラッチなどのような実際貯蔵エレメントである。ネットトレーサ(Net Tracer)はメモリまたはメクロセル(Macro cell)またはクロック制御ネットの入力または出力に挿入される疑似貯蔵エレメント(pseudo strage element)である。
クロック制御ネット内の貯蔵トレーサは効果的なクロック状態、そしてノードをモニタするため、または毎クロックサイクルでノードでのセグメントを分離するための組み合わせ論理の間のノードを作る。クロックトレーサは毎クロックサイクルでクロックネットの状態を貯蔵するための疑似貯蔵エレメントである。貯蔵ユニットはクロックに同期するすべての実際貯蔵エレメント、例えば、F/F、ラッチなどを含む。
メモリセルまたはマクロセルは毎クロックサイクルで入力そして/または出力状態を貯蔵するために入力そして/または出力ポート内にF/Fなどのような疑似貯蔵エレメントを含む。シーケンシャル回路及び組み合わせ回路で構成されるデジタル回路ごとに等価回路及び貯蔵ユニットが用いられる。そしてすべてのデジタル回路は貯蔵ユニットの間に貯蔵ユニット、及び組み合わせユニットを有する原始(original)回路をモデルとする等価回路を有する。
本発明の実施形態は“貯蔵ユニット”の概念を用いてクロックサイクルごとにターゲットデジタル回路のすべての状態を貯蔵することを開示する。本発明の実施形態はすべての種類のデジタル回路に適用することができ、クロックサイクルごとにすべての状態を貯蔵し、ターゲットデジタル回路内の貯蔵ユニットの貯蔵されたデータを利用して所定シミュレーション時点でのすべての状態に戻す。したがって、貯蔵ユニットの状態は遅延のないシミュレーションまたはハードウェアエミュレータを利用したハードウェアエミュレーションまたはFPGA(field−programmable gate array)によって高速に発生することができる。
もしターゲットデジタル回路内の貯蔵ユニットのすべての状態が知られれば、開始から付加的なシミュレーションなしにどのようなサイクルでもデジタル回路の状態を戻すことができる。組み合わせ論理が合成された後に変わることができても、2つの互いに異なるネットリストの間の貯蔵ユニットは同一にマッピングされるように維持されるため、ターゲットデジタル回路内の貯蔵ユニットの貯蔵された状態は他の環境または設計ライブラリだけではなく、原始デジタル回路に合わせられて等価ネットリスト(equivalent netlist)に適用することができる。また、高速シミュレーションだけではなく、本発明のDSS実施形態はデジタル回路設計のとき、貯蔵ユニットの期待される状態及び2つの等価ネットリストの間の貯蔵ユニットの計算された状態によって機能的検証をチェックすることができる。
図3を参照すると、本発明の望ましい実施形態による等価回路は参照番号300として表記される。等価回路300において、ネットリストBはネットリストAに等価である。したがって、もしクロックサイクルt1において、f1、f2及びf3状態がネットリストA及びネットリストBについてマッピングされれば、f4及びf5状態はクロックサイクルt2において、ネットリストA及びネットリストBにマッピングされる。
図4において、本発明の例示的な実施形態によるセグメントに対するDSSシミュレーションは参照符号400として表記される。貯蔵ユニットテーブル310はシミュレーションの間サイクルt1及びt2でネットリストAから貯蔵ユニットのすべての状態を抽出及び貯蔵した結果を示す。回路420はサイクルt1で貯蔵ユニットのすべての状態をネットリストBに戻すためのフリップフロップ値を示す。ダイヤグラム430はネットリストBで貯蔵ユニットの次の状態を計算するためのフリップフロップ値を示し、ダイヤグラム440はネットリストB内の貯蔵ユニットの期待された状態と貯蔵ユニットの計算された状態とを比較する。したがって、図4は時間的独立性、貯蔵ユニット管理、及び同時機能的検証を示す。
図5を参照すると、本発明の望ましい実施形態による貯蔵ユニットは参照符号500として表記される。貯蔵トレーサ510はスキャナブル(scanable)Dフリップフロップまたはラッチを含む。ネットトレーサ520はバイパス経路(bypass path)及びDフリップフロップまたはラッチからの付加的なモニタリング端子を含む。貯蔵ユニットはまた原始メモリ540、メモリ540に対応するDSSシミュレーションのためのメモリモデル550、ユーザ定義された貯蔵エレメントまたはトップレベルモデル550、及びモデル460に対応するDSSシミュレーションのためのユーザ定義された貯蔵エレメントまたはトップレベルモデル570を含む。したがって、貯蔵ユニットは例えば、フリップフロップまたはラッチ、ネットトレーサ、メモリモデル及びユーザ定義貯蔵エレメントモデルを含む。フリップフロップはNckのようなクロック入力でエッジトリガされることができる遅延またはDフリップフロップである。貯蔵トレーサ(Storage Trancer)及びネットトレーサ(Net Trancer)を有する貯蔵エレメントのすべての種類はモデルになることができる。ネットトレーサは回路を複数の独立的なセグメントドルに分割して、DSSシミュレーションのための貯蔵エレメントを作るために用いられる。独立的なセグメントの内部で貯蔵エレメントを有する原始メモリ及びマクロモデルを扱うことができる。
図6を参照すると、本発明によるネットトレーサは引き出し符号600として表記される。原始回路610が示される。貯蔵トレーサは620として表記され、ネットトレーサは630として表記される。DSSモデル640は原始回路610に基くが、付加したネットトレーサ630及び2つの付加した貯蔵トレーサ620を含む。ネットトレーサ630はノーマルモード及びトレースモードのためのF/F、マルチプレクサ、動作モード選択のための制御信号端子、ノーマル動作において、ノーマル出力及びモニタリング出力のための2つの出力端子、及びクロック入力端子を含む。
ネットトレーサはDSSシミュレーションの間挿入される疑似貯蔵セルであり、実際ネットリストではない。ノーマル動作経路はノーマルモードで用いられ、キャプチャ経路はノーマル経路で用いられ、シフティング経路は動作モードを貯蔵及び戻すのに用いられる。
図7を参照すると、ユーザ定義された貯蔵エレメントまたはトップレベルモデルのモデリングは参照符号700として表記される。原始ユーザ定義回路は710として表記され、DSSシミュレーションのためのユーザ定義された貯蔵エレメントモデルは720として表記される。ここで、DSSシミュレーションのためのモデルは回路内のメクロセルの各入力及び出力だけでなく、メイン回路の各入力及び出力に付加した貯蔵トレーサエレメントを有する。
図8を参照すると、ローカル時間的独立性は参照符号800として表記される。貯蔵ユニットテーブル810はシミュレーションの間サイクルt1及びt2でネットリストAから貯蔵ユニットのすべての状態を抽出及び貯蔵結果を示す。回路820はサイクルt1でネットリストBに貯蔵ユニットのすべての状態を戻すためのフリップフロップ値を示す。ダイヤグラム830はネットリストBで貯蔵ユニットの次の状態を計算するためのフリップフロップ値を示し、ダイヤグラム840は貯蔵ユニットの期待される状態とネットリストB内の貯蔵ユニットの計算された状態を比較する。したがって、図8は本発明の時間的独立性、貯蔵ユニット管理、及び同時機能的検証を示す。DSSはどのような時点でもシミュレーションの開始が可能にする。
図9を参照すると、空間的独立性を参照符号900として表記する。ここで、‘ソフト(soft)’とは、依存性を有する原始セグメントを参照するために用いられ、‘ハード(hard)’とは、原始依存性がない所定のセグメントを参照するのに用いられ、“セミハード(semi−hard)“とは、少なくとも1つのネットトレーサまたは貯蔵トレーサエレメントでの挿入によって除去された依存性に関するDSSセグメントを参照するために用いられる。原始回路910は、第4セグメントSeg_4に従属的であるため、ソフトである第1セグメント911またはSeg_1、第4セグメントSeg_4に従属的であるため、ソフトである第2セグメント912またはSeg_2、ハードである第3セグメント913またはSeg_3、及び、第1及び第2セグメントSeg_2、Seg_2に従属的であるため、ソフトである第4セグメント914またはSeg_4を含む。
原始回路に対するDSSモデル920は原始回路のソフトセグメントからセミハードセグメントを生成するための付加的ネットトレーサを含む。したがって、第1セグメントSeg_1は第2及び第4セグメントSeg_2、Seg_4の間の従属経路内のネットトレーサ挿入によってセミハード921になり、第2セグメントSeg_2は第2及び第4セグメントSeg_2、Seg_4の間の従属経路にネットトレーサを挿入することによって、ハード923で維持され、第4セグメントSeg_4は第1及び第2セグメントから挿入されたネットトレーサによってセミハード924になる。したがって、ネットトレーサは回路を複数の独立的セグメントに分割するために、そしてDSSシミュレーションに対する貯蔵エレメントモデルを生成するために用いられる。その結果、貯蔵ユニットの貯蔵された状態を用いることによって、各セグメントに対するシミュレーション及び機能的な同時的検証が可能になる。
原始回路内の他のセグメントを有するフリップフロップを通じて接続された第3セグメントSeg_3はハードセグメントである。言い換えれば、セグメントSeg_3がフリップフロップドルによって閉められる。セグメントSeg_1、Seg_2、Seg_4は原始回路内で接続を通じてフリップフロップの干渉のない接続を有する原始ソフトセグメントである。言い換えれば、セグメントSeg_1、Seg_2、Seg_4はフリップフロップドルによって閉められない。言い換えれば、直接経路内にネットトレーサを挿入することによって、ハードまたはセミハードセグメントの全体は独立的セグメントになることができる。
図10を参照すると、時間的空間的に分配されたシミュレーションを参照符号1000として表記する。DSSはターゲットデジタル回路を複数のセグメントまたはサブブロックに分割するか、またはセグメントまたはサブブロックの内部の貯蔵ユニットの状態で独立的に動作する。DSSは以前シミュレーションの間特定時点で貯蔵ユニットの状態をあらかじめ貯蔵しているため、DSSは特定時点でハードセグメントまたはセミハードセグメントを作ることができる。
図11を参照すると、DSS内のクロックネットワークは参照符号1100として表記される。クロックネットワークはゲートクロックネットワーク1110、マルチプレクシングクロックネットワーク1120、Tフリップフロップを有する分割されたクロックネックワーク1130、DSSに対するゲーティングクロックネットワークモデル1140、及びDSSに対するマルチプレクシングクロックネットワークモデル1150を意味する。クロック領域は同一のクロックで接続された貯蔵ユニットを有する領域である。クロックコントロールポイント(Clock Control Point;CCP)内にネットトレーサが挿入される前にクロックノードはクロックノードの期待状態を定義することができ、クロックノードは領域内でクロックノードと接続される貯蔵ユニットの貯蔵された状態を有して最後のクロックの状態をあらかじめ定義し、DSSシミュレーションを作る。したがって、DSSモジュール1140、1150のそれぞれはクロックコントロールポイントCCP形態を形成するために少なくとも1つのネットトレーサを含む。分割されたクロックネットワーク内“Clock_1”のような原始クロックソースが“Clock_1”と接続されたフリップフロップの次に貯蔵ユニットの全体に対する基準クロックになることができるため、分割されたクロックネットワークケース内のネットトレーサを挿入する必要がない。
図12を参照すると、CS−DBS内のクロックネットワーク遅延は参照符号1200として表記される。ここで、遅延1210は図11のゲーティングクロックネットワーク1110に対応し、遅延1220は図11のマルチプレクシングクロックネットワーク1120に対応し、遅延1230は図11の分割されたクロックネットワーク1130に対応し、遅延1240は図11のDSS1140に対するゲーティングクロックネットワークモデルに対応し、遅延1250は図11のDSS1150に対するマルチプレクシングクロックネットワークモデルに対応する。したがって、クロック信号はゲーティングクロックネットワークでクロックコントロールポイントCCPに応答して禁止することができる。クロック遅延はマルチプレクシングクロックネットワーク内のクロックマルチプレクサMUXへの制御信号に応答して可変することができる。さらに、クロック領域内のクロックソースはDSSシミュレーションの間クロックコントロールポイントCCPに応答して変更することができる。
図13を参照すると、本発明によるDSS内の組み合わせ論理遅延は参照符号1300として表記される。ここで、組み合わせ論理回路内のクロックソースと関連ある実際遅延、貯蔵ユニット遅延、及びゲート遅延はそれぞれで計算される。クロック遅延はクロックソースからフリップフロップff_1、ff_2、ff_3のような貯蔵ユニットの出力までである。
ロジックコーン(logic corn)1310内の貯蔵ユニットの現在状態、そして周知の貯蔵ユニット及び組み合わせ論理のすべての遅延によって、開始時点t1以後フリップフロップff_4などのような貯蔵ユニットの実際遅延を計算することができる。その結果、DSSはレイアウト以前(pre−layout)及びレイアウト以後(post−layout)シミュレーションの全部に適用することができる。
図14を参照すると、DSS内の機能的及びタイミング検証は参照符号1400として表記される。ここで、時点t2で期待された価格は時点t2で貯蔵ユニットの状態及び貯蔵ユニットの貯蔵された状態と同一の遅延に基いて計算されるため、貯蔵ユニット1410で機能的通過(functional pass)が発生する。しかし、時点t2で貯蔵ユニットの状態及び期待された値が時点t2で貯蔵ユニットの状態及び貯蔵ユニットの貯蔵された状態と同一ではない遅延に基いて計算されるとき、貯蔵ユニット1420で機能的失敗(functional fail)が発生する。したがって、開始クロックサイクルt1以後に、次の貯蔵ユニットまたはユニットへの到着遅延、次の貯蔵ユニットに到着する期待値が知られ、ターゲット回路の機能的検証、そして次のクロックサイクルt2でセットアップ及びホールド時間と関連ある時間誤差が検証される。
図15を参照すると、ネットリスト変更が参照符号1500として表記される。ネットリスト1510は時間変更以前を示し、ネットリスト1520は時間変更以後を示す。ネットリスト1530はパイプライン以前を示し、ネットリスト1540はパイプライン以後を示す。したがって、デザインツール(design tools)によって合成または最適化後、ネットリスト内の多数の変化が生ずる。そのような変化にはセットアップ及びホールド時間マージン(margin)調節のための時間変更、安定性(stability)及び性能(performance)増大のためのパイプライニング(pipelining)を含む。もしネットリスト内に何らかの変化があれば、機能的検証は失敗(fail)である。DSSは機能的失敗時点を検出し、次の貯蔵ユニットと関連ある最後の機能の等値関係(equivalence)を検査する。
図16を参照すると、本発明のダイナミックタイミング分析(dynamic timing analysis)が参照符号1600として表記される。タイミング分析1610は、DSSシミュレーション期間を示し、クロックコントロールポイントCCPを有するクロックソースを具備したロジックコーン1612を含む。回路1620は論理的エラー経路1622を重ねて示す。DSSは、DSSシミュレーションの間タイミング分析を作って、経路遅延を分析して、タイミング分析の結果を貯蔵する。DSSはダイナミックタイミング分析を利用してロジックコーン内の貯蔵ユニットの貯蔵された状態に基いてロジックコーンに対応する最適経路または最悪経路を報告(report)することができる。
すべての計算はフリップフロップff_1、ff_2、ff_3のような開始貯蔵ユニットの実際状態に応答する実際経路に基くため、DSSは非ロジカルエラー経路を含む。もしすべてのシミュレーション時間の間発生されるダイナミックスティミュラスの境界外の付加的なスティミュラスの検査を所望すれば、ロジックコーン内の開始貯蔵ユニットのすべての可能な状態を割り当てることによって、ノーマル静的タイミング分析(static timing analysis;STA)のようなすべてのスティミュラスチェックができる。
図17を参照すると、本発明のクロックソースを変更する分配シミュレーションは参照符号1700として表記される。図表(plot)1710はシミュレーションの間ccp_t1及びccp_t2でクロックソースの変化を示す。図表1720はシミュレーションの間ccp_t1及びccp_t2でクロック変更によるDSSを示す。例えば、ccp_t1及びccp_t2でゲートクロックネットワークまたはマルチプレクシングクロックネットワークのようなクロックソース内のシミュレーションの間クロックは変更可能である。もしDSSシミュレーションの間クロックが変更されれば、ハードまたはセミハードセグメント及び独立的なロジック領域に基いて貯蔵ユニットの以前状態を有してDSSは新しい成功的な分配シミュレーションを開始する。
従来のパワー計算は、電源計算システムが実際電源消費をチェックしなければならないとき、クロックサイクルごとにネット及び貯蔵ユニットのすべての変化をチェックするための比較的長い時間を有する。さらに、従来の平均電力計算はただ平均電力情報のみを提供するため、ネット及びエレメントの全体の遅延情報に基いた実際ピーク電力及び実際電力消費報告ができない。
本発明の実施形態によるDSSは、ネット及び貯蔵エレメントの変化の全体をチェックすることができ、全体の電力に対する計算を減少させるために多くの計算をCPUまたはマシンに割り当てることができる。したがって、少ないシミュレーション時間の間すべてのネット及びエレメントに対する遅延情報に基いて実際のピーク電力及びサブブロック電力消費を容易に報告することができる。遅延情報は標準遅延フォーマット(Standard Delay Format;SDF)ファイル内のセル遅延及び連結遅延、そして標準寄生フォーマット(Standard parasitic Format;SPF)ファイル内のRC値を含む。
図18を参照すると、本発明の例示的な実施形態によるフローチャートが引き出し符号1800として表記される。1番目の従来技術は引き出し符号1810として表記される。DSS設計フローは引き出し符号1820として表記される。高次元(high−level)概念が引き出し符号1830として表記される。高次元概念フロー1830はセグメントを構成するために貯蔵ユニットを生成し、貯蔵ユニットの状態をメモリに貯蔵する段階(S2610)を含む。段階S2610は組み合わせ論理をメモリに貯蔵するために制御を段階S2620に進行させる。段階S2620は貯蔵ユニットの入力に対応する組み合わせロジックによって貯蔵ユニットの次の状態を計算し、次の状態をメモリに貯蔵するために段階S2630に制御を進行させる。
DSS設計フロー1820は設計規定(specification)段階S2100を含み、RTL設計段階S2200に制御を進行させる。段階S2200においてレイアウト以前シミュレーション抽出段階S2300に制御が進行した後、通過/失敗(pass/fail)段階S2400に進行する。状態の抽出は段階S2300内のレイアウト以前またはRTLシミュレーションが実行される前または後に実行される。もし設計失敗であれば、制御はRTL設計段階S2200に戻る。
設計通過であれば、制御は合成段階S2500に進行する。段階S2500は時間的及び空間的にゲートレベルロジック分配のために段階S2600に進行する。段階S2600において制御は段階S2700に進行する。段階S2700はゲートレベルタイミングまたは遅延のDSSシミュレーションのために段階S2800に進行する。もし合成フェイルであれば、制御は合成段階S2500に戻る。
合成通過であれば、制御はレイアウト段階S2900に進行される。段階S2900はレイアウト後DSSシミュレーションを実行するために段階S3000に進行する。段階S3100で通過/失敗が決められる。もしレイアウト失敗であれば、制御は段階S2900に戻る。もしレイアウト通過であれば、制御は最後のブロックに進行する。
したがって、本発明の実施形態は、貯蔵ユニット、ハードセグメント、セミハードセグメント、ソフトセグメント、ネットトレーサ、及び空間及び時間上に独立性概念を利用してあらかじめ決められた方法と独立的に動作してターゲットロジックをセグメントに分割することによって、従来の方法に比べて非常に速くターゲットユニットをシミュレーションまたは検証することができる。貯蔵状態はレイアウト以前または0遅延、レイアウト以後シミュレーション、またはハードウェアエミュレーションによってクロックサイクルごとに貯蔵される。大体的な方法で、状態は段階S2300で抽出する必要がないが、選択的にまたは付加的に段階S2700、S3000で抽出することができる。
貯蔵状態はシミュレーション時間を貯蔵するためにレイアウト以前または0遅延またはレイアウト以後シミュレーションで毎クロックサイクルで用いられる。本発明の実施形態はデジタル回路を独立的なシミュレーション時間ユニット及び独立的な回路セグメントに分割して、顕著にシミュレーション時間を減少させる。さらに、本発明は実際のピーク電力及びサブブロック消費報告(report)を容易にする。他の実施形態において、メモリモデルはメモリの入力および/または出力端子に疑似フリップフロップを用いることができ、原始貯蔵ユニットの状態を貯蔵または復元するためにフィードバックループを用いることができる。従来と異なり、遅延及び機能は同時に結合されるか、実行されることができる。さらに、分配された同時的シミュレーションはスティミュラスに基くことができる。
本発明のこのような、そして他の特徴または長所はこの分野と関連ある技術者によって容易に確認することができる。また、本発明の技術は、ハードウェア、ソフトウェア、ファームウエア、特殊目的プロセッサまたはそれらの組み合わせの多様な形態に実現することができることがよく理解されるであろう。さらに、ソフトウェアはプログラム貯蔵装置内で実現された応用プログラムとして望ましく実施される。応用プログラムは適するアキテクチャを含むマシンによってアップロードされ実行することができる。望ましくは、マシンは1つまたはその以上の中央処理ユニット(central processing units;CPU)、ランダムアクセスメモリ(RAM)、及び入/出力インターフェース(input/output interface)などのようなハードウェアを有するコンピュータプラットホーム(computer platform)で実現される。コンピュータプラットホームは動作システム及びマイクロインストラクションコード(micro instruction code)を含む。ここに開示された多様なプロセス及び機能はマイクロインストラクションコードの一部または応用プログラムの一部、またはそれらの組み合わせのうちのいずれか1つであり、CPUによって実行される。さらに、多様な他の周辺ユニットが付加的なデータユニット及びディスプレイユニットのようなコンピュータプラットホームと接続される。システム構成またはプロセッシング機能ブロックの間の実際接続はプログラムされた例によって異なることができる。
例示的な望ましい実施形態を利用して本発明を説明したが、本発明の範囲は開示された実施形態に限定されない。むしろ、本発明の範囲は多様な変形例及びその類似の構成のすべてを含むことができる。したがって、請求範囲はそのような変形例及びその類似の構成を含むように、できる限り広く解釈されなければならない。
従来のサイクル基盤シミュレーションのためのタイミングテーブルを示す図である。 従来のイベント−駆動シミュレーションのためのタイミングテーブルを示す図である。 本発明の望ましい実施形態による等価回路の構成図である。 本発明の例示的な実施形態によるセグメントに対するDSSシミュレーションを示す図である(その1)。 本発明の例示的な実施形態によるセグメントに対するDSSシミュレーションを示す図である(その2)。 本発明の例示的な実施形態によるセグメントに対するDSSシミュレーションを示す図である(その3)。 本発明の例示的な実施形態によるセグメントに対するDSSシミュレーションを示す図である(その4)。 本発明の望ましい実施形態に他の貯蔵ユニットを示す図である(その1)。 本発明の望ましい実施形態に他の貯蔵ユニットを示す図である(その2)。 本発明の望ましい実施形態に他の貯蔵ユニットを示す図である(その3)。 本発明の望ましい実施形態に他の貯蔵ユニットを示す図である(その4)。 本発明によるネットトレーサを示す図である。 ユーザ定義された貯蔵エレメントまたはトップレベルモデルのモデリングを示す図である(その1)。 ユーザ定義された貯蔵エレメントまたはトップレベルモデルのモデリングを示す図である(その2)。 ローカル時間的独立性を示す図である(その1)。 ローカル時間的独立性を示す図である(その2)。 ローカル時間的独立性を示す図である(その3)。 ローカル時間的独立性を示す図である(その4)。 空間的独立性を示す図である(その1)。 空間的独立性を示す図である(その2)。 時間的空間的に分配されたシミュレーションを示す図である。 DSS内のクロックネットワークを示す図である。 CS−DBS内のクロックネットワーク遅延を示す図である(その1)。 CS−DBS内のクロックネットワーク遅延を示す図である(その2)。 CS−DBS内のクロックネットワーク遅延を示す図である(その3)。 CS−DBS内のクロックネットワーク遅延を示す図である(その4)。 CS−DBS内のクロックネットワーク遅延を示す図である(その5)。 本発明によるDSS内の組み合わせ論理遅延を示す図である。 DSS内の機能的及びタイミング検証を示す図である。 ネットリスト変更を示す図である。 本発明のダイナミックタイミング分析を示す図である(その1)。 本発明のダイナミックタイミング分析を示す図である(その2)。 クロックソースを変更する分配シミュレーションを示す図である(その1)。 クロックソースを変更する分配シミュレーションを示す図である(その2)。 本発明の例示的な実施形態によるフローチャートを示す図である(その1)。 本発明の例示的な実施形態によるフローチャートを示す図である(その2)。 本発明の例示的な実施形態によるフローチャートを示す図である(その3)。

Claims (37)

  1. 少なくとも1つの貯蔵ユニットの状態を提供する段階と、
    前記少なくとも1つの貯蔵ユニットによって境界をなす回路のセグメントを提供する段階と、
    前記少なくとも1つの貯蔵ユニットの状態によって前記セグメントをシミュレーションする段階とを含むことを特徴とする回路シミュレーション方法。
  2. 前記少なくとも1つの貯蔵ユニットに対するモデルを提供する段階をさらに含むことを特徴とする請求項1に記載の回路シミュレーション方法。
  3. 前記状態を提供する段階は、
    前記少なくとも1つの貯蔵ユニットから状態を抽出する段階を含むことを特徴とする請求項2に記載の回路シミュレーション方法。
  4. 前記状態を提供する段階は、
    前記少なくとも1つの貯蔵ユニットに前記状態を戻す段階を含むことを特徴とする請求項2に記載の回路シミュレーション方法。
  5. 前記少なくとも1つの貯蔵ユニットをモデリングする段階と、
    フィードバックループを通じて前記少なくとも1つの貯蔵ユニットの状態を戻す段階と、
    前記戻った状態によって、前記セグメントをシミュレーションする段階とをさらに含むことを特徴とする請求項1に記載の回路シミュレーション方法。
  6. 前記回路の複数の貯蔵ユニットに対するモデルを受信する段階と、
    前記複数の貯蔵ユニットによって分離した少なくとも1つのセグメントを認識する段階と、
    少なくとも1つのフィードバックループを通じて前記複数の貯蔵ユニットの段階を戻す段階と、
    前記戻った状態によって前記セグメントをシミュレーションする段階とをさらに含むことを特徴とする請求項1に記載の回路シミュレーション方法。
  7. バウンドリ貯蔵ユニットを有するセグメントを受信する段階と、
    前記貯蔵ユニットの状態を戻す段階と、
    前記戻った状態によって前記セグメントをシミュレーションする段階とを含むことを特徴とする回路シミュレーション方法。
  8. 前記回路はデジタルであることを特徴とする請求項1に記載の回路シミュレーション方法。
  9. 前記シミュレーションされるセグメントは空間的そして時間的に他のセグメントと独立的であることを特徴とする請求項1に記載の回路シミュレーション方法。
  10. 前記回路を独立的な回路セグメント及び独立的なシミュレーション時間単位に分配することを特徴とする請求項1に記載の回路シミュレーション方法。
  11. 空間的時間的に独立的な他のセグメントを同時にシミュレーションする段階をさらに含むことを特徴とする請求項1に記載の回路シミュレーション方法。
  12. 前記セグメントは他のセグメントと少なくとも1つの従属的接続を共有し、
    シミュレーション目的のために他のセグメントが実質的に独立するように少なくとも1つの従属的接続内の疑似(pseudo)貯蔵ユニットを付加する段階をさらに含むことを特徴とする請求項1に記載の回路シミュレーション方法。
  13. 前記類似貯蔵ユニットは疑似フリップフロップまたはラッチまたはネットトレーサのうちのいずれか1つであり、前記ネットトレーサは疑似フリップフロップまたはラッチと信号を取り交わす疑似マルチプレクサを含むことを特徴とする請求項12に記載の回路シミュレーション方法。
  14. 前記ネットトレーサは、
    前記疑似フリップフロップまたはラッチの入力と信号を取り交わす前記疑似マルチプレクサの出力と、
    前記ネットトレーサを通過する疑似マルチプレクサの入力とをさらに含むことを特徴とする請求項13に記載の回路シミュレーション方法。
  15. 前記セグメントは少なくとも1つの実際貯蔵ユニットに独立的にアクセスしたことを特徴とする請求項1に記載の回路シミュレーション方法。
  16. 前記実際貯蔵ユニットは少なくとも1つの実際フリップフロップまたはラッチまたは貯蔵トレーサを含み、前記貯蔵トレーサは実際フリップフロップまたはラッチと信号を取り交わす疑似マルチプレクサを含むことを特徴とする請求項15に記載の回路シミュレーション方法。
  17. 前記貯蔵トレーサは前記実際フリップフロップまたはラッチと信号を取り交わす疑似マルチプレクサの出力をさらに含むことを特徴とする請求項16に記載の回路シミュレーション方法。
  18. 前記貯蔵ユニットはクロック同期式であることを特徴とする請求項1に記載の回路シミュレーション方法。
  19. 前記貯蔵ユニットはそれぞれの出力端子内の疑似貯蔵ユニットを有するセルを含むことを特徴とする請求項1に記載の回路シミュレーション方法。
  20. 前記シミュレーション段階はサイクル基盤またはイベント駆動されることを特徴とする請求項1に記載の回路シミュレーション方法。
  21. 前記少なくとも1つの貯蔵ユニットはそれぞれの出力端子内に疑似貯蔵ユニットを含むセルであることを特徴とする請求項1に記載の回路シミュレーション方法。
  22. 前記セルはそれぞれの入力端子に疑似貯蔵ユニットをさらに含むことを特徴とする請求項21に記載の回路シミュレーション方法。
  23. 前記シミュレーション段階は遅延のないサイクルによって動作することを特徴とする請求項1に記載の回路シミュレーション方法。
  24. 前記複数の貯蔵ユニットは実際及び疑似貯蔵ユニットを含むことを特徴とする請求項23に記載の回路シミュレーション方法。
  25. 前記シミュレーション段階は、遅延を有するイベント駆動であることを特徴とする請求項1に記載の回路シミュレーション方法。
  26. 前記複数の貯蔵ユニットは実際貯蔵ユニットを含むことを特徴とする請求項25に記載の回路シミュレーション方法。
  27. 前記抽出された状態をフィードバック値として貯蔵する段階と、
    前記フィードバック値をシミュレーションのための状態に戻す段階とを含むことを特徴とする請求項1に記載の回路シミュレーション方法。
  28. 前記シミュレーションする段階は遅延シミュレーションを機能的シミュレーションと同時に実行することを特徴とする請求項1に記載の回路シミュレーション方法。
  29. 前記戻り段階は、
    受信されたスティミュラスまたはエミュレータからの出力を戻す段階を含むことを特徴とする請求項4に記載の回路シミュレーション方法。
  30. 変更されたクロックソースの時間を確認する段階と、
    前記変更されたクロックソースによって分離した時間的セグメントを定義する段階と、
    前記抽出された状態及び変更されたクロックソースによって前記定義されたセグメントをシミュレーションする段階とを更に含むことを特徴とする請求項1に記載の回路シミュレーション方法。
  31. 前記同一のクロックを用いて複数のセグメントを有するクロック領域を提供する段階をさらに含むことを特徴とする請求項13に記載の回路シミュレーション方法。
  32. 前記クロック領域はネットトレーサでモニターされるクロック制御ポイントを含むことを特徴とする請求項31に記載の回路シミュレーション方法。
  33. 空間的及び時間的に独立的なそれぞれのセグメントに対する消費電力を計算する段階をさらに含むことを特徴とする請求項1に記載の回路シミュレーション方法。
  34. 回路のセグメントに対する最大消費電力を報告する段階と、
    すべてのセグメントを含む回路に対する最大消費電力を報告する段階のうちのいずれか1つをさらに含むことを特徴とする請求項33に記載の回路シミュレーション方法。
  35. 前記シミュレーション段階は、
    少なくとも1つの遅延のないシミュレーションまたは遅延のあるシミュレーションのうちの少なくとも1つを含むことを特徴とする請求項1に記載の回路シミュレーション方法。
  36. 回路の貯蔵ユニットを記述する少なくとも1つのメモリと、
    前記メモリは、前記貯蔵ユニットの状態を維持し、前記貯蔵ユニットによって分離した組み合わせロジックを含む複数の分配されたセグメントを認識し、
    前記維持された状態によってそれぞれが前記複数のセグメントのうちの少なくとも1つを同時にシミュレーションする複数のプロセッシングユニットを含むことを特徴とする分配された同時的シミュレーションシステム。
  37. 前記貯蔵ユニットの状態を示す情報を提供する前記メモリと信号を取り交わすハードウェアエミュレータをさらに含むことを特徴とする請求項36に記載の分配された同時的シミュレーションシステム。
JP2007128355A 2006-05-12 2007-05-14 分配された同時的シミュレーション Pending JP2007305137A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020060043082A KR101205325B1 (ko) 2006-05-12 2006-05-12 시뮬레이션 시스템 및 그 방법
US11/747,664 US7949510B2 (en) 2006-05-12 2007-05-11 Distributed simultaneous simulation

Publications (1)

Publication Number Publication Date
JP2007305137A true JP2007305137A (ja) 2007-11-22

Family

ID=38838951

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007128355A Pending JP2007305137A (ja) 2006-05-12 2007-05-14 分配された同時的シミュレーション

Country Status (1)

Country Link
JP (1) JP2007305137A (ja)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0613592A (ja) * 1992-03-31 1994-01-21 Krohne Ag Asic原型作製器
JPH09190461A (ja) * 1996-01-11 1997-07-22 Nec Eng Ltd 多相クロック入力論理回路検証用シミュレータ
JP2000113011A (ja) * 1998-10-01 2000-04-21 Toshiba Corp 故障シミュレーション装置、故障シミュレーション方法及びそのシミュレーションプログラムを記録したコンピュータ読み取り可能な記録媒体
JP2001508202A (ja) * 1996-06-12 2001-06-19 ゾーリ、イフタック ディジタル論理シミュレーション/エミュレーションシステム
JP2002007502A (ja) * 2000-06-16 2002-01-11 Nec Microsystems Ltd アナログ/ディジタル混在回路シミュレーション装置及びその方法
JP2003242193A (ja) * 2002-02-14 2003-08-29 Nec Corp 協調シミュレーションの再現実行を行う論理検証装置
JP2005500618A (ja) * 2001-08-14 2005-01-06 アクシス システムズ, インコーポレイテッド Vcd−オン−デマンドのシステムおよび方法
JP2005149078A (ja) * 2003-11-14 2005-06-09 Handotai Rikougaku Kenkyu Center:Kk マイクロプロセッサの並列シミュレーションシステム
JP2005242642A (ja) * 2004-02-26 2005-09-08 Matsushita Electric Ind Co Ltd シミュレーション装置および半導体集積回路の設計方法
JP2007526442A (ja) * 2003-06-05 2007-09-13 メンター グラフィックス コーポレーション エミュレーション追跡データの圧縮法

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0613592A (ja) * 1992-03-31 1994-01-21 Krohne Ag Asic原型作製器
JPH09190461A (ja) * 1996-01-11 1997-07-22 Nec Eng Ltd 多相クロック入力論理回路検証用シミュレータ
JP2001508202A (ja) * 1996-06-12 2001-06-19 ゾーリ、イフタック ディジタル論理シミュレーション/エミュレーションシステム
JP2000113011A (ja) * 1998-10-01 2000-04-21 Toshiba Corp 故障シミュレーション装置、故障シミュレーション方法及びそのシミュレーションプログラムを記録したコンピュータ読み取り可能な記録媒体
JP2002007502A (ja) * 2000-06-16 2002-01-11 Nec Microsystems Ltd アナログ/ディジタル混在回路シミュレーション装置及びその方法
JP2005500618A (ja) * 2001-08-14 2005-01-06 アクシス システムズ, インコーポレイテッド Vcd−オン−デマンドのシステムおよび方法
JP2003242193A (ja) * 2002-02-14 2003-08-29 Nec Corp 協調シミュレーションの再現実行を行う論理検証装置
JP2007526442A (ja) * 2003-06-05 2007-09-13 メンター グラフィックス コーポレーション エミュレーション追跡データの圧縮法
JP2005149078A (ja) * 2003-11-14 2005-06-09 Handotai Rikougaku Kenkyu Center:Kk マイクロプロセッサの並列シミュレーションシステム
JP2005242642A (ja) * 2004-02-26 2005-09-08 Matsushita Electric Ind Co Ltd シミュレーション装置および半導体集積回路の設計方法

Similar Documents

Publication Publication Date Title
US5650938A (en) Method and apparatus for verifying asynchronous circuits using static timing analysis and dynamic functional simulation
US8468475B2 (en) Conversion of circuit description to an abstract model of the circuit
US20030208730A1 (en) Method for verifying properties of a circuit model
US20070168893A1 (en) System and method for generating a plurality of models at different levels of abstraction from a single master model
JPH06208602A (ja) 可検査性設計規則の検証方法
US6922665B1 (en) Method and system for device-level simulation of a circuit design for a programmable logic device
JP2005293163A (ja) 消費電力計算方法及び装置
US20150294055A1 (en) Systems and methods for increasing debugging visibility of prototyping systems
US10235485B1 (en) Partial reconfiguration debugging using hybrid models
US7254793B2 (en) Latch modeling technique for formal verification
US6131080A (en) Method of monitoring a computer simulation of an electrical circuit
US8346527B2 (en) Simulating an operation of a digital circuit
US7949510B2 (en) Distributed simultaneous simulation
Jenihhin et al. Towards multidimensional verification: Where functional meets non-functional
US6898767B2 (en) Method and apparatus for custom design in a standard cell design environment
Raaijmakers Run-Time Partial Reconfiguration on the Virtex-II Pro
JP2008299464A (ja) 消費電力計算方法、消費電力計算プログラムおよび消費電力計算装置
US7080333B1 (en) Verifying logic synthesizers
US7131091B1 (en) Generating fast logic simulation models for a PLD design description
US20030018462A1 (en) Multi-clock system simulation
CN115204104A (zh) 计算装置、其操作方法和计算机程序产品
JP2007305137A (ja) 分配された同時的シミュレーション
US7246053B2 (en) Method for transforming behavioral architectural and verification specifications into cycle-based compliant specifications
US7949973B1 (en) Methods of implementing multi-cycle paths in electronic circuits
Huang On speeding up extended finite state machines using catalyst circuitry

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100113

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111025

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120124

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120508

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120808

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130326