JP5040758B2 - シミュレーション装置、シミュレーション方法及びプログラム - Google Patents

シミュレーション装置、シミュレーション方法及びプログラム Download PDF

Info

Publication number
JP5040758B2
JP5040758B2 JP2008074077A JP2008074077A JP5040758B2 JP 5040758 B2 JP5040758 B2 JP 5040758B2 JP 2008074077 A JP2008074077 A JP 2008074077A JP 2008074077 A JP2008074077 A JP 2008074077A JP 5040758 B2 JP5040758 B2 JP 5040758B2
Authority
JP
Japan
Prior art keywords
signal
circuit
cycle
verification
design data
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.)
Expired - Fee Related
Application number
JP2008074077A
Other languages
English (en)
Other versions
JP2009230392A (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 Semiconductor Ltd
Original Assignee
Fujitsu Semiconductor 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 Semiconductor Ltd filed Critical Fujitsu Semiconductor Ltd
Priority to JP2008074077A priority Critical patent/JP5040758B2/ja
Priority to US12/405,617 priority patent/US8504347B2/en
Publication of JP2009230392A publication Critical patent/JP2009230392A/ja
Application granted granted Critical
Publication of JP5040758B2 publication Critical patent/JP5040758B2/ja
Expired - Fee Related 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

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)
  • Tests Of Electronic Circuits (AREA)

Description

