JP2011215852A - Circuit verification device and method - Google Patents
Circuit verification device and method Download PDFInfo
- Publication number
- JP2011215852A JP2011215852A JP2010083002A JP2010083002A JP2011215852A JP 2011215852 A JP2011215852 A JP 2011215852A JP 2010083002 A JP2010083002 A JP 2010083002A JP 2010083002 A JP2010083002 A JP 2010083002A JP 2011215852 A JP2011215852 A JP 2011215852A
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- flip
- value
- flop circuit
- sequential circuit
- 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
Links
Images
Abstract
Description
本発明は、回路検証装置及び回路検証方法に関し、特に、順序回路を含む非同期回路を検証する回路検証装置及び回路検証方法に関する。 The present invention relates to a circuit verification device and a circuit verification method, and more particularly to a circuit verification device and a circuit verification method for verifying an asynchronous circuit including a sequential circuit.
回路設計の際には、HDL(Hardware Description Language)レベル、ゲートレベル、トランジスタレベル等においてシミュレーションを行うことにより、設計した回路の機能を検証する。以下、回路の機能を検証するために行われるシミュレーションを機能シミュレーションと称する。 At the time of circuit design, simulation is performed at the HDL (Hardware Description Language) level, the gate level, the transistor level, and the like, thereby verifying the function of the designed circuit. Hereinafter, the simulation performed for verifying the function of the circuit is referred to as function simulation.
回路には非同期回路が含まれることがある。また、複数のクロック信号を有する非同期順序回路では、異なるクロック信号で動作する回路間で信号転送が行われる場合がある。例えば、一のクロック信号で動作する回路から出力された発振状態が、他のクロック信号で動作する非同期順序回路や組み合せ回路に伝搬する場合がある。この場合、前段の順序回路から出力される信号の論理は定まらなくなる。このように、回路の出力信号の論理が定まらない状態をメタステーブル状態と呼ぶ。順序回路がメタステーブル状態となることは、非同期順序回路を備える論理回路の異常動作の一因となっている。 The circuit may include an asynchronous circuit. In an asynchronous sequential circuit having a plurality of clock signals, signal transfer may be performed between circuits operating with different clock signals. For example, an oscillation state output from a circuit that operates with one clock signal may propagate to an asynchronous sequential circuit or combination circuit that operates with another clock signal. In this case, the logic of the signal output from the sequential circuit in the previous stage is not determined. A state in which the logic of the output signal of the circuit is not determined in this way is called a metastable state. The fact that the sequential circuit is in the metastable state contributes to the abnormal operation of the logic circuit including the asynchronous sequential circuit.
そのため、HDLレベルにおいて、順序回路がメタステーブル状態となることを考慮した機能シミュレーションが行われている。
例えば、特許文献1には、メタステーブル状態を示す値に代えて、記憶手段に記憶された信号を出力信号として出力させる処理を行うことにより、メタステーブル状態を考慮した機能シミュレーションを行う非同期回路の検証方法が記載されている。
Therefore, functional simulation is performed in consideration of the fact that the sequential circuit is in a metastable state at the HDL level.
For example,
しかしながら、特許文献1に記載の機能シミュレーションでは、順序回路に発生したメタステーブル状態を示す値は、クロック信号の周期を超えない任意の時間となっている。そのため、特許文献1に記載の機能シミュレーションでは、前段の順序回路で発生するメタステーブル状態を再現することはできるが、後段の順序回路で発生するメタステーブル状態を再現することができないという問題がある。
実際には、前段の順序回路がメタステーブル状態となり、当該メタステーブル状態の収束時間が1クロック以内に収まらない場合には、後段の順序回路もメタステーブル状態となるが、特許文献1に記載の機能シミュレーションでは、このような状態を再現することができない。
However, in the function simulation described in
Actually, if the sequential circuit in the previous stage is in the metastable state and the convergence time of the metastable state does not fall within one clock, the sequential circuit in the subsequent stage is also in the metastable state. Such a state cannot be reproduced by functional simulation.
本発明の第1の態様に係る回路検証装置は、論理回路の機能を検証する装置である。前記回路検証装置は、生成段数算出部、順序回路特定部、機能シミュレーション制御部を備える。前記生成段数算出部は、前記論理回路に含まれる非同期順序回路のクロック周期Tdistと、前記非同期順序回路の第1段目の順序回路のメタステーブル収束時間Tmcと、に基づいて、下記の(1)式により、メタステーブル状態値の生成段数cを算出する。また、前記順序回路特定部は、所定のプログラム言語で記述された、前記論理回路の回路設計プログラムを解析することにより、前記第1段目の順序回路から前記第1段目の順序回路の出力側に接続される第n段目(nは、n≧2を満たす整数)の順序回路までを特定する。また、前記機能シミュレーション制御部は、前記論理回路の機能シミュレーションにおいて、前記第1段目から第n段目の順序回路に、それぞれ前記生成段数cから(前記生成段数c−(n−1))に等しいクロックサイクル数分、前記メタステーブル状態値を出力させる。
c=int(Tmc/Tdist)+1 ・・・・・(1)
The circuit verification apparatus according to the first aspect of the present invention is an apparatus for verifying the function of a logic circuit. The circuit verification device includes a generation stage number calculation unit, a sequential circuit identification unit, and a function simulation control unit. The generation stage number calculation unit is based on the clock cycle Tdist of the asynchronous sequential circuit included in the logic circuit and the metastable convergence time Tmc of the first sequential circuit of the asynchronous sequential circuit (1 ) To calculate the generation stage number c of the metastable state value. In addition, the sequential circuit specifying unit analyzes the circuit design program of the logic circuit described in a predetermined program language, so that the output of the sequential circuit of the first stage is output from the sequential circuit of the first stage. Up to the n-th sequential circuit (n is an integer satisfying n ≧ 2) connected to the side. In the functional simulation of the logic circuit, the function simulation control unit changes the number of generation stages c to the sequential circuits from the first stage to the n-th stage (the generation stage number c− (n−1)). The metastable state value is output for the number of clock cycles equal to.
c = int (Tmc / Tdist) +1 (1)
本発明の第1の態様においては、非同期順序回路において、1段目の順序回路は生成段数cに等しいクロックサイクルの間、・・・n段目の順序回路は(生成段数c−(n−1))に等しいクロックサイクルの間、メタステーブル状態値を出力する。そのため、非同期順序回路において、2段目以降の順序回路において発生するメタステーブル状態についても確実にシミュレーションすることができる。そのため、メタステーブル状態をより確実に想定して、非同期順序回路を含む論理回路の機能を検証することができる。 In the first aspect of the present invention, in the asynchronous sequential circuit, the sequential circuit of the first stage is in a clock cycle equal to the number of generated stages c,..., The sequential circuit of the nth stage is (the number of generated stages c− (n− Output metastable state value during clock cycle equal to 1)). Therefore, in the asynchronous sequential circuit, it is possible to surely simulate the metastable state that occurs in the second and subsequent sequential circuits. Therefore, it is possible to verify the function of the logic circuit including the asynchronous sequential circuit by assuming the metastable state more reliably.
本発明の第2の態様に係る回路検証方法は、論理回路の機能を検証する方法である。前記回路検証方法は、コンピュータが、生成段数算出処理と、順序回路特定処理と、機能シミュレーション制御処理と、を実行する方法である。前記生成段数算出処理において、前記コンピュータは、前記論理回路に含まれる非同期順序回路のクロック周期Tdistと、前記非同期順序回路の第1段目の順序回路のメタステーブル収束時間Tmcと、に基づいて、下記の(1)式により、メタステーブル状態値の生成段数cを算出する。また、前記順序回路特定処理において、前記コンピュータは、所定のプログラム言語で記述された、前記論理回路の回路設計プログラムを解析することにより、前記第1段目の順序回路から前記第1段目の順序回路の出力側に接続される第n段目(nは、n≧2を満たす整数)の順序回路までを特定する。また、前記機能シミュレーション制御処理において、前記コンピュータは、前記論理回路の機能シミュレーションにおいて、前記第1段目から第n段目の順序回路に、それぞれ前記生成段数cから(前記生成段数c−(n−1))に等しいクロックサイクル数分、前記メタステーブル状態値を出力させる。
c=int(Tmc/Tdist)+1 ・・・・・(1)
The circuit verification method according to the second aspect of the present invention is a method for verifying the function of a logic circuit. The circuit verification method is a method in which a computer executes a generation stage number calculation process, a sequential circuit identification process, and a function simulation control process. In the generation stage number calculation process, the computer, based on the clock cycle Tdist of the asynchronous sequential circuit included in the logic circuit and the metastable convergence time Tmc of the first sequential circuit of the asynchronous sequential circuit, The number of generation stages c of metastable state values is calculated by the following equation (1). In the sequential circuit specifying process, the computer analyzes the logic circuit circuit design program described in a predetermined program language, so that the first-stage sequential circuit is changed to the first-stage sequential circuit. Up to the nth stage (n is an integer satisfying n ≧ 2) sequential circuits connected to the output side of the sequential circuit are specified. In the functional simulation control process, the computer transfers the first to n-th sequential circuits from the generation stage number c (the generation stage number c− (n The metastable state value is output for the number of clock cycles equal to -1)).
c = int (Tmc / Tdist) +1 (1)
本発明の第2の態様においては、非同期順序回路において、1段目の順序回路は生成段数cに等しいクロックサイクルの間、・・・n段目の順序回路は(生成段数c−(n−1))に等しいクロックサイクルの間、メタステーブル状態値を出力する。そのため、非同期順序回路において、2段目以降の順序回路において発生するメタステーブル状態についても確実にシミュレーションすることができる。そのため、メタステーブル状態をより確実に想定して、非同期順序回路を含む論理回路の機能を検証することができる。 In the second aspect of the present invention, in the asynchronous sequential circuit, the sequential circuit of the first stage is in a clock cycle equal to the number of generation stages c,..., The sequential circuit of the nth stage is (number of generation stages c− (n− Output metastable state value during clock cycle equal to 1)). Therefore, in the asynchronous sequential circuit, it is possible to surely simulate the metastable state that occurs in the second and subsequent sequential circuits. Therefore, it is possible to verify the function of the logic circuit including the asynchronous sequential circuit by assuming the metastable state more reliably.
本発明により、メタステーブル状態をより確実に想定して、非同期順序回路を含む論理回路の機能を検証することができる。 According to the present invention, it is possible to verify the function of a logic circuit including an asynchronous sequential circuit by more reliably assuming a metastable state.
以下に、本発明を適用可能な実施の形態を説明する。なお、本発明は、以下の実施の形態に限定されるものではない。
実施の形態1.
図1は、本発明の実施の形態1に係る回路検証システム100の構成の一例を示すブロック図である。
図1に示すように、回路検証システム100は、サーバ1、コンピュータ2,・・・等を備えている。サーバ1とコンピュータ2(回路検証装置),・・・とはネットワーク3を介して通信可能に接続されている。
また、サーバ1は、記録媒体10を備えている。記録媒体10は、シミュレーションプログラム等のCAD設計ツールを格納している。
また、記録媒体10は、クロック周期Tdist、メタステーブル収束時間Tmc、変数c(後述)等の定数、変数を格納している。
ここで、メタステーブル収束時間Tmcは、一のクロック信号で動作する回路から出力された信号が入力される、他のクロック信号で動作する非同期順序回路の第1段目の順序回路がメタステーブル状態となった場合に、当該第1段目の順序回路の出力が安定するまでの時間である。
また、クロック周期Tdistは、一のクロック信号で動作する回路から出力された信号が入力される、他のクロック信号で動作する非同期順序回路のクロック周期である。
また、変数cとは、メタステーブル状態値Dmの生成段数である。また、メタステーブル状態値Dmとは、メタステーブル状態となった順序回路が出力する信号の値である。
なお、メタステーブル収束時間Tmc及びクロック周期Tdistは、経験則に基づいて決定される値である。
Hereinafter, embodiments to which the present invention can be applied will be described. Note that the present invention is not limited to the following embodiments.
FIG. 1 is a block diagram showing an example of the configuration of a
As shown in FIG. 1, the
The
The
Here, the metastable convergence time Tmc indicates that the signal output from the circuit operating with one clock signal is input, and the first sequential circuit of the asynchronous sequential circuit operating with another clock signal is in the metastable state. Is the time until the output of the sequential circuit in the first stage is stabilized.
The clock cycle Tdist is a clock cycle of an asynchronous sequential circuit that operates with another clock signal to which a signal output from a circuit that operates with one clock signal is input.
The variable c is the number of generation stages of the metastable state value Dm. Further, the metastable state value Dm is a value of a signal output from the sequential circuit in the metastable state.
The metastable convergence time Tmc and the clock cycle Tdist are values determined based on empirical rules.
コンピュータ2は、エンジニアワークステーション等である。また、コンピュータ2は、例えば、CPU(Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Onry Memory)等を備えている。なお、図1において、CPU、RAM、ROMの図示は省略されている。
ROM(記憶部)は、コンピュータ2の各部を制御するための各種プログラム及び各種データを格納している。そして、CPUは、ROMに格納された各種プログラムを実行し、RAMに展開することにより、コンピュータ2の各部を制御する。
例えば、CPUは、ROMに格納された各種プログラムを実行することにより、ネットワーク3を介して、サーバ1の記録媒体10に格納されているCAD設計ツールやクロック周期Tdist、メタステーブル収束時間Tmc、変数c等の定数、変数等を取得し、ROMに格納する。また、ROMは、CPUによって生成されたFFテーブル4(後述)を格納する。
また、CPUは、ROMに格納されているCAD設計ツールを実行することにより、回路検証を行う。例えば、CPUは、ROMに格納されているCAD設計ツールを実行することにより、生成段数算出部、順序回路特定部、機能シミュレーション制御部、FFテーブル格納制御部等として機能する。
The
The ROM (storage unit) stores various programs and various data for controlling each unit of the
For example, the CPU executes various programs stored in the ROM so that the CAD design tool, clock cycle Tdist, metastable convergence time Tmc, variable stored in the
Further, the CPU performs circuit verification by executing a CAD design tool stored in the ROM. For example, the CPU functions as a generation stage number calculation unit, a sequential circuit identification unit, a function simulation control unit, an FF table storage control unit, and the like by executing a CAD design tool stored in the ROM.
なお、コンピュータ2の構成は、上記に限定されるものではない。例えば、上記各種プログラム等は、様々なタイプの非一時的なコンピュータ可読媒体(non−transitory computer readable medium)に格納されればよい。例えば、上記各種プログラムは、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM、CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM))等に格納されていてもよい。
The configuration of the
次に、本発明の実施の形態1に係るコンピュータ2における回路検証方法について、図2に示すフローチャートを参照しながら説明する。
まず、コンピュータ2は、RTL(Register Transfer Level)やネットリストレベルの記述を解析し、非同期転送に関係する順序回路を特定する(ステップS1)。
Next, a circuit verification method in the
First, the
具体的には、コンピュータ2は、図3に示すFFテーブル4を作成し、ROMに格納する。FFテーブル4は、メタステーブル状態となる順序回路のインスタンス名41と、メタステーブル状態が継続する時間を表すクロックサイクル数Cmeta42とが関連付けられた情報である。
コンピュータ2は、メタステーブル収束時間Tmcとクロック周期Tdistとに基づいて、メタステーブル状態となる順序回路を特定する。換言すれば、コンピュータ2は、一のクロック信号で動作する回路から出力された信号が入力される、他のクロック信号で動作する非同期順序回路の第1段目の順序回路を特定する。そして、特定した順序回路のインスタンス名をFFテーブル4のインスタンス名41に格納する。
また、コンピュータ2は、メタステーブル収束時間Tmcとクロック周期Tdistとに基づいて、クロックサイクル数Cmetaを決定し、FFテーブル4のクロックサイクル数Cmeta42に格納する。
さらに、コンピュータ2は、上記で特定した第1段目の順序回路の出力側(後段側)に接続されている第n段目(nは、n≧2を満たす整数)の順序回路を新たに特定する。そして、新たに特定した第n段目の順序回路のインスタンス名とクロックサイクル数Cmetaとを対応付けて、FFテーブル4に格納する。
Specifically, the
The
Further, the
Further, the
次に、コンピュータ2は、シミュレーション前処理を行う(ステップS2)。
具体的には、コンピュータ2は、ステップS1において特定した順序回路に、シミュレーションのための動作フローを割り当てる。より具体的には、ステップS1において特定した順序回路以外の回路に対しては、後述する図5のフローチャートで示される動作フローを割り当てる。また、ステップS1において特定した順序回路に対しては、図6のフローチャートで示される動作フローを割り当てる。例えば、ステップS1において特定した順序回路以外の回路に対しては、図5のフローチャートで示される動作フローを割り当てるフラグがONとなり、ステップS1において特定した順序回路に対しては、図6のフローチャートで示される動作フローを割り当てるフラグがONとなるように、回路毎にフロー割り当てフラグを決定する(図示省略)。
Next, the
Specifically, the
次に、コンピュータ2は、ステップS2において割り当てた動作フローに従って、各回路の機能シミュレーションを行う(ステップS3;機能シミュレーション制御処理)。ここで、機能シミュレーションとは、回路の機能を検証するために行われるシミュレーションである。具体的には、コンピュータ2が、RTLやネットリストで記述された回路設計プログラムを実行することにより、当該回路設計プログラムによって表される回路を仮想的に動作させて、得られる動作結果から、当該回路の機能を検証する。
Next, the
次に、図2のステップS1における順序回路の特定方法について、図4に示すフローチャートを参照しながら、説明する。
まず、コンピュータ2は、メタステーブル状態値Dmの生成段数cを、下記の(1)式を用いて計算する(ステップS101;生成段数算出処理)。
c=int(Tmc/Tdist)+1 ・・・・・(1)
Next, the sequential circuit specifying method in step S1 of FIG. 2 will be described with reference to the flowchart shown in FIG.
First, the
c = int (Tmc / Tdist) +1 (1)
次に、コンピュータ2は、メタステーブル状態となる順序回路を特定する。換言すれば、コンピュータ2は、一のクロック信号で動作する回路から出力された信号が入力される、他のクロック信号で動作する非同期順序回路の第1段目の順序回路を特定する(ステップS102;順序回路特定処理)。
Next, the
次いで、コンピュータ2は、ステップS102において特定した第1段目の順序回路のインスタンス名と、(1)式から求めた生成段数c(クロックサイクル数)とを対応付けて、FFテーブル4に格納する(ステップS103;FFテーブル格納制御処理)。ここで、生成段数cはクロックサイクル数としてFFテーブル4に格納される。
Next, the
次に、コンピュータ2は、ステップS101で求めた生成段数cが1以下か否かを判断する(ステップS104)。
ステップS104において、生成段数cが1以下である場合(ステップS104;Yes)、本処理を終了する。
ステップS104において、生成段数cが1より大きい場合(ステップS104;No)、当該生成段数cからn−1(nは、n≧2を満たす整数)を減ずる(ステップS105)。
Next, the
In step S104, when the number of generation stages c is 1 or less (step S104; Yes), this process ends.
In step S104, when the generation stage number c is larger than 1 (step S104; No), n−1 (n is an integer satisfying n ≧ 2) is subtracted from the generation stage number c (step S105).
次に、コンピュータ2は、ステップS102で特定した第1段目の順序回路の出力側(後段側)に接続されている第n段目(nは、n≧2を満たす整数)の順序回路を新たに特定する(ステップS106;順序回路特定処理)。
Next, the
次に、コンピュータ2は、ステップS106において特定した第n段目の順序回路のインスタンス名と、ステップS105において算出した生成段数(c−(n−1))とを対応付けて、FFテーブル4に格納し(ステップS107;FFテーブル格納制御処理)、ステップS104に戻る。換言すれば、コンピュータ2は、ステップS105において算出した生成段数(c−(n−1))を、ステップS106において特定した第n段目の順序回路のクロックサイクル数として、FFテーブル4に格納する。
Next, the
次に、図2のステップS1の処理、すなわち図4に示す処理において特定された順序回路以外の回路に対して割り当てられた動作フローについて、図5に示すフローチャートを参照しながら説明する。換言すれば、図2のステップS1において特定された順序回路以外の回路に対して、図2のステップS3において行われる機能シミュレーションについて、図5に示すフローチャートについて説明する。ここで、図2のステップS1において特定された順序回路以外の回路として、フリップフロップ回路を例に挙げて説明する。 Next, an operation flow assigned to a circuit other than the sequential circuit specified in the process of step S1 of FIG. 2, that is, the process shown in FIG. In other words, the function simulation performed in step S3 of FIG. 2 for a circuit other than the sequential circuit specified in step S1 of FIG. 2 will be described with reference to the flowchart shown in FIG. Here, a flip-flop circuit will be described as an example of a circuit other than the sequential circuit specified in step S1 of FIG.
まず、フリップフロップ回路は、入力されたクロック信号のアクティブエッジを検出したか否か判断する(ステップS201)。
ステップS201において、フリップフロップ回路が、入力されたクロック信号のアクティブエッジを検出しなかった場合(ステップS201;No)、ステップS203に進む。
ステップS201において、フリップフロップ回路が、入力されたクロック信号のアクティブエッジを検出した場合(ステップS201;Yes)、フリップフロップ回路は、入力信号を保持する(ステップS202)。
First, the flip-flop circuit determines whether or not an active edge of the input clock signal has been detected (step S201).
In step S201, when the flip-flop circuit does not detect the active edge of the input clock signal (step S201; No), the process proceeds to step S203.
In step S201, when the flip-flop circuit detects an active edge of the input clock signal (step S201; Yes), the flip-flop circuit holds the input signal (step S202).
次に、フリップフロップ回路は、保持している信号を出力する(ステップS203)。 Next, the flip-flop circuit outputs the held signal (step S203).
次に、図2のステップS1の処理、すなわち図4に示す処理において特定された順序回路に対して割り当てられた動作フローについて、図6に示すフローチャートを参照しながら説明する。換言すれば、図2のステップS1において特定された順序回路に対して、図2のステップS3において行われる機能シミュレーションについて、図6に示すフローチャートについて説明する。
なお、図6に示す各ステップの処理は、全ての順序回路に入力されるクロック信号の周期を超えないで、所定の時間内(シミュレーションサイクル1〜2の間、・・・シミュレーションサイクルm〜m+1の間(mは、自然数))に行われるものとする。また、生成段数c、各順序回路が保持する値、各種のフラグは順序回路毎に固有の値であり、コンピュータ2のROM等のローカルなハードディスク又はメモリなどに記憶され、少なくとも機能シミュレーションの間保持されるものである。
Next, the operation flow assigned to the sequential circuit specified in step S1 of FIG. 2, that is, the process shown in FIG. 4, will be described with reference to the flowchart shown in FIG. In other words, the function simulation performed in step S3 of FIG. 2 for the sequential circuit specified in step S1 of FIG. 2 will be described with reference to the flowchart shown in FIG.
Note that the processing of each step shown in FIG. 6 does not exceed the period of the clock signal input to all the sequential circuits, and within a predetermined time (between
まず、順序回路は、入力されたクロック信号のアクティブエッジを検出したか否か判断する(ステップS301)。
ステップS301において、順序回路が、入力されたクロック信号のアクティブエッジを検出した場合(ステップS301;Yes)、コンピュータ2は、FFテーブル4を参照し、当該順序回路のインスタンス名に対応するクロックサイクル数(生成段数c)が0より大きいか否かを判断する(ステップS302)。
First, the sequential circuit determines whether or not an active edge of the input clock signal has been detected (step S301).
In step S301, when the sequential circuit detects an active edge of the input clock signal (step S301; Yes), the
ステップS302において、クロックサイクル数(生成段数c)が0より大きかった場合(ステップS302;Yes)、コンピュータ2は、当該クロックサイクル数(生成段数c)から1を減ずる(ステップS303)。
ステップS302において、クロックサイクル数(生成段数c)が0以下である場合(ステップS302;No)、コンピュータ2は、順序回路に入力される信号の値に変化があるか否かを判断する(ステップS304)。
In step S302, when the number of clock cycles (number of generation stages c) is greater than 0 (step S302; Yes), the
In step S302, when the number of clock cycles (number of generation stages c) is 0 or less (step S302; No), the
ステップS304において、順序回路に入力される信号の値に変化がない場合(ステップS304;No)、コンピュータ2は、当該クロックサイクル数(生成段数c)が0であるか否かを判断することにより、当該順序回路がメタステーブル状態であるか否かを判断する(ステップS305)。
ステップS305において、当該クロックサイクル数(生成段数c)が0でない場合、すなわち、当該順序回路がメタステーブル状態である場合(ステップS305;No)、ステップS308に進む。
ステップS305において、当該クロックサイクル数(生成段数c)が0である場合、すなわち、当該順序回路がメタステーブル状態ではない場合(ステップS305;Yes)、ステップS312に進む。
If there is no change in the value of the signal input to the sequential circuit in step S304 (step S304; No), the
If the number of clock cycles (number of generation stages c) is not 0 in step S305, that is, if the sequential circuit is in a metastable state (step S305; No), the process proceeds to step S308.
If the number of clock cycles (number of generation stages c) is 0 in step S305, that is, if the sequential circuit is not in the metastable state (step S305; Yes), the process proceeds to step S312.
ステップS304において、順序回路に入力される信号の値に変化がある場合(ステップS304;Yes)、コンピュータ2は、FFテーブル4を参照し、当該順序回路のインスタンス名に対応するクロックサイクル数(生成段数c)をメタステーブルカウンタの値として設定する(ステップS306)。なお、コンピュータ2のCPUがROMに格納されているメタステーブルカウンタプログラムを実行することにより、メタステーブルカウンタとして機能する。
In step S304, when there is a change in the value of the signal input to the sequential circuit (step S304; Yes), the
次に、順序回路は、入力される信号の値を保持する(ステップS307)。 Next, the sequential circuit holds the value of the input signal (step S307).
次に、コンピュータ2は、当該順序回路のメタステーブル状態値Dmを生成して、ROMに格納するとともに、当該順序回路は当該メタステーブル状態値Dmを保持する(ステップS308)。ここで、メタステーブル状態値Dmはランダムな値であり、ステップS307で保持した値とは異なる値である。
Next, the
次に、順序回路は、ステップS308で保持したメタステーブル状態値Dmを出力する(ステップS309)。 Next, the sequential circuit outputs the metastable state value Dm held in step S308 (step S309).
一方、ステップS301において、順序回路が、入力されたクロック信号のアクティブエッジを検出しなかった場合(ステップS301;No)、コンピュータ2は、FFテーブル4を参照し、当該順序回路のインスタンス名に対応するクロックサイクル数(生成段数c)が0であるか否かを判断することにより、当該順序回路がメタステーブル状態であるか否かを判断する(ステップS310)。
On the other hand, when the sequential circuit does not detect the active edge of the input clock signal in step S301 (step S301; No), the
ステップS310において、クロックサイクル数(生成段数c)が0である場合、すなわち、当該順序回路がメタステーブル状態ではない場合(ステップS310;Yes)、当該順序回路は、保持している信号を出力する(ステップS312)。
ステップS310において、クロックサイクル数(生成段数c)が0でない場合、すなわち、当該順序回路がメタステーブル状態である場合(ステップS310;No)、コンピュータ2は、当該順序回路のメタステーブル状態値Dmを生成して、ROMに格納するとともに、当該順序回路は当該メタステーブル状態値Dmを保持する。次いで、順序回路は、保持したメタステーブル状態値Dmを出力する(ステップS311)。
In step S310, when the number of clock cycles (number of generation stages c) is 0, that is, when the sequential circuit is not in a metastable state (step S310; Yes), the sequential circuit outputs a held signal. (Step S312).
In step S310, when the number of clock cycles (number of generation stages c) is not 0, that is, when the sequential circuit is in the metastable state (step S310; No), the
次に、図7に示す非同期回路200を例に挙げて、本発明の実施の形態1に係るコンピュータ2における回路検証方法について説明する。
図7に示す非同期回路200は、一のクロック信号CLK1により動作するフリップフロップ回路FF01と、他のクロック信号CLK2により動作する非同期順序回路201と、組合せ回路CC2と、を備えている。
非同期順序回路201は、3つのフリップフロップ回路FF02,FF03,FF04を備えている。そして、フリップフロップ回路FF01のから出力された信号Q01は、フリップフロップ回路FF02の入力端子に入力される。また、フリップフロップ回路FF02のから出力された信号Q02は、フリップフロップ回路FF03の入力端子に入力される。また、フリップフロップ回路FF03のから出力された信号Q03は、フリップフロップ回路FF04の入力端子に入力される。また、フリップフロップ回路FF04のから出力された信号Q04は、組合せ回路CC2に入力される。また、フリップフロップ回路FF01の入力端子には、入力信号DIN1が入力される。
Next, taking the asynchronous circuit 200 shown in FIG. 7 as an example, a circuit verification method in the
The asynchronous circuit 200 shown in FIG. 7 includes a flip-flop circuit FF01 that operates by one clock signal CLK1, an asynchronous sequential circuit 201 that operates by another clock signal CLK2, and a combinational circuit CC2.
The asynchronous sequential circuit 201 includes three flip-flop circuits FF02, FF03, and FF04. The signal Q01 output from the flip-flop circuit FF01 is input to the input terminal of the flip-flop circuit FF02. The signal Q02 output from the flip-flop circuit FF02 is input to the input terminal of the flip-flop circuit FF03. The signal Q03 output from the flip-flop circuit FF03 is input to the input terminal of the flip-flop circuit FF04. The signal Q04 output from the flip-flop circuit FF04 is input to the combinational circuit CC2. The input signal DIN1 is input to the input terminal of the flip-flop circuit FF01.
図8は、図7に示す非同期回路200に対して、本発明の実施の形態1に係るコンピュータ2によって回路検証を行った場合におけるタイミングチャートである。
図8において、非同期順序回路201のクロック周期Tdistを10ns、メタステーブル収束時間Tmcを6ns、フリップフロップ回路FF01,FF02,FF03,FF04のインスタンス名をそれぞれ「FF01」,「FF02」,「FF03」,「FF04」とする。初期状態において、FFテーブル4には、何も登録されていないこととする。
FIG. 8 is a timing chart when the asynchronous circuit 200 shown in FIG. 7 is verified by the
In FIG. 8, the clock cycle Tdist of the asynchronous sequential circuit 201 is 10 ns, the metastable convergence time Tmc is 6 ns, and the instance names of the flip-flop circuits FF01, FF02, FF03, and FF04 are “FF01”, “FF02”, “FF03”, respectively. It is assumed that “FF04”. Assume that nothing is registered in the FF table 4 in the initial state.
まず、図4のステップSS101において、コンピュータ2は、(1)式により、メタステーブル状態値Dmの生成段数cを算出する。c=int(6/10)+1=2より、生成段数cの値は2となる。
First, in step SS101 of FIG. 4, the
次に、ステップS102において、コンピュータ2は、一のクロック信号で動作する回路から出力された信号が入力される、他のクロック信号で動作する非同期順序回路の第1段目の順序回路として、フリップフロップ回路FF02を特定する。
Next, in step S102, the
次に、ステップS103において、コンピュータ2は、特定したフリップフロップ回路FF02のインスタンス名「FF02」と、生成段数c(クロックサイクル数)の値「2」とを対応付けて、FFテーブル4に格納する。
Next, in step S103, the
次に、ステップS104において、コンピュータ2は、生成段数cが1以上と判断し(ステップS104;No)、ステップS105において、コンピュータ2は、当該生成段数cから1を減ずる。
Next, in step S104, the
次に、ステップS106において、コンピュータ2は、ステップS102で特定したフリップフロップ回路FF02の出力側(後段側)に接続されているフリップフロップ回路FF03を第2段目の順序回路として新たに特定する。
Next, in step S106, the
次に、ステップS107において、コンピュータ2は、ステップS106において特定したフリップフロップ回路FF03のインスタンス名「FF03」と、ステップS105において算出した生成段数(c−1)の値「1」とを対応付けて、FFテーブル4に格納し、ステップS104に戻る。
Next, in step S107, the
次に、ステップS104において、コンピュータ2は、生成段数(c−1)が1であると判断し(ステップS104;Yes)、本処理を終了する。
Next, in step S104, the
次に、図2のステップS2において、コンピュータ2は、シミュレーション前処理を行う。
具体的には、FFテーブル4にインスタンス名が登録されていないフリップフロップ回路FF01,FF04に対しては、図5のフローチャートで示される動作フローを割り当てる。また、FFテーブル4にインスタンス名が登録されているフリップフロップ回路FF02,FF03に対しては、図6のフローチャートで示される動作フローを割り当てる。
Next, in step S2 of FIG. 2, the
Specifically, the operation flow shown in the flowchart of FIG. 5 is assigned to the flip-flop circuits FF01 and FF04 whose instance names are not registered in the FF table 4. Also, the operation flow shown in the flowchart of FIG. 6 is assigned to the flip-flop circuits FF02 and FF03 whose instance names are registered in the FF table 4.
次に、図2のステップS3において、コンピュータ2は、ステップS2において割り当てた動作フローに従って、各回路の機能シミュレーションを行う。
以下、具体的に、図2のステップS3における機能シミュレーションについて、図8に示すタイミングチャートを参照しながら説明する。
図8の上段に記載された数字「1」〜「26」は、シミュレーションサイクルを示す。初期状態のシミュレーションサイクル0においてクロック信号CLK1,CLK2の値は「0」であり、入力信号DINの値は「0」であり、フリップフロップ回路FF01,FF02,FF03,FF04が保持している値は「0」であり、生成段数cの値は、「0」であるとする。また、機能シミュレーションは、フリップフロップ回路FF04、フリップフロップ回路FF03、フリップフロップ回路FF02、フリップフロップ回路FF01の順に行う。
Next, in step S3 of FIG. 2, the
Hereinafter, the function simulation in step S3 in FIG. 2 will be specifically described with reference to the timing chart shown in FIG.
Numbers “1” to “26” described in the upper part of FIG. 8 indicate simulation cycles. In the
<シミュレーションサイクル0〜1について>
(フリップフロップ回路FF04について)
シミュレーションサイクル0〜1において、クロック信号CLK2がアクティブエッジとなる(ステップS201;Yes、ステップS301;Yes)。
そのため、フリップフロップ回路FF04は、図5のステップS202において、信号Q03の値「0」を保持するとともに、図5のステップS203において保持している値「0」を信号Q04として出力する。
<About
(About flip-flop circuit FF04)
In the
Therefore, the flip-flop circuit FF04 holds the value “0” of the signal Q03 in step S202 of FIG. 5, and outputs the value “0” held in step S203 of FIG. 5 as the signal Q04.
(フリップフロップ回路FF03について)
また、クロックサイクル数(生成段数c)の値が「0」であるため(ステップS302;No)、ステップS304において、コンピュータ2は、フリップフロップ回路FF03に入力される信号Q02の値「0」と保持している値「0」とを比較し、フリップフロップ回路FF03に入力される信号の値に変化がないと判断する(ステップS304;No)。
次に、ステップS305において、コンピュータ2は、当該クロックサイクル数(生成段数c)が0であるか否かを判断することにより、当該フリップフロップ回路FF03がメタステーブル状態であるか否かを判断する。フリップフロップ回路FF03のクロックサイクル数は「0」であるため、コンピュータ2は、フリップフロップ回路FF03がメタステーブル状態ではないと判断する(ステップS305;Yes)。
そして、図6のステップS312において、フリップフロップ回路FF03は、保持している値「0」を信号Q03として出力するとともに、信号Q02の値「0」を保持する。
(About flip-flop circuit FF03)
Further, since the value of the number of clock cycles (number of generation stages c) is “0” (step S302; No), in step S304, the
Next, in step S305, the
In step S312 of FIG. 6, the flip-flop circuit FF03 outputs the held value “0” as the signal Q03, and holds the value “0” of the signal Q02.
(フリップフロップ回路FF02について)
また、フリップフロップ回路FF02の場合も、フリップフロップ回路FF03と同様に、クロックサイクル数(生成段数c)の値が「0」であり(ステップS302;No)、フリップフロップ回路FF02に入力される信号の値に変化がないため(ステップS304;No)、コンピュータ2は、フリップフロップ回路FF02がメタステーブル状態ではないと判断する(ステップS305;Yes)。
そして、図6のステップS312において、フリップフロップ回路FF02は、保持している値「0」を信号Q02として出力するとともに、信号Q01の値「0」を保持する。
(About the flip-flop circuit FF02)
Also in the case of the flip-flop circuit FF02, as in the flip-flop circuit FF03, the value of the number of clock cycles (number of generation stages c) is “0” (step S302; No), and the signal input to the flip-flop circuit FF02 Since there is no change in the value of (No at step S304), the
In step S312 of FIG. 6, the flip-flop circuit FF02 outputs the held value “0” as the signal Q02 and also holds the value “0” of the signal Q01.
(フリップフロップ回路FF01について)
また、シミュレーションサイクル0〜1において、クロック信号CLK1がアクティブエッジとはならない(ステップS201;No)。
そのため、図5のステップS203において、フリップフロップ回路FF01は、保持している値「0」を信号Q01として出力する。
(About flip-flop circuit FF01)
Further, in the
Therefore, in step S203 in FIG. 5, the flip-flop circuit FF01 outputs the held value “0” as the signal Q01.
<シミュレーションサイクル2〜3について>
(フリップフロップ回路FF04について)
シミュレーションサイクル2〜3において、クロック信号CLK2がアクティブエッジとはならない(ステップS201;No、ステップS301;No)。
そのため、フリップフロップ回路FF04は、図5のステップS203において保持している値「0」を信号Q04として出力する。
<About simulation cycles 2-3>
(About flip-flop circuit FF04)
In the
Therefore, the flip-flop circuit FF04 outputs the value “0” held in step S203 of FIG. 5 as the signal Q04.
(フリップフロップ回路FF03について)
また、クロックサイクル数(生成段数c)の値が「0」であるため、コンピュータ2は、フリップフロップ回路FF03がメタステーブル状態ではないと判断する(ステップS310;Yes)。
そして、図6のステップS312において、フリップフロップ回路FF03は、保持している値「0」を信号Q03として出力する。
(About flip-flop circuit FF03)
Further, since the value of the number of clock cycles (the number of generation stages c) is “0”, the
In step S312 of FIG. 6, the flip-flop circuit FF03 outputs the held value “0” as the signal Q03.
(フリップフロップ回路FF02について)
また、フリップフロップ回路FF02の場合も、フリップフロップ回路FF03と同様に、クロックサイクル数(生成段数c)の値が「0」であるため、コンピュータ2は、フリップフロップ回路FF02がメタステーブル状態ではないと判断する(ステップS310;Yes)。
そして、図6のステップS312において、フリップフロップ回路FF02は、保持している値「0」を信号Q02として出力する。
(About the flip-flop circuit FF02)
Also in the case of the flip-flop circuit FF02, the value of the number of clock cycles (number of generation stages c) is “0” as in the flip-flop circuit FF03, and therefore the
In step S312 of FIG. 6, the flip-flop circuit FF02 outputs the held value “0” as the signal Q02.
(フリップフロップ回路FF01について)
また、シミュレーションサイクル2〜3において、クロック信号CLK1がアクティブエッジとはならない(ステップS201;No)。
そのため、図5のステップS203において、フリップフロップ回路FF01は、保持している値「0」を信号Q01として出力する。
(About flip-flop circuit FF01)
Further, in the
Therefore, in step S203 in FIG. 5, the flip-flop circuit FF01 outputs the held value “0” as the signal Q01.
<シミュレーションサイクル4について>
(フリップフロップ回路FF04について)
シミュレーションサイクル4において、クロック信号CLK2がアクティブエッジとはならない(ステップS201;No、ステップS301;No)。
そのため、フリップフロップ回路FF04は、図5のステップS203において保持している値「0」を信号Q04として出力する。
<About
(About flip-flop circuit FF04)
In the
Therefore, the flip-flop circuit FF04 outputs the value “0” held in step S203 of FIG. 5 as the signal Q04.
(フリップフロップ回路FF03について)
また、クロックサイクル数(生成段数c)の値が「0」であるため、コンピュータ2は、フリップフロップ回路FF03がメタステーブル状態ではないと判断する(ステップS310;Yes)。
そして、図6のステップS312において、フリップフロップ回路FF03は、保持している値「0」を信号Q03として出力する。
(About flip-flop circuit FF03)
Further, since the value of the number of clock cycles (the number of generation stages c) is “0”, the
In step S312 of FIG. 6, the flip-flop circuit FF03 outputs the held value “0” as the signal Q03.
(フリップフロップ回路FF02について)
また、フリップフロップ回路FF02の場合も、フリップフロップ回路FF03と同様に、クロックサイクル数(生成段数c)の値が「0」であるため、コンピュータ2は、フリップフロップ回路FF02がメタステーブル状態ではないと判断する(ステップS310;Yes)。
そして、図6のステップS312において、フリップフロップ回路FF02は、保持している値「0」を信号Q02として出力する。
(About the flip-flop circuit FF02)
Also in the case of the flip-flop circuit FF02, the value of the number of clock cycles (number of generation stages c) is “0” as in the flip-flop circuit FF03, and therefore the
In step S312 of FIG. 6, the flip-flop circuit FF02 outputs the held value “0” as the signal Q02.
(フリップフロップ回路FF01について)
また、シミュレーションサイクル4において、クロック信号CLK1がアクティブエッジとなる(ステップS201;Yes)。
そのため、フリップフロップ回路FF01は、図5のステップS202において、入力信号DINの値「7」を保持するとともに、図5のステップS203において保持している値「7」を信号Q01として出力する。
(About flip-flop circuit FF01)
In the
Therefore, the flip-flop circuit FF01 holds the value “7” of the input signal DIN in step S202 of FIG. 5 and outputs the value “7” held in step S203 of FIG. 5 as the signal Q01.
<シミュレーションサイクル5について>
(フリップフロップ回路FF04について)
シミュレーションサイクル5において、クロック信号CLK2がアクティブエッジとなる(ステップS201;Yes、ステップS301;Yes)。
そのため、フリップフロップ回路FF04は、図5のステップS202において、信号Q03の値「0」を保持するとともに、図5のステップS203において保持している値「0」を信号Q04として出力する。
<About
(About flip-flop circuit FF04)
In the
Therefore, the flip-flop circuit FF04 holds the value “0” of the signal Q03 in step S202 of FIG. 5, and outputs the value “0” held in step S203 of FIG. 5 as the signal Q04.
(フリップフロップ回路FF03について)
また、クロックサイクル数(生成段数c)の値が「0」であり(ステップS302;No)、フリップフロップ回路FF03に入力される信号の値に変化がないため(ステップS304;No)、クロックサイクル数(生成段数c)が0であるため、コンピュータ2は、フリップフロップ回路FF03がメタステーブル状態ではないと判断する(ステップS305;Yes)。
そして、図6のステップS312において、フリップフロップ回路FF03は、保持している値「0」を信号Q03として出力するとともに、信号Q02の値「0」を保持する。
(About flip-flop circuit FF03)
Since the value of the number of clock cycles (number of generation stages c) is “0” (step S302; No) and the value of the signal input to the flip-flop circuit FF03 is not changed (step S304; No), the clock cycle Since the number (the number of generation stages c) is 0, the
In step S312 of FIG. 6, the flip-flop circuit FF03 outputs the held value “0” as the signal Q03, and holds the value “0” of the signal Q02.
(フリップフロップ回路FF02について)
また、クロックサイクル数(生成段数c)の値が「0」であるため(ステップS302;No)、ステップS304において、コンピュータ2は、フリップフロップ回路FF02に入力される信号Q01の値「7」と保持している値「0」とを比較し、フリップフロップ回路FF03に入力される信号の値に変化があると判断する(ステップS304;Yes)。
次に、ステップS306において、コンピュータ2は、FFテーブル4のインスタンス名「FF02」に対応するクロックサイクル数(生成段数c)の値「2」を新たにメタステーブルカウンタの値として設定する。
そして、図6のステップ307において、フリップフロップ回路FF02は、入力される信号Q01の値「7」を保持する。
(About the flip-flop circuit FF02)
Further, since the value of the number of clock cycles (number of generation stages c) is “0” (step S302; No), in step S304, the
Next, in step S306, the
In step 307 in FIG. 6, the flip-flop circuit FF02 holds the value “7” of the input signal Q01.
次に、ステップS308において、コンピュータ2は、フリップフロップ回路FF02のメタステーブル状態値Dmを生成して、ROMに格納するとともに、フリップフロップ回路FF02は当該メタステーブル状態値Dmを保持する。ここで、メタステーブル状態値Dmはランダムな値であり、ステップS307で保持した値「7」とは異なる値である。ここでは、コンピュータ2は、メタステーブル状態値Dmとして「5」を生成したものとする。
次に、ステップS309において、フリップフロップ回路FF02は、ステップS308で保持したメタステーブル状態値Dmである値「5」を、信号Q02として出力する。
Next, in step S308, the
Next, in step S309, the flip-flop circuit FF02 outputs the value “5” that is the metastable state value Dm held in step S308 as the signal Q02.
(フリップフロップ回路FF01について)
また、シミュレーションサイクル5において、クロック信号CLK1がアクティブエッジとはならない(ステップS201;No)。
そのため、図5のステップS203において、フリップフロップ回路FF01は、保持している値「7」を信号Q01として出力する。
(About flip-flop circuit FF01)
In the
Therefore, in step S203 in FIG. 5, the flip-flop circuit FF01 outputs the held value “7” as the signal Q01.
<シミュレーションサイクル6〜8について>
(フリップフロップ回路FF04について)
シミュレーションサイクル6〜8において、クロック信号CLK2がアクティブエッジとはならない(ステップS201;No、ステップS301;No)。
そのため、フリップフロップ回路FF04は、図5のステップS203において保持している値「0」を信号Q04として出力する。
<About simulation cycles 6-8>
(About flip-flop circuit FF04)
In
Therefore, the flip-flop circuit FF04 outputs the value “0” held in step S203 of FIG. 5 as the signal Q04.
(フリップフロップ回路FF03について)
また、クロックサイクル数(生成段数c)の値が「0」であるため、コンピュータ2は、フリップフロップ回路FF03がメタステーブル状態ではないと判断する(ステップS310;Yes)。
そして、図6のステップS312において、フリップフロップ回路FF03は、保持している値「0」を信号Q03として出力する。
(About flip-flop circuit FF03)
Further, since the value of the number of clock cycles (the number of generation stages c) is “0”, the
In step S312 of FIG. 6, the flip-flop circuit FF03 outputs the held value “0” as the signal Q03.
(フリップフロップ回路FF02について)
また、クロックサイクル数(生成段数c)の値が「2」であるため、コンピュータ2は、フリップフロップ回路FF02がメタステーブル状態であると判断する(ステップS310;No)。
そして、図6のステップS311において、フリップフロップ回路FF02は、メタステーブル状態値Dmである値「5」を信号Q02として出力する。
(About the flip-flop circuit FF02)
Further, since the value of the number of clock cycles (number of generation stages c) is “2”, the
In step S311 of FIG. 6, the flip-flop circuit FF02 outputs the value “5” that is the metastable state value Dm as the signal Q02.
(フリップフロップ回路FF01について)
また、シミュレーションサイクル6〜8において、クロック信号CLK1がアクティブエッジとはならない(ステップS201;No)。
そのため、図5のステップS203において、フリップフロップ回路FF01は、保持している値「7」を信号Q01として出力する。
(About flip-flop circuit FF01)
In
Therefore, in step S203 in FIG. 5, the flip-flop circuit FF01 outputs the held value “7” as the signal Q01.
<シミュレーションサイクル9について>
(フリップフロップ回路FF04について)
シミュレーションサイクル9において、クロック信号CLK2がアクティブエッジとなる(ステップS201;Yes、ステップS301;Yes)。
そのため、フリップフロップ回路FF04は、図5のステップS202において、信号Q03の値「0」を保持するとともに、図5のステップS203において保持している値「0」を信号Q04として出力する。
<About
(About flip-flop circuit FF04)
In the
Therefore, the flip-flop circuit FF04 holds the value “0” of the signal Q03 in step S202 of FIG. 5, and outputs the value “0” held in step S203 of FIG. 5 as the signal Q04.
(フリップフロップ回路FF03について)
また、クロックサイクル数(生成段数c)の値が「0」であるため(ステップS302;No)、ステップS304において、コンピュータ2は、フリップフロップ回路FF03に入力される信号Q02の値「5」と保持している値「0」とを比較し、フリップフロップ回路FF03に入力される信号の値に変化があると判断する(ステップS304;Yes)。
次に、ステップS306において、コンピュータ2は、FFテーブル4のインスタンス名「FF03」に対応するクロックサイクル数(生成段数(c−1))の値「1」を新たにメタステーブルカウンタの値として設定する。
そして、図6のステップ307において、フリップフロップ回路FF03は、入力される信号Q02の値「5」を保持する。
(About flip-flop circuit FF03)
Further, since the value of the number of clock cycles (number of generation stages c) is “0” (step S302; No), in step S304, the
Next, in step S306, the
In step 307 in FIG. 6, the flip-flop circuit FF03 holds the value “5” of the input signal Q02.
次に、ステップS308において、コンピュータ2は、フリップフロップ回路FF03のメタステーブル状態値Dmを生成して、ROMに格納するとともに、フリップフロップ回路FF03は当該メタステーブル状態値Dmを保持する。ここで、メタステーブル状態値Dmはランダムな値であり、ステップS307で保持した値「5」とは異なる値である。ここでは、コンピュータ2は、メタステーブル状態値Dmとして「2」を生成したものとする。
次に、ステップS309において、フリップフロップ回路FF03は、ステップS308で保持したメタステーブル状態値Dmである値「2」を、信号Q03として出力する。
Next, in step S308, the
Next, in step S309, the flip-flop circuit FF03 outputs the value “2” that is the metastable state value Dm held in step S308 as the signal Q03.
(フリップフロップ回路FF02について)
また、クロックサイクル数(生成段数c)の値が「2」であるため(ステップS302;Yes)、ステップS303において、コンピュータ2は、当該クロックサイクル数から1を減ずる。これにより、クロックサイクル数の値は「1」となる。
次に、フリップフロップ回路FF02に入力される信号Q01の値は「7」であり、フリップフロップ回路FF02が保持している値も「7」であるため、コンピュータ2は、フリップフロップ回路FF02に入力される信号Q01の値に変化がないと判断する(ステップS304;No)。
次に、フリップフロップ回路FF02のクロックサイクル数(生成段数c)は「1」であるため、コンピュータ2は、フリップフロップ回路FF02がメタステーブル状態であると判断する(ステップS305;No)。
次に、ステップS308において、コンピュータ2は、フリップフロップ回路FF02のメタステーブル状態値Dmを生成して、ROMに格納するとともに、フリップフロップ回路FF02は当該メタステーブル状態値Dmを保持する。ここでは、コンピュータ2は、メタステーブル状態値Dmとして「1」を生成したものとする。
次に、ステップS309において、フリップフロップ回路FF02は、ステップS308で保持したメタステーブル状態値Dmである値「1」を、信号Q02として出力する。
(About the flip-flop circuit FF02)
Further, since the value of the number of clock cycles (number of generation stages c) is “2” (step S302; Yes), in step S303, the
Next, since the value of the signal Q01 input to the flip-flop circuit FF02 is “7” and the value held by the flip-flop circuit FF02 is also “7”, the
Next, since the number of clock cycles (the number of generation stages c) of the flip-flop circuit FF02 is “1”, the
Next, in step S308, the
Next, in step S309, the flip-flop circuit FF02 outputs the value “1” that is the metastable state value Dm held in step S308 as a signal Q02.
(フリップフロップ回路FF01について)
また、シミュレーションサイクル9において、クロック信号CLK1がアクティブエッジとはならない(ステップS201;No)。
そのため、図5のステップS203において、フリップフロップ回路FF01は、保持している値「7」を信号Q01として出力する。
(About flip-flop circuit FF01)
In the
Therefore, in step S203 in FIG. 5, the flip-flop circuit FF01 outputs the held value “7” as the signal Q01.
<シミュレーションサイクル10〜12について>
(フリップフロップ回路FF04について)
シミュレーションサイクル10〜12において、クロック信号CLK2がアクティブエッジとはならない(ステップS201;No、ステップS301;No)。
そのため、フリップフロップ回路FF04は、図5のステップS203において保持している値「0」を信号Q04として出力する。
<About simulation cycles 10-12>
(About flip-flop circuit FF04)
In the simulation cycles 10 to 12, the clock signal CLK2 does not become an active edge (step S201; No, step S301; No).
Therefore, the flip-flop circuit FF04 outputs the value “0” held in step S203 of FIG. 5 as the signal Q04.
(フリップフロップ回路FF03について)
また、クロックサイクル数(生成段数c)の値が「1」であるため、コンピュータ2は、フリップフロップ回路FF03がメタステーブル状態であると判断する(ステップS310;No)。
そして、図6のステップS311において、フリップフロップ回路FF03は、メタステーブル状態値Dmである値「2」を信号Q03として出力する。
(About flip-flop circuit FF03)
Further, since the value of the number of clock cycles (number of generation stages c) is “1”, the
In step S311 of FIG. 6, the flip-flop circuit FF03 outputs the value “2” that is the metastable state value Dm as the signal Q03.
(フリップフロップ回路FF02について)
また、クロックサイクル数(生成段数c)の値が「1」であるため、コンピュータ2は、フリップフロップ回路FF02がメタステーブル状態であると判断する(ステップS310;No)。
そして、図6のステップS311において、フリップフロップ回路FF02は、メタステーブル状態値Dmである値「1」を信号Q02として出力する。
(About the flip-flop circuit FF02)
Further, since the value of the number of clock cycles (number of generation stages c) is “1”, the
In step S311 of FIG. 6, the flip-flop circuit FF02 outputs the value “1” that is the metastable state value Dm as the signal Q02.
(フリップフロップ回路FF01について)
また、シミュレーションサイクル10〜12において、クロック信号CLK1がアクティブエッジとはならない(ステップS201;No)。
そのため、図5のステップS203において、フリップフロップ回路FF01は、保持している値「7」を信号Q01として出力する。
(About flip-flop circuit FF01)
In the simulation cycles 10 to 12, the clock signal CLK1 does not become an active edge (step S201; No).
Therefore, in step S203 in FIG. 5, the flip-flop circuit FF01 outputs the held value “7” as the signal Q01.
<シミュレーションサイクル13について>
(フリップフロップ回路FF04について)
シミュレーションサイクル13において、クロック信号CLK2がアクティブエッジとなる(ステップS201;Yes、ステップS301;Yes)。
そのため、フリップフロップ回路FF04は、図5のステップS202において、信号Q03の値「2」を保持するとともに、図5のステップS203において保持している値「2」を信号Q04として出力する。
<About
(About flip-flop circuit FF04)
In the
Therefore, the flip-flop circuit FF04 holds the value “2” of the signal Q03 in step S202 of FIG. 5, and outputs the value “2” held in step S203 of FIG. 5 as the signal Q04.
(フリップフロップ回路FF03について)
また、クロックサイクル数(生成段数c)の値が「1」であるため(ステップS302;Yes)、ステップS303において、コンピュータ2は、当該クロックサイクル数から1を減ずる。これにより、クロックサイクル数の値は「0」となる。
次に、フリップフロップ回路FF03に入力される信号Q02の値は「1」であり、フリップフロップ回路FF03が保持している値は「5」であるため、コンピュータ2は、フリップフロップ回路FF03に入力される信号Q02の値に変化があると判断する(ステップS304;Yes)。
次に、ステップS306において、コンピュータ2は、FFテーブル4のインスタンス名「FF03」に対応するクロックサイクル数(生成段数(c−1))の値「1」を新たにメタステーブルカウンタの値として設定する。
そして、図6のステップ307において、フリップフロップ回路FF03は、入力される信号Q02の値「1」を保持する。
(About flip-flop circuit FF03)
Further, since the value of the number of clock cycles (number of generation stages c) is “1” (step S302; Yes), in step S303, the
Next, since the value of the signal Q02 input to the flip-flop circuit FF03 is “1” and the value held by the flip-flop circuit FF03 is “5”, the
Next, in step S306, the
In step 307 in FIG. 6, the flip-flop circuit FF03 holds the value “1” of the input signal Q02.
次に、ステップS308において、コンピュータ2は、フリップフロップ回路FF03のメタステーブル状態値Dmを生成して、ROMに格納するとともに、フリップフロップ回路FF03は当該メタステーブル状態値Dmを保持する。ここでは、コンピュータ2は、メタステーブル状態値Dmとして「4」を生成したものとする。
次に、ステップS309において、フリップフロップ回路FF03は、ステップS308で保持したメタステーブル状態値Dmである値「4」を、信号Q03として出力する。
Next, in step S308, the
Next, in step S309, the flip-flop circuit FF03 outputs the value “4”, which is the metastable state value Dm held in step S308, as a signal Q03.
(フリップフロップ回路FF02について)
また、クロックサイクル数(生成段数c)の値が「1」であるため(ステップS302;Yes)、ステップS303において、コンピュータ2は、当該クロックサイクル数から1を減ずる。これにより、クロックサイクル数の値は「0」となる。
次に、フリップフロップ回路FF02に入力される信号Q01の値は「7」であり、フリップフロップ回路FF02が保持している値も「7」であるため、コンピュータ2は、フリップフロップ回路FF02に入力される信号Q01の値に変化がないと判断する(ステップS304;No)。
次に、フリップフロップ回路FF02のクロックサイクル数(生成段数c)は「0」であるため、コンピュータ2は、フリップフロップ回路FF02がメタステーブル状態ではないと判断する(ステップS305;Yes)。
そして、図6のステップS312において、フリップフロップ回路FF02は、保持している値「7」を信号Q02として出力する。
(About the flip-flop circuit FF02)
Further, since the value of the number of clock cycles (number of generation stages c) is “1” (step S302; Yes), in step S303, the
Next, since the value of the signal Q01 input to the flip-flop circuit FF02 is “7” and the value held by the flip-flop circuit FF02 is also “7”, the
Next, since the number of clock cycles (number of generation stages c) of the flip-flop circuit FF02 is “0”, the
In step S312 of FIG. 6, the flip-flop circuit FF02 outputs the held value “7” as the signal Q02.
(フリップフロップ回路FF01について)
また、シミュレーションサイク13において、クロック信号CLK1がアクティブエッジとはならない(ステップS201;No)。
そのため、図5のステップS203において、フリップフロップ回路FF01は、保持している値「7」を信号Q01として出力する。
(About flip-flop circuit FF01)
In the
Therefore, in step S203 in FIG. 5, the flip-flop circuit FF01 outputs the held value “7” as the signal Q01.
<シミュレーションサイクル14〜16について>
(フリップフロップ回路FF04について)
シミュレーションサイクル14〜16において、クロック信号CLK2がアクティブエッジとはならない(ステップS201;No、ステップS301;No)。
そのため、フリップフロップ回路FF04は、図5のステップS203において保持している値「2」を信号Q04として出力する。
<About simulation cycles 14 to 16>
(About flip-flop circuit FF04)
In
Therefore, the flip-flop circuit FF04 outputs the value “2” held in step S203 of FIG. 5 as the signal Q04.
(フリップフロップ回路FF03について)
また、クロックサイクル数(生成段数c)の値が「1」であるため、コンピュータ2は、フリップフロップ回路FF03がメタステーブル状態であると判断する(ステップS310;No)。
そして、図6のステップS311において、フリップフロップ回路FF03は、メタステーブル状態値Dmである値「4」を信号Q03として出力する。
(About flip-flop circuit FF03)
Further, since the value of the number of clock cycles (number of generation stages c) is “1”, the
In step S311 of FIG. 6, the flip-flop circuit FF03 outputs the value “4” that is the metastable state value Dm as the signal Q03.
(フリップフロップ回路FF02について)
また、クロックサイクル数(生成段数c)の値が「0」であるため、コンピュータ2は、フリップフロップ回路FF02がメタステーブル状態ではないと判断する(ステップS310;Yes)。
そして、図6のステップS312において、フリップフロップ回路FF02は、保持している値「7」を信号Q02として出力する。
(About the flip-flop circuit FF02)
Further, since the value of the number of clock cycles (number of generation stages c) is “0”, the
In step S312 of FIG. 6, the flip-flop circuit FF02 outputs the held value “7” as the signal Q02.
(フリップフロップ回路FF01について)
また、シミュレーションサイクル10〜12において、クロック信号CLK1がアクティブエッジとはならない(ステップS201;No)。
そのため、図5のステップS203において、フリップフロップ回路FF01は、保持している値「7」を信号Q01として出力する。
(About flip-flop circuit FF01)
In the simulation cycles 10 to 12, the clock signal CLK1 does not become an active edge (step S201; No).
Therefore, in step S203 in FIG. 5, the flip-flop circuit FF01 outputs the held value “7” as the signal Q01.
<シミュレーションサイクル17について>
(フリップフロップ回路FF04について)
シミュレーションサイクル17において、クロック信号CLK2がアクティブエッジとなる(ステップS201;Yes、ステップS301;Yes)。
そのため、フリップフロップ回路FF04は、図5のステップS202において、信号Q03の値「4」を保持するとともに、図5のステップS203において保持している値「4」を信号Q04として出力する。
<About
(About flip-flop circuit FF04)
In the
Therefore, the flip-flop circuit FF04 holds the value “4” of the signal Q03 in step S202 of FIG. 5, and outputs the value “4” held in step S203 of FIG. 5 as the signal Q04.
(フリップフロップ回路FF03について)
また、クロックサイクル数(生成段数c)の値が「1」であるため(ステップS302;Yes)、ステップS303において、コンピュータ2は、当該クロックサイクル数から1を減ずる。これにより、クロックサイクル数の値は「0」となる。
次に、フリップフロップ回路FF03に入力される信号Q02の値は「7」であり、フリップフロップ回路FF03が保持している値は「4」であるため、コンピュータ2は、フリップフロップ回路FF03に入力される信号Q02の値に変化があると判断する(ステップS304;Yes)。
次に、ステップS306において、コンピュータ2は、FFテーブル4のインスタンス名「FF03」に対応するクロックサイクル数(生成段数(c−1))の値「1」を新たにメタステーブルカウンタの値として設定する。
そして、図6のステップ307において、フリップフロップ回路FF03は、入力される信号Q02の値「7」を保持する。
(About flip-flop circuit FF03)
Further, since the value of the number of clock cycles (number of generation stages c) is “1” (step S302; Yes), in step S303, the
Next, since the value of the signal Q02 input to the flip-flop circuit FF03 is “7” and the value held by the flip-flop circuit FF03 is “4”, the
Next, in step S306, the
In step 307 in FIG. 6, the flip-flop circuit FF03 holds the value “7” of the input signal Q02.
次に、ステップS308において、コンピュータ2は、フリップフロップ回路FF03のメタステーブル状態値Dmを生成して、ROMに格納するとともに、フリップフロップ回路FF03は当該メタステーブル状態値Dmを保持する。ここでは、コンピュータ2は、メタステーブル状態値Dmとして「6」を生成したものとする。
次に、ステップS309において、フリップフロップ回路FF03は、ステップS308で保持したメタステーブル状態値Dmである値「6」を、信号Q03として出力する。
Next, in step S308, the
Next, in step S309, the flip-flop circuit FF03 outputs the value “6” that is the metastable state value Dm held in step S308 as the signal Q03.
(フリップフロップ回路FF02について)
また、クロックサイクル数(生成段数c)の値が「0」であり(ステップS302;No)、フリップフロップ回路FF02に入力される信号Q01の値は「7」であり、フリップフロップ回路FF02が保持している値も「7」であるため、コンピュータ2は、フリップフロップ回路FF02に入力される信号Q01の値に変化がないと判断する(ステップS304;No)。
次に、フリップフロップ回路FF02のクロックサイクル数(生成段数c)は「0」であるため、コンピュータ2は、フリップフロップ回路FF02がメタステーブル状態ではないと判断する(ステップS305;Yes)。
そして、図6のステップS312において、フリップフロップ回路FF02は、保持している値「7」を信号Q02として出力する。
(About the flip-flop circuit FF02)
Further, the value of the number of clock cycles (number of generation stages c) is “0” (step S302; No), the value of the signal Q01 input to the flip-flop circuit FF02 is “7”, and the flip-flop circuit FF02 holds the value. Since the value being “7” is also “7”, the
Next, since the number of clock cycles (number of generation stages c) of the flip-flop circuit FF02 is “0”, the
In step S312 of FIG. 6, the flip-flop circuit FF02 outputs the held value “7” as the signal Q02.
(フリップフロップ回路FF01について)
また、シミュレーションサイクル17において、クロック信号CLK1がアクティブエッジとはならない(ステップS201;No)。
そのため、図5のステップS203において、フリップフロップ回路FF01は、保持している値「7」を信号Q01として出力する。
(About flip-flop circuit FF01)
In the
Therefore, in step S203 in FIG. 5, the flip-flop circuit FF01 outputs the held value “7” as the signal Q01.
<シミュレーションサイクル18について>
(フリップフロップ回路FF04について)
シミュレーションサイクル18において、クロック信号CLK2がアクティブエッジとはならない(ステップS201;No、ステップS301;No)。
そのため、フリップフロップ回路FF04は、図5のステップS203において保持している値「4」を信号Q04として出力する。
<About
(About flip-flop circuit FF04)
In the
Therefore, the flip-flop circuit FF04 outputs the value “4” held in step S203 of FIG. 5 as the signal Q04.
(フリップフロップ回路FF03について)
また、クロックサイクル数(生成段数c)の値が「1」であるため、コンピュータ2は、フリップフロップ回路FF03がメタステーブル状態であると判断する(ステップS310;No)。
そして、図6のステップS311において、フリップフロップ回路FF03は、メタステーブル状態値Dmである値「6」を信号Q03として出力する。
(About flip-flop circuit FF03)
Further, since the value of the number of clock cycles (number of generation stages c) is “1”, the
In step S311 of FIG. 6, the flip-flop circuit FF03 outputs the value “6” that is the metastable state value Dm as the signal Q03.
(フリップフロップ回路FF02について)
また、クロックサイクル数(生成段数c)の値が「0」であるため、コンピュータ2は、フリップフロップ回路FF02がメタステーブル状態ではないと判断する(ステップS310;Yes)。
そして、図6のステップS312において、フリップフロップ回路FF02は、保持している値「7」を信号Q02として出力する。
(About the flip-flop circuit FF02)
Further, since the value of the number of clock cycles (number of generation stages c) is “0”, the
In step S312 of FIG. 6, the flip-flop circuit FF02 outputs the held value “7” as the signal Q02.
(フリップフロップ回路FF01について)
また、シミュレーションサイクル18において、クロック信号CLK1がアクティブエッジとなる(ステップS201;Yes)。
そのため、フリップフロップ回路FF01は、図5のステップS202において、入力信号DINの値「3」を保持するとともに、図5のステップS203において保持している値「3」を信号Q01として出力する。
(About flip-flop circuit FF01)
In the
Therefore, the flip-flop circuit FF01 holds the value “3” of the input signal DIN in step S202 of FIG. 5 and outputs the value “3” held in step S203 of FIG. 5 as the signal Q01.
<シミュレーションサイクル19〜20について>
(フリップフロップ回路FF04について)
シミュレーションサイクル19〜20において、クロック信号CLK2がアクティブエッジとはならない(ステップS201;No、ステップS301;No)。
そのため、フリップフロップ回路FF04は、図5のステップS203において保持している値「4」を信号Q04として出力する。
<About simulation cycles 19-20>
(About flip-flop circuit FF04)
In the simulation cycles 19 to 20, the clock signal CLK2 does not become an active edge (Step S201; No, Step S301; No).
Therefore, the flip-flop circuit FF04 outputs the value “4” held in step S203 of FIG. 5 as the signal Q04.
(フリップフロップ回路FF03について)
また、クロックサイクル数(生成段数c)の値が「1」であるため、コンピュータ2は、フリップフロップ回路FF03がメタステーブル状態であると判断する(ステップS310;No)。
そして、図6のステップS311において、フリップフロップ回路FF03は、メタステーブル状態値Dmである値「6」を信号Q03として出力する。
(About flip-flop circuit FF03)
Further, since the value of the number of clock cycles (number of generation stages c) is “1”, the
In step S311 of FIG. 6, the flip-flop circuit FF03 outputs the value “6” that is the metastable state value Dm as the signal Q03.
(フリップフロップ回路FF02について)
また、クロックサイクル数(生成段数c)の値が「0」であるため、コンピュータ2は、フリップフロップ回路FF02がメタステーブル状態ではないと判断する(ステップS310;Yes)。
そして、図6のステップS312において、フリップフロップ回路FF02は、保持している値「7」を信号Q02として出力する。
(About the flip-flop circuit FF02)
Further, since the value of the number of clock cycles (number of generation stages c) is “0”, the
In step S312 of FIG. 6, the flip-flop circuit FF02 outputs the held value “7” as the signal Q02.
(フリップフロップ回路FF01について)
また、シミュレーションサイクル19〜20において、クロック信号CLK1がアクティブエッジとはならない(ステップS201;No)。
そのため、図5のステップS203において、フリップフロップ回路FF01は、保持している値「3」を信号Q01として出力する。
(About flip-flop circuit FF01)
In the simulation cycles 19 to 20, the clock signal CLK1 does not become an active edge (step S201; No).
Therefore, in step S203 of FIG. 5, the flip-flop circuit FF01 outputs the held value “3” as the signal Q01.
<シミュレーションサイクル21について>
(フリップフロップ回路FF04について)
シミュレーションサイクル21において、クロック信号CLK2がアクティブエッジとなる(ステップS201;Yes、ステップS301;Yes)。
そのため、フリップフロップ回路FF04は、図5のステップS202において、信号Q03の値「6」を保持するとともに、図5のステップS203において保持している値「6」を信号Q04として出力する。
<About
(About flip-flop circuit FF04)
In the
Therefore, the flip-flop circuit FF04 holds the value “6” of the signal Q03 in step S202 of FIG. 5, and outputs the value “6” held in step S203 of FIG. 5 as the signal Q04.
(フリップフロップ回路FF03について)
また、クロックサイクル数(生成段数c)の値が「1」であるため(ステップS302;Yes)、ステップS303において、コンピュータ2は、当該クロックサイクル数から1を減ずる。これにより、クロックサイクル数の値は「0」となる。
次に、フリップフロップ回路FF03に入力される信号Q02の値は「7」であり、フリップフロップ回路FF03が保持している値も「7」であるため、コンピュータ2は、フリップフロップ回路FF03に入力される信号Q02の値に変化がないと判断する(ステップS304;No)。
次に、フリップフロップ回路FF03のクロックサイクル数(生成段数c)は「0」であるため、コンピュータ2は、フリップフロップ回路FF03がメタステーブル状態ではないと判断する(ステップS305;Yes)。
そして、図6のステップS312において、フリップフロップ回路FF03は、保持している値「7」を信号Q03として出力する。
(About flip-flop circuit FF03)
Further, since the value of the number of clock cycles (number of generation stages c) is “1” (step S302; Yes), in step S303, the
Next, since the value of the signal Q02 input to the flip-flop circuit FF03 is “7” and the value held by the flip-flop circuit FF03 is also “7”, the
Next, since the number of clock cycles (number of generation stages c) of the flip-flop circuit FF03 is “0”, the
In step S312 of FIG. 6, the flip-flop circuit FF03 outputs the held value “7” as the signal Q03.
(フリップフロップ回路FF02について)
また、クロックサイクル数(生成段数c)の値が「0」であり(ステップS302;No)、フリップフロップ回路FF02に入力される信号Q01の値は「3」であり、フリップフロップ回路FF02が保持している値は「7」であるため、コンピュータ2は、フリップフロップ回路FF02に入力される信号Q01の値に変化があると判断する(ステップS304;Yes)。
次に、ステップS306において、コンピュータ2は、FFテーブル4のインスタンス名「FF02」に対応するクロックサイクル数(生成段数c)の値「2」を新たにメタステーブルカウンタの値として設定する。
そして、図6のステップ307において、フリップフロップ回路FF02は、入力される信号Q01の値「3」を保持する。
(About the flip-flop circuit FF02)
In addition, the value of the number of clock cycles (number of generation stages c) is “0” (step S302; No), the value of the signal Q01 input to the flip-flop circuit FF02 is “3”, and the flip-flop circuit FF02 holds the value. Since the current value is “7”, the
Next, in step S306, the
In step 307 in FIG. 6, the flip-flop circuit FF02 holds the value “3” of the input signal Q01.
次に、ステップS308において、コンピュータ2は、フリップフロップ回路FF02のメタステーブル状態値Dmを生成して、ROMに格納するとともに、フリップフロップ回路FF02は当該メタステーブル状態値Dmを保持する。ここでは、コンピュータ2は、メタステーブル状態値Dmとして「6」を生成したものとする。
次に、ステップS309において、フリップフロップ回路FF02は、ステップS308で保持したメタステーブル状態値Dmである値「6」を、信号Q01として出力する。
Next, in step S308, the
Next, in step S309, the flip-flop circuit FF02 outputs the value “6” that is the metastable state value Dm held in step S308 as the signal Q01.
(フリップフロップ回路FF01について)
また、シミュレーションサイクル21において、クロック信号CLK1がアクティブエッジとはならない(ステップS201;No)。
そのため、図5のステップS203において、フリップフロップ回路FF01は、保持している値「3」を信号Q01として出力する。
(About flip-flop circuit FF01)
In the
Therefore, in step S203 of FIG. 5, the flip-flop circuit FF01 outputs the held value “3” as the signal Q01.
<シミュレーションサイクル22〜24について>
(フリップフロップ回路FF04について)
シミュレーションサイクル22〜24において、クロック信号CLK2がアクティブエッジとはならない(ステップS201;No、ステップS301;No)。
そのため、フリップフロップ回路FF04は、図5のステップS203において保持している値「6」を信号Q04として出力する。
<About simulation cycles 22 to 24>
(About flip-flop circuit FF04)
In the simulation cycles 22 to 24, the clock signal CLK2 does not become an active edge (Step S201; No, Step S301; No).
Therefore, the flip-flop circuit FF04 outputs the value “6” held in step S203 of FIG. 5 as the signal Q04.
(フリップフロップ回路FF03について)
また、クロックサイクル数(生成段数c)の値が「0」であるため、コンピュータ2は、フリップフロップ回路FF03がメタステーブル状態ではないと判断する(ステップS310;Yes)。
そして、図6のステップS312において、フリップフロップ回路FF03は、保持している値「7」を信号Q03として出力する。
(About flip-flop circuit FF03)
Further, since the value of the number of clock cycles (the number of generation stages c) is “0”, the
In step S312 of FIG. 6, the flip-flop circuit FF03 outputs the held value “7” as the signal Q03.
(フリップフロップ回路FF02について)
また、クロックサイクル数(生成段数c)の値が「2」であるため、コンピュータ2は、フリップフロップ回路FF02がメタステーブル状態であると判断する(ステップS310;No)。
そして、図6のステップS311において、フリップフロップ回路FF02は、メタステーブル状態値Dmである値「6」を信号Q02として出力する。
(About the flip-flop circuit FF02)
Further, since the value of the number of clock cycles (number of generation stages c) is “2”, the
In step S311 of FIG. 6, the flip-flop circuit FF02 outputs the value “6” that is the metastable state value Dm as the signal Q02.
(フリップフロップ回路FF01について)
また、シミュレーションサイクル22〜24において、クロック信号CLK1がアクティブエッジとはならない(ステップS201;No)。
そのため、図5のステップS203において、フリップフロップ回路FF01は、保持している値「3」を信号Q01として出力する。
(About flip-flop circuit FF01)
In the simulation cycles 22 to 24, the clock signal CLK1 does not become an active edge (Step S201; No).
Therefore, in step S203 of FIG. 5, the flip-flop circuit FF01 outputs the held value “3” as the signal Q01.
<シミュレーションサイクル25について>
(フリップフロップ回路FF04について)
シミュレーションサイクル25において、クロック信号CLK2がアクティブエッジとなる(ステップS201;Yes、ステップS301;Yes)。
そのため、フリップフロップ回路FF04は、図5のステップS202において、信号Q03の値「7」を保持するとともに、図5のステップS203において保持している値「7」を信号Q04として出力する。
<About
(About flip-flop circuit FF04)
In the
Therefore, the flip-flop circuit FF04 holds the value “7” of the signal Q03 in step S202 of FIG. 5, and outputs the value “7” held in step S203 of FIG. 5 as the signal Q04.
(フリップフロップ回路FF03について)
また、クロックサイクル数(生成段数c)の値が「0」であり(ステップS302;No)、フリップフロップ回路FF03に入力される信号Q02の値は「1」であり、フリップフロップ回路FF03が保持している値は「5」であるため、コンピュータ2は、フリップフロップ回路FF03に入力される信号Q02の値に変化があると判断する(ステップS304;Yes)。
次に、ステップS306において、コンピュータ2は、FFテーブル4のインスタンス名「FF03」に対応するクロックサイクル数(生成段数(c−1))の値「1」を新たにメタステーブルカウンタの値として設定する。
そして、図6のステップ307において、フリップフロップ回路FF03は、入力される信号Q02の値「1」を保持する。
(About flip-flop circuit FF03)
Further, the value of the number of clock cycles (number of generation stages c) is “0” (step S302; No), the value of the signal Q02 input to the flip-flop circuit FF03 is “1”, and the flip-flop circuit FF03 holds the value. Since the current value is “5”, the
Next, in step S306, the
In step 307 in FIG. 6, the flip-flop circuit FF03 holds the value “1” of the input signal Q02.
次に、ステップS308において、コンピュータ2は、フリップフロップ回路FF03のメタステーブル状態値Dmを生成して、ROMに格納するとともに、フリップフロップ回路FF02は当該メタステーブル状態値Dmを保持する。ここでは、コンピュータ2は、メタステーブル状態値Dmとして「5」を生成したものとする。
次に、ステップS309において、フリップフロップ回路FF03は、ステップS308で保持したメタステーブル状態値Dmである値「5」を、信号Q03として出力する。
Next, in step S308, the
Next, in step S309, the flip-flop circuit FF03 outputs the value “5” that is the metastable state value Dm held in step S308 as the signal Q03.
(フリップフロップ回路FF02について)
また、クロックサイクル数(生成段数c)の値が「2」であるため(ステップS302;No)、ステップS303において、コンピュータ2は、当該クロックサイクル数から1を減ずる。これにより、クロックサイクル数の値は「1」となる。
次に、フリップフロップ回路FF02に入力される信号Q01の値は「3」であり、フリップフロップ回路FF02が保持している値は「3」であるため、コンピュータ2は、フリップフロップ回路FF02に入力される信号Q01の値に変化がないと判断する(ステップS304;No)。
次に、フリップフロップ回路FF02のクロックサイクル数(生成段数c)は「1」であるため、コンピュータ2は、フリップフロップ回路FF03がメタステーブル状態であると判断する(ステップS305;No)。
(About the flip-flop circuit FF02)
Further, since the value of the number of clock cycles (number of generation stages c) is “2” (step S302; No), in step S303, the
Next, since the value of the signal Q01 input to the flip-flop circuit FF02 is “3” and the value held by the flip-flop circuit FF02 is “3”, the
Next, since the number of clock cycles (the number of generation stages c) of the flip-flop circuit FF02 is “1”, the
次に、ステップS308において、コンピュータ2は、フリップフロップ回路FF02のメタステーブル状態値Dmを生成して、ROMに格納するとともに、フリップフロップ回路FF02は当該メタステーブル状態値Dmを保持する。ここでは、コンピュータ2は、メタステーブル状態値Dmとして「1」を生成したものとする。
次に、ステップS309において、フリップフロップ回路FF02は、ステップS308で保持したメタステーブル状態値Dmである値「1」を、信号Q02として出力する。
Next, in step S308, the
Next, in step S309, the flip-flop circuit FF02 outputs the value “1” that is the metastable state value Dm held in step S308 as a signal Q02.
(フリップフロップ回路FF01について)
また、シミュレーションサイクル25において、クロック信号CLK1がアクティブエッジとはならない(ステップS201;No)。
そのため、図5のステップS203において、フリップフロップ回路FF01は、保持している値「3」を信号Q01として出力する。
(About flip-flop circuit FF01)
In the
Therefore, in step S203 of FIG. 5, the flip-flop circuit FF01 outputs the held value “3” as the signal Q01.
<シミュレーションサイクル26について>
(フリップフロップ回路FF04について)
シミュレーションサイクル26において、クロック信号CLK2がアクティブエッジとはならない(ステップS201;No、ステップS301;No)。
そのため、フリップフロップ回路FF04は、図5のステップS203において保持している値「7」を信号Q04として出力する。
<About the
(About flip-flop circuit FF04)
In the
Therefore, the flip-flop circuit FF04 outputs the value “7” held in step S203 of FIG. 5 as the signal Q04.
(フリップフロップ回路FF03について)
また、クロックサイクル数(生成段数c)の値が「1」であるため、コンピュータ2は、フリップフロップ回路FF03がメタステーブル状態であると判断する(ステップS310;No)。
そして、図6のステップS311において、フリップフロップ回路FF03は、メタステーブル状態値Dmである値「5」を信号Q03として出力する。
(About flip-flop circuit FF03)
Further, since the value of the number of clock cycles (number of generation stages c) is “1”, the
In step S311 of FIG. 6, the flip-flop circuit FF03 outputs the value “5” that is the metastable state value Dm as the signal Q03.
(フリップフロップ回路FF02について)
また、クロックサイクル数(生成段数c)の値が「1」であるため、コンピュータ2は、フリップフロップ回路FF02がメタステーブル状態であると判断する(ステップS310;No)。
そして、図6のステップS311において、フリップフロップ回路FF02は、メタステーブル状態値Dmである値「1」を信号Q02として出力する。
(About the flip-flop circuit FF02)
Further, since the value of the number of clock cycles (number of generation stages c) is “1”, the
In step S311 of FIG. 6, the flip-flop circuit FF02 outputs the value “1” that is the metastable state value Dm as the signal Q02.
(フリップフロップ回路FF01について)
また、シミュレーションサイクル22〜24において、クロック信号CLK1がアクティブエッジとはならない(ステップS201;No)。
そのため、図5のステップS203において、フリップフロップ回路FF01は、保持している値「3」を信号Q01として出力する。
(About flip-flop circuit FF01)
In the simulation cycles 22 to 24, the clock signal CLK1 does not become an active edge (Step S201; No).
Therefore, in step S203 of FIG. 5, the flip-flop circuit FF01 outputs the held value “3” as the signal Q01.
以上に説明したように、フリップフロップ回路FF04の機能シミュレーションでは、シミュレーションサイクル13〜16,17〜20,21〜24の間、フリップフロップ回路FF03が出力したメタステーブル状態を保持し、保持したメタステーブル状態値がすべて異なる値となっている。また、フリップフロップ回路FF03の機能シミュレーションでは、シミュレーションサイクル9〜12,13〜16,17〜20,21〜24の間、フリップフロップ回路FF02が出力したメタステーブル状態を保持し、保持したメタステーブル状態値が全て異なる値となっている。
As described above, in the functional simulation of the flip-flop circuit FF04, the metastable state output by the flip-flop circuit FF03 is held during the simulation cycles 13 to 16, 17 to 20, and 21 to 24, and the held metastable is held. The status values are all different values. In the function simulation of the flip-flop circuit FF03, the metastable state output by the flip-flop circuit FF02 is held during the
具体的には、クロック信号CLK1で動作するフリップフロップ回路FF01から信号が入力される非同期順序回路201において、1段目のフリップフロップ回路FF02については2クロックサイクルの間、2段目のフリップフロップ回路FF03については1クロックサイクルの間、FFテーブル4に格納されているクロックサイクル数(生成段数c)がメタステーブルカウンタの値として設定される。これにより、フリップフロップ回路FF02は2クロックサイクルの間、フリップフロップ回路FF03については1クロックサイクルの間、メタステーブル状態値Dmを出力する。 Specifically, in the asynchronous sequential circuit 201 to which a signal is input from the flip-flop circuit FF01 operating with the clock signal CLK1, the first-stage flip-flop circuit FF02 has a second-stage flip-flop circuit for two clock cycles. For FF03, during one clock cycle, the number of clock cycles (number of generation stages c) stored in the FF table 4 is set as the value of the metastable counter. As a result, the flip-flop circuit FF02 outputs the metastable state value Dm for two clock cycles and the flip-flop circuit FF03 for one clock cycle.
従って、本発明の実施の形態1に係る回路検証方法によれば、一のクロック信号で動作する回路から出力された信号が入力される、他のクロック信号で動作する非同期順序回路201において、2段目以降のフリップフロップ回路FF03において発生するメタステーブル状態についても確実にシミュレーションすることができる。そのため、本発明の実施の形態1に係る回路検証方法によれば、メタステーブル状態をより確実に想定して、非同期順序回路を含む論理回路の機能を検証することができる。 Therefore, according to the circuit verification method according to the first embodiment of the present invention, in the asynchronous sequential circuit 201 operated with another clock signal to which a signal output from a circuit operating with one clock signal is input, 2 The metastable state generated in the flip-flop circuit FF03 after the stage can also be reliably simulated. Therefore, according to the circuit verification method according to the first embodiment of the present invention, it is possible to verify the function of the logic circuit including the asynchronous sequential circuit by more reliably assuming the metastable state.
実施の形態2.
実施の形態2に係る回路検証システムの構成は、実施の形態1に係る回路検証システム100と略同じであるため、同一の構成については同一の符号を付すとともに、その説明を省略する。図9に、実施の形態2に係る回路検証システムにおいて、図2のステップS1の処理、すなわち図4に示す処理において特定された順序回路に対して割り当てられた動作フローを示す。
図9に示すフローチャートを参照しながら、図2のステップS1において特定された順序回路に対して、図2のステップS3において行われる機能シミュレーションについて説明する。なお、図9に示すように、ステップS401〜ステップS407、ステップS409〜ステップS410、ステップS411〜ステップS413の処理は、それぞれ、図6における、ステップS310〜ステップS307、ステップS308〜ステップS309、ステップS310〜ステップS311の処理と同じであるため、その説明を省略する。
Since the configuration of the circuit verification system according to the second embodiment is substantially the same as that of the
With reference to the flowchart shown in FIG. 9, the functional simulation performed in step S3 in FIG. 2 for the sequential circuit specified in step S1 in FIG. 2 will be described. As shown in FIG. 9, the processes in steps S401 to S407, steps S409 to S410, and steps S411 to S413 are respectively performed in steps S310 to S307, steps S308 to S309, and S310 in FIG. Since it is the same as the processing in step S311, its description is omitted.
次に、コンピュータ2は、前段の順序回路のクロックサイクル数(生成段数c)が0であるか否かを判断することにより、前段の順序回路がメタステーブル状態か否かを判断する(ステップS408)。
Next, the
ステップS408において、前段の順序回路のクロックサイクル数(生成段数c)が0でない場合には(ステップS408;No)、コンピュータ2は、前段の順序回路がメタステーブル状態であると判断し、ステップS409に進む。
In step S408, when the number of clock cycles (number of generation stages c) of the preceding sequential circuit is not 0 (step S408; No), the
ステップS408において、前段の順序回路のクロックサイクル数(生成段数c)が0である場合には(ステップS408;Yes)、コンピュータ2は、前段の順序回路がメタステーブル状態ではないと判断し、順序回路は、保持している信号を出力する(ステップS413)。
In step S408, when the number of clock cycles (number of generation stages c) of the sequential circuit in the previous stage is 0 (step S408; Yes), the
次に、コンピュータ2は、当該順序回路のクロックサイクル数(生成段数c)を0にする(ステップS414)。
Next, the
以下、具体的に、図2のステップS3における機能シミュレーションについて、図10に示すタイミングチャートを参照しながら説明する。
なお、シミュレーションサイクル1〜16までは、図8に示すシミュレーションサイクル1から16と同様の動作であるため、その説明を省略する。
Hereinafter, the function simulation in step S3 in FIG. 2 will be specifically described with reference to the timing chart shown in FIG.
Since the
<シミュレーションサイクル17について>
(フリップフロップ回路FF04について)
シミュレーションサイクル17において、クロック信号CLK2がアクティブエッジとなる(ステップS201;Yes、ステップS401;Yes)。
そのため、フリップフロップ回路FF04は、図5のステップS202において、信号Q03の値「4」を保持するとともに、図5のステップS203において保持している値「4」を信号Q04として出力する。
<About
(About flip-flop circuit FF04)
In the
Therefore, the flip-flop circuit FF04 holds the value “4” of the signal Q03 in step S202 of FIG. 5, and outputs the value “4” held in step S203 of FIG. 5 as the signal Q04.
(フリップフロップ回路FF03について)
また、クロックサイクル数(生成段数c)の値が「1」であるため(ステップS402;Yes)、ステップS403において、コンピュータ2は、当該クロックサイクル数から1を減ずる。これにより、クロックサイクル数の値は「0」となる。
次に、フリップフロップ回路FF03に入力される信号Q02の値は「7」であり、フリップフロップ回路FF03が保持している値は「4」であるため、コンピュータ2は、フリップフロップ回路FF03に入力される信号Q02の値に変化があると判断する(ステップS404;Yes)。
次に、ステップS406において、コンピュータ2は、FFテーブル4のインスタンス名「FF03」に対応するクロックサイクル数(生成段数(c−1))の値「1」を新たにメタステーブルカウンタの値として設定する。
そして、図9のステップ407において、フリップフロップ回路FF03は、入力される信号Q02の値「7」を保持する。
(About flip-flop circuit FF03)
Since the value of the number of clock cycles (number of generation stages c) is “1” (step S402; Yes), in step S403, the
Next, since the value of the signal Q02 input to the flip-flop circuit FF03 is “7” and the value held by the flip-flop circuit FF03 is “4”, the
Next, in step S406, the
In step 407 in FIG. 9, the flip-flop circuit FF03 holds the value “7” of the input signal Q02.
次に、ステップS408において、コンピュータ2は、フリップフロップ回路FF03の前段のフリップフロップ回路FF02のクロックサイクル数(生成段数c)の値が0か否かを判断し、フリップフロップ回路FF02のクロックサイクル数は「0」であるため(ステップS408;Yes)、コンピュータ2は、前段のフリップフロップ回路FF02はメタステーブル状態ではないと判断する。
Next, in step S408, the
次に、ステップS413において、フリップフロップ回路FF03は、保持している値「7」を信号Q03として出力する。
そして、ステップS414において、コンピュータ2は、フリップフロップ回路FF03のクロックサイクル数を「0」とし、フリップフロップ回路FF03のメタステーブル状態を終了する。
Next, in step S413, the flip-flop circuit FF03 outputs the held value “7” as the signal Q03.
In step S414, the
(フリップフロップ回路FF02について)
また、クロックサイクル数(生成段数c)の値が「0」であり(ステップS402;No)、フリップフロップ回路FF02に入力される信号Q01の値は「7」であり、フリップフロップ回路FF02が保持している値も「7」であるため、コンピュータ2は、フリップフロップ回路FF02に入力される信号Q01の値に変化がないと判断する(ステップS404;No)。
次に、フリップフロップ回路FF02のクロックサイクル数(生成段数c)は「0」であるため、コンピュータ2は、フリップフロップ回路FF02がメタステーブル状態ではないと判断する(ステップS405;Yes)。
そして、図9のステップS413において、フリップフロップ回路FF02は、保持している値「7」を信号Q02として出力する。
また、ステップS414において、コンピュータ2は、フリップフロップ回路FF02のクロックサイクル数を「0」とする。
(About the flip-flop circuit FF02)
Further, the value of the number of clock cycles (number of generation stages c) is “0” (step S402; No), the value of the signal Q01 input to the flip-flop circuit FF02 is “7”, and the flip-flop circuit FF02 holds the value. Since the value of “7” is also “7”, the
Next, since the number of clock cycles (number of generation stages c) of the flip-flop circuit FF02 is “0”, the
In step S413 of FIG. 9, the flip-flop circuit FF02 outputs the held value “7” as the signal Q02.
In step S414, the
(フリップフロップ回路FF01について)
また、シミュレーションサイクル17において、クロック信号CLK1がアクティブエッジとはならない(ステップS201;No)。
そのため、図5のステップS203において、フリップフロップ回路FF01は、保持している値「7」を信号Q01として出力する。
(About flip-flop circuit FF01)
In the
Therefore, in step S203 in FIG. 5, the flip-flop circuit FF01 outputs the held value “7” as the signal Q01.
<シミュレーションサイクル18について>
(フリップフロップ回路FF04について)
シミュレーションサイクル18において、クロック信号CLK2がアクティブエッジとはならない(ステップS201;No、ステップS401;No)。
そのため、フリップフロップ回路FF04は、図5のステップS203において保持している値「4」を信号Q04として出力する。
<About
(About flip-flop circuit FF04)
In the
Therefore, the flip-flop circuit FF04 outputs the value “4” held in step S203 of FIG. 5 as the signal Q04.
(フリップフロップ回路FF03について)
また、クロックサイクル数(生成段数c)の値が「0」であるため、コンピュータ2は、フリップフロップ回路FF03がメタステーブル状態ではないと判断する(ステップS411;Yes)。
そして、図9のステップS413において、フリップフロップ回路FF03は、保持している値「7」を信号Q03として出力する。
また、ステップS414において、コンピュータ2は、フリップフロップ回路FF03のクロックサイクル数を「0」とする。
(About flip-flop circuit FF03)
Further, since the value of the number of clock cycles (number of generation stages c) is “0”, the
In step S413 in FIG. 9, the flip-flop circuit FF03 outputs the held value “7” as the signal Q03.
In step S414, the
(フリップフロップ回路FF02について)
また、クロックサイクル数(生成段数c)の値が「0」であるため、コンピュータ2は、フリップフロップ回路FF02がメタステーブル状態ではないと判断する(ステップS411;Yes)。
そして、図9のステップS413において、フリップフロップ回路FF02は、保持している値「7」を信号Q02として出力する。
また、ステップS414において、コンピュータ2は、フリップフロップ回路FF02のクロックサイクル数を「0」とする。
(About the flip-flop circuit FF02)
Further, since the value of the number of clock cycles (number of generation stages c) is “0”, the
In step S413 of FIG. 9, the flip-flop circuit FF02 outputs the held value “7” as the signal Q02.
In step S414, the
(フリップフロップ回路FF01について)
また、シミュレーションサイクル18において、クロック信号CLK1がアクティブエッジとなる(ステップS201;Yes)。
そのため、フリップフロップ回路FF01は、図5のステップS202において、入力信号DINの値「3」を保持するとともに、図5のステップS203において保持している値「3」を信号Q01として出力する。
(About flip-flop circuit FF01)
In the
Therefore, the flip-flop circuit FF01 holds the value “3” of the input signal DIN in step S202 of FIG. 5 and outputs the value “3” held in step S203 of FIG. 5 as the signal Q01.
<シミュレーションサイクル19〜20について>
(フリップフロップ回路FF04について)
シミュレーションサイクル19〜20において、クロック信号CLK2がアクティブエッジとはならない(ステップS201;No、ステップS401;No)。
そのため、フリップフロップ回路FF04は、図5のステップS203において保持している値「4」を信号Q04として出力する。
<About simulation cycles 19-20>
(About flip-flop circuit FF04)
In the simulation cycles 19 to 20, the clock signal CLK2 does not become an active edge (Step S201; No, Step S401; No).
Therefore, the flip-flop circuit FF04 outputs the value “4” held in step S203 of FIG. 5 as the signal Q04.
(フリップフロップ回路FF03について)
また、クロックサイクル数(生成段数c)の値が「0」であるため、コンピュータ2は、フリップフロップ回路FF03がメタステーブル状態ではないと判断する(ステップS411;Yes)。
そして、図9のステップS413において、フリップフロップ回路FF03は、保持している値「7」を信号Q03として出力する。
また、ステップS414において、コンピュータ2は、フリップフロップ回路FF03のクロックサイクル数を「0」とする。
(About flip-flop circuit FF03)
Further, since the value of the number of clock cycles (number of generation stages c) is “0”, the
In step S413 in FIG. 9, the flip-flop circuit FF03 outputs the held value “7” as the signal Q03.
In step S414, the
(フリップフロップ回路FF02について)
また、クロックサイクル数(生成段数c)の値が「0」であるため、コンピュータ2は、フリップフロップ回路FF02がメタステーブル状態ではないと判断する(ステップS411;Yes)。
そして、図9のステップS413において、フリップフロップ回路FF02は、保持している値「7」を信号Q02として出力する。
また、ステップS414において、コンピュータ2は、フリップフロップ回路FF02のクロックサイクル数を「0」とする。
(About the flip-flop circuit FF02)
Further, since the value of the number of clock cycles (number of generation stages c) is “0”, the
In step S413 of FIG. 9, the flip-flop circuit FF02 outputs the held value “7” as the signal Q02.
In step S414, the
(フリップフロップ回路FF01について)
また、シミュレーションサイクル19〜20において、クロック信号CLK1がアクティブエッジとはならない(ステップS201;No)。
そのため、図5のステップS203において、フリップフロップ回路FF01は、保持している値「3」を信号Q01として出力する。
(About flip-flop circuit FF01)
In the simulation cycles 19 to 20, the clock signal CLK1 does not become an active edge (step S201; No).
Therefore, in step S203 of FIG. 5, the flip-flop circuit FF01 outputs the held value “3” as the signal Q01.
<シミュレーションサイクル21について>
(フリップフロップ回路FF04について)
シミュレーションサイクル21において、クロック信号CLK2がアクティブエッジとなる(ステップS201;Yes、ステップS401;Yes)。
そのため、フリップフロップ回路FF04は、図5のステップS202において、信号Q03の値「7」を保持するとともに、図5のステップS203において保持している値「7」を信号Q04として出力する。
<About
(About flip-flop circuit FF04)
In the
Therefore, the flip-flop circuit FF04 holds the value “7” of the signal Q03 in step S202 of FIG. 5, and outputs the value “7” held in step S203 of FIG. 5 as the signal Q04.
(フリップフロップ回路FF03について)
また、クロックサイクル数(生成段数c)の値が「0」であり(ステップS402;Yes)、フリップフロップ回路FF03に入力される信号Q02の値は「7」であり、フリップフロップ回路FF03が保持している値も「7」であるため、コンピュータ2は、フリップフロップ回路FF03に入力される信号Q02の値に変化がないと判断する(ステップS404;No)。
次に、フリップフロップ回路FF03のクロックサイクル数(生成段数c)は「0」であるため、コンピュータ2は、フリップフロップ回路FF03がメタステーブル状態ではないと判断する(ステップS405;Yes)。
そして、図9のステップS413において、フリップフロップ回路FF03は、保持している値「7」を信号Q03として出力する。
また、ステップS414において、コンピュータ2は、フリップフロップ回路FF03のクロックサイクル数を「0」とする。
(About flip-flop circuit FF03)
Further, the value of the number of clock cycles (number of generation stages c) is “0” (step S402; Yes), the value of the signal Q02 input to the flip-flop circuit FF03 is “7”, and the flip-flop circuit FF03 holds the value. Since the value of “7” is also “7”, the
Next, since the number of clock cycles (number of generation stages c) of the flip-flop circuit FF03 is “0”, the
In step S413 in FIG. 9, the flip-flop circuit FF03 outputs the held value “7” as the signal Q03.
In step S414, the
(フリップフロップ回路FF02について)
また、クロックサイクル数(生成段数c)の値が「0」であり(ステップS402;No)、フリップフロップ回路FF02に入力される信号Q01の値は「3」であり、フリップフロップ回路FF02が保持している値は「6」であるため、コンピュータ2は、フリップフロップ回路FF02に入力される信号Q01の値に変化があると判断する(ステップS404;Yes)。
次に、ステップS406において、コンピュータ2は、FFテーブル4のインスタンス名「FF02」に対応するクロックサイクル数(生成段数c)の値「2」を新たにメタステーブルカウンタの値として設定する。
そして、図9のステップ407において、フリップフロップ回路FF02は、入力される信号Q01の値「3」を保持する。
(About the flip-flop circuit FF02)
The value of the number of clock cycles (number of generation stages c) is “0” (step S402; No), the value of the signal Q01 input to the flip-flop circuit FF02 is “3”, and the flip-flop circuit FF02 holds the value. Since the current value is “6”, the
Next, in step S406, the
In step 407 in FIG. 9, the flip-flop circuit FF02 holds the value “3” of the input signal Q01.
次に、ステップS408において、コンピュータ2は、フリップフロップ回路FF02の前段のフリップフロップ回路FF01のクロックサイクル数(生成段数c)の値が0か否かを判断し、フリップフロップ回路FF01のクロックサイクル数は「0」であるため(ステップS408;Yes)、コンピュータ2は、前段のフリップフロップ回路FF01はメタステーブル状態ではないと判断する。
Next, in step S408, the
次に、ステップS413において、フリップフロップ回路FF02は、保持している値「6」を信号Q02として出力する。
そして、ステップS414において、コンピュータ2は、フリップフロップ回路FF02のクロックサイクル数を「0」とし、フリップフロップ回路FF02のメタステーブル状態を終了する。
Next, in step S413, the flip-flop circuit FF02 outputs the held value “6” as the signal Q02.
In step S414, the
(フリップフロップ回路FF01について)
また、シミュレーションサイクル21において、クロック信号CLK1がアクティブエッジとはならない(ステップS201;No)。
そのため、図5のステップS203において、フリップフロップ回路FF01は、保持している値「3」を信号Q01として出力する。
(About flip-flop circuit FF01)
In the
Therefore, in step S203 of FIG. 5, the flip-flop circuit FF01 outputs the held value “3” as the signal Q01.
なお、シミュレーションサイクル22〜26については、図8に示すシミュレーションサイクルと動作は略同じであるため、その説明を省略する。 The simulation cycles 22 to 26 are substantially the same as the simulation cycle shown in FIG.
以上に説明したように、フリップフロップ回路FF04の機能シミュレーションでは、シミュレーションサイクル13〜16,17〜20の間、フリップフロップ回路FF03が出力したメタステーブル状態を保持し、保持したメタステーブル状態値がすべて異なる値となっている。また、フリップフロップ回路FF03の機能シミュレーションでは、シミュレーションサイクル9〜12,13〜16の間、フリップフロップ回路FF02が出力したメタステーブル状態を保持し、保持したメタステーブル状態値が全て異なる値となっている。
また、フリップフロップ回路FF03がメタステーブル状態ではない場合、シミュレーションサイクル21において、フリップフロップ回路FF04が保持している値は、シミュレーションサイクル2〜15においてフリップフロップ回路FF01に入力された信号DINの値「7」となっている。
As described above, in the functional simulation of the flip-flop circuit FF04, the metastable state output from the flip-flop circuit FF03 is held during the simulation cycles 13 to 16 and 17 to 20, and all the held metastable state values are stored. It is a different value. In the function simulation of the flip-flop circuit FF03, the metastable state output by the flip-flop circuit FF02 is held during the
When the flip-flop circuit FF03 is not in the metastable state, the value held by the flip-flop circuit FF04 in the
具体的には、クロック信号CLK1で動作するフリップフロップ回路FF01から信号が入力される非同期順序回路201において、1段目のフリップフロップ回路FF02については2クロックサイクルの間、2段目のフリップフロップ回路FF03については1クロックサイクルの間、FFテーブル4に格納されているクロックサイクル数(生成段数c)がメタステーブルカウンタの値として設定される。これにより、フリップフロップ回路FF02は2クロックサイクルの間、フリップフロップ回路FF03については1クロックサイクルの間、メタステーブル状態値Dmを出力する。 Specifically, in the asynchronous sequential circuit 201 to which a signal is input from the flip-flop circuit FF01 operating with the clock signal CLK1, the first-stage flip-flop circuit FF02 has a second-stage flip-flop circuit for two clock cycles. For FF03, during one clock cycle, the number of clock cycles (number of generation stages c) stored in the FF table 4 is set as the value of the metastable counter. As a result, the flip-flop circuit FF02 outputs the metastable state value Dm for two clock cycles and the flip-flop circuit FF03 for one clock cycle.
従って、本発明の実施の形態2に係る回路検証方法によれば、実施の形態1に係る回路検証方法と同様の効果が得られることは勿論のこと、前段のフリップフロップ回路がメタステーブル状態であるか否かを判断し、前段のフリップフロップ回路がメタステーブル状態ではない場合に、コンピュータ2は、クロックサイクル数(生成段数c)を「0」とするので、メタステーブル状態を終了させることができる。そのため、実際の論理回路におけるメタステーブル状態により近い状態をシミュレーションすることができる。
Therefore, according to the circuit verification method according to the second embodiment of the present invention, the same effect as the circuit verification method according to the first embodiment can be obtained, and the flip-flop circuit in the previous stage is in the metastable state. If the previous flip-flop circuit is not in the metastable state, the
なお、本発明は、以上の実施の形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内で適宜設計変更されるものとする。
例えば、非同期順序回路に含まれる順序回路はフリップフロップ回路に限られるものではない。
It should be noted that the present invention is not limited to the above-described embodiment, and the design is appropriately changed without departing from the spirit of the present invention.
For example, the sequential circuit included in the asynchronous sequential circuit is not limited to the flip-flop circuit.
1 サーバ
2 コンピュータ(回路検証装置)
3 ネットワーク
4 FFテーブル
41 インスタンス名
42 クロックサイクル数
100 回路検証システム
201 非同期順序回路
FF01 フリップフロップ回路(第1段目の順序回路)
FF02 フリップフロップ回路(第2段目の順序回路)
FF03 フリップフロップ回路(第3段目の順序回路)
FF04 フリップフロップ回路(第4段目の順序回路)
CC2 組合せ回路
CLK1 クロック信号
CLK2 クロック信号
1
3
FF02 Flip-flop circuit (second-stage sequential circuit)
FF03 Flip-flop circuit (third-stage sequential circuit)
FF04 Flip-flop circuit (fourth sequential circuit)
CC2 combination circuit CLK1 clock signal CLK2 clock signal
Claims (8)
前記論理回路に含まれる非同期順序回路のクロック周期Tdistと、前記非同期順序回路の第1段目の順序回路のメタステーブル収束時間Tmcと、に基づいて、下記の(1)式により、メタステーブル状態値の生成段数cを算出する生成段数算出部と、
所定のプログラム言語で記述された、前記論理回路の回路設計プログラムを解析することにより、前記第1段目の順序回路から前記第1段目の順序回路の出力側に接続される第n段目(nは、n≧2を満たす整数)の順序回路までを特定する順序回路特定部と、
前記論理回路の機能シミュレーションにおいて、前記第1段目から第n段目の順序回路に、それぞれ前記生成段数cから(前記生成段数c−(n−1))に等しいクロックサイクル数分、前記メタステーブル状態値を出力させる機能シミュレーション制御部と、
を備える回路検証装置。
c=int(Tmc/Tdist)+1 ・・・・・(1) A circuit verification device for verifying the function of a logic circuit,
Based on the clock cycle Tdist of the asynchronous sequential circuit included in the logic circuit and the metastable convergence time Tmc of the sequential circuit of the first stage of the asynchronous sequential circuit, the metastable state is expressed by the following equation (1). A generation stage number calculation unit for calculating a value generation stage number c;
By analyzing a circuit design program of the logic circuit described in a predetermined program language, the nth stage connected from the first stage sequential circuit to the output side of the first stage sequential circuit A sequential circuit specifying unit that specifies up to a sequential circuit (n is an integer satisfying n ≧ 2);
In the functional simulation of the logic circuit, the metas is supplied to the sequential circuit from the first stage to the n-th stage by the number of clock cycles equal to the number of generated stages c to the number of generated stages c- (n-1). A function simulation controller that outputs table state values;
A circuit verification apparatus comprising:
c = int (Tmc / Tdist) +1 (1)
前記順序回路特定部により特定された前記順序回路の入力信号の値が変化したか否かを判断し、前記順序回路特定部により特定された前記順序回路の入力信号の値が変化したときから、当該順序回路から前記メタステーブル状態値を出力させる請求項1に記載の回路検証装置。 The simulation control unit
It is determined whether or not the value of the input signal of the sequential circuit specified by the sequential circuit specifying unit has changed, and when the value of the input signal of the sequential circuit specified by the sequential circuit specifying unit has changed, The circuit verification apparatus according to claim 1, wherein the metastable state value is output from the sequential circuit.
前記順序回路特定部により特定された前記順序回路の入力信号の値が変化したか否かを判断し、前記順序回路特定部により特定された前記順序回路の入力信号の値が変化した場合に、当該順序回路の前段の回路がメタステーブル状態か否かを判断し、前記前段の回路がメタステーブル状態である場合に、当該順序回路の入力信号の値が変化したときから、当該順序回路から前記メタステーブル状態値を出力させる請求項1又は2に記載の回路検証装置。 The function simulation control unit
It is determined whether or not the value of the input signal of the sequential circuit specified by the sequential circuit specifying unit has changed, and when the value of the input signal of the sequential circuit specified by the sequential circuit specifying unit has changed, It is determined whether the previous circuit of the sequential circuit is in a metastable state, and when the previous circuit is in a metastable state, from the time when the value of the input signal of the sequential circuit changes, the sequential circuit The circuit verification device according to claim 1, wherein the metastable state value is output.
コンピュータが、
前記論理回路に含まれる非同期順序回路のクロック周期Tdistと、前記非同期順序回路の第1段目の順序回路のメタステーブル収束時間Tmcと、に基づいて、下記の(1)式により、メタステーブル状態値の生成段数cを算出する生成段数算出処理と、
所定のプログラム言語で記述された、前記論理回路の回路設計プログラムを解析することにより、前記第1段目の順序回路から前記第1段目の順序回路の出力側に接続される第n段目(nは、n≧2を満たす整数)の順序回路までを特定する順序回路特定処理と、
前記論理回路の機能シミュレーションにおいて、前記第1段目から第n段目の順序回路に、それぞれ前記生成段数cから(前記生成段数c−(n−1))に等しいクロックサイクル数分、前記メタステーブル状態値を出力させる機能シミュレーション制御処理と、
を実行する回路検証方法。
c=int(Tmc/Tdist)+1 ・・・・・(1) A circuit verification method for verifying the function of a logic circuit,
Computer
Based on the clock cycle Tdist of the asynchronous sequential circuit included in the logic circuit and the metastable convergence time Tmc of the sequential circuit of the first stage of the asynchronous sequential circuit, the metastable state is expressed by the following equation (1). A generation stage number calculation process for calculating a value generation stage number c;
By analyzing a circuit design program of the logic circuit described in a predetermined program language, the nth stage connected from the first stage sequential circuit to the output side of the first stage sequential circuit A sequential circuit specifying process for specifying up to a sequential circuit (n is an integer satisfying n ≧ 2);
In the functional simulation of the logic circuit, the metas is supplied to the sequential circuit from the first stage to the n-th stage by the number of clock cycles equal to the number of generated stages c to the number of generated stages c- (n-1). A function simulation control process for outputting a table state value;
A circuit verification method for executing
c = int (Tmc / Tdist) +1 (1)
前記順序回路特定処理において特定した前記順序回路の入力信号の値が変化したか否かを判断し、前記順序回路特定処理において特定した前記順序回路の入力信号の値が変化したときから、当該順序回路から前記メタステーブル状態値を出力させる請求項5に記載の回路検証方法。 In the simulation control process, the computer
It is determined whether or not the value of the input signal of the sequential circuit specified in the sequential circuit specifying process has changed, and when the value of the input signal of the sequential circuit specified in the sequential circuit specifying process has changed, the order The circuit verification method according to claim 5, wherein the metastable state value is output from a circuit.
前記順序回路特定処理において特定した前記順序回路の入力信号の値が変化したか否かを判断し、前記順序回路特定処理において特定した前記順序回路の入力信号の値が変化した場合に、当該順序回路の前段の回路がメタステーブル状態か否かを判断し、前記前段の回路がメタステーブル状態である場合に、当該順序回路の入力信号の値が変化したときから、当該順序回路から前記メタステーブル状態値を出力させる請求項5又は6に記載の回路検証方法。 In the function simulation control process, the computer
It is determined whether or not the value of the input signal of the sequential circuit specified in the sequential circuit specifying process has changed, and when the value of the input signal of the sequential circuit specified in the sequential circuit specifying process has changed, the order It is determined whether or not the previous stage circuit is in a metastable state, and when the previous stage circuit is in a metastable state, when the value of the input signal of the sequential circuit changes, the metastable is output from the sequential circuit. The circuit verification method according to claim 5, wherein the state value is output.
前記第1段目の順序回路から前記第n段目の順序回路のインスタンス名と、前記生成段数cから(前記生成段数c−(n−1))に等しいクロックサイクル数と、を対応付けられたFFテーブルを記憶部に格納するFFテーブル格納制御処理を実行する請求項5乃至7の何れか一項に記載の回路検証方法。 The computer
An instance name of the sequential circuit from the first stage to the n-th sequential circuit is associated with the number of clock cycles equal to (the generation stage number c- (n-1)) from the generation stage number c. The circuit verification method according to claim 5, wherein an FF table storage control process for storing the FF table in the storage unit is executed.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010083002A JP2011215852A (en) | 2010-03-31 | 2010-03-31 | Circuit verification device and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010083002A JP2011215852A (en) | 2010-03-31 | 2010-03-31 | Circuit verification device and method |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011215852A true JP2011215852A (en) | 2011-10-27 |
Family
ID=44945520
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010083002A Pending JP2011215852A (en) | 2010-03-31 | 2010-03-31 | Circuit verification device and method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011215852A (en) |
-
2010
- 2010-03-31 JP JP2010083002A patent/JP2011215852A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10061883B2 (en) | Reciprocal quantum logic (RQL) circuit synthesis | |
JP4251964B2 (en) | Verification device, verification method, and program | |
US10606970B2 (en) | Selection of corners and/or margins using statistical static timing analysis of an integrated circuit | |
JP2006285865A (en) | Correspondence relation specification method, device and program between register transfer level description and operation description | |
US11775718B2 (en) | Methods and apparatus to simulate metastability for circuit design verification | |
JP5040758B2 (en) | Simulation apparatus, simulation method, and program | |
US7895026B1 (en) | Multi-rate simulation scheduler for synchronous digital circuits in a high level modeling system | |
JP2011248843A (en) | Clock jitter analysis method, apparatus performing clock jitter analysis method, program allowing computer to perform clock jitter analysis method, and computer readable recording medium recorded with the same | |
JP2005071370A (en) | System and method for determining activity factor for circuit design | |
TW201331775A (en) | Global clock handler object for HDL environment | |
JP4293562B2 (en) | Hardware verification programming description generation device, high-level synthesis device, hardware verification programming description generation method, hardware verification program generation method, control program, and readable recording medium | |
US7328117B2 (en) | Apparatus, method and program for verifying asynchronous circuit | |
JP2008299464A (en) | Power consumption calculation method, power consumption calculation program, and power consumption calculation device | |
US11386251B2 (en) | Logic simulation verification system, logic simulation verification method, and program | |
JP2011215852A (en) | Circuit verification device and method | |
US10223077B2 (en) | Determination of signals for readback from FPGA | |
US20030018462A1 (en) | Multi-clock system simulation | |
US20070258300A1 (en) | Functional verification of synchronized signals using random delays | |
JP5009243B2 (en) | Behavioral synthesis apparatus, behavioral synthesis method, program, recording medium, and semiconductor integrated circuit manufacturing method | |
JP2007241836A (en) | Multi-cycle path verification method | |
JP5392862B2 (en) | Software simulation apparatus and simulation method | |
JP2006146332A (en) | Data processing system verification device, method, and program | |
JP2012159977A (en) | Behavioral synthesis device, behavioral synthesis method and behavioral synthesis program | |
JP2019185215A (en) | Vector generation device and vector generation program | |
JP2011002903A (en) | Apparatus for verification of asynchronous circuit, and program |