JP4763629B2 - 検証装置、検証方法及びプログラム - Google Patents

検証装置、検証方法及びプログラム Download PDF

Info

Publication number
JP4763629B2
JP4763629B2 JP2007040014A JP2007040014A JP4763629B2 JP 4763629 B2 JP4763629 B2 JP 4763629B2 JP 2007040014 A JP2007040014 A JP 2007040014A JP 2007040014 A JP2007040014 A JP 2007040014A JP 4763629 B2 JP4763629 B2 JP 4763629B2
Authority
JP
Japan
Prior art keywords
delay
unit
circuit
simulation
pattern
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
JP2007040014A
Other languages
English (en)
Other versions
JP2008204199A (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 JP2007040014A priority Critical patent/JP4763629B2/ja
Priority to US12/017,764 priority patent/US7840924B2/en
Publication of JP2008204199A publication Critical patent/JP2008204199A/ja
Application granted granted Critical
Publication of JP4763629B2 publication Critical patent/JP4763629B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/30Marginal testing, e.g. by varying supply voltage
    • G01R31/3016Delay or race condition test, e.g. race hazard test
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318342Generation of test inputs, e.g. test vectors, patterns or sequences by preliminary fault modelling, e.g. analysis, simulation
    • G01R31/318357Simulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/0008Synchronisation information channels, e.g. clock distribution lines
    • H04L7/0012Synchronisation information channels, e.g. clock distribution lines by comparing receiver clock with transmitter clock

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Description

本発明は検証装置、検証方法及びプログラムに関し、特に、異なる複数のクロック信号を用いた回路を検証する検証装置、検証方法及びプログラムに関する。
半導体集積回路の高機能化、高集積化に伴い、シミュレーションにより半導体集積回路の動作検証を精度よく、短時間で行うことが必要となっている。
さらに、通信系の回路などでは、送信側のクロック信号と受信側のクロック信号が異なる場合があり、通常の論理検証に加えて、互いに異なるクロック信号により動作する回路部同士が接続されたクロック載せ替え部(以下、CDC(Clock Domain Crossing)部という。)におけるメタスタビリティの影響を検証することが重要になっている。
図12は、メタスタビリティの例を示す図である。
ここでは、フリップフロップ回路(以下FFと略す。)500に入力されるクロック信号CK及び入力信号Dと、出力信号Qの関係を図示している。タイミングチャートにおけるC1,C2,C3,C4は、クロック信号CKの1クロック期間を示している。
例えば、期間C2のクロック信号CKの立ち上がりの直前に入力信号Dが変化した場合、正常であれば期間C2に出力信号Qが立ち上がるが、1クロック期間遅れて期間C3で立ち上がる場合が発生する。つまり、データ伝搬の遅延が発生する。このように、FF500の入力信号Dが、クロック信号CKの立ち上がりの直前や直後に変化した場合に、出力信号Qが不安定な状態になることをメタスタビリティという。
CDC部においては、例えば、2つの異なるクロック信号の立ち上がりが近づいているタイミングで、入力信号が変化すると、メタスタビリティが発生しやすくなる。
図13、図14は、CDC部におけるメタスタビリティによる障害発生の例を説明する図である。
ここでは、2種類のクロック信号clk1,clk2で動作する論理回路を示している。
入力信号D1は、AND回路501の一方の入力端子及びFF502に入力される。そして、FF502の出力信号がFF503に入力され、FF503の出力信号(D1t)がFF504に入力されるように、FF502,503,504が直列に接続されている。
一方、入力信号D2は、AND回路501の他方の入力端子に入力される。AND回路501の出力信号はFF505に入力される。そしてFF505の出力信号がFF506に入力され、FF506の出力信号(D2t)がFF507に入力されるように、FF505,506,507が直列に接続されている。
FF504,507の出力信号は、それぞれAND回路508に入力される。AND回路508の出力信号はFF509に入力される。そしてFF509の出力が、この論理回路の出力信号OUTとなっている。
この論理回路で、FF502,505がクロック信号clk1で動作し、FF503,504,506,507,509がクロック信号clk2で動作する。互いに異なるクロック信号clk1,clk2により動作するFF502とFF503、及びFF505とFF506とが接続された部分がCDC部510,511であり、メタスタビリティが発生する可能性がある。
図14のように、例えば、期間C11でのクロック信号clk1の立ち上がりで入力信号D1が変化して、その変化はクロック信号clk1の次の立ち上がりに同期してFF502,505に取り込まれる。FF503,506は、期間C21のクロック信号clk2の立ち上がりに同期して、FF502,505の出力信号が入力されるが、FF502,505の出力信号の変化は、クロック信号clk2の立ち上がりの直前となるため、メタスタビリティが発生する可能性がある。
例えば、図14のように、FF503の出力である信号D1tが1クロックサイクル分遅延して期間C22のクロック信号clk2の立ち上がりに同期して変化する場合が発生する。これによって、例えば、CDC部511のFF506の出力である信号D2tは正常に期間C21のクロック信号clk2の立ち上がりに同期して変化した場合、期間C23でアサートされる出力信号OUTがアサートされないという障害が発生する場合があった。
このようなメタスタビリティの影響を検証するために、従来、CDC部で強制的に信号遅延を発生させて、検証対象となる回路が、メタスタビリティに耐性があるか否かを検証する手法があった(例えば、特許文献1、2参照。)。
図15は、従来の検証装置の概略の構成を示す図である。
従来の検証装置600において、検証対象の回路の情報を格納する回路DB(データベース)601と、検証対象の回路からCDC部を検出するCDC部検出部602と、検出されたCDC部の情報を格納するCDC部DB603と、CDC部にメタスタビリティ発生時に生じる信号遅延を強制的に発生させる遅延発生器をCDC部に組み込んだ回路を生成する遅延発生器組み込み部604と、遅延発生器付回路を格納する遅延発生器付回路DB605と、遅延発生器付回路に所定のシミュレーションパターン(以下シナリオと呼ぶ場合もある。)を入力して検証を行う検証部606と、複数のシナリオを格納するシナリオDB607と、を有している。
図16は、従来の検証方法を示すフローチャートである。
CDC部検出部602は、回路DB601から検出対象の回路に含まれるCDC部を検出する(ステップS90)。次に、遅延発生器組み込み部604は、検出されたCDC部に遅延発生器を組み込んだ回路を生成する(ステップS91)。そして検証部606は、シナリオDB607に格納された複数のシナリオを全て検証し終えたか否かを判定し(ステップS92)、検証し終えた場合には処理を終了する。未検証のシナリオがある場合にはシナリオDB607に格納された複数のシナリオから、特定のシナリオを選択する(ステップS93)。
検証部606は、シナリオを選択すると、回路に含まれるCDC部をランダムに選択し、そこに組み込まれた遅延発生器で、メタスタビリティ発生時に生じる遅延を強制的に発生させてシミュレーションを行う(ステップS94)。検証部606は、シミュレーションの結果、障害が発生したか否かを判定し(ステップS95)、障害が発生した場合には、例えばユーザによる回路修正(ステップS96)を経た後、再びステップS90からの処理を繰り返す。障害が発生しない場合には、所定回数のシミュレーションが終了したか否かを判定し(ステップS97)、終了した場合には、再びステップS92の処理に戻り、別のシナリオでシミュレーションを行う。終了していない場合には、ステップS94の処理に戻り、別のCDC部をランダムに選択して、遅延を発生させてシミュレーションを行う。
従来は、以上のような処理を行うことで、メタスタビリティの影響を考慮した検証を行っていた。
また、特許文献3には、メタスタビリティの発生する可能性のある順序回路を指定して、指定された順序回路に対してメタスタビリティ時の遅延値を用い、指定されなかった順序回路に対して非メタスタビリティ時の遅延値を用いて、遅延解析を行うことが開示されている。
特開2005−284426号公報 特開2001−229211号公報 特開2005−31890号公報
しかし、メタスタビリティの影響は、回路内部で解決する場合も多く、回路の出力信号(外部ピン)に影響を与えない場合もあった。
図17は、回路の出力信号に影響を与えない遅延発生の例を示す図である。
ここでは、図13で示した回路において、所定のシナリオでシミュレーションを行った場合の例を示すタイミングチャートである。
例えば、入力信号D1がL(Low)レベルで固定されている場合、図13のAND回路508の一方の入力端子はLレベルで固定されている。そのため、メタスタビリティが発生して、図17のように、出力信号D2tが1クロックサイクル分遅延してAND回路508の他方の入力端子の信号が変化しても、出力信号OUTはLレベルのままである。つまり、このようなシナリオの場合、回路はメタスタビリティの影響を受けない。すなわち、このようなシナリオに対してメタスタビリティを考慮した検証を行うことは無駄である。
しかし、従来の検証手法では、上記のようなメタスタビリティの影響が出力信号に現われないシナリオに対しても検証を行っていたので、検証時間が長くなってしまう問題があった。
本発明はこのような点に鑑みてなされたものであり、短い検証時間でメタスタビリティを考慮した回路検証が可能な検証装置を提供することを目的とする。
また、本発明の他の目的は、短い検証時間でメタスタビリティを考慮した回路検証が可能な検証方法を提供することである。
また、本発明の他の目的は、短い検証時間でメタスタビリティを考慮した回路検証が可能なプログラムを提供することである。
本発明では上記問題を解決するために、異なる複数のクロック信号を用いた回路を検証する検証装置において、図1に示すように、回路から、互いに異なるクロック信号により動作する回路部同士が接続されたCDC部を検出するCDC部検出部102と、CDC部に、信号遅延の発生または非発生を選択可能な遅延発生器を組み込む遅延発生器組み込み部104と、信号遅延を非発生とした遅延発生器組み込み後の回路に対して、所定のシナリオを用いてシミュレーションを実行するシミュレーション実行部107と、実行されたシミュレーション結果と遅延発生器組み込み後の回路とを入力して、回路の出力信号に影響を与える信号遅延の遅延発生パターンを生成する遅延発生パターン生成部109と、生成された遅延発生パターンに応じて遅延発生器による信号遅延の発生または非発生を選択して回路の動作を検証する検証部111と、を有することを特徴とする検証装置100が提供される。
上記の構成によれば、CDC部検出部102は回路から、互いに異なるクロック信号により動作する回路部同士が接続されたCDC部を検出し、遅延発生器組み込み部104は検出したCDC部に、信号遅延の発生または非発生を選択可能な遅延発生器を組み込み、シミュレーション実行部107は信号遅延を非発生とした遅延発生器組み込み後の回路に対して、所定のシナリオを用いてシミュレーションを実行し、遅延発生パターン生成部109は実行されたシミュレーション結果と遅延発生器組み込み後の回路とを入力して、回路の出力信号に影響を与える信号遅延の遅延発生パターンを生成し、検証部111は生成された遅延発生パターンに応じて遅延発生器による信号遅延の発生または非発生を選択して回路の動作を検証する。
また、異なる複数のクロック信号を用いた回路を検証する検証方法において、CDC部検出部が、前記回路から、互いに異なるクロック信号により動作する回路部同士が接続されたCDC部を検出するステップと、遅延発生器組み込み部が、前記CDC部に、信号遅延の発生または非発生を選択可能な遅延発生器を組み込むステップと、シミュレーション実行部が、前記信号遅延を非発生とした前記遅延発生器組み込み後の前記回路に対して、所定のシミュレーションパターンを用いてシミュレーションを実行するステップと、遅延発生パターン生成部が、実行されたシミュレーション結果と前記遅延発生器組み込み後の前記回路とを入力して、前記回路の出力信号に影響を与える前記信号遅延の遅延発生パターンを生成するステップと、検証部が、生成された前記遅延発生パターンに応じて前記遅延発生器による前記信号遅延の発生または非発生を選択して前記回路の動作を検証するステップと、を有することを特徴とする検証方法が提供される。
上記の方法によれば、CDC部検出部は、回路から、互いに異なるクロック信号により動作する回路部同士が接続されたCDC部を検出し、遅延発生器組み込み部は、CDC部に、信号遅延の発生または非発生を選択可能な遅延発生器を組み込み、シミュレーション実行部は、信号遅延を非発生とした遅延発生器組み込み後の回路に対して、所定のシミュレーションパターンを用いてシミュレーションを実行し、遅延発生パターン生成部は、実行されたシミュレーション結果と遅延発生器組み込み後の回路とを入力して、回路の出力信号に影響を与える信号遅延の遅延発生パターンを生成し、検証部は、生成された遅延発生パターンに応じて遅延発生器による信号遅延の発生または非発生を選択して回路の動作を検証する。
また、異なる複数のクロック信号を用いた回路を検証する処理をコンピュータに機能させるプログラムにおいて、コンピュータを、前記回路から、互いに異なるクロック信号により動作する回路部同士が接続されたCDC部を検出するCDC部検出手段、前記CDC部に、信号遅延の発生または非発生を選択可能な遅延発生器を組み込む遅延発生器組み込み手段、前記信号遅延を非発生とした前記遅延発生器組み込み後の前記回路に対して、所定のシミュレーションパターンを用いてシミュレーションを実行するシミュレーション実行手段、実行されたシミュレーション結果と前記遅延発生器組み込み後の前記回路とを入力して、前記回路の出力信号に影響を与える前記信号遅延の遅延発生パターンを生成する遅延発生パターン生成手段、生成された前記遅延発生パターンに応じて前記遅延発生器による前記信号遅延の発生または非発生を選択して前記回路の動作を検証する検証手段、として機能させることを特徴とするプログラムが提供される。
上記の構成によれば、CDC部検出手段は回路から、互いに異なるクロック信号により動作する回路部同士が接続されたCDC部を検出し、遅延発生器組み込み手段はクロック載せ替え部に、信号遅延の発生または非発生を選択可能な遅延発生器を組み込み、シミュレーション実行手段は信号遅延を非発生とした遅延発生器組み込み後の回路に対して、所定のシミュレーションパターンを用いてシミュレーションを実行し、遅延発生パターン生成手段は実行されたシミュレーション結果と遅延発生器組み込み後の回路とを入力して、回路の出力信号に影響を与える信号遅延の遅延発生パターンを生成し、検証手段は生成された遅延発生パターンに応じて遅延発生器による信号遅延の発生または非発生を選択して回路の動作を検証する。
本発明は、回路から検出されたCDC部において、回路の出力信号に影響のある遅延発生パターンを生成して、メタスタビリティに対する回路の耐性を検証することができるので、回路内部で解決してしまうようなメタスタビリティに関する検証を行わずにすみ、検証時間を大幅に短縮することができる。
以下、本発明の実施の形態を図面を参照して詳細に説明する。
図1は、第1の実施の形態の検証装置の構成を示す機能ブロック図である。
第1の形態の検証装置100は、回路設計によって生成された回路データに対して検証を行うものであり、検証対象の回路を格納する回路DB101と、検証対象の回路からCDC部を検出するCDC部検出部102と、検出されたCDC部を格納するCDC部DB103を有する。また、メタスタビリティ発生時に生じる信号遅延を強制的に発生させたり、非発生とすることを選択可能な遅延発生器をCDC部に組み込む、遅延発生器組み込み部104と、CDC部に遅延発生器を組み込んだ検証対象の回路(遅延発生器付回路)を格納する遅延発生器付回路DB105と、複数のシナリオを格納するシナリオDB106を有する。
さらに、第1の実施の形態の検証装置100では、シミュレーション実行部107、メタスタビリティ発生可能CDC部抽出部108、遅延発生パターン生成部109、遅延発生パターンDB110、及び検証部111を有している。
シミュレーション実行部107は、シナリオDB106に格納されたシナリオを用いて、遅延発生器付回路のシミュレーションを行う。
メタスタビリティ発生可能CDC部抽出部108は、シミュレーション実行部107でのシミュレーション結果を基に、遅延発生器付回路の複数のCDC部の中からメタスタビリティが発生する可能性のあるものと、そのタイミングを抽出する。例えば、あるCDC部において、クロック信号の変化と、FFの入力値の変化が近づいているタイミングがある場合には、そこでメタスタビリティが発生する可能性があるため、そのCDC部とタイミングを抽出して、例えばリストにする。
遅延発生パターン生成部109は、実行されたシミュレーション結果と遅延発生器付回路を入力して、遅延発生器付回路の出力信号に影響を与える信号遅延の遅延発生パターンを生成する。なお、第1の実施の形態の検証装置100では、メタスタビリティ発生可能CDC部抽出部108で抽出された、メタスタビリティが発生する可能性のある複数のCDC部と、タイミングの中から、出力信号に影響を与えるような遅延発生パターンを生成する。
遅延発生パターンDB110は、遅延発生パターン生成部109で生成された遅延発生パターンを格納する。
検証部111は、シナリオを読み込んで、遅延発生パターンに応じて遅延発生器付回路の遅延発生器で遅延を発生させて、メタスタビリティによって回路に障害が発生しないかを検証する。
以下、第1の実施の形態の検証装置100の動作を説明する。
CDC部検出部102は、回路DB101に格納されている検証対象の回路からCDC部を検出し、検出したCDC部をCDC部DB103に格納する。遅延発生器組み込み部104は、CDC部DB103に格納されたCDC部を読み出して、CDC部に遅延発生器を組み込んだ回路を生成する。
図2は、検出されるCDC部と遅延発生器の例を示す回路図である。
CDC部200は、図2のように、互いに異なるクロック信号clk1,clk2によって動作するFF201,202が接続される回路部である。遅延発生器組み込み部104は、検出したCDC部200に、遅延発生選択信号によって信号遅延の発生または非発生を選択可能な遅延発生器210を組み込む。
遅延発生器210は、例えば、FF211、位相判定器212、比較器213、AND回路214、セレクタ215を有している。
FF211は、FF201の出力端子を自身の入力端子に接続しており、FF201と同様にクロック信号clk1によって動作する。これによって、FF201の出力信号を次のクロック信号の立ち上がりで取り込んで出力する。すなわち、FF211は1クロックサイクル前のFF201の出力信号を出力する。
位相判定器212は、2つのクロック信号clk1,clk2を入力して位相を判定し、クロック信号clk1,clk2の変化のタイミング(例えば、立ち上がりタイミング)が近づいている場合には、“1”を出力する。近づいていない場合には“0”を出力する。
比較器213は、FF201の出力信号とFF211の出力信号とを比較して、これらが異なる値の場合には“1”を出力する。同じ値である場合には“0”を出力する。
AND回路214は、位相判定器212及び比較器213の出力信号と、遅延発生選択信号を入力して、これらが全て“1”である場合には、“1”を出力し、何れか1つでも“0”の場合には“0”を出力する。
セレクタ215は、FF201の出力信号とFF211の出力信号とを入力し、AND回路214の出力信号が“0”の場合にはFF201の出力信号を出力し、“1”の場合にはFF211の出力信号、すなわち、FF201の出力信号を1クロックサイクル遅延させた出力信号を出力する。
このような遅延発生器210を組み込むことによって、遅延発生選択信号が“1”の場合、2つのクロック信号clk1,clk2の変化のタイミングが近づいていて、CDC部200への入力値が変化したタイミングで1クロックサイクル分の遅延を発生させることができる。
上記のような遅延発生器210を組み込んだ回路は、遅延発生器付回路DB105に格納される。
シミュレーション実行部107は、遅延発生器付回路DB105に格納された遅延発生器付回路を入力して、シナリオDB106に格納されたシナリオを選択してシミュレーションを実行する。メタスタビリティ発生可能CDC部抽出部108は、シミュレーション結果から、複数の異なるクロック信号の変化のタイミングが近づいている部分でCDC部への入力値が変化している部分など、メタスタビリティの発生の可能性があるCDC部とタイミングとを抽出する。
遅延発生パターン生成部109では、シミュレーション結果と遅延発生器付回路を入力して、図2で示したような遅延発生選択信号を“1”または“0”に変更して、複数のCDC部に対して、メタスタビリティが発生したときと同様の状況を作り出すための遅延を発生させる。そして、遅延発生器付回路の出力信号に影響のある遅延発生パターンを生成する(詳細は後述する)。このような、遅延発生パターン生成部109の機能は、公知のモデル検査法(モデル検査器)を用いて行うことができる。
なお、このとき遅延発生パターン生成部109では、全てのCDC部とタイミングとを参照して、出力信号に影響のある遅延発生パターンを生成するのではなく、メタスタビリティ発生可能CDC部抽出部108で抽出されたCDC部及びタイミングのみを参照して生成する。
生成された遅延発生パターンは遅延発生パターンDB110に格納される。
検証部111は、シミュレーション実行部107で実行したシナリオを選択して、そのシナリオに対して、遅延発生パターン生成部109にて生成した遅延発生パターンで遅延を発生させることで、遅延発生器付回路の出力信号に影響を与えるメタスタビリティへの耐性を検証する。
図3は、第1の実施の形態の検証装置の効果を模式的に示した図である。
図3(A)は、入力ピン“IN”から入力されたデータにおいて、メタスタビリティが発生する可能性のあるタイミングt1,t2,t3,t4の全ての組み合わせで、斜線で示したように遅延を発生させて検証する検証方法を示している。この場合、2通りの遅延発生パターン(メタスタビリティの発生タイミング)の場合のみに、影響を受ける外部ピン“OUT”(斜線で示している)が存在するとしても、最悪15通りの検証を行わなければならない。
これに対し、第1の実施の形態の検証装置100では、外部ピン“OUT”に影響がある遅延発生パターンのみを用いて検証を行うので、図3(B)のように2通りの検証を行えばよいことになる。
以上のように、第1の実施の形態の検証装置100では、検証対象の回路の出力信号に影響のある遅延発生パターンを生成して、メタスタビリティに対する回路の耐性を検証することができるので、回路内部で解決してしまうようなメタスタビリティに関する検証を行わずにすみ、意味のあるメタスタビリティの影響を考慮した検証が可能になる。これによって、検証時間を大幅に短縮することができる。
また、遅延発生パターンの生成の際に、全てのCDC部とタイミングとを参照して遅延発生パターンを生成するのではなく、メタスタビリティが発生する可能性があるCDC部とタイミングのみを参照して生成するので、検証時間を更に短縮することができる。
以下、第1の実施の形態の検証装置100を詳細に説明する。
図4は、第1の実施の形態の検証装置の具体的なハードウェア構成例である。
検証装置100は、例えば、コンピュータ300であり、CPU(Central Processing Unit)301、ROM(Read Only Memory)302、RAM(Random Access Memory)303、HDD(Hard Disk Drive)304、グラフィック処理部305、入力I/F(Interface)306、通信I/F307などによって構成され、これらはバス308を介して相互に接続されている。
ここで、CPU301は、ROM302や、HDD304に格納されているプログラムや、各種データに応じて各部を制御し、図1に示したCDC部検出部102、遅延発生器組み込み部104、シミュレーション実行部107、メタスタビリティ発生可能CDC部抽出部108、遅延発生パターン生成部109、検証部111などの機能を行う。
ROM302は、CPU301が実行する基本的なプログラムやデータを格納している。
RAM303は、CPU301が実行途中のプログラムや、演算途中のデータを格納している。
HDD304は、例えば、CPU301が実行するOS(Operating System)や、回路データやシナリオなどを格納する。
グラフィック処理部305には、表示装置として、例えば、ディスプレイ305aが接続されており、CPU301からの描画命令に従って、ディスプレイ305a上に、検査対象の回路図や、シミュレーション結果、検証結果などを表示する。
入力I/F306には、マウス306aやキーボード306bなどの入力装置が接続されており、マウス306aやキーボード306bを通じてユーザにより入力された情報を受信し、バス308を介してCPU301に伝送する。
通信I/F307は、例えば、企業内のLAN(Local Area Network)、WAN(Wide Area Network)や、インターネットなどのネットワークと接続して通信を行う。これによって、例えば、図1の回路DB101などの各種DBを、ネットワークを通じて共有するようにしてもよい。
次に、上記のようなハードウェア構成を有した第1の実施の形態の検証装置100の動作を具体的に説明する。
図5は、第1の実施の形態の検証装置を用いた検証方法を示すフローチャートである。
まず、CPU301は、例えば、HDD304から検出対象の回路を読み込み、その回路に含まれるCDC部を検出し、検出したCDC部を、例えば、HDD304に格納する(ステップS1)。
次に、CPU301は、シナリオDB106の全シナリオのシミュレーションが終了しているか否かを判定して(ステップS3)、未実行のシナリオがある場合にはシナリオを選択し(ステップS4)、シミュレーションを実行する(ステップS5)。
シミュレーションを実行すると、選択したシナリオに応じたシミュレーション結果が得られる。次にCPU301は、シミュレーション結果から、複数の異なるクロック信号の変化のタイミングが近づいている部分でCDC部への入力値が変化している部分など、メタスタビリティの発生の可能性があるCDC部とタイミングとを抽出する(ステップS6)。次に、CPU301は、抽出したCDC部が全て検証されたか否かを判定し(ステップS7)、全て検証が終わっていればステップS3の処理に戻る。未検証のCDC部が残っている場合には、検証するCDC部を指定する(ステップS8)。なお、ここでは未検証のCDC部を全て指定するようにしてもよい。
そして、シミュレーション結果と、指定したCDC部と抽出したタイミングを用いて、遅延発生器付回路の出力信号に影響のある遅延発生パターンを生成する(ステップS9)。CPU301は、出力信号に影響のある遅延発生パターンが生成できたか否かを判定し(ステップS10)、生成できなかった場合にはステップS7の処理に戻る。遅延発生パターンが生成できた場合には、シミュレーションを実行したシナリオを選択して、そのシナリオに対して、生成した遅延発生パターンで遅延を発生させることで、遅延発生器付回路のメタスタビリティに対する耐性を検証する(ステップS11)。CPU301は、検証の結果、障害が発生するか否かを判定し(ステップS12)、障害が発生しないことがわかった場合には指定したCDC部をマークして(ステップS13)、ステップS7の処理に戻る。検証の結果、障害が発生することがわかった場合には、例えば、CPU301の制御のもとディスプレイ305aに障害が発生する旨の警告を表示する。ユーザはこれを受けて回路を修正し、例えば、HDD304に格納する(ステップS14)。その後、ステップS1からの処理を繰り返す。
ステップS3の処理で、シナリオが全て選択されたと判定された場合には、例えば、ディスプレイ305aにシナリオを追加するか否かをユーザに選択させる表示を行い(ステップS15)、シナリオを追加する旨の入力があれば、シナリオを新たに追加した後に、ステップS3からの処理を繰り返す(ステップS16)。シナリオを追加しない場合には検証処理を終了する。
以下、ステップS9の処理である遅延発生パターンの生成処理について具体的に説明する。
出力信号に影響のある遅延発生パターンは、遅延発生器付回路と、回路の入力制約及び出力制約を基にして、モデル検査法により生成される。
図6は、遅延発生器付回路の例である。
ここでは、図13で示した回路を検査対象の回路として用いている。
CDC部510,511には、それぞれ図2で示したような遅延発生器401,402が組み込まれている。“meta_on1”,“meta_on2”は、図2で示した遅延発生選択信号である。
このような回路に対して所定のシナリオでシミュレーションを行った結果、以下のようなシミュレーション結果が得られたとする。
図7は、シミュレーション結果の一例を示すタイミングチャートである。
このようなシミュレーション結果のうち、例としてクロック信号clk1,clk2と、入力信号D1,D2による入力信号値系列を、モデル検査法を行う際の回路の入力制約とし、出力信号OUTによる出力信号値系列を出力制約とする。さらに、図6で示した遅延発生器付回路を入力する。そして、メタスタビリティが発生する可能性のあるタイミングで、遅延発生器付回路の遅延発生選択信号meta_on1,meta_on2には制約を与えず任意に可変する状態にする。モデル検査法では、このとき、どのようにmeta_on1,meta_on2が変化しても回路が出力制約を満たすか否かを検査し、もし出力制約を満たさないmeta_on1,meta_on2の変化パターンが存在する場合は、そのパターンを反例パターンとして生成する。本実施の形態では、出力制約を満たさなかった、つまり、メタスタビリティの発生により出力信号のパターンが変化するような遅延発生選択信号meta_on1,meta_on2のパターンを検出する。
例えば、図7のような出力制約の出力信号OUTに対して、遅延発生選択信号meta_on1,meta_on2を可変させたとき出力される出力信号が異なっている場合には、出力制約を満たさない。しかし、そのときの遅延発生選択信号meta_on1,meta_on2のタイミングが、出力信号OUTに影響を与える遅延発生パターンを示していることになる。
図8は、遅延発生器付回路の出力信号OUTに影響を与える遅延発生パターンの例である。
ここで、C11,C12,C13,C14,C15は、クロック信号clk1の1クロックサイクル分の期間であり、C21,C22,C23は、クロック信号clk2の1クロックサイクル分の期間を示している。その他の信号は図6の各部の信号と対応している。但し、“pase_chk”は、図6の遅延発生器401,402内の位相判定器(図2参照)の出力であり、2つのクロック信号clk1,clk2の立ち上がりが近づいている場合に“1”となる。信号D1_1delayや信号D2_1delayは、信号D1_1や信号D2_1を1クロックサイクル分遅延させた信号であり、遅延発生器401,402内で生成される信号である(図2参照)。
図8では、期間C12のクロック信号clk1の立ち上がりタイミングでは、入力信号D1が変化しており、更に“pase_chk”が“1”となり、遅延発生選択信号meta_on1が“1”となっている。これにより、遅延発生器401からは信号D1_1を1クロックサイクル分遅延させた信号(図示せず)が出力され、クロック信号clk2の期間C22の立ち上がりタイミングでFF503に取り込まれ、信号D1tが“1”となる。このような場合、出力信号OUTxは、回路の出力制約の出力信号OUTと異なる。つまり、図8のような遅延発生選択信号meta_on1,meta_on2による遅延発生パターンが、出力信号OUTに影響を与えるものとして検出される。
以上のように、第1の実施の形態の検証装置100によれば、検証対象の回路の出力信号(外部ピン)に影響を与えるメタスタビリティについて検証することができ、無駄な検証を行うことが無くなる。これによって、検証時間を短縮することができる。
また、遅延発生パターンの生成の際に、全てのCDC部とタイミングとを参照して遅延発生パターンを生成するのではなく、メタスタビリティが発生する可能性があるCDC部とタイミングのみを参照して生成するので、検証時間を更に短縮することができる。
次に第2の実施の形態の検証装置を説明する。
図9は、第2の実施の形態の検証装置の構成を示す機能ブロック図である。
図1で示した第1の実施の形態の検証装置と同一の構成要素については同一符号とし、説明を省略する。
第2の実施の形態の検証装置100aは、第1の実施の形態の検証装置100と異なり、シナリオDB106に格納されているシナリオのうち、回路の出力信号に影響のある遅延発生パターンを生成できたシナリオを登録するための、リストを生成するシナリオリスト生成部410と、生成したシナリオリストを格納するシナリオリストDB411を有している。
また、検証部111aも、シナリオリストのシナリオを用いて検証を行う。
以下、第2の実施の形態の検証装置100aの動作を説明する。
まず、シナリオリスト作成処理の際の検証装置100aの動作を説明する。
第1の実施の形態の検証装置100と同様の動作により、遅延発生器付回路を生成した後、シミュレーション実行部107aは、遅延発生器付回路DB105に格納された遅延発生器付回路を入力して、シナリオDB106に格納されたシナリオを選択してシミュレーションを実行する。
遅延発生パターン生成部109では、シミュレーション結果と遅延発生器付回路とを入力して、遅延発生器付回路の出力信号(外部ピン)に影響のある遅延発生パターンを生成する。ここで、遅延発生パターン生成部109が出力信号に影響のある遅延発生パターンを生成した場合には、シナリオリスト生成部410は、シミュレーションを実行したシナリオをシナリオリストに追加する。
シナリオDB106に格納された全てのシナリオについて同様の処理を行うことで、出力信号に影響のある遅延発生パターンを生成できたシナリオのみからなるシナリオリストを作成することができる。作成されたシナリオリストはシナリオリストDB411に格納される。
次に、第2の実施の形態の検証装置100aによる検証動作を説明する。
シナリオリストが完成すると、検証部111aは、遅延発生パターンDB110から得られた遅延発生パターンと、シナリオリストDB411から選択されたシナリオを基に、回路がメタスタビリティに耐性があるか否かを検証する。
以下、第2の実施の形態の検証装置100aを詳細に説明する。
具体的なハードウェア構成については、第1の実施の形態の検証装置100と同様に、例えば、図4で示したコンピュータ300で実現できる。
以下に、具体的な処理フローを説明する。まず、シナリオリストの作成処理を説明する。
図10は、シナリオリスト作成処理の流れを示すフローチャートである。
CPU301は、検証対象の回路からCDC部を検出する(ステップS21)、検出したCDC部に遅延発生器を組み込んだ遅延発生器付回路を生成する(ステップS22)。次に、CPU301は、全てのCDC部を用いてシミュレーションを実行したか否かを判定して(ステップS23)、選択していない場合には、シミュレーションに用いるCDC部を選択する(ステップS24)。さらに、CPU301は、全てのシナリオを用いてシミュレーションを行ったか否かを判定し(ステップS25)、全てのシナリオが終了していれば、ステップS23の処理に戻る。
未実行のシナリオがある場合には、シナリオを選択して(ステップS26)、シミュレーションを実行する(ステップS27)。そして、CPU301は、シミュレーション結果と、遅延発生器付回路を入力して、図6乃至図8で示したような手法により、回路の出力信号に影響を与える遅延発生パターンを生成する(ステップS28)。CPU301は、このとき選択したCDC部とシナリオとの組み合わせで、遅延発生パターンが生成できたか否かを判定し(ステップS29)、生成できなかった場合には、ステップS25からの処理を繰り返す。遅延発生パターンが生成できた場合には、シミュレーションで用いたシナリオをシナリオリストに追加する(ステップS30)。その後、ステップS25の処理に戻る。
ステップS23の処理で、全てのCDC部の選択が終了したと判定された場合には、CPU301は、生成したシナリオリストを出力して、例えば、HDD304に格納する(ステップS31)。
なお、ステップS30の処理で、遅延発生パターンが生成できたCDC部をマークしてシナリオとともに、例えば、HDD304に記録し、ステップS31の処理でシナリオリストを出力する際に、マークされていないCDC部や、マークされたCDC部と関連付けられているシナリオリストを、ディスプレイ305aに表示するようにしてもよい。これによって、生成されたシナリオリストが、検証対象のCDC部をどれだけ検証し得るのかを、前もってユーザに提示することができる。
次に、上記のような処理により生成したシナリオリストを用いた検証処理を説明する。
図11は、シナリオリストを用いた検証処理の流れを示すフローチャートである。
ステップS41、S42の処理は、図10のステップS21、S22の処理と同様である。
CPU301は、全てのCDC部を選択してシミュレーションしたか否かを判定して(ステップS43)、選択した場合には処理を終了し、選択していない場合には、シミュレーションに用いるCDC部を選択する(ステップS44)。さらに、CPU301は、全てのシナリオを用いて検証を行ったか否かを判定し(ステップS45)、全てのシナリオが終了していれば、ステップS43の処理に戻る。
未実行のシナリオがある場合には、例えば、HDD304に格納されているシナリオリストの中からシナリオを選択して(ステップS46)、遅延発生パターンDB110から、選択されたシナリオに適当な遅延発生パターンを選択する(ステップS47)。
CPU301は、シミュレーションを実行したシナリオ(シナリオリストからのシナリオ)を選択して、そのシナリオに対して、遅延発生パターンDB110から選択した遅延発生パターンで遅延を発生させることで、遅延発生器付回路のメタスタビリティに対する耐性を検証する(ステップS48)。CPU301は、検証の結果、障害が発生するか否かを判定し(ステップS49)、障害が発生しない場合には、ステップS45の処理に戻る。検証の結果、障害が発生することがわかった場合には、例えば、ディスプレイ305aに障害が発生する旨の警告を表示する。ユーザはこれを受けて回路を修正し、例えば、HDD304に記憶する(ステップS50)。その後、ステップS41からの処理を繰り返す。
以上のような第2の実施の形態の検証装置100aによれば、第1の実施の形態の検証装置100と同様に、出力信号に影響のある遅延発生パターンを生成して、メタスタビリティに対する回路の耐性を検証することができるので、回路内部で解決してしまうようなメタスタビリティに関する検証を行わずにすみ、意味のあるメタスタビリティの影響を考慮した検証が可能になる。これによって、検証時間を大幅に短縮することができる。
さらに、回路の出力信号に影響のある遅延発生パターンを生成できたシナリオのみを検証に用いることができるので、大量のシナリオを検証する必要がなくなり、検証時間をさらに短縮することができる。
なお、前述したように、第1または第2の実施の形態の検証装置100,100aの各機能ブロックや前述の処理フローは、図4に示すようなコンピュータ300によって実現可能である。その場合、検証装置100,100aが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、HDD、FD(フレキシブルディスク)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
なお、第1または第2の実施の形態の検証装置100,100aの各機能ブロックの何れか、またはすべてを、例えば、LSI(Large Scale Integrated circuit)などのハードウェアで実現するようにしてもよい。
また、上記では2つのクロック信号を用いた回路について説明したが、3つ以上のクロック信号を用いた回路に対しても同様に検証できる。
以上、本発明を実施例に基づいて説明したが、本発明は上記に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
(付記1) 異なる複数のクロック信号を用いた回路を検証する検証装置において、
前記回路から、互いに異なるクロック信号により動作する回路部同士が接続されたクロック載せ替え部を検出するクロック載せ替え部検出部と、
前記クロック載せ替え部に、信号遅延の発生または非発生を選択可能な遅延発生器を組み込む遅延発生器組み込み部と、
前記信号遅延を非発生とした前記遅延発生器組み込み後の前記回路に対して、所定のシミュレーションパターンを用いてシミュレーションを実行するシミュレーション実行部と、
実行されたシミュレーション結果と前記遅延発生器組み込み後の前記回路とを入力して、前記回路の出力信号に影響を与える前記信号遅延の遅延発生パターンを生成する遅延発生パターン生成部と、
生成された前記遅延発生パターンに応じて前記遅延発生器による前記信号遅延の発生または非発生を選択して前記回路の動作を検証する検証部と、
を有することを特徴とする検証装置。
(付記2) 前記シミュレーションパターンによる前記シミュレーション結果を基に、メタスタビリティが発生する可能性のある前記クロック載せ替え部とタイミングとを抽出するメタスタビリティ発生可能クロック載せ替え部抽出部を有し、
前記遅延発生パターン生成部は、抽出された前記クロック載せ替え部と、前記タイミングとを入力して前記遅延発生パターンを生成することを特徴とする付記1記載の検証装置。
(付記3) 複数の前記シミュレーションパターンのうち、前記遅延発生パターン生成部により前記遅延発生パターンが生成できた前記シミュレーションパターンのみを格納するシミュレーションパターン格納部を、更に有することを特徴とする付記1記載の検証装置。
(付記4) 前記シミュレーション実行部は、前記シミュレーションパターン格納部に格納された前記シミュレーションパターンを用いて前記シミュレーションを実行することを特徴とする付記3記載の検証装置。
(付記5) 前記遅延発生パターンが生成できた前記クロック載せ替え部を記録して、前記遅延発生パターンが生成できたシミュレーションパターン集合と、前記遅延発生パターンが生成されなかった前記クロック載せ替え部とを共に表示する検証条件表示部を更に有することを特徴とする付記3乃至4記載の検証装置。
(付記6) 異なる複数のクロック信号を用いた回路を検証する検証方法において、
クロック載せ替え部検出部が、前記回路から、互いに異なるクロック信号により動作する回路部同士が接続されたクロック載せ替え部を検出するステップと、
遅延発生器組み込み部が、前記クロック載せ替え部に、信号遅延の発生または非発生を選択可能な遅延発生器を組み込むステップと、
シミュレーション実行部が、前記信号遅延を非発生とした前記遅延発生器組み込み後の前記回路に対して、所定のシミュレーションパターンを用いてシミュレーションを実行するステップと、
遅延発生パターン生成部が、実行されたシミュレーション結果と前記遅延発生器組み込み後の前記回路とを入力して、前記回路の出力信号に影響を与える前記信号遅延の遅延発生パターンを生成するステップと、
検証部が、生成された前記遅延発生パターンに応じて前記遅延発生器による前記信号遅延の発生または非発生を選択して前記回路の動作を検証するステップと、
を有することを特徴とする検証方法。
(付記7) メタスタビリティ発生可能クロック載せ替え部抽出部が、前記シミュレーションパターンによる前記シミュレーション結果を基に、メタスタビリティが発生する可能性のある前記クロック載せ替え部とタイミングとを抽出するステップを更に有し、
前記遅延発生パターン生成部が、抽出された前記クロック載せ替え部と、前記タイミングとを入力して前記遅延発生パターンを生成することを特徴とする付記6記載の検証方法。
(付記8) シミュレーションパターン格納部が、複数の前記シミュレーションパターンのうち、前記遅延発生パターンが生成できた前記シミュレーションパターンのみを格納するステップを更に有することを特徴とする付記6記載の検証方法。
(付記9) 前記シミュレーション実行部が、前記シミュレーションパターン格納部に格納された前記シミュレーションパターンを用いて前記シミュレーションを実行することを特徴とする付記8記載の検証方法。
(付記10) 前記シミュレーションパターン格納部が、前記遅延発生パターンが生成できた前記クロック載せ替え部を記録して、
表示部が、前記遅延発生パターンが生成できた前記クロック載せ替え部及びシミュレーションパターン集合を、前記遅延発生パターンが生成されなかった前記クロック載せ替え部と共に表示することを特徴とする付記8乃至9記載の検証方法。
(付記11) 異なる複数のクロック信号を用いた回路を検証する処理をコンピュータに機能させるプログラムにおいて、
コンピュータを、
前記回路から、互いに異なるクロック信号により動作する回路部同士が接続されたクロック載せ替え部を検出するクロック載せ替え部検出手段、
前記クロック載せ替え部に、信号遅延の発生または非発生を選択可能な遅延発生器を組み込む遅延発生器組み込み手段、
前記信号遅延を非発生とした前記遅延発生器組み込み後の前記回路に対して、所定のシミュレーションパターンを用いてシミュレーションを実行するシミュレーション実行手段、
実行されたシミュレーション結果と前記遅延発生器組み込み後の前記回路とを入力して、前記回路の出力信号に影響を与える前記信号遅延の遅延発生パターンを生成する遅延発生パターン生成手段、
生成された前記遅延発生パターンに応じて前記遅延発生器による前記信号遅延の発生または非発生を選択して前記回路の動作を検証する検証手段、
として機能させることを特徴とするプログラム。
第1の実施の形態の検証装置の構成を示す機能ブロック図である。 検出されるCDC部と遅延発生器の例を示す回路図である。 第1の実施の形態の検証装置の効果を模式的に示した図である。 第1の実施の形態の検証装置の具体的なハードウェア構成例である。 第1の実施の形態の検証装置を用いた検証方法を示すフローチャートである。 遅延発生器付回路の例である。 シミュレーション結果の一例を示すタイミングチャートである。 遅延発生器付回路の出力信号OUTに影響を与える遅延発生パターンの例である。 第2の実施の形態の検証装置の構成を示す機能ブロック図である。 シナリオリスト作成処理の流れを示すフローチャートである。 シナリオリストを用いた検証処理の流れを示すフローチャートである。 メタスタビリティの例を示す図である。 CDC部におけるメタスタビリティによる障害発生の例を説明する図である。(その1) CDC部におけるメタスタビリティによる障害発生の例を説明する図である。(その2) 従来の検証装置の概略の構成を示す図である。 従来の検証方法を示すフローチャートである。 回路の出力信号に影響を与えない遅延発生の例を示す図である。
符号の説明
100 検証装置
101 回路DB
102 CDC部検出部
103 CDC部DB
104 遅延発生器組み込み部
105 遅延発生器付回路DB
106 シナリオDB
107 シミュレーション実行部
108 メタスタビリティ発生可能CDC部抽出部
109 遅延発生パターン生成部
110 遅延発生パターンDB
111 検証部

Claims (10)

  1. 異なる複数のクロック信号を用いた回路を検証する検証装置において、
    前記回路から、互いに異なるクロック信号により動作する回路部同士が接続されたクロック載せ替え部を検出するクロック載せ替え部検出部と、
    前記クロック載せ替え部に、信号遅延の発生または非発生を選択可能な遅延発生器を組み込む遅延発生器組み込み部と、
    前記信号遅延を非発生とした前記遅延発生器組み込み後の前記回路に対して、所定のシミュレーションパターンを用いてシミュレーションを実行するシミュレーション実行部と、
    実行されたシミュレーション結果と前記遅延発生器組み込み後の前記回路とを入力して、前記回路の出力信号に影響を与える前記信号遅延の遅延発生パターンを生成する遅延発生パターン生成部と、
    生成された前記遅延発生パターンに応じて前記遅延発生器による前記信号遅延の発生または非発生を選択して前記回路の動作を検証する検証部と、
    を有することを特徴とする検証装置。
  2. 前記シミュレーションパターンによる前記シミュレーション結果を基に、メタスタビリティが発生する可能性のある前記クロック載せ替え部とタイミングとを抽出するメタスタビリティ発生可能クロック載せ替え部抽出部を有し、
    前記遅延発生パターン生成部は、抽出された前記クロック載せ替え部と、前記タイミングとを入力して前記遅延発生パターンを生成することを特徴とする請求項1記載の検証装置。
  3. 複数の前記シミュレーションパターンのうち、前記遅延発生パターン生成部により前記遅延発生パターンが生成できた前記シミュレーションパターンのみを格納するシミュレーションパターン格納部を、更に有することを特徴とする請求項1記載の検証装置。
  4. 前記シミュレーション実行部は、前記シミュレーションパターン格納部に格納された前記シミュレーションパターンを用いて前記シミュレーションを実行することを特徴とする請求項3記載の検証装置。
  5. 前記遅延発生パターンが生成できた前記クロック載せ替え部を記録して、前記遅延発生パターンが生成できたシミュレーションパターン集合と、前記遅延発生パターンが生成されなかった前記クロック載せ替え部とを共に表示する検証条件表示部を更に有することを特徴とする請求項3乃至4記載の検証装置。
  6. 異なる複数のクロック信号を用いた回路を検証する検証方法において、
    クロック載せ替え部検出部が、前記回路から、互いに異なるクロック信号により動作する回路部同士が接続されたクロック載せ替え部を検出するステップと、
    遅延発生器組み込み部が、前記クロック載せ替え部に、信号遅延の発生または非発生を選択可能な遅延発生器を組み込むステップと、
    シミュレーション実行部が、前記信号遅延を非発生とした前記遅延発生器組み込み後の前記回路に対して、所定のシミュレーションパターンを用いてシミュレーションを実行するステップと、
    遅延発生パターン生成部が、実行されたシミュレーション結果と前記遅延発生器組み込み後の前記回路とを入力して、前記回路の出力信号に影響を与える前記信号遅延の遅延発生パターンを生成するステップと、
    検証部が、生成された前記遅延発生パターンに応じて前記遅延発生器による前記信号遅延の発生または非発生を選択して前記回路の動作を検証するステップと、
    を有することを特徴とする検証方法。
  7. メタスタビリティ発生可能クロック載せ替え部抽出部が、前記シミュレーションパターンによる前記シミュレーション結果を基に、メタスタビリティが発生する可能性のある前記クロック載せ替え部とタイミングとを抽出するステップを更に有し、
    前記遅延発生パターン生成部が、抽出された前記クロック載せ替え部と、前記タイミングとを入力して前記遅延発生パターンを生成することを特徴とする請求項6記載の検証方法。
  8. シミュレーションパターン格納部が、複数の前記シミュレーションパターンのうち、前記遅延発生パターンが生成できた前記シミュレーションパターンのみを格納するステップを更に有することを特徴とする請求項6記載の検証方法。
  9. 前記シミュレーション実行部が、前記シミュレーションパターン格納部に格納された前記シミュレーションパターンを用いて前記シミュレーションを実行することを特徴とする請求項8記載の検証方法。
  10. 異なる複数のクロック信号を用いた回路を検証する処理をコンピュータに機能させるプログラムにおいて、
    コンピュータを、
    前記回路から、互いに異なるクロック信号により動作する回路部同士が接続されたクロック載せ替え部を検出するクロック載せ替え部検出手段、
    前記クロック載せ替え部に、信号遅延の発生または非発生を選択可能な遅延発生器を組み込む遅延発生器組み込み手段、
    前記信号遅延を非発生とした前記遅延発生器組み込み後の前記回路に対して、所定のシミュレーションパターンを用いてシミュレーションを実行するシミュレーション実行手段、
    実行されたシミュレーション結果と前記遅延発生器組み込み後の前記回路とを入力して、前記回路の出力信号に影響を与える前記信号遅延の遅延発生パターンを生成する遅延発生パターン生成手段、
    生成された前記遅延発生パターンに応じて前記遅延発生器による前記信号遅延の発生または非発生を選択して前記回路の動作を検証する検証手段、
    として機能させることを特徴とするプログラム。
JP2007040014A 2007-02-20 2007-02-20 検証装置、検証方法及びプログラム Expired - Fee Related JP4763629B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007040014A JP4763629B2 (ja) 2007-02-20 2007-02-20 検証装置、検証方法及びプログラム
US12/017,764 US7840924B2 (en) 2007-02-20 2008-01-22 Apparatus, method, and program for verifying logic circuit operating with multiple clock signals

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007040014A JP4763629B2 (ja) 2007-02-20 2007-02-20 検証装置、検証方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2008204199A JP2008204199A (ja) 2008-09-04
JP4763629B2 true JP4763629B2 (ja) 2011-08-31

Family

ID=39706651

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007040014A Expired - Fee Related JP4763629B2 (ja) 2007-02-20 2007-02-20 検証装置、検証方法及びプログラム

Country Status (2)

Country Link
US (1) US7840924B2 (ja)
JP (1) JP4763629B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5239747B2 (ja) * 2008-10-29 2013-07-17 富士通株式会社 論理シミュレーションプログラム、論理シミュレーション装置、論理シミュレーション方法
GB2484295A (en) 2010-10-05 2012-04-11 St Microelectronics Ltd Circuit simulation
JP5672038B2 (ja) * 2011-02-10 2015-02-18 富士通株式会社 検証支援装置、検証支援プログラム、および検証支援方法
US8607173B2 (en) 2012-03-09 2013-12-10 Atrenta, Inc. Hierarchical bottom-up clock domain crossing verification
US8984457B2 (en) 2013-03-15 2015-03-17 Atrenta, Inc. System and method for a hybrid clock domain crossing verification

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3953250B2 (ja) 2000-02-16 2007-08-08 Necエレクトロニクス株式会社 非同期回路の検証方法
US7197582B2 (en) * 2000-04-26 2007-03-27 Tiberiu Chelcea Low latency FIFO circuit for mixed clock systems
US20020199173A1 (en) * 2001-01-29 2002-12-26 Matt Bowen System, method and article of manufacture for a debugger capable of operating across multiple threads and lock domains
US7120883B1 (en) * 2003-05-27 2006-10-10 Altera Corporation Register retiming technique
JP4307169B2 (ja) 2003-07-10 2009-08-05 株式会社ルネサステクノロジ 遅延検証装置
JP4271067B2 (ja) 2004-03-29 2009-06-03 富士通マイクロエレクトロニクス株式会社 非同期回路検証方法および非同期回路検証プログラム
US7356789B2 (en) * 2004-06-01 2008-04-08 Tai An Ly Metastability effects simulation for a circuit description
US7594211B1 (en) * 2006-11-17 2009-09-22 Synopsys, Inc. Methods and apparatuses for reset conditioning in integrated circuits

Also Published As

Publication number Publication date
US7840924B2 (en) 2010-11-23
JP2008204199A (ja) 2008-09-04
US20080198957A1 (en) 2008-08-21

Similar Documents

Publication Publication Date Title
JP4271067B2 (ja) 非同期回路検証方法および非同期回路検証プログラム
JP4251964B2 (ja) 検証装置、検証方法およびプログラム
JP4763629B2 (ja) 検証装置、検証方法及びプログラム
JP2008171296A (ja) モデル作成プログラム、モデル作成装置、モデル作成方法
JP4850091B2 (ja) 検証シナリオ生成装置,方法,およびプログラム,並びに検証装置
US20110295536A1 (en) Clock jitter analyzing method and apparatus
US20120254815A1 (en) Method and System for Synthesizing Relative Timing Constraints on an Integrated Circuit Design to Facilitate Timing Verification
JP2008123056A (ja) 論理回路のタイミング制約生成システムおよび論理回路のタイミング制約生成方法、制御プログラム、可読記録媒体
JP4992468B2 (ja) 検証方法、検証装置及びプログラム
JP2010073136A (ja) ホールドタイムエラーの収束方法、収束装置、及び収束プログラム
JP2009116497A (ja) 同期化回路の検証方法及びその検証装置
JP5146369B2 (ja) 回路設計プログラム、回路設計方法および回路設計装置
JP5104356B2 (ja) 検証支援プログラム、検証支援装置、および検証支援方法
US8793548B2 (en) Integrated circuit, simulation apparatus and simulation method
JP7354815B2 (ja) 検証支援装置、検証支援方法および検証支援プログラム
JP7351189B2 (ja) タイミング制約抽出装置、タイミング制約抽出方法およびタイミング制約抽出プログラム
US20120253712A1 (en) Power consumption calculation method, power consumption calculation apparatus, and non-transitory computer-readble medium storing power consumption calculation program
JP2002073714A (ja) タイミング解析装置、ネットリスト変更方法および記録媒体
TWI782408B (zh) 邏輯模擬驗證系統、邏輯模擬驗證方法、及程式產品
JP5799589B2 (ja) 検証方法及び検証プログラム
JP4983642B2 (ja) 設計検証プログラム、設計検証方法および設計検証装置
JP2007241836A (ja) マルチサイクルパス検証方法
JP2011048412A (ja) 情報処理装置及び情報処理方法及びプログラム
JP2010181984A (ja) 回路設計支援プログラムおよび回路設計支援装置
JP2007188438A (ja) ライブラリ作成装置及び方法,並びにライブラリ作成プログラムを記録したコンピュータ読取可能な記録媒体

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20080729

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091009

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110531

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

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

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

Free format text: PAYMENT UNTIL: 20140617

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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