本発明は、シミュレーション装置、シミュレーション方法及びプログラムに関する。
図2は、2つのフリップフロップ103及び104とその間に接続された組合せ回路112を含むクロック同期論理回路をシミュレーションするためのテストベンチを示す図である。テストベンチ101は、検証対象回路102及びテスト用記述を含む系である。
検証対象回路102の簡単な例として、半導体集積回路でよく使われている2つのフリップフロップ103,104とその間に接続された組合せ回路112を含むクロック同期論理回路を使い説明する。
図3は、検証対象回路102の動作例を示すタイミングチャートである。サイクル数は、クロック信号CLKのサイクル数を示す。サイクル1では、第1のフリップフロップ103は、クロック信号CLKの立ち上がりに同期して、入力端子DIに入力されたデータを保持し、出力端子DOからデータFF1DOを出力する。データFF1DOは、サイクル1の間に、組合せ回路112を介して、第2のフリップフロップ104の入力端子DIにデータFF2DIとして到達する。すなわち、1サイクルの間に、第1のフリップフロップ103の出力データFF1DOが第2のフリップフロップ104の入力端子DIにデータFF2DIとして到達する。このような回路をシングルサイクルパスという。シングルサイクルパスは、フリップフロップ103及び104間のデータ遅延が1サイクル以内である。
サイクル2では、第2のフリップフロップ104は、ライトイネーブル信号FF2WEがハイレベルの場合、クロック信号CLKの立ち上がりに同期して、入力端子DIに入力されたデータFF2DIを保持し、出力端子DOからデータFF2DOを出力する。なお、第2のフリップフロップ104は、ライトイネーブル信号FF2WEがローレベルの場合、データ書き込みを行わず、データを保持し続け、保持しているデータを出力端子DOからデータFF2DOとして出力する。
さて、検証対象回路102の中には、データ遅延が最大でNサイクルまでならばどのような遅延でも許される場合がある。このような状態をマルチサイクルパスと言う。ここで、Nは2以上の自然数とする。
図4(A)は、図2の検証対象回路102がNサイクルのマルチサイクルパスである場合のタイミングチャートである。上記と同様に、サイクル1では、第1のフリップフロップ103は、クロック信号CLKの立ち上がりに同期して、入力端子DIに入力されたデータを保持し、出力端子DOからデータFF1DOを出力する。それに伴い、第2のフリップフロップ104の入力データFF2DIは、サイクル1〜4のいずれかの任意のタイミングで新しい値に変化することが許されているので、サイクル1〜4では不定値(0又は1のいずれであるか不定の値)である。第2のフリップフロップ104は、サイクル1〜4のいずれのタイミングで入力データFF2DIが変化しても、正しい回路動作をしなければならない。
第2のフリップフロップ104は、ライトイネーブル信号FF2WEがハイレベルの場合、クロック信号CLKの立ち上がりに同期して、入力端子DIに入力されたデータFF2DIを保持し、出力端子DOからデータFF2DOを出力する。したがって、出力データFF2DOは、サイクル2〜4では不定値である。
この回路において、サイクル1の第1のフリップフロップ103の出力データFF1DOは、サイクル1,2,3,・・・,Nのいずれかで第2のフリップフロップ104の入力端子DIにデータFF2DIとして到達する。本回路をマルチサイクルパスとして扱うためには、第2のフリップフロップ104の入力データFF2DIが、「データ変化がサイクル1,2,3,・・・,Nのいずれであっても本回路が正常に動作する」ように設計しなければいけない。
なお、マルチサイクルパスは、一般的に、回路設計者により意図的に作られる。以下では、マルチサイクルとすべきパスは、回路仕様書や、論理検証以降の開発フローである論理合成や配置・配線や静的タイミング検証で標準的な入力情報として利用されるタイミング制約情報(Design Constraints)等に記載されているものとする。
また、ここでは半導体集積回路の開発は、第1の工程として、論理回路の設計をレジスタ・トランスファ・レベル(以下、RTLという)で行い(論理設計)、第2の工程として、その論理回路の妥当性を検証し(論理検証)、第3の工程として、検証された論理回路をゲートレベルに合成し(論理合成)、第4の工程として、それらを実際に配置配線し(配置・配線)、第5の工程として、タイミング検証を行う(静的タイミング検証,STA)という工程に基づいている。また、本明細書では遅延を含んだゲートレベル・シミュレーションについての記述があるが、これは静的タイミング検証が完了した後、第6の工程として実施するものとする。
次に、マルチサイクルパスをRTLで検証した場合の問題点について説明する。さて、回路設計者がマルチサイクルパスとして規定している信号について、その論理回路としての動作を検証し、その信号が本当にマルチサイクルパスとして扱うことができるか、を検証するには、単に論理回路としての動作の他に、遅延を考慮した論理回路動作の検証が必要となる。
なぜならば、マルチサイクルパスでは、第1のフリップフロップ103の出力データFF1DOが、第2のフリップフロップ104の入力端子DIにデータFF2DIとして到達するまでのデータ遅延は、サイクル1,2,3,・・・,Nのいずれであっても動作が正常であることを確かめる必要があるからである。
論理検証の動作検証は、遅延を含まないRTLで行うことが多い。遅延を含まない場合、Nサイクルのマルチサイクルパスに対して、データ遅延がサイクル1,2,3,・・・,Nのいずれであっても動作正常であることを検証することは難しい。以下、その理由を説明する。
図4(B)は、マルチサイクルパスをRTLで論理検証を行った場合のタイミングチャートである。RTLでは、フリップフロップ103及び104間のゲート遅延や配線遅延を考慮しないため、第1のフリップフロップ103の出力データFF1DOがサイクル1で変化したとき、同じサイクル1で第2のフリップフロップ104の入力データFF2DIが変化してしまう。そして、次のサイクル2で、第2のフリップフロップ104の出力データFF2DOは新しい値に確定する。
ここで、図4(B)のタイミングチャートを図3のシングルサイクルパスのタイミングチャートと比較すると、クロック信号CLKの立ち上がりタイミングにおける第2のフリップフロップ104の動作は同一であり、これはシングルサイクルパスの検証をしているのと同じである。また、図4(B)のタイミングチャートを、図4(A)のNサイクルのマルチサイクルパスの動作図と比較すると、クロック信号CLKの立ち上がりタイミングにおける第2のフリップフロップ104の動作は、サイクル2〜4で本来マルチサイクルパスとして期待すべき値とは異なっていることが分かる。このことから、RTLの論理シミュレーションで、マルチサイクルパスを正確に検証することはできないことがわかる。
ここで、遅延を考慮した論理回路動作の検証を行うための手法としては、代表的な方法として以下に示す2つの方法が知られている。
第1の手法は、回路を配置・配線した後に行うゲートレベル・シミュレーションにて実施する方法である。配置配線後に行うゲートレベル・シミュレーションでは、回路情報として実際のゲート遅延や配線遅延を含んでいるため、マルチサイクルパスのデータ遅延を考慮することができる。
第1の手法は、特定の半導体集積回路が正しく動作することは検証することができるという点でよい方法である。しかし、ゲート遅延・配線遅延は、その半導体集積回路に固有の値となった状態での検証であり、「データ変化がサイクル1,2,3,・・・,Nのいずれであっても正常に動作する」というNサイクルのマルチサイクルの動作(図4(A))そのものを検証しているとはいえない。
また、ゲート遅延・配線遅延を含む論理シミュレーションを行うには、論理検証以降の開発フローである論理合成や配置・配線、静的タイミング検証(STA)等を実施した後でなければならないため、マルチサイクルパスの指定に不備が発見されたときに発生する作業手戻りは非常に大きい。特に、規模が増大している現在の半導体集積回路においては、開発期間の損失は非常に大きい。
第2の手法は、RTL検証において、対象となる箇所に意図的に遅延を与えることである(特開2006−318121号公報)。RTL記述では、特定の信号に遅延値を付加することができる。またその機能はシミュレーション装置においても利用できる場合が多い。これにより遅延を考慮した論理検証を擬似的に再現することができる。
しかし、第2の手法においても、1度の論理シミュレーションで与えることができる遅延値が一定値であるため、「データ変化がサイクル1,2,3,・・・,Nのいずれであっても正常に動作する」というNサイクルのマルチサイクルの動作(図4(A))そのものを検証するには、1つのマルチサイクルパスについて少なくともN回の論理シミュレーションが必要であり、効率的ではない。
例えば、Nサイクルのマルチサイクルパスが回路内部に複数存在し、互いに動作的に関連している場合には、各々のマルチサイクルパスに与える遅延値の組合せを考えなければいけない場合も生じうる。その結果、検証に必要な組合せは膨大となってしまう。
さらに、第3の方法として、RTLあるいはゲートレベルの回路構造を解析することで、マルチサイクルパスとできる箇所を情報として提供するような技術も存在する(特開2001−273351号公報)。これは、回路設計者が、意図せずに作ったマルチサイクルパスを含めて網羅的に探索するという点では効果的な方法である。
しかし、回路内のマルチサイクルパスには、回路構造上決まるマルチサイクルパス以外に、仕様上の理由、あるいは他の論理回路に依存してマルチサイクルパスとできる部分も多数存在する。従って、回路仕様書等に記載しているマルチサイクル箇所情報が本当に正しいかどうかを、この技術だけから判断することは難しい。
特開2006−318121号公報 特開2001−273351号公報
本発明の目的は、Nサイクルのマルチサイクルパスを含んだクロック同期の論理回路の検証を、回路設計初期段階で簡単な方法で実施することができるシミュレーション装置、シミュレーション方法及びプログラムを提供することである。
本発明の他の目的は、クロック同期の論理回路において、回路設計者がマルチサイクルパスとして規定している箇所が、本当にマルチサイクルとして扱うことができるかを確認することができるシミュレーション装置、シミュレーション方法及びプログラムを提供することである。
本発明のシミュレーション装置は、クロック信号に同期してNサイクルのマルチサイクルパスの動作をする論理回路を含む検証対象回路の設計データをシミュレーションするシミュレーション装置であって、前記検証対象回路内のマルチサイクル箇所の信号に代えて不定値信号を選択的に供給するマルチサイクル検証回路の設計データを生成する設計データ生成手段と、前記検証対象回路の設計データ及び前記マルチサイクル検証回路の設計データを基に遅延を含まない論理シミュレーションを行う論理シミュレーション手段と、前記論理シミュレーションによる前記検証対象回路の信号と前記検証対象回路の期待値の信号とを比較する比較手段とを有し、前記マルチサイクル検証回路は、前記検証対象回路内のマルチサイクル箇所の信号の変化を検出する信号変化検出回路を有し、前記信号の変化を検出した後、1≦M<Nを満たすMサイクルの間、前記検証対象回路内のマルチサイクル箇所の信号に代えて不定値信号を供給することを特徴とする。
Nサイクルのマルチサイクルパスの動作をする論理回路の検証を、回路設計初期段階で簡単な方法で実施することができる。また、クロック同期の論理回路において、回路設計者がマルチサイクルパスとして規定している箇所が、本当にマルチサイクルとして扱うことができるかを確認することができる。
(第1の実施形態)
図13は、本発明の第1の実施形態によるシミュレーション装置を構成するコンピュータのハードウェア構成例を示すブロック図である。このコンピュータは、CAD(computer-aided design)により、RTL設計データ及びネットリスト設計データを生成し、シミュレーションを行うことができる。
バス1301には、中央処理装置(CPU)1302、ROM1303、RAM1304、ネットワークインターフェース1305、入力装置1306、出力装置1307及び外部記憶装置1308が接続されている。
CPU1302は、データの処理及び演算を行うと共に、バス1301を介して接続された上記の構成ユニットを制御するものである。ROM1303には、予めブートプログラムが記憶されており、このブートプログラムをCPU1302が実行することにより、コンピュータが起動する。外部記憶装置1308にコンピュータプログラムが記憶されており、そのコンピュータプログラムがRAM1304にコピーされ、CPU1302により実行される。このコンピュータは、コンピュータプログラムを実行することにより、後述するシミュレーション及びマルチサイクル検証を行うことができる。
外部記憶装置1308は、例えばハードディスク記憶装置等であり、電源を切っても記憶内容が消えない。外部記憶装置1308は、コンピュータプログラム、RTL設計データ等を記録媒体に記録したり、記録媒体からコンピュータプログラム等を読み出すことができる。
ネットワークインターフェース1305は、ネットワークに対してコンピュータプログラム及びRTL設計データ等を入出力することができる。入力装置1306は、例えばキーボード及びポインティングデバイス(マウス)等であり、各種指定又は入力等を行うことができる。出力装置1307は、ディスプレイ及びプリンタ等であり、表示又は印刷することができる。
本実施形態は、コンピュータがプログラムを実行することによって実現することができる。また、プログラムをコンピュータに供給するための手段、例えばかかるプログラムを記録したCD−ROM等のコンピュータ読み取り可能な記録媒体又はかかるプログラムを伝送するインターネット等の伝送媒体も本発明の実施形態として適用することができる。また、上記のプログラムを記録したコンピュータ読み取り可能な記録媒体等のコンピュータプログラムプロダクトも本発明の実施形態として適用することができる。上記のプログラム、記録媒体、伝送媒体及びコンピュータプログラムプロダクトは、本発明の範疇に含まれる。記録媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。
図1は、本実施形態によるシミュレーション装置のテストベンチを示す概念図である。テストベンチ401は、検証対象回路402及びテスト用記述を含む系であり、シミュレーションを行うためのソフトウェア(プログラム)である。テストベンチ401は、検証対象回路402及びマルチサイクル検証部414を有する。検証対象回路402及びマルチサイクル検証部414は、RTL設計データで記述された回路データである。図13のシミュレーション装置は、テストベンチ401をインストールし、テストベンチ401を実行することにより、シミュレーションを行う。
検証対象回路402は、例えば、2つのフリップフロップ403,404とその間に接続された組合せ回路412を含むクロック同期論理回路である。組合せ回路412は、第1のフリップフロップ403の出力端子DO及び第2のフリップフロップ404の入力端子DI間に接続される。マルチサイクル検証部414は、制御部415、X信号出力部416及びスイッチ417を有する。スイッチ417は、制御部415の出力信号SWSに応じて、X信号出力部416の出力信号を第2のフリップフロップ404の入力端子DIに出力する。X信号出力部416は、X信号(不定値信号)を出力する。X信号は、0又は1に定まっていない不定値を示す信号である。
第1のフリップフロップ403出力端子DOから第2のフリップフロップ404の入力端子DIまでの回路は、Nサイクルのマルチサイクルパスとして扱えると回路設計者により定められた回路であると仮定する。
本実施形態は、検証対象回路402に加えて、1≦M<Nを満たす任意のMサイクルの間、組合せ回路412の出力信号Sの代わりに、X信号出力部416が出力するX信号を強制的に代入するマルチサイクル検証部414が付加されている。
制御部415は、マルチサイクル対象となる信号に関するマルチサイクル箇所情報、最大遅延を許すマルチサイクル数、基準とすべきクロックあるいは制御信号に応じて、制御信号SWSを出力する。スイッチ417は、制御信号SWSに応じて、組合せ回路412の出力信号Sが不定値になるサイクルにおいてX信号を信号SWOとして出力する。
図5は、本実施形態によるシミュレーション装置の動作例を示すタイミングチャートである。シミュレーション装置は、RTLにおけるシミュレーションを行う。サイクル数は、クロック信号CLKのサイクル数を示す。以下、Nサイクルのマルチサイクルパスの動作を説明する。Nは例えば4である。
サイクル1では、第1のフリップフロップ403は、クロック信号CLKの立ち上がりに同期して、入力端子DIに入力されたデータを保持し、出力端子DOからデータFF1DOを出力する。RTLでは遅延を含まないので、組合せ回路412は、信号FF1DOを入力し、遅延なしで信号Sを出力する。N(例えば4)サイクルのマルチサイクルパスでは、第2のフリップフロップ404の入力データFF2DIは、サイクル1〜4のいずれかの任意のタイミングで新しい値に変化することが許されているので、制御部415は、マルチサイクル箇所情報(例えば信号S)、マルチサイクル数(例えば4)及びマルチサイクルパスに関連するクロック信号CLKを基に、サイクル1〜3の間にオンの制御信号SWSを出力し、それ以外のサイクルではオフの制御信号SWSを出力する。
制御信号SWSがオンであるときには、スイッチ417はオンして、スイッチ417の出力信号SWOはX信号出力部416が出力するX信号になり、第2のフリップフロップ404の入力信号FF2DIもX信号出力部416が出力するX信号になる。制御信号SWSがオフであるときには、スイッチ417はオフして、スイッチ417の出力信号SWOはハイインピーダンス状態になり、第2のフリップフロップ404の入力信号FF2DIは組合せ回路412の出力信号Sと同じ信号になる。
第2のフリップフロップ404は、ライトイネーブル信号FF2WEがハイレベルの場合、クロック信号CLKの立ち上がりに同期して、入力端子DIに入力されたデータFF2DIを保持し、出力端子DOからデータFF2DOを出力する。したがって、出力データFF2DOは、サイクル2〜4では不定値Xである。
1≦M<Nを満たすMサイクルの間、すなわち、サイクル1〜N−1の間、スイッチ417がオンするため、第2のフリップフロップ404の入力信号FF2DIは不定値Xになる。その後、スイッチ417はオフするため、サイクルNで第2のフリップフロップ404の入力信号FF2DIは信号Sと同じ信号になる。
ここで、図5のタイミングチャートと、図4(A)のNサイクルのマルチサイクルパスのタイミングチャートとを比較する。図4(A)において、第2のフリップフロップ104の入力信号FF2DIは、サイクル1〜サイクルNまでの間のどこかの時点で信号が変化するが、これは、サイクル1〜N−1では不定値Xであることを意味する。また、第2のフリップフロップ104の入力信号FF2DIは、サイクルNでは新しい値に確定している。
一方で、図4(A)及び図5のタイミングチャートを比較すると、クロック信号CLKの立ち上がりタイミングにおける第2のフリップフロップ104及び404の動作は、両者で一致している。すなわち、本実施形態によるシミュレーション装置で得られるタイミングチャートは、Nサイクルのマルチサイクルパスで期待される動作とまったく同じになっていることが分かる。
従って、本実施形態によるシミュレーション装置は、Nサイクルのマルチサイクルパスの動作を、回路設計初期段階であるRTLにおいて簡単に再現することが可能である。また、背景技術において、問題であった「データ遅延が一定値に固定されている」、「複数回シミュレーションを実行する必要がある」といった問題もなく、1度のシミュレーションでNサイクルのマルチサイクルパスの検証をすることも可能である。
図6は、本実施形態によるシミュレーション装置のシミュレーション方法を示すフローチャートである。本実施形態では、Nサイクルマルチサイクルパスの動作を検証することができる。
シミュレーション装置は、入力情報600として、論理検証で必要となる検証対象回路(論理回路)を含むテストベンチ602、検証パタン(テストパタン)603の他に、マルチサイクル箇所情報601を入力する。入力情報600は、全てシミュレーション装置に読み込まれ、シミュレーションが実行される。
マルチサイクル箇所情報601は、回路設計者により規定されるマルチサイクルとして扱うことのできる情報であり、マルチサイクル箇所の信号名やフリップフロップ名、マルチサイクル数、及び関連する論理回路内部の他の信号に関する情報を含むものとする。テストベンチ602は、図1のテストベンチ401に対応する。検証パタン603は、検証対象回路402の入力テストデータである。
論理シミュレーション装置604は、ステップ605及び606のソフトウェア処理により構成される。ステップ605では、シミュレーション装置は、図1に示すように、マルチサイクル箇所情報601及びテストベンチ602を基に、マルチサイクル検証部414の設計データを生成し、指定箇所にマルチサイクル検証部414を搭載する。次に、ステップ606では、シミュレーション装置は、図5に示すように、テストベンチ(マルチサイクル検証部414を含む)602及び検証パタン603を基に遅延を含まない論理シミュレーションを行い、シミュレーション結果607を出力する。シミュレーション結果607は、論理シミュレーションによる検証対象回路402の出力信号である。
シミュレーション装置は、マルチサイクル箇所情報601を読み込み、図4のマルチサイクル検証部414の回路を搭載した後に、論理シミュレーションステップ606を実施する点が、通常の論理シミュレーションと異なる。
期待値608は、検証対象回路402の動作が正しいときに期待される検証対象回路402のシミュレーション結果の期待値の信号である。ステップ609では、シミュレーション装置は、シミュレーション結果607と予め用意された期待値608とを比較する。
もし、シミュレーション結果607が期待値608と異なれば、ステップ611に進む。ステップ611では、シミュレーション装置は、マルチサイクル箇所の検証結果に問題ありと判断する。これは、マルチサイクル箇所の動作が期待通りでないことを意味する。マルチサイクルパスの動作がおかしい理由としては、マルチサイクル箇所情報601が正しくない、検証対象回路(論理回路)402がマルチサイクルパスに対応した回路構成になっていない、等の理由が考えられる。
次に、ステップ612では、シミュレーション装置は、入力情報600であったテストベンチ602、検証パタン603、マルチサイクル箇所情報601を見直し、検証対象回路(論理回路)402を修正する。修正後、シミュレーション結果607と期待値608とが一致するまで、上記の処理を繰り返す。
もし、シミュレーション結果607が期待値608と一致しているならば、ステップ610へ進む。ステップ610では、シミュレーション装置は、以下の結論を判断することができる。すなわち、第1に、マルチサイクル箇所の遅延を考慮した論理動作が正しいことが検証される。また、第2に、入力情報600として使用したマルチサイクル箇所情報601の内容が正しかったことも分かる。
半導体集積回路の開発は、第1の工程として、論理回路の設計をRTLで行い(論理設計)、第2の工程として、図6の論理回路の妥当性を検証し(論理検証)、第3の工程として、検証された論理回路をゲートレベルに合成し(論理合成)、第4の工程として、それらを実際に配置配線し(配置・配線)、第5の工程として、タイミング検証を行う(静的タイミング検証,STA)という工程を行い、第6の工程として、遅延を含んだゲートレベル・シミュレーションを行う。
以上のように、本実施形態によれば、設計初期段階(RTL段階)でマルチサイクルパスを検証することができる。背景技術ではマルチサイクルパスの動作が正しいかを確かめるには、論理検証以降の開発工程である配線遅延・ゲート遅延を含んだゲートレベル・シミュレーションが必要であったが、本実施形態のシミュレーション装置を使用することで、これらを回路設計初期段階のRTLで確かめることができる。
また、本実施形態は、網羅的にマルチサイクルパスを検証することができる。本実施形態は、マルチサイクルパスの検証において問題であった「データ遅延が一定値に固定されている」、「複数回シミュレーションを実行する必要がある」といった問題もなく、1度のシミュレーションでNサイクルのマルチサイクルパスの動作と等価な動作をRTL検証で実施することができる。
また、本実施形態は、設計者が意図して作ったマルチサイクルパスの妥当性を確認することができる。本実施形態を利用することで、回路設計者により規定されたマルチサイクルパスにおいて、回路設計者がマルチサイクルパスとして規定している箇所が、本当にマルチサイクルとして扱うことができるかを確認することができる。
(第2の実施形態)
図7は、本発明の第2の実施形態によるシミュレーション装置のテストベンチを示す概念図である。本実施形態(図7)は、第1の実施形態(図1)に対して、マルチサイクル検証部414の具体的回路例を示したものである。以下、本実施形態が第1の実施形態と異なる点を説明する。
テストベンチ401は、シミュレーション装置に搭載される際に信号Sと信号FF2DIの間が切断され、信号Sはマルチサイクル検証部414を経由して信号FF2DIに伝達されることが特徴である。シミュレーション終了後は、マルチサイクル検証部414が削除され、信号線725により信号Sと信号FF2DIとが直接接続される。
マルチサイクル検証部414は、信号Sの変化を観測する信号変化観測部715、マルチサイクル数Nを基にX信号を駆動すべきサイクル数を計算するカウンタCNT、X信号を出力するX信号出力部717、及びX信号又は信号Sを第2のフリップフロップ404の入力端子DIに選択的に供給するセレクタ718を有する。
図8は、本実施形態によるシミュレーション装置の動作例を示すタイミングチャートである。サイクル1において、第1のフリップフロップ403の出力信号FF1DOが変化し、その変化が信号Sまで到達する。すると、マルチサイクル検証部414の信号変化観測部715は、マルチサイクル信号Sの変化を検出し、検出信号OBSOUTをパルス信号としてカウンタCNTに出力する。ここで、検証対象となる信号Sは、回路設計者により検証パタンとして与えられる情報である。
次いで、サイクル1において、カウンタCNTは、検出信号OBSOUTのパルスを入力すると、マルチサイクル数N−1(例えば3)をセットし、クロック信号CLKに同期してダウンカウントを開始し、制御信号SELSをローレベルにする。カウンタCNTは、サイクル4において、カウント値が0になると、制御信号SELSをハイレベルにする。ここで、マルチサイクル信号S及びマルチサイクル数Nは回路設計者により設定される情報である。
セレクタ718は、制御信号SELSがハイレベルであるときに信号Sを選択し、制御信号SELSがローレベルであるときにX信号を選択し、信号SELOとして第2のフリップフロップ404の入力端子DIに出力する。その結果、第2のフリップフロップ404の入力信号FF2DIは、サイクル1〜3では不定値Xになり、サイクル4では信号Sと同じ信号になる。
ここで、図8を、図4(A)のNサイクルのマルチサイクルパスのタイミングチャートと比較する。図4(A)において、第2のフリップフロップ104の入力信号FF2DIは、サイクル1〜Nの間のどこかの時点で信号が変化するが、これは、サイクル1〜N−1では不定値Xであることを意味する。また、第2のフリップフロップ104の入力信号FF2DIは、サイクルNでは新しい値に確定している。
一方で、図8及び図(A)のタイミングチャートを比較すると、クロック信号CLKの立ち上がりタイミングにおける第2のフリップフロップ104及び404の動作は、両者で一致している。すなわち、本実施形態のシミュレーション装置で得られるタイミングチャートは、Nサイクルのマルチサイクルパスで期待される動作とまったく同じになっていることが分かる。
図9は、本実施形態によるシミュレーション装置のシミュレーション方法を示すフローチャートである。本実施形態(図9)は、第1の実施形態(図6)に対して、マルチサイクル箇所情報601の代わりにタイミング制約情報901を用いる点が異なる。また、テストベンチ602は、図7のテストベンチ401に対応する。以下、本実施形態が第1の実施形態と異なる点を説明する。
タイミング制約情報901は、回路設計者により定義されている情報で、検証対象回路402内部に存在するマルチサイクルパス箇所のリストを含む情報をフォーマット化したものであり、例えばSDC(Synopsys Design Constraint)ファイルである。タイミング制約情報901は、論理検証以降の開発フローである論理合成や、配置・配線や静的タイミング検証の際に標準的に利用される。マルチサイクルパスに関しては、マルチサイクル対象となる信号名や関連するフリップフロップ名に関する情報の他、マルチサイクルサイクル数と関連するクロック情報を含むであるのが一般的であるため、マルチサイクル箇所情報として使用するのに最適な情報である。
ステップ605では、シミュレーション装置は、図7に示すように、タイミング制約情報(マルチサイクル箇所情報を含む)901及びテストベンチ602を基に、マルチサイクル検証部414の設計データを生成し、指定箇所にマルチサイクル検証部414を搭載する。次に、ステップ606では、シミュレーション装置は、図8に示すように、テストベンチ(マルチサイクル検証部414を含む)602及び検証パタン603を基に遅延を含まない論理シミュレーションを行い、シミュレーション結果607を出力する。
ステップ609では、シミュレーション装置は、シミュレーション結果607と期待値608とを比較する。もし、シミュレーション結果607が期待値608と異なれば、マルチサイクル箇所の動作が期待通りでないことを意味するので、ステップ611へ進む。マルチサイクルパスの動作がおかしい理由としては、タイミング制約情報901が正しくない、マルチサイクルパスに対応した回路構成になっていない、等の理由が挙げられる。その場合、ステップ612において、入力情報600であったテストベンチ602、検証パタン603、タイミング制約情報901を見直し、検証対象回路(論理回路)402を修正する。修正後、シミュレーション結果607と期待値608とが一致するまで、図9の処理を繰り返す。
もし、シミュレーション結果607と期待値608とが同じであれば、ステップ610に進み、シミュレーション装置は、以下の結論を判断することができる。すなわち、第1に、マルチサイクル箇所の遅延を考慮した論理動作が正しいことが検証される。第2に、入力情報600として使用したタイミング制約情報901の内容が正しかったことも分かる。
特に、本実施形態を使用した場合には、タイミング制約情報901の検証が可能であることは重要である。なぜならば、タイミング制約情報901は、論理検証以降の開発フローである論理合成や、配置配線や静的タイミング検証(STA)の際に標準的な入力情報として利用されるため、その情報に従って回路が設計されることで、配置・配線後の遅延を含むゲートレベル・シミュレーションでの動作も保障することができるからである。
(第3の実施形態)
図10は、本発明の第3の実施形態によるシミュレーション装置のテストベンチを示す概念図である。本実施形態(図10)は、第1の実施形態(図1)に対して、マルチサイクル検証部414の具体的回路例を示したものである。以下、本実施形態が第1の実施形態と異なる点を説明する。
マルチサイクル検証部414は、X信号出力部1016及びスイッチSWを有する。X信号出力部1016は、X信号を出力する。ライトイネーブル信号FF2WEは、第2のフリップフロップ404への入力信号FF2DIの書き込みの有効/無効を示す制御信号である。スイッチSWは、ライトイネーブル信号FF2WEに応じて、X信号出力部1016の出力信号の端子及び信号FF2DIの端子の間の接続をオン/オフする。
スイッチSWの制御信号としてライトイネーブル信号FF2WEを使用することは、信号Sをマルチサイクルパスとして扱うことができるためのもっとも簡単なシミュレーション方法のひとつである。なぜならば、ライトイネーブル信号FF2WEをマルチサイクル数に応じて変化させることで、不定値となるサイクルでは第2のフリップフロップ404へのデータ書き込みを抑制できるためである。
図11は、本実施形態によるシミュレーション装置の動作例を示すタイミングチャートである。ライトネーブル信号FF2WEは、信号Sが不定値Xとなるべきサイクルにおいてローレベルとする。
サイクル1において、第1のフリップフロップ403の出力信号FF1DOが変化し、信号Sまで到達する。しかし、このサイクル1では、ライトイネーブル信号FF2WEがローレベルであるために、スイッチSWがオンになり、スイッチSWはX信号を信号SWOとして第2のフリップフロップ404の入力端子DIに出力する。その結果、第2のフリップフロップ404の入力信号FF2DIは、信号SWOと同じく不定値Xになる。第2のフリップフロップ404は、ライトイネーブル信号FF2WEがローレベルのとき、データ書き込みを行わず、内部に保持しているデータを信号FF2DOとして出力する。すなわち、信号FF2DOは、前回と同じデータであり、変化しない。
サイクルN(例えば4)において、ライトイネーブル信号FF2WEがハイレベルになると、スイッチSWがオフになり、スイッチSWの出力信号SWOはハイインピーダンス状態になる。その結果、第2のフリップフロップ404の入力信号FF2DIは、信号Sと同じ信号になる。第2のフリップフロップ404は、ライトイネーブル信号FF2WEがハイレベルのとき、入力信号FF2DIを書き込み保持し、その保持したデータを信号FF2DOとして出力する。
第2のフリップフロップ404のライトイネーブル端子WEに正しいライトイネーブル信号FF2WEが接続されていれば、第2のフリップフロップ404の出力信号FF2WOはX信号に依存せず、正しい信号となる。しかし、第2のフリップフロップ404のライトイネーブル端子WEに誤ったライトイネーブル信号FF2WEが接続されていれば、第2のフリップフロップ404の出力信号FF2WOにX信号が伝播してしまい、検証対象回路402の動作不具合が生じる。
ここで、図11を、図4(A)のNサイクルのマルチサイクルパスのタイミングチャートと比較する。図4(A)において、第2のフリップフロップ104の入力信号FF2DIは、サイクル1〜Nのどこかの時点で信号が変化する。これは、サイクル1〜N−1では、入力信号FF2DIは不定値Xであることを意味する。また、入力信号FF2DIは、サイクルNでは新しい値に確定している。
一方で、図11及び図4(A)のタイミングチャートと比較すると、クロックCLKの立ち上がりタイミングにおける第2のフリップフロップ104及び404の動作は、両者で一致している。すなわち、本実施形態のシミュレーション装置で得られるタイミングチャートは、Nサイクルのマルチサイクルパスで期待される動作とまったく同じになっていることが分かる。
図12は、本実施形態によるシミュレーション装置のシミュレーション方法を示すフローチャートである。本実施形態(図12)は、第1の実施形態(図6)に対して、マルチサイクル箇所情報601の代わりにリスト1201を用いる点が異なる。また、テストベンチ602は、図10のテストベンチ401に対応する。以下、本実施形態が第1の実施形態と異なる点を説明する。
リスト1201は、マルチサイクル信号名(例えば信号S)及びその信号の有効/無効を示す信号(例えばライトイネーブル信号FF2WE)を含み、設計者により設定される。
ステップ605では、シミュレーション装置は、図10に示すように、リスト1201及びテストベンチ602を基に、マルチサイクル検証部414の設計データを生成し、指定箇所にマルチサイクル検証部414を搭載する。次に、ステップ606では、シミュレーション装置は、図11に示すように、テストベンチ(マルチサイクル検証部414を含む)602及び検証パタン603を基に遅延を含まない論理シミュレーションを行い、シミュレーション結果607を出力する。
ステップ609では、シミュレーション装置は、シミュレーション結果607と期待値608とを比較する。もし、シミュレーション結果607と期待値608とが異なれば、マルチサイクル箇所の動作が期待通りでないことを意味するので、ステップ611へ進む。マルチサイクルパスの動作がおかしい理由としては、ライトイネーブル信号FF2WEの動作サイクルが期待通りでない、等の理由が挙げられる。その場合、ステップ612において、シミュレーション装置は、入力情報600であったリスト1201、検証パタン603、検証対象回路(論理回路)402を見直し、検証対象回路(論理回路)402を修正する。修正後、シミュレーション結果1207と期待値608とが一致するまで、図12の処理を繰り返す。
本実施形態のシミュレーション装置により、信号FF2DIは、ライトイネーブル信号FF2WEがハイレベルを示す間でのみ値が確定する。もし第2のフリップフロップ404のライトイネーブル端子WEとライトイネーブル信号FF2WEとの接続又はライトイネーブル信号FF2WEの動作が間違っていた場合には、第2のフリップフロップ404に不定値Xが取り込まれ、信号FF2DOが不定値Xになる。したがって、シミュレーション結果607が期待値608と異なる結果となり、検証対象回路402の不備を発見することができる。
もし、シミュレーション結果607と期待値608とが同じであれば、ステップ610に進み、シミュレーション装置は、以下の結論を判断することができる。すなわち、第1に、マルチサイクル箇所の遅延を考慮した論理動作が正しいことが検証される。第2に、入力情報600として使用したリスト1201が正しいと言える。
以上のように、第1〜第3の実施形態によれば、設計初期段階(RTL段階)でマルチサイクルパスを検証することができる。背景技術ではマルチサイクルパスの動作が正しいかを確かめるには、論理検証以降の開発工程である配線遅延・ゲート遅延を含んだゲートレベル・シミュレーションが必要であったが、本実施形態のシミュレーション装置を使用することで、これらを回路設計初期段階のRTLで確かめることができる。
また、本実施形態は、網羅的にマルチサイクルパスを検証することができる。本実施形態は、マルチサイクルパスの検証において問題であった「データ遅延が一定値に固定されている」、「複数回シミュレーションを実行する必要がある」といった問題もなく、1度のシミュレーションでNサイクルのマルチサイクルパスの動作と等価な動作をRTL検証で実施することができる。
また、本実施形態は、設計者が意図して作ったマルチサイクルパスの妥当性を確認することができる。本実施形態を利用することで、回路設計者により規定されたマルチサイクルパスにおいて、回路設計者がマルチサイクルパスとして規定している箇所が、本当にマルチサイクルとして扱うことができるかを確認することができる。
特に、第2の実施形態の場合には、マルチサイクルパスの検証対象回路402としての動作の保障だけでなく、タイミング制約情報901の妥当性も確認することができる点は効果として大きい。
また、第2の実施形態により検証されたタイミング制約情報901は、論理検証以降の開発フローである論理合成や、配置配線や静的タイミング検証(STA)の際に標準的な入力情報として利用されることで、配置配線後に行われるゲートレベル・シミュレーションでの動作も設計初期段階で保障することができる。これは、タイミング制約情報901の間違いによる設計の手戻りを防ぐことにもなり、設計効率が大幅に向上する。
第1〜第3の実施形態のシミュレーション装置は、クロック信号に同期してNサイクルのマルチサイクルパスの動作をする論理回路を含む検証対象回路402の設計データをシミュレーションするシミュレーション装置であって、前記検証対象回路402内のマルチサイクル箇所の信号に代えて不定値信号(X信号)を選択的に供給するマルチサイクル検証回路(マルチサイクル検証部)414の設計データを生成する設計データ生成手段(図6等のステップ605)と、前記検証対象回路402の設計データ及び前記マルチサイクル検証回路414の設計データを基に遅延を含まない論理シミュレーションを行う論理シミュレーション手段(図6等のステップ606)と、前記論理シミュレーションによる前記検証対象回路の信号607と前記検証対象回路の期待値の信号608とを比較する比較手段(図6等のステップ609)とを有する。
図7では、前記マルチサイクル検証回路414は、前記検証対象回路402内のマルチサイクル箇所の信号の変化を検出する信号変化検出回路(信号変化観測部)715を有し、前記信号の変化を検出した後、1≦M<Nを満たすMサイクルの間、前記検証対象回路402内のマルチサイクル箇所の信号に代えて不定値信号を供給する。
また、図7では、前記マルチサイクル検証回路414は、前記信号変化検出回路715により信号の変化が検出されるとカウントを開始するカウンタCNTを有する。
また、図7では、前記マルチサイクル検証回路414は、前記カウンタCNTのカウント値に応じて、前記Mサイクルの間に前記不定値信号を選択し、それ以外のサイクルでは前記マルチサイクル箇所の信号を選択し、前記マルチサイクル箇所の信号の出力先(例えば第2のフリップフロップ404の入力端子DI)に出力するセレクタ718を有する。
図9のステップ605では、前記設計データ生成手段は、SDCファイル(タイミング制約情報)901内のマルチサイクル箇所情報を基に前記マルチサイクル検証回路の設計データを生成する。
図10では、前記マルチサイクル検証回路414は、前記検証対象回路402内のマルチサイクル箇所の信号の有効/無効を示す制御信号に応じて、前記検証対象回路402内のマルチサイクル箇所の信号に代えて不定値信号を供給する。例えば、前記制御信号は、ライトイネーブル信号FF2WEである。
また、図10では、前記検証対象回路402内の論理回路は、前記マルチサイクル箇所の信号S及び前記ライトイネーブル信号FF2WEを入力するフリップフロップ404を有する。
前記検証対象回路402の設計データ及び前記マルチサイクル検証回路414の設計データは、遅延のない論理シミュレーションを行うのであれば、RTL設計データでもネットリスト設計データでもよいが、RTL設計データであることが好ましい。
第1〜第3の実施形態によれば、Nサイクルのマルチサイクルパスの動作をする論理回路の検証を、回路設計初期段階で簡単な方法で実施することができる。また、クロック同期の論理回路において、回路設計者がマルチサイクルパスとして規定している箇所が、本当にマルチサイクルとして扱うことができるかを確認することができる。
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
本発明の実施形態は、例えば以下のように種々の適用が可能である。
(付記1)
クロック信号に同期してNサイクルのマルチサイクルパスの動作をする論理回路を含む検証対象回路の設計データをシミュレーションするシミュレーション装置であって、
前記検証対象回路内のマルチサイクル箇所の信号に代えて不定値信号を選択的に供給するマルチサイクル検証回路の設計データを生成する設計データ生成手段と、
前記検証対象回路の設計データ及び前記マルチサイクル検証回路の設計データを基に遅延を含まない論理シミュレーションを行う論理シミュレーション手段と、
前記論理シミュレーションによる前記検証対象回路の信号と前記検証対象回路の期待値の信号とを比較する比較手段と
を有することを特徴とするシミュレーション装置。
(付記2)
前記マルチサイクル検証回路は、前記検証対象回路内のマルチサイクル箇所の信号の変化を検出する信号変化検出回路を有し、前記信号の変化を検出した後、1≦M<Nを満たすMサイクルの間、前記検証対象回路内のマルチサイクル箇所の信号に代えて不定値信号を供給することを特徴とする付記1記載のシミュレーション装置。
(付記3)
前記マルチサイクル検証回路は、前記信号変化検出回路により信号の変化が検出されるとカウントを開始するカウンタを有することを特徴とする付記2記載のシミュレーション装置。
(付記4)
前記マルチサイクル検証回路は、前記カウンタのカウント値に応じて、前記Mサイクルの間に前記不定値信号を選択し、それ以外のサイクルでは前記マルチサイクル箇所の信号を選択し、前記マルチサイクル箇所の信号の出力先に出力するセレクタを有することを特徴とする付記3記載のシミュレーション装置。
(付記5)
前記設計データ生成手段は、SDCファイル内のマルチサイクル箇所情報を基に前記マルチサイクル検証回路の設計データを生成することを特徴とする付記1記載のシミュレーション装置。
(付記6)
前記マルチサイクル検証回路は、前記検証対象回路内のマルチサイクル箇所の信号の有効/無効を示す制御信号に応じて、前記検証対象回路内のマルチサイクル箇所の信号に代えて不定値信号を供給することを特徴とする付記1記載のシミュレーション装置。
(付記7)
前記制御信号は、ライトイネーブル信号であることを特徴とする付記6記載のシミュレーション装置。
(付記8)
前記検証対象回路内の論理回路は、前記マルチサイクル箇所の信号及び前記ライトイネーブル信号を入力するフリップフロップを有することを特徴とする付記7記載のシミュレーション装置。
(付記9)
前記検証対象回路の設計データは、RTL設計データであることを特徴とする付記1記載のシミュレーション装置。
(付記10)
クロック信号に同期してNサイクルのマルチサイクルパスの動作をする論理回路を含む検証対象回路の設計データをシミュレーションするシミュレーション方法であって、
前記検証対象回路内のマルチサイクル箇所の信号に代えて不定値信号を選択的に供給するマルチサイクル検証回路の設計データを生成する設計データ生成ステップと、
前記検証対象回路の設計データ及び前記マルチサイクル検証回路の設計データを基に遅延を含まない論理シミュレーションを行う論理シミュレーションステップと、
前記論理シミュレーションによる前記検証対象回路の信号と前記検証対象回路の期待値の信号とを比較する比較ステップと
を有することを特徴とするシミュレーション方法。
(付記11)
クロック信号に同期してNサイクルのマルチサイクルパスの動作をする論理回路を含む検証対象回路の設計データをシミュレーションするプログラムであって、
前記検証対象回路内のマルチサイクル箇所の信号に代えて不定値信号を選択的に供給するマルチサイクル検証回路の設計データを生成する設計データ生成ステップと、
前記検証対象回路の設計データ及び前記マルチサイクル検証回路の設計データを基に遅延を含まない論理シミュレーションを行う論理シミュレーションステップと、
前記論理シミュレーションによる前記検証対象回路の信号と前記検証対象回路の期待値の信号とを比較する比較ステップと
をコンピュータに実行させるためのプログラム。
本発明の第1の実施形態によるシミュレーション装置のテストベンチを示す概念図である。 2つのフリップフロップとその間に接続された組合せ回路を含むクロック同期論理回路をシミュレーションするためのテストベンチを示す図である。 検証対象回路の動作例を示すタイミングチャートである。 図4(A)は図2の検証対象回路がNサイクルのマルチサイクルパスである場合のタイミングチャートであり、図4(B)はマルチサイクルパスをRTLで論理検証を行った場合のタイミングチャートである。 本発明の第1の実施形態によるシミュレーション装置の動作例を示すタイミングチャートである。 本発明の第1の実施形態によるシミュレーション装置のシミュレーション方法を示すフローチャートである。 本発明の第2の実施形態によるシミュレーション装置のテストベンチを示す概念図である。 本発明の第2の実施形態によるシミュレーション装置の動作例を示すタイミングチャートである。 本発明の第2の実施形態によるシミュレーション装置のシミュレーション方法を示すフローチャートである。 本発明の第3の実施形態によるシミュレーション装置のテストベンチを示す概念図である。 本発明の第3の実施形態によるシミュレーション装置の動作例を示すタイミングチャートである。 本発明の第3の実施形態によるシミュレーション装置のシミュレーション方法を示すフローチャートである。 本発明の第1の実施形態によるシミュレーション装置を構成するコンピュータのハードウェア構成例を示すブロック図である。
符号の説明
401 テストベンチ
402 検証対象回路
403 第1のフリップフロップ
404 第2のフリップフロップ
412 組合せ回路
414 マルチサイクル検証部
415 制御部
416 X信号出力部
417 スイッチ

Claims (5)

  1. クロック信号に同期してNサイクルのマルチサイクルパスの動作をする論理回路を含む検証対象回路の設計データをシミュレーションするシミュレーション装置であって、
    前記検証対象回路内のマルチサイクル箇所の信号に代えて不定値信号を選択的に供給するマルチサイクル検証回路の設計データを生成する設計データ生成手段と、
    前記検証対象回路の設計データ及び前記マルチサイクル検証回路の設計データを基に遅延を含まない論理シミュレーションを行う論理シミュレーション手段と、
    前記論理シミュレーションによる前記検証対象回路の信号と前記検証対象回路の期待値の信号とを比較する比較手段とを有し、
    前記マルチサイクル検証回路は、前記検証対象回路内のマルチサイクル箇所の信号の変化を検出する信号変化検出回路を有し、前記信号の変化を検出した後、1≦M<Nを満たすMサイクルの間、前記検証対象回路内のマルチサイクル箇所の信号に代えて不定値信号を供給することを特徴とするシミュレーション装置。
  2. 前記マルチサイクル検証回路は、前記信号変化検出回路により信号の変化が検出されるとカウントを開始するカウンタを有することを特徴とする請求項記載のシミュレーション装置。
  3. 前記マルチサイクル検証回路は、前記カウンタのカウント値に応じて、前記Mサイクルの間に前記不定値信号を選択し、それ以外のサイクルでは前記マルチサイクル箇所の信号を選択し、前記マルチサイクル箇所の信号の出力先に出力するセレクタを有することを特徴とする請求項記載のシミュレーション装置。
  4. クロック信号に同期してNサイクルのマルチサイクルパスの動作をする論理回路を含む検証対象回路の設計データをシミュレーションするシミュレーション方法であって、
    前記検証対象回路内のマルチサイクル箇所の信号に代えて不定値信号を選択的に供給するマルチサイクル検証回路の設計データを生成する設計データ生成ステップと、
    前記検証対象回路の設計データ及び前記マルチサイクル検証回路の設計データを基に遅延を含まない論理シミュレーションを行う論理シミュレーションステップと、
    前記論理シミュレーションによる前記検証対象回路の信号と前記検証対象回路の期待値の信号とを比較する比較ステップとを有し、
    前記マルチサイクル検証回路は、前記検証対象回路内のマルチサイクル箇所の信号の変化を検出する信号変化検出回路を有し、前記信号の変化を検出した後、1≦M<Nを満たすMサイクルの間、前記検証対象回路内のマルチサイクル箇所の信号に代えて不定値信号を供給することを特徴とするシミュレーション方法。
  5. クロック信号に同期してNサイクルのマルチサイクルパスの動作をする論理回路を含む検証対象回路の設計データをシミュレーションするプログラムであって、
    前記検証対象回路内のマルチサイクル箇所の信号に代えて不定値信号を選択的に供給するマルチサイクル検証回路の設計データを生成する設計データ生成ステップと、
    前記検証対象回路の設計データ及び前記マルチサイクル検証回路の設計データを基に遅延を含まない論理シミュレーションを行う論理シミュレーションステップと、
    前記論理シミュレーションによる前記検証対象回路の信号と前記検証対象回路の期待値の信号とを比較する比較ステップとをコンピュータに実行させるためのプログラムであって、
    前記マルチサイクル検証回路は、前記検証対象回路内のマルチサイクル箇所の信号の変化を検出する信号変化検出回路を有し、前記信号の変化を検出した後、1≦M<Nを満たすMサイクルの間、前記検証対象回路内のマルチサイクル箇所の信号に代えて不定値信号を供給することを特徴とするプログラム
JP2008074077A 2008-03-21 2008-03-21 シミュレーション装置、シミュレーション方法及びプログラム Expired - Fee Related JP5040758B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008074077A JP5040758B2 (ja) 2008-03-21 2008-03-21 シミュレーション装置、シミュレーション方法及びプログラム
US12/405,617 US8504347B2 (en) 2008-03-21 2009-03-17 Simulation apparatus, simulation method, and program to perform simulation on design data of a target circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008074077A JP5040758B2 (ja) 2008-03-21 2008-03-21 シミュレーション装置、シミュレーション方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2009230392A JP2009230392A (ja) 2009-10-08
JP5040758B2 true JP5040758B2 (ja) 2012-10-03

Family

ID=41089750

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008074077A Expired - Fee Related JP5040758B2 (ja) 2008-03-21 2008-03-21 シミュレーション装置、シミュレーション方法及びプログラム

Country Status (2)

Country Link
US (1) US8504347B2 (ja)
JP (1) JP5040758B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10409450B2 (en) 2007-09-07 2019-09-10 Visualcue Technologies, LLC System for displaying a system status for a plurality of objects of interest
WO2009033010A1 (en) 2007-09-07 2009-03-12 Visualcue Technologies Llc Advanced data visualization solutions in high-volume data analytics
US10216359B2 (en) 2007-09-07 2019-02-26 Visualcue Technologies, LLC System for displaying a status of an object of interest
JP2015166981A (ja) * 2014-03-04 2015-09-24 株式会社ソシオネクスト レイアウト検証方法、検証装置、及び検証プログラム
JP6404658B2 (ja) * 2014-09-26 2018-10-10 Necスペーステクノロジー株式会社 マルチサイクル数自律判定装置及びマルチサイクル数自律判定方法
CN109977437B (zh) * 2017-12-27 2023-01-03 长鑫存储技术有限公司 晶体管级电路的验证方法、装置、设备及计算机可读存储介质
CN118297013B (zh) * 2024-06-06 2024-09-10 苏州旗芯微半导体有限公司 仿真测试辅助电路、仿真设计单元和仿真测试电路

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5751592A (en) * 1993-05-06 1998-05-12 Matsushita Electric Industrial Co., Ltd. Apparatus and method of supporting functional design of logic circuit and apparatus and method of verifying functional design of logic circuit
US6053949A (en) * 1996-09-20 2000-04-25 Matsushita Electric Industrial Co., Ltd. Simulator of logic circuit and simulation method
US7031897B1 (en) * 1999-09-24 2006-04-18 Intrinsity, Inc. Software modeling of logic signals capable of holding more than two values
JP2001273351A (ja) 2000-03-28 2001-10-05 Toshiba Corp マルチサイクルパス検証装置、検証方法及び検証プログラムを記憶したコンピュータ読み取り可能な記憶媒体
JP2006318121A (ja) 2005-05-11 2006-11-24 Nec Access Technica Ltd 遅延付加rtl論理シミュレーション方法および装置
JP2007241836A (ja) * 2006-03-10 2007-09-20 Fujitsu Ltd マルチサイクルパス検証方法
US20090070619A1 (en) * 2006-06-05 2009-03-12 Shinichi Gotoh Multi-cycle path information verification method and multi-cycle path information verification device

Also Published As

Publication number Publication date
JP2009230392A (ja) 2009-10-08
US8504347B2 (en) 2013-08-06
US20090240484A1 (en) 2009-09-24

Similar Documents

Publication Publication Date Title
JP5040758B2 (ja) シミュレーション装置、シミュレーション方法及びプログラム
JP4989629B2 (ja) 複製ロジック及びトリガロジックを用いたデバッグのための方法及びシステム
US8365110B2 (en) Automatic error diagnosis and correction for RTL designs
US7231627B2 (en) Merging a hardware design language source file with a separate assertion file
JP4251964B2 (ja) 検証装置、検証方法およびプログラム
EP2875454A1 (en) Relative timing architecture
JP2005535965A (ja) 複製されたロジックを使用するデバッグの方法とシステム
JP2006048525A (ja) シミュレーション方法
JP4147842B2 (ja) 論理検証システム及び方法、論理コーン抽出装置及び方法、論理検証及び論理コーン抽出プログラム
CN112069763A (zh) 修正电路的方法
US7454726B2 (en) Technique for generating input stimulus to cover properties not covered in random simulation
JP2008210004A (ja) 検証シナリオ生成装置,方法,およびプログラム,並びに検証装置
US7930609B2 (en) Apparatus and method for verifying target circuit
US8091049B2 (en) Integrated single spice deck sensitization for gate level tools
JP2009009318A (ja) 非同期回路検証用のプログラムデータ生成方法、非同期回路検証方法及び非同期回路検証装置
CN115204104A (zh) 计算装置、其操作方法和计算机程序产品
JPWO2006025412A1 (ja) 論理検証方法、論理モジュールデータ、デバイスデータおよび論理検証装置
JP4881769B2 (ja) 半導体集積回路設計支援装置、半導体集積回路設計支援方法、半導体集積回路設計支援プログラム
JP2008197883A (ja) Lsi解析プログラム、該プログラムを記録した記録媒体、lsi解析装置、およびlsi解析方法
US8160859B2 (en) Medium storing logic simulation program, logic simulation apparatus, and logic simulation method
JP2007241836A (ja) マルチサイクルパス検証方法
JP2008250583A (ja) レイアウト設計装置及びレイアウト方法
JP2011034517A (ja) 等価性検証装置、そのデータ処理方法、およびプログラム
JP5729546B2 (ja) 半導体設計支援装置、タイミング制約生成方法、およびプログラム
JP2008226069A (ja) 論理回路、半導体設計支援装置および半導体設計支援方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101129

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120306

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120327

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120522

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: 20120612

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120625

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150720

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees