JP3660097B2 - Logic circuit type verification apparatus and verification method - Google Patents

Logic circuit type verification apparatus and verification method Download PDF

Info

Publication number
JP3660097B2
JP3660097B2 JP06881997A JP6881997A JP3660097B2 JP 3660097 B2 JP3660097 B2 JP 3660097B2 JP 06881997 A JP06881997 A JP 06881997A JP 6881997 A JP6881997 A JP 6881997A JP 3660097 B2 JP3660097 B2 JP 3660097B2
Authority
JP
Japan
Prior art keywords
finite state
state machine
circuit
input
finite
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
JP06881997A
Other languages
Japanese (ja)
Other versions
JPH10269256A (en
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP06881997A priority Critical patent/JP3660097B2/en
Publication of JPH10269256A publication Critical patent/JPH10269256A/en
Application granted granted Critical
Publication of JP3660097B2 publication Critical patent/JP3660097B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Test And Diagnosis Of Digital Computers (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、有限状態機械を利用した順序回路の形式検証方法及びその装置に関する。
【0002】
【従来の技術】
近年のコンピューターを構成する回路などの論理回路の規模の増大に伴い、回路の設計期間やテスト期間を短縮するための技術、すなわち、論理合成技術、シミュレーション技術、形式検証技術などが年々重要視されてきている。これらの技術では、順序回路を扱う場合、通常、順序回路を有限状態機械を用いて数学的にモデル化し、この有限状態機械に対して、状態数の短縮、等価性の判定などの処理が行われる。近年では、有限状態機械の要素となる遷移関数や出力関数を二分決定ダイアグラムを用いてコンパクトに表現する技術が発達したことにより、上記の処理をより大規模な有限状態機械に適用することが可能となった。
【0003】
上記技術の中で、形式検証技術は、等価性判定技術とモデルチェッキング技術に分けられる。前者は、二つの回路の論理的等価性を判定する技術であり、後者は、対象となる回路がユーザーの指定した論理的性質を満たすか否かを判定する技術である。
【0004】
論理回路、特に、順序回路を対象としたこれらの形式検証技術では、与えられた回路を記述する回路記述から、これをモデル化する有限状態機械を構成するために、通常、図25に示すような処理が行われる。まず、与えられた回路記述A,Bに含まれる全ての入力信号の任意の値の組み合わせを入力アルファベットとする有限状態機械M0 A,M0 Bを作る(ステップ31)。そして、この回路に対する入力のうち、クロック信号に対応するものを、自動的、または、ユーザーによる情報を利用して検出する。更に、クロック信号がどのような値を取るときに、クロック信号以外の入力信号や出力信号の値が変化するかというようなタイミングに関する情報をユーザーから得る(ステップ32)。そして、これを元に、前記有限状態機械M0 A,M0 Bから、クロック信号以外の入力信号の任意の値の組み合わせを入力アルファベットとする有限状態機械(同期機械M1 A,M1 B)を構成する(ステップ33)。同期機械における状態遷移は、同期機械自身が内部に持っているクロックによって、処与のタイミングで起きると考える。そして、順序回路の等価性の検証技術では、二つの順序回路からこのようにして作った二つの同期機械M1 A,M1 Bの間の論理的等価性を証明することにより、元の順序回路の間の等価性を検証し(ステップ34)、その結果を出力する(ステップ35)。
【0005】
【発明が解決しようとする課題】
ところが、上記の等価性判定技術、すなわち、等価性を判定したい二つの順序回路の回路記述からそれぞれの同期機械を構成し、これらの論理的等価性を判明するという技術には次のような問題点がある。
【0006】
近年では、通常の同期回路に比べ、より消費電力の少ない回路を作ることなどが重要視されてきているため、ゲート付クロックなどを用いて回路を実現することや、論理回路の一部を、フリップフロップやラッチなどの論理素子を用いず、トランジスタを組み合わせて実現することが必要となってきている。このような場合には、設計された回路の状態遷移や入出力信号の値の変化がユーザーの期待するクロック信号やその他の信号の変化のタイミングに応じて正しく起こるか否か自体が必ずしも保証されない。
【0007】
このため、このような回路の間の等価性を、回路記述から同期機械を作ることによって行うと、もしも、回路記述中に誤って設計者の意図しないタイミングで状態遷移や入出力信号の値の変化が起こるようなことがあっても、これを検出できない場合が生ずる。
【0008】
例えば、図10(a)(b)には、それぞれ、マスタスレーブ型JK−フリップフロップと、エッジトリガー型JK−フリップフロップをNANDゲートなどを用いて実現する回路を示した。これら二つの回路は、クロック信号clkの値が0である間のみに、その他の入力信号j,kの値が変化し、状態遷移はクロック信号の立ち下がり時、すなわち、clk=1からclk=0になる瞬間にのみ起きると仮定すると、全く等価な入出力の関係を示す。しかし、もし、クロック信号の値が1である間に入力信号の値が変化することがあるならば、これらの回路は異なる振る舞いを示す場合が存在する。
【0009】
また、図11は、JK−フリップフロップの動作をVHDL言語による記述したものであるが、この記述は、同期機械を構成することによる形式検証を用いた場合には、図10のどちらのJK−フリップフロップ回路とも等価になるにもかかわらず、上述の理由と同じく実際には(a)の回路とは等価ではなく、(b)の回路のみと等価である。
【0010】
設計者が設計の始めの段階で、ある回路を実現するために、内部で図10(b)のエッジトリガー型JK−フリップフロップを用いており、これを同図(a)のマスタスレーブ型JK−フリップフロップに変更したとする。従来の検証技術では、検証を行うために、クロック信号の値が0である間のみに、入力信号j,kの値が変化し、状態遷移はクロック信号の立ち下がり時に生じることのみを設計者が指定する。そのため、もしも、クロック信号の値が1である間にj,kの値が変化するような場合があっても、変更前後の違いを検出することができない。従って、設計者は、個別にモデルチェッキングによる検証などを用いて、クロック信号の値が1である間にj,kの値が変化しないことを検証しなくてはならない。しかし、設計者が必ずこの確認をするとは限らず、相違に気付かないまま、変更前後の回路を等価であると考えてしまうという問題がある。
【0011】
【課題を解決するための手段】
上記問題点を解決するために、請求項1の発明は、複数の論理回路の等価性を形式的に検証する形式検証装置において、前記論理回路を記述する回路記述と、前記論理回路に与えられる入力信号に関する情報とから、前記論理回路に対応した定常化有限状態機械を生成する定常化有限状態機械生成部と、前記複数の回路記述から前記定常化有限状態機械生成部によって個別に生成された複数の定常化有限状態機械の論理的等価性を検証する等価性検証部と、前記等価性検証部の検証結果を出力する出力部とを備え、前記定常化有限状態機械生成部は、前記回路記述で表された回路の複数の入力信号のうち、所定の入力信号とその他の入力信号の変化のタイミングに対し、一意的に定義された状態遷移を行う有限状態機械を生成する有限状態機械生成部と、前記有限状態機械生成部によって生成した有限状態機械を、過渡的な状態への遷移を持たない定常化有限状態機械に変換する有限状態機械への変換部と、を備えることを特徴とする。
【0012】
また、請求項5の発明は、前記請求項1の発明を方法の観点から把握したものであって、複数の論理回路の等価性を形式的に検証する形式検証方法において、入出力装置を備えたコンピュータとそれを制御するプログラムによって実現される定常化有限状態機械生成部、等価性検証部、前記定常化有限状態機械生成部に具備された有限状態機械生成部と定常化有限状態機械変換部を使用し、前記入出力装置から入力された各論理回路を記述する回路記述と各前記論理回路に与えられる入力信号に関する情報に基づいて、前記有限状態機械生成部により、各論理回路について、前記回路記述で表された回路の複数の入力信号のうち、所定の入力信号とその他の入力信号の変化のタイミングに対し、一意的に定義された状態遷移を行う有限状態機械をそれぞれ生成する有限状態機械生成処理と、前記定常化有限状態機械変換部により、前記有限状態機械生成処理によって生成した各論理回路に対応する有限状態機械を、各論理回路に対応する過渡的な状態への遷移を持たない定常化有限状態機械に変換する有限状態機械への変換処理と、前記等価性検証部により、複数の回路記述から前記定常化有限状態機械生成部によって個別に生成された複数の定常化有限状態機械の論理的等価性を検証する等価性検証処理とを備えていることを特徴とする。
【0013】
このような構成を有する請求項1または請求項5の発明によれば、等価性を検証する二つの論理回路の記述に対して、入力信号のうちいずれの信号が他の入力信号と全く同時に変化することがないかということなどを指定した情報を元にして、定常化有限状態機械生成部によって、それぞれ個別に、定常化有限状態機械を生成する。この情報は、従来技術のように入出力信号値の変化する時のクロックの値などの多くの情報をユーザーが指定するものとは異なり、入力信号のうちいずれがクロック信号であるかを指定する程度の非常に少ない情報だけでよい。定常化有限状態機械生成部によって作られた定常化有限状態機械は、任意の入力信号の値の変化のタイミングに対し、一意的に定義された状態遷移を行い、かつ、過渡的な状態への遷移を持たないという特徴を有する。従って、本発明を用いれば、与えられた二つの論理回路の記述から生成した二つの定常化有限状態機械の論理的等価性を等価性検証部において形式検証することにより、複数の入出力信号の値の変化のタイミングを考慮した順序回路の形式検証を行うことが可能となる。
【0014】
更に、このような構成の請求項1または請求項5に記載の発明によれば、例えば、通常の順序回路と、これをゲート付きクロックを用いて実現した回路の間の検証や、一つの回路の中にクロックの立ち上がりで遷移する部分と立ち下がりで遷移する部分を共に含むような回路の間の等価性の検証が可能である。特に、同期機械を用いて検証を行う場合、設計した回路の中に、誤りにより設計者の意図しないクロックのタイミングで入力信号が変化する場合や、設計者の意図しないクロックのタイミングで状態遷移を起こしてしまう場合がある。このような場合が含まれるとき、この誤りを同期機械の構成の際に打ち消してしまうことがある。本発明では、同期機械を構成することなく、等価性の検証を行うことにより、このような問題点を解決する。
【0015】
請求項2の発明は、前記請求項1の発明において、前記定常化有限状態機械生成部は、前記論理回路を記述する回路記述に基づいて予備的な有限状態機械を生成する予備的な有限状態機械生成部を備え、一意的に定義された状態遷移を行う有限状態機械を生成する有限状態機械生成部は、前記予備的な有限状態機械生成部によって生成された予備的な有限状態機械に基づいて、所定の入力信号とその他の入力信号の変化のタイミングに対し、一意的に定義された状態遷移を行う有限状態機械を生成するものであることを特徴とする。また、請求項6の発明は、前記の請求項2の発明を方法の観点から把握したものである。
【0016】
前記のような請求項2および請求項6の発明によれば、前記論理回路を記述する回路記述と、前記論理回路に与えられる入力信号に関する情報とから、予備的な有限状態機械、一意的に定義された状態遷移を行う有限状態機械、過渡的な状態への遷移を持たない定常化有限状態機械と言うように順次性質の異なる有限状態機械を生成することで、論理回路の持つクロック、その他の入力信号値の変化に対する状態遷移、及び出力の関係を、クロック信号値の変化に対するタイミングを含めて正しく表現することが容易となり、等価性検証部において回路の詳細に立ちいることなく等価性の検証を行うことが可能となる。
【0017】
請求項3の発明は、前記有限状態機械生成部が、クロック信号と他の信号の値が同時に変化するタイミングに対して、一義的に定義された状態遷移を行う有限状態機械を生成することを特徴とする。この請求項3の発明によれば、クロック信号と他の入出力信号の値の変化のタイミングの関係まで考慮した有限状態機械を生成することができ、論理回路のより正確な検証が実施できる。
【0018】
請求項4の発明は、前記出力部が、定常化有限状態機械生成部において見いだした情報をも出力するものである。この請求項4の発明によれば、前記出力部は検証結果を出力するのみならず、例えば定常化有限状態機械の生成時に発見された状態の不安定性なども出力することができ、定常化有限状態機械の変換を効率良く実施できる。
【0019】
【発明の実施の形態】
以下、図面を参照しながら本発明の一実施形態について説明する。
なお、後述する実施形態はコンピュータ上に実現され、実施形態の各機能は、所定の手順(プログラム)がこのコンピュータを制御することで実現される。例えば、入力部は、入力するプログラムやデータの態様によって種々のものを採用することができ、キーボードやマウスなどの入出力装置、ネットワーク接続装置、データ読み取り装置などを使用できる。また、各記憶部は、外部から入力したデータを蓄えるためのものであり、磁気や光ディスク装置、半導体メモリ等の所望の装置を用いることができる。さらに、他の部分は、コンピュータのソフトウェアによって構成されることが典型的である。
【0020】
本明細書における各「部」は、実施形態の各機能に対応する概念的なもので、必ずしも特定のハードウェアやソフトウェア・ルーチンに1対1には対応しない。同一のハードウェア要素が、場合によって異なった部を構成する。例えば、コンピュータは、ある命令を実行するときにある部となり、別の命令を実行するときは別の部となりうる。また、一つの部が、わずか1命令によって実現される場合もあれば、多数の命令によって実現される場合もある。したがって、本明細書では、以下、実施形態の各機能を有する仮想的回路ブロック(部)を想定して実施形態を説明する。また、本実施形態における各手順の各ステップは、その性質に反しない限り、実行順序を変更し、複数同時に実行し、また、実行ごとに異なった順序で実行してもよい。
【0021】
また、本発明をコンピュータのソフトウェアとして実現した場合には、そのソフトウェアを磁気あるいは光などを利用した記録媒体に記録しておき、これを個々の設計者が読み出して自己のコンピュータによって実行することも、本発明の実施形態の一つである。
【0022】
[A.第1実施形態]
[1.有限状態機械と定常化有限状態機械]
[1−1.有限状態機械の定義]
本発明の入力となる有限状態機械の定義を行う。
有限状態機械Mとは、図4に示すとおり、有限個の要素よりなる入力記号の集合(以下入力アルファベットという)I、有限個の要素よりなる出力記号の集合(以下出力アルファベットという)O、有限個の要素よりなる状態の集合Σ、遷移関数δ、出力関数ω、初期状態Sinitの6つの組を指定したものである。これを、有限状態機械M=(I,O,Σ,δ,ω,Sinit)と表記する。ここで、遷移関数δは、Σ×IからΣへの関数であり、出力関数ωは、Σ×IからOへの関数であり、初期状態Sinitは、Σのある一つの要素、即ち、Sinit∈Σである。入力i∈Iが与えられたときの、状態δ∈Σの、遷移関数δによる遷移先をδ(s,i)と表記し、出力関数ωによる出力をω(s,i)と表記する。以下では、特に混乱を招かない限り、δ,ωと、δ(s,i),ω(s,i)を区別しない。
【0023】
[1−2.有限状態機械の具体例]
図5(a)は、有限状態機械の一具体例であり、入力アルファベットをI={0,1}、出力アルファベットをO={0,1}、そして、状態の集合をΣ={A,B}としている。状態は200のように、状態名を丸で囲むことによって表す。各状態から出る矢印201に添えられた数字の組202と203は、矢印201の始点となる状態において、入力値202が与えられると、矢印の終点となる状態に遷移し、この遷移に伴う出力値が203となることを意味している。図5(a)の例では、状態Aにおいて入力0が与えられたとき、遷移先の状態はAであり、これに伴い1を出力する。状態Aにおいて入力1が与えられたとき、遷移先の状態はBであり、これに伴い1を出力する。状態Bにおいて入力0が与えられたとき、遷移先の状態はBであり、これに伴い1を出力する。状態Bにおいて入力1が与えられたとき、遷移先の状態はAであり、これに伴い0を出力する。204は状態名を二重丸で囲んだもので、これにより、Bが初期状態であることを表現している。
【0024】
なお、本明細書における有限状態機械の表現は、この図5に限らず、図12などに示すように、状態名と出力値をA/0のように丸で囲み、入力値を0――のように遷移先を示す矢印に添えて記載する表現も使用する。
【0025】
大部分の順序回路は、電源を入れた直後の内部状態が一意的に定まらない。このため、その順序回路を有限状態機械でモデル化するとき、初期状態が指定できない場合がある。図5(b)は、このような場合の有限状態機械を表しており、初期状態を明示していない。初期状態を指定しない有限状態機械を以後有限状態機械をM=(I,O,Σ,δ,ω)と表記する。本発明では、このように初期状態が明示されない有限状態機械と、初期状態が明示された有限状態機械とを、ほとんどの場合に全く同様に扱うことが可能である。即ち、本発明の対象とする有限状態機械は、通常の有限状態機械とは異なり、必ずしもΣの一要素である初期状態を持つことを必要としないため、電源を入れた直後の内部状態が一意的に定まらないような順序回路をも扱うことが可能である。
【0026】
[1−3.定常状態集合、安定状態、不安定状態、過渡的状態、過渡的遷移]
有限状態機械M=(I,O,Σ,δ,ω)において、ある入力i∈Iが与えられ続けたとき、要素数t≧1個のΣの部分集合S={s0 ,s1 ,…,st-1 }⊆Σに含まれる任意の状態が、常にSに含まれる状態にのみ遷移し、かつ、Sに含まれる全ての状態に遷移しうるとき、Sを有限状態機械Mの入力i∈Iに対する定常状態集合と呼ぶ。また、特に、要素数が1の定常状態集合に含まれる状態を、有限状態機械Mの入力i∈Iに対する安定状態と呼ぶ。逆に、要素数が2以上の定常状態集合に含まれる状態を、有限状態機械Mの入力i∈Iに対する不安定状態と呼ぶ。
【0027】
有限状態機械M=(I,O,Σ,δ,ω)において、有限状態機械Mの入力i∈Iに対する定常状態集合に含まれない状態を、有限状態機械Mの入力i∈Iに対する過渡的状態と呼ぶ。また、過渡的状態からの遷移を過渡的遷移と呼ぶ。これらの各集合の関係については、図6に示すとおりである。
【0028】
[1−4.状態の安定性]
図8は、有限状態機械の一例である。この有限状態機械は、入力アルファベットをI={0,1}、出力アルファベットをO={0,1}、そして、状態の集合をΣ={A,B,C,D,E,F,G,H}としており、初期状態を指定していない。例えば、状態Eから出発して、入力1が与えられ続けると、過渡的状態Aを経由して、最終的に状態Bに遷移し、これより後、入力1が与えられ続けても常に状態Bに留まっている。この性質を状態Bは「入力1に対する安定状態」にあるという。また、例えば、状態Aから出発して、入力0が与えられ続けると、過渡的状態Eと過渡的状態Fを経由して、状態Gに遷移し、これより先、入力0が与えられ続けると、状態B、状態C、状態Gの順に、これら三つの状態を周期的に遷移し続ける。この性質を状態の集合{B,C,G}は「入力0に対する定常状態集合」にあるという。
【0029】
図9の有限状態機械Mでは、入力0に対しては、安定状態はなく、定常状態集合は、{B,C,G}と{D,H}であり、過渡的状態は、AとEとFであり、不安定状態は、BとCとGとDとHである。入力1に対しては、安定状態はBのみであり、定常状態集合は、{B}と{C,F,G,H}であり、過渡的状態は、AとDとEであり、不安定状態は、CとFとGとHである。
【0030】
[1−5.定常化有限状態機械]
以下に、定常化有限状態機械の定義を行う。
入力として与えられた有限状態機械から過渡的状態への遷移を消去して、対応する定常化有限状態機械を生成することが、本発明における定常化有限状態機械への変換部の目的である。
【0031】
有限状態機械M=(I,O,Σ,δ,ω)に対応する定常化有限状態機械 newM=(I,O,Σ, newδ, newω)とは、有限状態機械Mと同じ入力アルファベット、出力アルファベット、及び同じ状態の集合を持つ。なお、初期状態の指定された有限状態機械M=(I,O,Σ,δ,ω,sinit)に対しては、 newMも同じ初期状態を持つ。
【0032】
定常化有限状態機械の遷移関数 newδは、以下の性質を持つ。
(1) 有限状態機械Mの入力i∈Iに対する定常状態集合は、 newMにおいても、同じ入力iに対する定常状態集合となり、かつ、この集合に含まれる状態は、入力iによって有限状態機械Mの遷移先と同じ状態に遷移する。なお、この条件は、有限状態機械Mと newMは、任意の入力iに対して同じ安定状態を持つことも意味している。
【0033】
(2) もしも、有限状態機械Mの入力i∈Iに対する過渡的状態sが、入力iを与えられ続けたとき、定常状態集合Sに含まれる状態に遷移するならば、 newMにおいて、この状態sは、入力iを与えられたとき、一回の遷移でSに含まれる状態に遷移する。
【0034】
(3) そして、出力関数 newωは、以下の性質を持つ。有限状態機械Mの入力i∈Iに対する安定状態からの、入力iによる遷移に伴う出力は newMにおいても等しい。
【0035】
(4) もしも、有限状態機械Mの入力i∈Iに対する過渡的状態sが、入力iを与えられ続けたとき、安定状態に遷移するならば、 newMにおいて、この状態sの入力iを与えられたときの遷移に伴う出力は、安定状態における出力に等しい。
なお、上の定義では、不安定状態からの遷移に伴う出力や、不安定状態への過渡的遷移に伴う出力は、特に定めていない。
【0036】
このように定義された定常化有限状態機械と、定常化されていない有限状態機械とを、ある状態において入力iが1回与えられた場合にどのような状態に遷移するかを比較する。その結果は、図7に示すとおりである。この図7から明らかなように、定常化有限状態機械と定常化されていない有限状態機械とでは、図中(C)のように、1回の入力iに対する過渡的状態への遷移があるか否かによる違いがある。従って、本発明における定常化有限状態機械への変換部の目的は、過渡状態への遷移(図中(C)に示すような遷移)がない有限状態機械を得ることにある。
【0037】
[1−6.定常化有限状態機械の具体例]
図9に示した有限状態機械 newMは、図8の有限状態機械Mに対応する定常化有限状態機械であり、上記の性質を全て満たしている。例えば、有限状態機械Mの入力0に対する定常状態集合{D,H}は、 newMにおいても、入力0に対する定常状態集合となっている。更に、この定常状態集合{D,H}に含まれる状態Dは、入力0が与えられたとき有限状態機械Mにおいても、 newMにおいても、状態Hに遷移し、状態Hは、入力0が与えられたとき有限状態機械Mにおいても、 newMにおいても、状態Dに遷移する。また。有限状態機械Mの入力0に対する過渡的状態Aは、入力0が与えられ続けたとき、過渡的状態E,Fを経由して、定常状態集合{B,C,G}に含まれる状態Gに到達し、その後、{B,C,G}の中をサイクリックに遷移し続けるのに対し、 newMでは、入力0に対する過渡的状態Aは、入力0が一度与えられたとき、過渡的状態を経由することなく、直ちに、定常状態集合{B,C,G}に含まれる状態Bに到達し、その後、入力0が与えられ続けたとき、{B,C,G}の中をサイクリックに遷移し続ける。また、有限状態機械Mの入力1に対する安定状態Bは、 newMにおいても、入力1に対する安定状態であり、この状態Bにおいて、入力1が与えられ続ける限り。有限状態機械M、 newM共に安定な出力値を出力し続ける。そして、入力1でBに遷移する過渡的状態AとEは、どちらも、この遷移に伴って、安定な出力値0を出力する。
【0038】
[2.本実施形態の論理回路の形式検証装置]
[2−1.全体の構成]
本発明の論理回路の形式検証装置の一実施形態の概要を、図1により説明する。図1に記載の有限状態機械変換装置は、コンピュータ上に実現される。このコンピュータは、中央演算装置(CPU)1、キーボードやマウスなどの入力装置2、CRTディスプレイやプリンタなどの出力装置3、及びメモリやハードディスクなどの記憶装置4を備えている。これらの各装置は、バス5によって接続され、相互に情報が交換される。
【0039】
本実施形態の変換装置は、このようなコンピュータ上において実行される次のような各部分を持つプログラムとして構成されている。
【0040】
(1) 検証対象となる回路記述の入力部10。
【0041】
(2) 回路中の入力信号のうち、いずれの信号がクロック信号であるかを示す記述を入力とする補助信号入力部11。
【0042】
(3) 前記の回路記述及び補助情報に基づいて、過渡的状態への遷移がない定常化有限状態機械 newMを生成する定常化有限状態機械生成部12。
【0043】
(4) 前記定常化有限状態機械生成部12に設けられ、クロック信号の変化のタイミングによる解釈の任意性を含んでいる予備的な有限状態機械M0 を生成する第1の有限状態機械の生成部13。
【0044】
(5) 前記定常化有限状態機械生成部12に設けられ、前記予備的な有限状態機械M0 と補助情報に基づいて、クロック信号を特定してその変化のタイミングによる解釈の任意性を排除した有限状態機械Mを生成する第2の有限状態機械生成部14。
【0045】
(6) 前記定常化有限状態機械生成部12に設けられ、前記有限状態機械生成部14で生成された有限状態機械Mを、過渡的状態への遷移を除去した定常化有限状態機械 newMへ変換するための変換部15。
【0046】
(7) 前記の変換部15によって得られた定常化有限状態機械 newMの複数個を比較して、その等価性を検証する等価性検証部16。
【0047】
(8) 前記等価性検証部16で得られた検証結果や、前記定常化有限状態機械生成部12で得られた回路の不安定性などを出力する結果出力部17。
【0048】
[2−2.全体の作用]
図2は、前記図1の検証装置において、2つの回路の等価性を検証する際の作用を説明する図である。図3は、本実施形態の検証装置の動作順序を示すフローチャートである。図2において、回路記述100Aと回路記述100Bは、等価性の検証を行う二つの論理回路の記述、補助情報200は、回路記述Aと回路記述Bに記述された回路中の入力信号のうち、いずれの信号がクロック信号であるかなどを示す記述である。即ち、これらの記述は、回路記述入力部10や補助情報入力部11から本装置に入力されるもので、例えばVHDL言語のようなハードウェア記述言語による回路の動作記述や、論理素子間のネットリストによる回路記述、トランジスタネットリストによる回路記述などである。
【0049】
本実施形態では、まず、回路記述入力部10より定常化有限状態機械生成部12に回路記述100Aと回路記述100Bがそれぞれ個別に入力として渡される(ステップ301)。定常化有限状態機械生成部12の第1の有限状態機械生成部13では、この回路記述100Aと回路記述100Bに基づいて、これら回路記述に対応する予備的な有限状態機械M0 AとM0 B生成する(ステップ302)。補助情報入力部11からは、前記各回路記述100A,Bと対になった補助情報200が定常化有限状態機械生成部12に渡される(ステップ303)。定常化有限状態機械生成部12の第2の生成部14では、この補助情報200に基づいてクロック信号を特定し、その変化のタイミングを考慮して遷移先を特定することによって、前記の予備的な有限状態機械M0 から解釈の任意性を除去した有限状態機械MA,MBを生成する(ステップ304)。
【0050】
定常化有限状態機械への変換部15では、前記のようにして得られた有限状態機械MA,MBを、過渡的状態への遷移を消去した定常化有限状態機械 newMA, newMBとに変換する(305)。この変換部15によって得られる定常化有限状態機械 newMA, newMBは、変換前の有限状態機械MA,MBと同じ安定状態を持ち、かつ、安定状態においては有限状態機械MA,MBと同じ出力をする一方、任意の過渡的状態からの遷移に関しては有限状態機械MA,MBと異なり、直ちに安定状態に遷移するという性質を持つ。これによって、有限状態機械MA,MBの瞬時的かつ、本質的でない振舞いが除去される。
【0051】
そして、等価性検証部16によって、定常化有限状態機械 newMA, newMBの間の等価性を形式的に検証し(ステップ306)、この結果を出力部17において出力する(ステップ307)。また、出力部17では、定常化有限状態機械生成部12において見い出された各回路の不安定性などの情報を出力する。
【0052】
[2−3.予備的な有限状態機械生成部13]
次に、定常化有限状態機械生成部12に設けられた予備的な有限状態機械生成部13の働きを例を用いて説明する。例えば、図10(a)に示したマスタスレーブ型JK−フリップフロップを実現する回路から有限状態機械Mを作る場合、以下の手順により、回路記述100の情報のみを用いてまず予備的な有限状態機械M0 を作り、続いて、補助情報200を用いて、予備的な有限状態機械M0 から求める有限状態機械Mを作る。
【0053】
予備的な有限状態機械M0 を作るには、例えば、回路記述100が図10のような論理素子間のネットリスト記述の場合、まず、回路記述100の信号の流れからフィードバックループを見い出し、これから状態ビットを見い出す。ただし、このとき、クロック信号は他の入力信号と同様に一つの入力信号として扱い、特別には扱わない。回路記述全体から見い出された各状態ビットは、0または1の値を取り得るとし、これらの値の任意の組合わせが、有限状態機械M0 の状態集合の要素となる一つの状態を構成する。そして、入力信号、及び、状態ビットの値と出力信号、及び、状態ビットの値との関係から、有限状態機械M0 の出力関数と遷移関数を決定する。このようにして、図10(a)の回路からは、例えば、図12に示した有限状態機械M0 が作られる。なお、この図の有限状態機械では、初期状態を指定していない。また、図12においては、状態名と出力値をA/0のように丸で囲み、入力アルファベット[clk,j,i]を0――のように遷移先を示す矢印に添えて表現する。
【0054】
また、回路記述100にトランジスタネットリストで記述された回路が与えられた場合には、例えば、下記の(1) から(3) に述べられている手法などを用いて、この回路に対応する有限状態機械M0 を構成する。
【0055】
(1) T.Kam and P.A.Subrahmanyam, “State Machine Abstraction from Circuit Layouts using BDD′s: Applications in Verification and Synthesis", in Proc. European Design Automation Conf.,1992, pp. 92-97
(2) J.Moondanos, J.A.Wehben, J.A.Abraham and D.G.Saab,“VERTEX: VERification of Transistor-level circuits based on model EXtracation", in Proc. The European Conf. on Design Automation with the European Event in ASIC Design,1993,pp.111-115
(3) M.Pandey, A.Jain, R.E.Bryant, et al., “Extraction of Finite State Machines from Transistor Netlists by Symbolic Simulation", in Proc. of International Conference on Computer Design′95, pp.596-601
[2−4.解釈の任意性を含まない有限状態機械の生成部14]
[2−4−1.予備的な有限状態機械M0 から作成した同期機械の問題点]
前記のようにして予備的な有限状態機械M0 を生成した後は、(d) のような公知の技術では、これに続いて同期機械を作成する。
【0056】
(4) J.Bormann, J.Lohse, M.Payer and G.Venzl,“Model Checking in Industrial Hardware Design" ,in 32th ACM/IEEE Design Automation Conference,1995, pp.298-303
例えば、前記(4) の技術では、ここで作った有限状態機械M0 から、「クロック信号のいかなるタイミングで入出力信号値の変化が生じるか。」といった情報をユーザーから得ることにより、クロック信号を陽に含まない有限状態機械(同期機械)M1 を生成する。このユーザーから得る情報は、例えば、クロック信号の値が0である間にのみ、その他の入力信号の値が変化し、クロック信号の値が1の間はその他の入力信号の値は変化せず、クロック信号の値が1から0になる瞬間(クロック信号の立ち下がり時)に出力信号値が変化すると言うものである。
【0057】
図13は、図12から、クロック信号の値が0である間にのみ、入力信号j,kの値が変化し、クロック信号の立ち下がり時に状態遷移が起こるという情報を用いて生成した同期機械の例である。しかし、この手法には、設計された回路中に、誤りによって設計者の意図しないタイミングで入力信号が変化するような状況などが含まれる場合に、これを正しく検出することができないという問題点がある。実際、この手法を用いた場合、図10(a)(b)からは、共に、図13の同期機械が作られ、二つの回路の間の非等価性を検出できなくなってしまう。
【0058】
[2−4−2.有限状態機械M0 におけるの解釈の任意性]
そこで、本発明では、出力信号値の変化のタイミングとクロック信号を含む任意の入力信号値の変化のタイミングとの関係を保つために、有限状態機械M0 から同期機械を構成することを行わず、クロック信号を陽に入力信号として含む有限状態機械を形式検証の対象とする。
【0059】
ただし、回路記述100のみから先に述べた手法で構成した有限状態機械M0 には、クロック信号と全く同時にその他の入力信号が変化したときに、この変化がクロック信号の変化の直前、または、直後のいずれで生じたと解釈するかによる任意性がある。この任意性により、本発明で等価性を検証する二つの回路記述が、実際には等価な回路の記述であったも、それらから構成した有限状態機械は、論理的に非等価となってしまうことがあり得る。
【0060】
例えば、図14(a)(b)に示した二つの有限状態機械は、どちらもクロック信号clkとその他の信号aの二つの入力信号よりなる入力アルファベットと、1ビットの出力信号よりなる出力アルファベットを持ち、それぞれ、状態A、及び、状態Dを初期状態に持つ。これらの初期状態は、いずれもclk=1,a=0のときに0を出力し続ける安定状態である。これらの有限状態機械において、clkの値が0になる直前に入力信号aの値が0から1に変化すると、図15(a)(b)に示したように、どちらの有限状態機械も出力信号の値がclkの立ち下がりと同時に0から1に変化する。また、入力信号aの値の変化が、clkの値が0になった直後である場合には、図16(a)(b)に示したように、どちらの有限状態機械の出力信号の値も0に留まっている。従って、これらの状況だけを考えるならば、二つの有限状態は等価に振舞う。しかし、clkの値が1から0になる変化と全く同時にaの値が0から1に変化する場合には、図17(a)(b)に示したように、前者は出力信号の値が0から1に変化し、後者は出力信号の値が0に留まる。
【0061】
従って、図14(a)(b)の有限状態機械は、クロック信号とその他の入力信号aの値が全く同時に変化する場合の解釈の任意性、すなわち、前者の有限状態機械は、クロック信号とその他の入力信号aの値が全く同時に変化する場合、クロック信号の方が一瞬遅れて変化すると解釈され、一方、後者の有限状態機械は、逆にクロック信号の方が一瞬早く変化すると解釈されることが原因となり、両者が非等価となってしまう。しかし、実際の回路では、このような状況は有り得ないので、解釈の任意性が存在することは望ましくない。
【0062】
[2−4−3.解釈の任意性を含まない有限状態機械Mの生成]
本発明では、前記のような予備的な有限状態機械M0 における解釈の任意性によって発生する問題を解決する。そのために、第2の有限状態機械生成部14において、予備的な有限状態機械M0 から解釈の任意性を含まない新たな有限状態機械Mを次のようにして構成する。そして、次に、この解釈の任意性を含まない有限状態機械Mを、さらに過渡的遷移を含まない定常化有限状態機械 newMに変換して、等価性を検証する。
【0063】
第2の有限状態機械生成部14において、有限状態機械M0 から有限状態機械Mを構成するには、次のようにする。例えば、回路記述100が一つのクロック信号によって動作が制御される場合、まず、補助情報入力部11を介して得られた補助情報200によってクロック信号clkを特定し、クロック信号の直前の値を保持する状態ビットcを導入する。そして、図18に示すように、cの値が0であるか1であるかに応じて、有限状態機械M0 に含まれている各状態sをそれぞれ二つの状態s0 ,s1 に分け、これらを有限状態機械Mの状態とする。今、有限状態機械M0 においてclk=0その他の入力値がiのときの状態sの遷移先をs′(i,0)とし、clk=1その他の入力値がiのときの状態sの遷移先をs′(i,1)とする。
【0064】
このとき、図19に示すように、有限状態機械Mにおいては、S0 の遷移先を、clk=0その他の入力値がiのとき、s′0 (i,0)、clk=1その他の入力値がiのときs′1 (i,0)となるように定め、s1 の遷移先を、clk=0その他の入力値がiのときs′0 (i,1)、clk=1その他の入力値がiのときs′1 (i,1)となるように定める。
【0065】
このようにして、有限状態機械Mの遷移関数δを、
【数1】
s′c =δ(sc ,i,clk )=(δ0 (s,i,c ))clk
によって決定する。ここで、cはクロック信号の直前の値を保持する状態ビット、iはクロック以外の入力信号、sは予備的な有限状態機械M0 の状態、δ0 (sc ,i,clk )は予備的な有限状態機械M0 の遷移関数である。同様に、有限状態機械Mの出力関数ωを
【数2】
o=ω(sc ,i,clk )=ω0 (s,i,c )
によって決定する。ここで、ω0 は、予備的な有限状態機械M0 の出力関数である。
【0066】
[2−4−4.解釈の任意性を含まない有限状態機械Mの例]
以上の方法を用いて、図14(a)(b)に示した有限状態機械から作った有限状態機械の例を、それぞれ、図20(a)(b)に示す。なお、この図の例、及び、図14、図21の例では、説明の便宜上、初期状態を定めた有限状態機械を例としたが、後に述べる等価性検証部において用いるアルゴリズムによっては、初期状態の指定は必要ではないことがある。そのような場合には、予備的な有限状態機械M0 から、有限状態機械Mを構成する際、初期状態を定める方法は特に指定する必要がない。一方、等価性検証部において用いるアルゴリズムが初期状態を必要とする場合には、補助情報200を元に、予備的な有限状態機械M0 の初期状態sinitを見い出し、次に、有限状態機械Mにおいて、sinitの状態を二つに分けたsinit 0,sinit 1のいずれが初期状態となるかを決定する必要がある。
【0067】
以上の例では、定常化有限状態機械生成部に入力として与えられる回路記述として、それのみではクロック信号を特定できない場合を説明した。一方、図11に示したような、VHDL言語のレジスター転送レベルによる回路記述などが定常化有限状態機械生成部に与えられた時には、通常は、「’EVENT」や「’LAST_VALUE」のような属性の付けられた信号をクロック信号と解釈できることが多い。そして、このような場合には、自然に、直前のクロック信号の値を状態ビットとして定めることができる。しかし、ゲート付クロックを含むような回路記述などには、クロック信号に上のような属性が付けられていないこともあり得る。このため、一般に、クロック信号を一つ持つ回路に対する回路記述では常に補助情報によって、外部からクロック信号を指定し、これによって指定されたクロック信号の直前の値を状態ビットと定める方が、適切に有限状態機械M0 を構成することができる。
【0068】
[2−5.定常化有限状態機械への変換部15]
上のようにして作った有限状態機械Mは、元の有限状態機械M0 と異なり、ある状態において、ある入力が与えられたとき、安定状態に遷移するためにいくつかの過渡的状態を経由することがある。例えば、図14(a)の有限状態機械を有限状態機械M0 とすると、状態Aは、clk=1,a=1の入力が与えられ続けたとき、状態Aに留まっているので安定状態という。また、このとき値0を出力し続けている。続いて、clk=0と変化すると状態Cに遷移し、この後状態Cに留まって1を出力し続ける。従って、状態Cも安定状態である。これに対し、有限状態機械M0 から構成した図20(a)の有限状態機械Mでは、clk=1,a=1で0を出力し続ける安定状態A1 においてclk=0となると、状態A0 に遷移した後、直ちに状態C0 に遷移し、その後、安定状態C0 に留まって1を出力し続ける。ここで見られる状態A0 のような状態を過渡的状態と呼び、この例のように、元の有限状態機械M0 に過渡的状態への遷移が含まれていなくても、これから構成した有限状態機械Mには含まれることがある。
【0069】
本発明では、有限状態機械Mに含まれる過渡的状態への遷移を取り除くために、定常化有限状態機械への変換部15を用いて、有限状態機械Mを過渡的状態への遷移を行わないことを特徴とする定常化有限状態機械 newMに変換する。この変換を効率的に行うための技術としては、例えば、前記(1) (3) が知られている。また、公知技術ではないが、本発明者の開発にかかる反復二乗法を使用した変換方法を用いることもできる。
【0070】
図20(a)(b)に示した有限状態機械Mを有限状態機械変換部12において上記技術を用いて変換した定常化有限状態機械 newMの例を、それぞれ図21(a)(b)に示す。例えば、図20(a)の有限状態機械Mでは、clk=1,a=1で0を出力し続ける安定状態A1 において、clk=0となると、0を出力する過渡的状態A0 を経由して、その後、1を出力し続ける安定状態C0 に遷移するのに対し、図21(a)の定常化有限状態機械 newMでは、同じ安定状態A1 において、clk=0となると、どの過渡的状態へも遷移することなく、有限状態機械Mの場合の遷移先と同じ安定状態C0 に遷移する。更に、図22(a)(b)、図23(a)(b)及び図24(a)(b)に示したように、図21(a)(b)の定常化有限状態機械 newMは、クロック信号clkとその他の入力信号aとが全く同時に変化する場合も含めて、入出力の関係が等価となる。
【0071】
このようにして、本発明における定常化有限状態機械生成部12は、与えられた回路記述と補助情報とから、予備的な有限状態機械の生成部と解釈の任意性を排除した有限状態機械の生成部と、さらに定常化有限状態機械への変換部とを用いることにより、定常化有限状態機械 newMを生成し、この定常化有限状態機械 newMは、クロック信号の値の変化と全く同時にその他の入力信号の値が変化するような実際の回路ではあり得ない状況に対しては、解釈の任意性なく、常にクロック信号の値の変化がその他の入力信号の値の変化よりも遅れて変化すると一意的に解釈することのできる有限状態機械となる。
【0072】
[2−6.等価性検証部16]
次に、図1に示した本実施形態における等価性検証部16の働きを説明する。等価性検証部16では、回路記述100A,100Bから定常化有限状態機械生成部12を用いて作られた二つの定常化有限状態機械 newMA, newMBの間の論理的等価性を検証し、この結果を出力部17に出力する。これら二つの定常化有限状態機械 newMA, newMBは、これまでに述べたように、クロック、及び、その他の入力信号値の変化に対する状態遷移、及び、出力の関係を、クロック信号値の変化に対するタイミングを含めて正しく表現しているので、等価性検証部16では、回路の詳細に立ちいることなく等価性の検証を行うことが可能となる。
【0073】
これを効率良く行うためのアルゴリズムには、例えば、次に示されているものなどを用いることができる。
【0074】
(5) O. Coudert, C. Berthet and J. C. Madre, “Verification of Sequential Machines Using Boolean Functional Vectors" ,in Formal VLSI Correctness Verification 1989, pp.179-196;USP 5,491,639 T.Filkorn,1996
これらのアルゴリズムでは、定常化有限状態機械 newMA, newMBとの間の等価性を検証するために、それぞれの初期状態を指定する必要がある。一方、もしも、定常化有限状態機械生成部12において有限状態機械Mを定常化有限状態機械 newMに変換するに当たって、反復二乗法による変換方法などのように有限状態機械のリセット可能性や、二つの有限状態機械間の整列可能性が、変換前後において保存される方法を採用すれば、検証のアルゴリズムとして、(6) に示されているものを用いることができる。
【0075】
(6) USP 5,331,568 C.Pixley,1994
このアルゴリズムを用いるならば、検証する二つの有限状態機械の初期状態は指定する必要がない。即ち、初期の有限状態機械M0 から有限状態機械Mを作成する際に、クロックを指定する情報だけでは初期状態を決定することができず、また、ハードウェアのスイッチが入れられた直後の初期状態は一般に不定であるので、この等価性の検証は、Pixleyのアルゴリズムが適している。
【0076】
Pixleyのアルゴリズムでは、検証する有限状態機械の初期状態は指定する必要がない。そして、比較する2つの定常化有限状態機械 newMA, newMBの状態SA,SBは、任意の入力シーケンスに対して常に同じ出力シーケンスを与えるとき等価であると定義する。このとき、2つの定常化有限状態機械 newMA, newMBの等価性は、有限状態機械MP= newMA× newMBの任意の状態{sA,sB}∈ΣPを、2つの等価な状態よりなる組{SA,SB}∈ΣPへ遷移させることのできる入力シーケンスが存在するか否かで決定される。このような手法を用いることにより、本発明の検証システムでは、クロック立ち上がり時に状態遷移するべく仕様記述されているにもかかわらず、クロックの立ち下がりで状態遷移するように設計された回路の誤りなどを見出すことができる。
【0077】
【発明の効果】
以上のとおり、本発明にかかる論理回路の形式検証装置によれば、与えられた二つの論理回路の記述から生成した二つの定常化有限状態機械の論理的等価性を等価性検証部において形式検証することにより、入出力信号の値の変化のタイミングとクロック信号の値の変化のタイミングの関係までを考慮した順序回路の形式検証を行うことが可能となる。
【0078】
特に、本発明では、従来の有限状態機械の入力信号からクロックを取り除く手法とは逆に、クロック信号を入力信号として残し、さらに、状態を構成するビットにもクロック直前の値を持たせる。これによって、設計者の予期したクロックのタイミング以外で入力信号が変化することなどによる、回路動作の相違のような誤りを検出することが可能になる。これは、トランジスタネットリストによるハードウェア記述や、素子にループを持たせて状態を構成した順序回路のような、記述の抽象度の低い回路の等価性の検証にきわめて有利である。
【図面の簡単な説明】
【図1】本発明による論理回路の検証装置の一実施形態の構成を示す機能ブロック図。
【図2】二つの論理記述を有限状態機械に変換して比較する手法を示す機能ブロック図。
【図3】図1の検証装置の動作を示すフロー図。
【図4】有限状態機械の定義を説明する図。
【図5】有限状態機械の一具体例を示す図。
【図6】有限状態機械がとる各状態の関係を示す図。
【図7】定常化有限状態機械と定常化されていない有限状態機械の特徴を比較する図。
【図8】過渡的な状態への遷移を含む有限状態機械の一具体例を示す図。
【図9】図6の有限状態機械を変換して得られた定常化有限状態機械を示す図。
【図10】JK−フリップフロップを実現する回路を示す図。
【図11】VHDL言語によるJK−フリップフロップの動作記述の一例を示す図。
【図12】図10(a)のJK−フリップフロップを実現する回路から作った有限状態機械を示す図。
【図13】図12の有限状態機械から作った同期機械を示す図。
【図14】有限状態機械の解釈の任意性を説明するために、二つの有限状態機械(a)(b)の状態遷移を比較する図。
【図15】図14の二つの有限状態機械(a)(b)の入力、出力及び遷移を比較するタイムチャートで、clkの値が0になる直前に入力信号aの値が0から1に変化する場合を示す。
【図16】図14の二つの有限状態機械(a)(b)の入力、出力及び遷移を比較するタイムチャートで、入力信号aの値の変化がclkの値が0になる直後の場合を示す。
【図17】図14の二つの有限状態機械(a)(b)の入力、出力及び遷移を比較するタイムチャートで、clkの値が1から0になる変化と同時にaの値が0から1に変化する場合を示す。
【図18】予備的な有限状態機械に直前のクロック値を保持するビット値を導入する手法を示す図。
【図19】図18の手法により解釈の任意性を含まない有限状態機械の遷移関数を決定する手法を示す図。
【図20】図14に示した二つの予備的な有限状態機械(a)(b)の直前のクロック値を新たな状態ビットとして作った解釈の任意性を含まない有限状態機械(a)(b)を示す図。
【図21】図20の有限状態機械から変換した二つの定常化有限状態機械(a)(b)を示す図。
【図22】図21の二つの有限状態機械(a)(b)の入力、出力及び遷移を比較するタイムチャートで、clkの値が0になる直前に入力信号aの値が0から1に変化する場合を示す。
【図23】図21の二つの有限状態機械(a)(b)の入力、出力及び遷移を比較するタイムチャートで、入力信号aの値の変化がclkの値が0になる直後の場合を示す。
【図24】図21の二つの有限状態機械(a)(b)の入力、出力及び遷移を比較するタイムチャートで、clkの値が1から0になる変化と同時にaの値が0から1に変化する場合を示す。
【図25】従来の同期機械による検証装置の動作を示すフロー図。
【符号の説明】
100…回路記述A,B
200…補助情報
10…回路記述入力部
11…補助情報入力部
12…定常化有限状態機械生成部
13…予備的な有限状態機械の生成部
14…任意性を含まない有限状態機械の生成部
15…定常化有限状態機械 newMへの変換部
16…等価性検証部
17…出力部
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a sequential circuit type verification method and apparatus using a finite state machine.
[0002]
[Prior art]
With the increase in the scale of logic circuits such as circuits that make up computers in recent years, technologies for shortening circuit design and test periods, that is, logic synthesis technology, simulation technology, formal verification technology, etc., have become increasingly important year by year. It is coming. In these technologies, when a sequential circuit is handled, the sequential circuit is usually mathematically modeled using a finite state machine, and processing such as reduction of the number of states and determination of equivalence is performed on the finite state machine. Is called. In recent years, with the development of a compact technique for expressing transition functions and output functions that are elements of a finite state machine using a binary decision diagram, the above processing can be applied to larger finite state machines. It became.
[0003]
Among the above techniques, the formal verification technique is divided into an equivalence determination technique and a model checking technique. The former is a technique for determining the logical equivalence of two circuits, and the latter is a technique for determining whether a target circuit satisfies a logical property specified by a user.
[0004]
In these formal verification techniques for logic circuits, particularly sequential circuits, in order to construct a finite state machine that models this from a circuit description that describes a given circuit, usually, as shown in FIG. Processing is performed. First, a finite state machine M having an input alphabet as a combination of arbitrary values of all input signals included in given circuit descriptions A and B.0A, M0B is made (step 31). Of the inputs to this circuit, the input corresponding to the clock signal is detected automatically or using information by the user. Furthermore, information regarding timing such as what value the clock signal takes when the values of the input signal and output signal other than the clock signal change is obtained from the user (step 32). And based on this, the finite state machine M0A, M0From B, a finite state machine (synchronous machine M) having a combination of arbitrary values of input signals other than clock signals as an input alphabet.1A, M1B) is configured (step 33). The state transition in the synchronous machine is considered to occur at a given timing by a clock that the synchronous machine itself has. In the sequential circuit equivalence verification technique, two synchronous machines M made in this way from two sequential circuits are used.1A, M1By verifying the logical equivalence between B, the equivalence between the original sequential circuits is verified (step 34), and the result is output (step 35).
[0005]
[Problems to be solved by the invention]
However, the equivalence determination technique described above, that is, the technique of constructing each synchronous machine from the circuit descriptions of two sequential circuits whose equivalence is to be determined and determining their logical equivalence, has the following problems. There is a point.
[0006]
In recent years, it has become more important to make a circuit with less power consumption than a normal synchronous circuit, so it is possible to realize a circuit using a gated clock, etc. It has become necessary to realize a combination of transistors without using logic elements such as flip-flops and latches. In such a case, whether or not the state transition of the designed circuit and the change of the value of the input / output signal occur correctly according to the timing of the change of the clock signal and other signals expected by the user is not necessarily guaranteed. .
[0007]
For this reason, if equivalence between circuits is created by creating a synchronous machine from the circuit description, state transitions and input / output signal values may be erroneously entered in the circuit description at timings not intended by the designer. Even if a change occurs, it may not be detected.
[0008]
For example, FIGS. 10A and 10B show circuits that implement a master-slave JK flip-flop and an edge-triggered JK flip-flop using NAND gates, for example. In these two circuits, the values of the other input signals j and k change only while the value of the clock signal clk is 0, and the state transition is at the falling edge of the clock signal, that is, clk = 1 to clk = Assuming that it occurs only at the moment when it becomes zero, it shows a completely equivalent input / output relationship. However, if the value of the input signal may change while the value of the clock signal is 1, these circuits may behave differently.
[0009]
FIG. 11 describes the operation of the JK-flip flop in the VHDL language. This description is based on which JK- of FIG. 10 when formal verification is performed by configuring a synchronous machine. Although it is equivalent to the flip-flop circuit, it is not actually equivalent to the circuit of (a), but is equivalent to only the circuit of (b), for the same reason as described above.
[0010]
The designer uses the edge trigger type JK-flip-flop shown in FIG. 10B in order to realize a certain circuit at the beginning of design, and this is used as the master-slave type JK shown in FIG. -Suppose you change to a flip-flop. In the conventional verification technique, in order to perform verification, the designers only know that the values of the input signals j and k change only while the value of the clock signal is 0, and the state transition occurs at the falling edge of the clock signal. Is specified. Therefore, even if the values of j and k change while the value of the clock signal is 1, the difference before and after the change cannot be detected. Therefore, the designer must verify that the values of j and k do not change while the value of the clock signal is 1, using verification by model checking or the like individually. However, there is a problem that the designer does not always make this confirmation, and the circuit before and after the change is considered to be equivalent without noticing the difference.
[0011]
[Means for Solving the Problems]
  In order to solve the above problems, the invention of claim 1 is given to a circuit description describing the logic circuit and the logic circuit in a formal verification device for formally verifying equivalence of a plurality of logic circuits. A stationary finite state machine generation unit that generates a stationary finite state machine corresponding to the logic circuit from information related to the input signal, and the stationary finite state machine generation unit generated individually from the plurality of circuit descriptions. An equivalence verification unit that verifies logical equivalence of a plurality of stationary finite state machines; and an output unit that outputs a verification result of the equivalence verification unit, wherein the stationary finite state machine generation unit includes the circuit A finite state machine that generates a finite state machine that performs a uniquely defined state transition with respect to the change timing of a predetermined input signal and other input signals among a plurality of input signals of the circuit represented by the description A generation unit, and a conversion unit to a finite state machine that converts the finite state machine generated by the finite state machine generation unit into a stationary finite state machine having no transition to a transient state. And
[0012]
  The invention of claim 5 grasps the invention of claim 1 from the viewpoint of the method, and is a formal verification method for formal verification of equivalence of a plurality of logic circuits, comprising an input / output device. Steady state finite state machine generator, equivalence verifier, finite state machine generator and steady state finite state machine converter provided in the steady state finite state machine generator And using the circuit description describing each logic circuit input from the input / output device and the information about the input signal given to each logic circuit, the finite state machine generation unit, for each logic circuit, A finite state machine that performs a uniquely defined state transition with respect to the change timing of a predetermined input signal and other input signals among a plurality of input signals of the circuit represented by the circuit description. A finite state machine generation process that generates the finite state machine corresponding to each logic circuit generated by the finite state machine generation process by the steady state finite state machine conversion unit. Generated individually by the stationary finite state machine generation unit from a plurality of circuit descriptions by the conversion process to a finite state machine that converts to a stationary finite state machine that does not have a transition to a state, and the equivalence checking unit And equivalence verification processing for verifying logical equivalence of a plurality of stationary finite state machines.
[0013]
  The structure according to claim 1 having such a configuration.Claim 5According to the invention, for the description of the two logic circuits whose equivalence is to be verified, information specifying which one of the input signals does not change at the same time as the other input signal is provided. The steady finite state machine is generated individually by the steady finite state machine generation unit. This information specifies which of the input signals is the clock signal, unlike the prior art in which the user specifies a lot of information such as the clock value when the input / output signal value changes. Only very little information is needed. The steady finite state machine created by the steady finite state machine generator performs a uniquely defined state transition for the timing of the change in the value of any input signal, and transitions to a transient state. It has the feature of not having a transition. Therefore, according to the present invention, the logical equivalence of the two stationary finite state machines generated from the descriptions of the two given logic circuits is formally verified in the equivalence verification unit, so that a plurality of input / output signals can be obtained. It is possible to perform the format verification of the sequential circuit in consideration of the timing of the value change.
[0014]
  Furthermore, according to the invention described in claim 1 or claim 5 having such a configuration, for example, verification between a normal sequential circuit and a circuit in which this is realized by using a gated clock, or a single circuit It is possible to verify equivalence between circuits that include both a transition portion at the rising edge of the clock and a transition portion at the falling edge. In particular, when verifying using a synchronous machine, if the input signal changes in the designed circuit due to an error at a clock timing not intended by the designer, or if a state transition occurs at a clock timing not intended by the designer. It may happen. When such a case is included, this error may be canceled during the construction of the synchronous machine. The present invention solves such a problem by performing equivalence verification without configuring a synchronous machine.
[0015]
  According to a second aspect of the present invention, in the first aspect of the invention, the stationary finite state machine generation unit generates a preliminary finite state machine that generates a preliminary finite state machine based on a circuit description describing the logic circuit. A finite state machine generation unit that includes a machine generation unit and generates a finite state machine that performs a uniquely defined state transition is based on the preliminary finite state machine generated by the preliminary finite state machine generation unit. Thus, a finite state machine that performs a uniquely defined state transition with respect to a change timing of a predetermined input signal and other input signals is generated. The invention of claim 6 grasps the invention of claim 2 from the viewpoint of the method.
[0016]
  According to the inventions of claim 2 and claim 6 described above, a preliminary finite state machine, uniquely, from a circuit description describing the logic circuit and information about an input signal applied to the logic circuit. By generating a finite state machine with different properties such as a finite state machine that performs a defined state transition and a steady finite state machine that does not have a transition to a transient state, the clocks of logic circuits, etc. It is easy to correctly express the relationship between the state transition and the output with respect to the change of the input signal value, including the timing with respect to the change of the clock signal value. Verification can be performed.
[0017]
According to a third aspect of the present invention, the finite state machine generation unit generates a finite state machine that performs a uniquely defined state transition with respect to a timing at which a value of a clock signal and another signal changes simultaneously. Features. According to the third aspect of the present invention, it is possible to generate a finite state machine that takes into account the relationship between the timing of the change in the values of the clock signal and other input / output signals, and more accurate verification of the logic circuit can be performed.
[0018]
According to a fourth aspect of the present invention, the output unit also outputs information found in the stationary finite state machine generation unit. According to the fourth aspect of the present invention, the output unit can output not only the verification result but also the instability of the state discovered at the time of generation of the steady finite state machine, for example. The state machine can be converted efficiently.
[0019]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, an embodiment of the present invention will be described with reference to the drawings.
An embodiment described later is realized on a computer, and each function of the embodiment is realized by a predetermined procedure (program) controlling the computer. For example, various types of input units can be adopted depending on the program to be input and the mode of data, and input / output devices such as a keyboard and a mouse, a network connection device, and a data reading device can be used. Each storage unit is for storing data input from the outside, and a desired device such as magnetism, an optical disk device, or a semiconductor memory can be used. Further, the other part is typically constituted by computer software.
[0020]
Each “unit” in this specification is a conceptual one corresponding to each function of the embodiment, and does not necessarily correspond to a specific hardware or software routine on a one-to-one basis. The same hardware element constitutes a different part depending on the case. For example, a computer can be a part when executing a certain instruction and can be a different part when executing another instruction. One part may be realized by only one instruction, or may be realized by a large number of instructions. Therefore, in the present specification, the embodiment will be described below assuming a virtual circuit block (unit) having each function of the embodiment. Further, the steps of each procedure in the present embodiment may be executed in a different order for each execution by changing the execution order and executing a plurality of steps at the same time, as long as it does not contradict its nature.
[0021]
When the present invention is realized as software of a computer, the software is recorded on a recording medium using magnetism or light, and this can be read out by an individual designer and executed by his / her computer. This is one embodiment of the present invention.
[0022]
[A. First Embodiment]
[1. Finite state machine and stationary finite state machine]
[1-1. Definition of finite state machine]
Define a finite state machine as an input for the present invention.
As shown in FIG. 4, the finite state machine M is a set of input symbols composed of a finite number of elements (hereinafter referred to as input alphabet) I, a set of output symbols composed of a finite number of elements (hereinafter referred to as output alphabet) O, finite State set Σ, transition function δ, output function ω, initial state Sinit6 sets are designated. This is expressed as a finite state machine M = (I, O, Σ, δ, ω, Sinit). Here, the transition function δ is a function from Σ × I to Σ, the output function ω is a function from Σ × I to O, and the initial state SinitIs one element of Σ, namely Sinit∈Σ. When the input iεI is given, the transition destination of the state δεΣ by the transition function δ is denoted by δ (s, i), and the output by the output function ω is denoted by ω (s, i). In the following, δ, ω and δ (s, i), ω (s, i) are not distinguished unless particularly confusing.
[0023]
[1-2. Specific examples of finite state machines]
FIG. 5A is an example of a finite state machine, where the input alphabet is I = {0,1}, the output alphabet is O = {0,1}, and the set of states is Σ = {A, B}. A state is represented by enclosing the state name in a circle, such as 200. A set of numbers 202 and 203 attached to an arrow 201 from each state, when an input value 202 is given in the state that is the starting point of the arrow 201, transitions to a state that becomes the end point of the arrow, and an output accompanying this transition This means that the value is 203. In the example of FIG. 5A, when the input 0 is given in the state A, the transition destination state is A, and accordingly, 1 is output. When input 1 is given in state A, the transition destination state is B, and 1 is output accordingly. When the input 0 is given in the state B, the transition destination state is B, and 1 is output accordingly. When the input 1 is given in the state B, the transition destination state is A, and accordingly 0 is output. Reference numeral 204 denotes a state name surrounded by a double circle, which expresses that B is an initial state.
[0024]
The representation of the finite state machine in this specification is not limited to FIG. 5, but as shown in FIG. 12 and the like, the state name and the output value are circled as A / 0, and the input value is 0− The expression described along with the arrow indicating the transition destination is also used.
[0025]
In most sequential circuits, the internal state immediately after the power is turned on is not uniquely determined. For this reason, when the sequential circuit is modeled by a finite state machine, the initial state may not be specified. FIG. 5B shows a finite state machine in such a case, and the initial state is not clearly shown. A finite state machine that does not specify an initial state is hereinafter referred to as M = (I, O, Σ, δ, ω). In the present invention, the finite state machine in which the initial state is not specified and the finite state machine in which the initial state is specified can be handled in almost the same manner in most cases. In other words, unlike a normal finite state machine, the finite state machine targeted by the present invention does not necessarily have an initial state that is an element of Σ, so the internal state immediately after turning on the power is unique. It is also possible to handle sequential circuits that are not fixed.
[0026]
[1-3. Steady state set, stable state, unstable state, transient state, transient transition]
In a finite state machine M = (I, O, Σ, δ, ω), when a certain input iεI continues to be given, a subset S of elements Σ having the number of elements t ≧ 1 S = {s0, S1, ..., st-1} When an arbitrary state included in ⊆Σ always transits only to a state included in S and can transition to all states included in S, S is a steady state for an input i∈I of the finite state machine M. This is called a state set. In particular, a state included in the steady state set having one element is called a stable state for the input iεI of the finite state machine M. Conversely, a state included in a steady state set having two or more elements is called an unstable state with respect to an input iεI of the finite state machine M.
[0027]
In the finite state machine M = (I, O, Σ, δ, ω), states that are not included in the steady state set for the input i∈I of the finite state machine M are transitive to the input i∈I of the finite state machine M. Call the state. A transition from a transient state is called a transient transition. The relationship between these sets is as shown in FIG.
[0028]
[1-4. State stability]
FIG. 8 is an example of a finite state machine. In this finite state machine, the input alphabet is I = {0, 1}, the output alphabet is O = {0, 1}, and the set of states is Σ = {A, B, C, D, E, F, G , H}, and the initial state is not specified. For example, starting from the state E, if the input 1 continues to be applied, the state finally transitions to the state B via the transient state A, and after that, even if the input 1 continues to be applied, the state B always remains. Stay on. State B is said to be in the “stable state for input 1” in state B. Also, for example, starting from the state A, if the input 0 continues to be given, the state transitions to the state G via the transient state E and the transient state F, and if the input 0 continues to be given thereafter. , State B, state C, and state G in order, these three states continue to transition periodically. With this property, the state set {B, C, G} is said to be in the “steady state set for input 0”.
[0029]
In the finite state machine M of FIG. 9, there is no stable state for the input 0, the steady state sets are {B, C, G} and {D, H}, and the transient states are A and E. And F, and the unstable states are B, C, G, D, and H. For input 1, the stable state is only B, the steady state set is {B} and {C, F, G, H}, the transient states are A, D, and E, and The stable states are C, F, G, and H.
[0030]
[1-5. Steady state finite state machine]
In the following, a steady finite state machine is defined.
It is an object of the conversion unit to the steady finite state machine in the present invention to eliminate the transition from the finite state machine given as input to the transient state and generate a corresponding steady finite state machine.
[0031]
The steady finite state machine newM = (I, O, Σ, newδ, newω) corresponding to the finite state machine M = (I, O, Σ, δ, ω) is the same input alphabet and output as the finite state machine M It has a set of alphabets and the same state. Note that the specified finite state machine M = (I, O, Σ, δ, ω, s in the initial stateinit) NewM also has the same initial state.
[0032]
The transition function newδ of the steady finite state machine has the following properties.
(1) The steady state set for the input i∈I of the finite state machine M becomes a steady state set for the same input i even in newM, and the states included in this set are transitions of the finite state machine M by the input i. Transition to the same state as before. This condition also means that the finite state machine M and newM have the same stable state for an arbitrary input i.
[0033]
(2) If the transient state s for the input i∈I of the finite state machine M continues to be given the input i and transitions to a state included in the steady state set S, this state s in newM Transitions to a state included in S in one transition when input i is given.
[0034]
(3) The output function newω has the following properties. The output associated with the transition by input i from the stable state for input iεI of finite state machine M is also equal in newM.
[0035]
(4) If the transitional state s for the input i∈I of the finite state machine M continues to be given the input i and transitions to the stable state, the input i of this state s is given at newM. The output accompanying the transition at this time is equal to the output in the stable state.
In the above definition, there is no particular definition of the output accompanying the transition from the unstable state or the output accompanying the transient transition to the unstable state.
[0036]
A state in which the steady state finite state machine thus defined and the unsteady state finite state machine are transitioned to when the input i is given once in a certain state is compared. The result is as shown in FIG. As is clear from FIG. 7, in the steady finite state machine and the unsteady finite state machine, is there a transition to the transient state for one input i as shown in FIG. There is a difference depending on whether or not. Therefore, the purpose of the conversion unit to the steady finite state machine in the present invention is to obtain a finite state machine that does not have a transition to a transient state (a transition as shown in (C) in the figure).
[0037]
[1-6. Specific example of stationary finite state machine]
The finite state machine newM shown in FIG. 9 is a stationary finite state machine corresponding to the finite state machine M of FIG. 8 and satisfies all the above properties. For example, the steady state set {D, H} for the input 0 of the finite state machine M is a steady state set for the input 0 even in newM. Further, the state D included in the steady state set {D, H} transitions to the state H in both the finite state machine M and newM when the input 0 is given, and the state H is given by the input 0. When it is, the state transitions to the state D in both the finite state machine M and the newM. Also. The transient state A for the input 0 of the finite state machine M is changed to the state G included in the steady state set {B, C, G} via the transient states E and F when the input 0 continues to be given. Is reached and then continues to cyclically transition in {B, C, G}, whereas in newM, the transient state A for input 0 changes the transient state once input 0 is given. Immediately without going through, when the state B included in the steady state set {B, C, G} is reached, and the input 0 continues to be given thereafter, cyclically in {B, C, G} Continue to transition. Further, the stable state B for the input 1 of the finite state machine M is a stable state for the input 1 even in newM, and as long as the input 1 continues to be given in this state B. Both the finite state machine M and newM continue to output stable output values. The transitional states A and E that transition to B at the input 1 both output a stable output value 0 along with this transition.
[0038]
[2. Logic Circuit Form Verification Device of Present Embodiment]
[2-1. Overall configuration]
An outline of an embodiment of a logic circuit type verification apparatus according to the present invention will be described with reference to FIG. The finite state machine conversion device described in FIG. 1 is implemented on a computer. The computer includes a central processing unit (CPU) 1, an input device 2 such as a keyboard and a mouse, an output device 3 such as a CRT display and a printer, and a storage device 4 such as a memory and a hard disk. These devices are connected by a bus 5 and exchange information with each other.
[0039]
The conversion device according to the present embodiment is configured as a program having the following parts executed on such a computer.
[0040]
(1) An input unit 10 for a circuit description to be verified.
[0041]
(2) Auxiliary signal input unit 11 that receives a description indicating which signal is a clock signal among input signals in the circuit.
[0042]
(3) The steady finite state machine generation unit 12 that generates the steady finite state machine newM without transition to the transient state based on the circuit description and the auxiliary information.
[0043]
(4) A preliminary finite state machine M provided in the stationary finite state machine generator 12 and including an arbitrary interpretation according to the timing of the change of the clock signal.0The generation unit 13 of the first finite state machine that generates
[0044]
(5) The preliminary finite state machine M provided in the steady finite state machine generator 120And a second finite state machine generation unit 14 that generates a finite state machine M in which a clock signal is specified based on the auxiliary information and an arbitrary interpretation according to the timing of the change is eliminated.
[0045]
(6) The finite state machine M provided in the steady state finite state machine generation unit 12 and generated by the finite state machine generation unit 14 is converted into a steady state finite state machine newM from which the transition to the transient state is removed. The conversion part 15 for doing.
[0046]
(7) An equivalence verification unit 16 that compares a plurality of the steady finite state machines newM obtained by the conversion unit 15 and verifies their equivalence.
[0047]
(8) A result output unit 17 that outputs the verification result obtained by the equivalence verification unit 16 and the instability of the circuit obtained by the stationary finite state machine generation unit 12.
[0048]
[2-2. Overall action]
FIG. 2 is a diagram for explaining the operation when verifying the equivalence of two circuits in the verification device of FIG. FIG. 3 is a flowchart showing an operation sequence of the verification apparatus according to the present embodiment. In FIG. 2, a circuit description 100A and a circuit description 100B are descriptions of two logic circuits for verifying equivalence, and auxiliary information 200 is an input signal in the circuit described in the circuit description A and the circuit description B. This is a description indicating which signal is a clock signal. That is, these descriptions are input to the apparatus from the circuit description input unit 10 and the auxiliary information input unit 11, and for example, a circuit operation description in a hardware description language such as the VHDL language or a network between logic elements. For example, a circuit description by a list and a circuit description by a transistor net list.
[0049]
In this embodiment, first, the circuit description 100A and the circuit description 100B are individually passed as inputs to the stationary finite state machine generation unit 12 from the circuit description input unit 10 (step 301). In the first finite state machine generation unit 13 of the steady state finite state machine generation unit 12, a preliminary finite state machine M corresponding to these circuit descriptions based on the circuit description 100A and the circuit description 100B.0A and M0B is generated (step 302). The auxiliary information input unit 11 passes the auxiliary information 200 paired with the circuit descriptions 100A and 100B to the stationary finite state machine generating unit 12 (step 303). The second generation unit 14 of the steady state finite state machine generation unit 12 specifies the clock signal based on the auxiliary information 200, and specifies the transition destination in consideration of the timing of the change. Finite state machine M0To generate finite state machines MA and MB from which the arbitrary interpretation is removed (step 304).
[0050]
The conversion unit 15 for the steady finite state machine converts the finite state machines MA and MB obtained as described above into the steady finite state machines newMA and newMB in which the transition to the transient state is eliminated ( 305). The steady finite state machines newMA and newMB obtained by the conversion unit 15 have the same stable state as the finite state machines MA and MB before the conversion, and output the same as the finite state machines MA and MB in the stable state. On the other hand, unlike the finite state machines MA and MB, the transition from an arbitrary transient state has the property of immediately transitioning to a stable state. This eliminates the instantaneous and non-essential behavior of the finite state machines MA, MB.
[0051]
Then, the equivalence checking unit 16 formally verifies equivalence between the steady finite state machines newMA and newMB (step 306), and outputs the result in the output unit 17 (step 307). The output unit 17 outputs information such as the instability of each circuit found in the steady finite state machine generation unit 12.
[0052]
[2-3. Preliminary finite state machine generator 13]
Next, the operation of the preliminary finite state machine generation unit 13 provided in the steady state finite state machine generation unit 12 will be described using an example. For example, when the finite state machine M is made from the circuit that realizes the master-slave type JK-flip-flop shown in FIG. 10A, the preliminary finite state is first obtained using only the information of the circuit description 100 by the following procedure. Machine M0Followed by a preliminary finite state machine M using auxiliary information 2000A finite state machine M obtained from
[0053]
Preliminary finite state machine M0For example, when the circuit description 100 is a netlist description between logic elements as shown in FIG. 10, first, a feedback loop is found from the signal flow of the circuit description 100, and then a status bit is found. However, at this time, the clock signal is treated as one input signal like the other input signals, and is not treated specially. Each state bit found in the overall circuit description can have a value of 0 or 1, and any combination of these values can be represented by a finite state machine M0Constitutes one state that is an element of the state set. From the relationship between the input signal and the value of the state bit and the output signal and the value of the state bit, the finite state machine M0Determine the output function and transition function of. Thus, from the circuit of FIG. 10A, for example, the finite state machine M shown in FIG.0Is made. In the finite state machine of this figure, the initial state is not specified. In FIG. 12, the state name and the output value are circled as A / 0, and the input alphabet [clk, j, i] is represented with an arrow indicating the transition destination as 0−.
[0054]
Further, when a circuit described in the transistor netlist is given to the circuit description 100, for example, using the methods described in (1) to (3) below, a finite number corresponding to this circuit is used. State machine M0Configure.
[0055]
(1) T.Kam and P.A.Subrahmanyam, “State Machine Abstraction from Circuit Layouts using BDD ′s: Applications in Verification and Synthesis”, in Proc. European Design Automation Conf., 1992, pp. 92-97
(2) J.A. Moonondas, J.M. A. Wehben, J.M. A. Abraham and D.A. G. Saab, “VERTEX: VERification of Transistor-level circuits based on model EXtracation”, in Proc. The European Conf. On Design Automation with the European Event in ASIC Design, 1993, pp. 111-115
(3) M.M. Pandey, A.M. Jain, R.A. E. Bryant, et al. , “Extraction of Finite State Machines from Transistor Netlists by Symbolic Simulation”, in Proc. Of International Conference on Computer Design′95, pp.596-601
[2-4. Finite state machine generator 14 that does not include arbitrary interpretation]
[2-4-1. Problems of synchronous machine created from preliminary finite state machine M0]
After generating the preliminary finite state machine M0 as described above, a known machine such as (d) is followed by creating a synchronous machine.
[0056]
(4) J. Bormann, J. Lohse, M. Payer and G. Venzl, “Model Checking in Industrial Hardware Design”, in 32th ACM / IEEE Design Automation Conference, 1995, pp.298-303
For example, in the technique (4), the finite state machine M created here0From the user, information such as “when does the change in the input / output signal value occur?” Is obtained from the user, and a finite state machine (synchronous machine) M that does not explicitly include the clock signal.1Is generated. The information obtained from this user is, for example, that the value of the other input signal changes only while the value of the clock signal is 0, and the value of the other input signal does not change while the value of the clock signal is 1. The output signal value changes at the moment when the value of the clock signal changes from 1 to 0 (at the falling edge of the clock signal).
[0057]
FIG. 13 shows a synchronous machine generated from FIG. 12 using the information that the values of the input signals j and k change only when the value of the clock signal is 0 and a state transition occurs when the clock signal falls. It is an example. However, this method has a problem that it cannot be detected correctly when the designed circuit includes a situation in which the input signal changes at an unintended timing of the designer due to an error. is there. In fact, when this method is used, both of the synchronous machines shown in FIG. 13 are produced from FIGS. 10A and 10B, and the non-equivalence between the two circuits cannot be detected.
[0058]
[2-4-2. Finite state machine M0Arbitraryness of interpretation in]
Therefore, in the present invention, in order to maintain the relationship between the change timing of the output signal value and the change timing of any input signal value including the clock signal, the finite state machine M0Therefore, a finite state machine that explicitly includes a clock signal as an input signal without forming a synchronous machine is used as a target for formal verification.
[0059]
However, the finite state machine M configured only from the circuit description 100 by the method described above.0Is arbitrary depending on whether the change is interpreted as occurring immediately before or immediately after the change of the clock signal when other input signals change at the same time as the clock signal. Due to this arbitrary nature, the two circuit descriptions for which equivalence is verified in the present invention are actually equivalent circuit descriptions, but the finite state machine constructed from them is logically non-equivalent. It can happen.
[0060]
For example, the two finite state machines shown in FIGS. 14A and 14B both have an input alphabet composed of two input signals of the clock signal clk and the other signal a, and an output alphabet composed of a 1-bit output signal. And state A and state D are in the initial state, respectively. These initial states are stable states that continue to output 0 when clk = 1 and a = 0. In these finite state machines, if the value of the input signal a changes from 0 to 1 immediately before the value of clk becomes 0, both finite state machines output as shown in FIGS. 15 (a) and 15 (b). The value of the signal changes from 0 to 1 simultaneously with the fall of clk. When the change in the value of the input signal a is immediately after the value of clk becomes 0, as shown in FIGS. 16A and 16B, the value of the output signal of either finite state machine Also stays at 0. Therefore, if only these situations are considered, the two finite states behave equivalently. However, when the value of a changes from 0 to 1 at the same time that the value of clk changes from 1 to 0, as shown in FIGS. The value changes from 0 to 1, and the latter keeps the value of the output signal at 0.
[0061]
Accordingly, the finite state machine of FIGS. 14 (a) and 14 (b) is arbitrary in interpretation when the values of the clock signal and the other input signal a change at the same time, that is, the former finite state machine When the values of the other input signals a change at the same time, the clock signal is interpreted as changing for a moment, while the latter finite state machine is interpreted as changing the clock signal for a moment earlier. Cause the two to become unequal. However, in an actual circuit, such a situation is not possible, and it is not desirable that there is an arbitrary interpretation.
[0062]
[2-4-3. Generation of finite state machine M that does not include arbitrary interpretation]
In the present invention, the preliminary finite state machine M as described above.0To solve the problem caused by the arbitraryness of interpretation. For this purpose, in the second finite state machine generator 14, a preliminary finite state machine M0A new finite state machine M that does not include any interpretation is constructed as follows. Next, the finite state machine M that does not include the arbitrary nature of the interpretation is further converted into a stationary finite state machine newM that does not include a transient transition, and the equivalence is verified.
[0063]
In the second finite state machine generator 14, the finite state machine M0The finite state machine M is constructed as follows. For example, when the operation of the circuit description 100 is controlled by one clock signal, first, the clock signal clk is specified by the auxiliary information 200 obtained via the auxiliary information input unit 11 and the value immediately before the clock signal is held. State bit c to be introduced. Then, as shown in FIG. 18, depending on whether the value of c is 0 or 1, the finite state machine M0Each state s included in the two states s0, S1These are divided into the states of the finite state machine M. Now, finite state machine M0, The transition destination of state s when clk = 0 or other input value is i is s ′ (i, 0), and the transition destination of state s when clk = 1 or other input value is i is s ′ (i , 1).
[0064]
At this time, as shown in FIG.0S ′ when clk = 0 and other input values are i0(I, 0), clk = 1, when other input value is i, s'1(I, 0) and s1S ′ when clk = 0 and other input values are i0(I, 1), clk = 1 When other input value is i, s ′1It is determined to be (i, 1).
[0065]
In this way, the transition function δ of the finite state machine M is
[Expression 1]
s'c= Δ (sc, I, clk) = (δ0(S, i, c))clk
Determined by. Where c is a state bit holding the previous value of the clock signal, i is an input signal other than the clock, and s is a preliminary finite state machine M0State, δ0(Sc, I, clk) is a preliminary finite state machine M0Is a transition function. Similarly, the output function ω of the finite state machine M is
[Expression 2]
o = ω (sc, I, clk) = ω0(S, i, c)
Determined by. Where ω0Is a preliminary finite state machine M0Is the output function of
[0066]
[2-4-4. Example of finite state machine M that does not include arbitrary interpretation]
An example of a finite state machine made from the finite state machine shown in FIGS. 14A and 14B by using the above method is shown in FIGS. 20A and 20B, respectively. In the example of this figure and the examples of FIGS. 14 and 21, for the sake of convenience of explanation, a finite state machine having an initial state is taken as an example. However, depending on the algorithm used in the equivalence verification unit described later, the initial state May not be necessary. In such a case, a preliminary finite state machine M0Therefore, when configuring the finite state machine M, the method for determining the initial state need not be specified. On the other hand, if the algorithm used in the equivalence verification unit requires an initial state, a preliminary finite state machine M based on the auxiliary information 200 is used.0The initial state ofinitAnd then in the finite state machine M, sinitS divided into two statesinit 0, Sinit 1It is necessary to determine which of these will be the initial state.
[0067]
In the above example, the case where the clock signal cannot be specified by itself as the circuit description given as an input to the stationary finite state machine generation unit has been described. On the other hand, when a circuit description according to the register transfer level of the VHDL language as shown in FIG. 11 is given to the stationary finite state machine generation unit, an attribute such as “'EVENT” or “' LAST_VALUE” is usually used. In many cases, a signal marked with can be interpreted as a clock signal. In such a case, the value of the immediately preceding clock signal can be naturally determined as the status bit. However, the circuit description including a gated clock may not have the above attribute attached to the clock signal. For this reason, in general, in a circuit description for a circuit having one clock signal, it is more appropriate to always specify a clock signal from the outside by auxiliary information and to determine the value immediately before the specified clock signal as a status bit. Finite state machine M0Can be configured.
[0068]
[2-5. Conversion unit 15 to a stationary finite state machine]
The finite state machine M made as described above is the original finite state machine M.0Unlike a certain state, when a certain input is given, it may go through several transient states to transition to a stable state. For example, the finite state machine of FIG.0Then, since the state A remains in the state A when the input of clk = 1 and a = 1 is continuously given, it is called a stable state. At this time, the value 0 is continuously output. Subsequently, when clk = 0 is changed, the state transits to the state C, and then remains in the state C and continues to output 1. Therefore, the state C is also a stable state. In contrast, the finite state machine M0In the finite state machine M of FIG. 20 (a) constructed from the stable state A that continues to output 0 when clk = 1 and a = 1.1If clk = 0 in state, state A0Immediately after transition to state C0To the stable state C0Stay on and continue to output 1. State A seen here0Is called a transient state, and as in this example, the original finite state machine M0Even if the transition to the transient state is not included in, it may be included in the finite state machine M constructed from now on.
[0069]
In the present invention, in order to remove the transition to the transitional state included in the finite state machine M, the transition unit 15 to the steady state finite state machine is used and the transition to the transitional state is not performed on the finite state machine M. This is converted into a steady state finite state machine newM. As a technique for efficiently performing this conversion, for example, the above (1) and (3) are known. Moreover, although it is not a well-known technique, the conversion method using the iterative square method concerning development of this inventor can also be used.
[0070]
Examples of the steady finite state machine newM obtained by converting the finite state machine M shown in FIGS. 20A and 20B using the above technique in the finite state machine conversion unit 12 are shown in FIGS. 21A and 21B, respectively. Show. For example, in the finite state machine M in FIG. 20A, a stable state A that continues to output 0 with clk = 1 and a = 1.1, When clk = 0, the transient state A that outputs 00After that, stable state C that continues to output 10In the stationary finite state machine newM in FIG. 21A, the same stable state A1In the case of clk = 0, the same stable state C as the transition destination in the case of the finite state machine M without transitioning to any transitional state0Transition to. Furthermore, as shown in FIGS. 22A, 22B, 23A, 23B and 24A, 24B, the steady finite state machine newM in FIGS. The input / output relationship is equivalent even when the clock signal clk and the other input signal a change at the same time.
[0071]
In this way, the stationary finite state machine generation unit 12 of the present invention is a finite state machine that excludes a preliminary finite state machine generation unit and arbitrary interpretation from the given circuit description and auxiliary information. A stationary finite state machine newM is generated by using a generation unit and a conversion unit to a stationary finite state machine, and this stationary finite state machine newM For situations that cannot be an actual circuit in which the value of the input signal changes, the change in the value of the clock signal always changes later than the change in the value of the other input signal without any arbitrary interpretation. It becomes a finite state machine that can be interpreted uniquely.
[0072]
[2-6. Equivalence verification unit 16]
Next, the operation of the equivalence checking unit 16 in this embodiment shown in FIG. 1 will be described. The equivalence verification unit 16 verifies the logical equivalence between the two steady finite state machines newMA and newMB created from the circuit descriptions 100A and 100B by using the steady finite state machine generation unit 12, and the result. Is output to the output unit 17. As described above, these two stationary finite state machines newMA and newMB indicate the state transition and output relationship with respect to the change of the clock and other input signal values, and the timing with respect to the change of the clock signal value. Therefore, the equivalence verifying unit 16 can verify equivalence without standing in detail in the circuit.
[0073]
For example, the following algorithm can be used as an algorithm for efficiently performing this.
[0074]
(5) O. Coudert, C. Berthet and J. C. Madre, “Verification of Sequential Machines Using Boolean Functional Vectors”, in Formal VLSI Correctness Verification 1989, pp.179-196; USP 5,491,639 T.Filkorn, 1996
In these algorithms, in order to verify the equivalence between the steady finite state machines newMA and newMB, it is necessary to specify respective initial states. On the other hand, if the finite state machine M is converted into the steady finite state machine newM in the stationary finite state machine generation unit 12, the possibility of resetting the finite state machine, such as a conversion method using an iterative square method, If a method in which the alignment possibility between finite state machines is preserved before and after the transformation is adopted, the verification algorithm shown in (6) can be used.
[0075]
(6) USP 5,331,568 C. Pixley, 1994
If this algorithm is used, it is not necessary to specify the initial states of the two finite state machines to be verified. That is, the initial finite state machine M0When the finite state machine M is created from the above, the initial state cannot be determined only by the information specifying the clock, and the initial state immediately after the hardware is switched on is generally indeterminate. Pixley's algorithm is suitable for verifying equivalence.
[0076]
Pixley's algorithm does not need to specify the initial state of the finite state machine to be verified. Then, the states SA and SB of the two stationary finite state machines newMA and newMB to be compared are defined as being equivalent when always giving the same output sequence to an arbitrary input sequence. At this time, the equivalence of the two stationary finite state machines newMA and newMB is that an arbitrary state {sA, sB} ∈ΣP of the finite state machine MP = newMA × newMB is a set {SA, It is determined by whether or not there is an input sequence that can be transited to SB} εΣP. By using such a technique, in the verification system of the present invention, an error of a circuit designed to change the state at the falling edge of the clock even though the specification is described to change the state at the rising edge of the clock. Can be found.
[0077]
【The invention's effect】
As described above, according to the logic circuit formal verification device of the present invention, the equivalence verification unit performs formal verification on the logical equivalence of two stationary finite state machines generated from the descriptions of two given logic circuits. By doing so, it is possible to perform the format verification of the sequential circuit in consideration of the relationship between the change timing of the input / output signal value and the change timing of the clock signal value.
[0078]
In particular, in the present invention, the clock signal is left as an input signal, as opposed to the method of removing the clock from the input signal of the conventional finite state machine, and the bits constituting the state are also given the value immediately before the clock. Thus, it is possible to detect an error such as a difference in circuit operation due to a change in the input signal other than the clock timing expected by the designer. This is extremely advantageous for verifying the equivalence of a circuit having a low level of abstraction, such as a hardware description based on a transistor netlist or a sequential circuit in which a state is formed by providing a loop to an element.
[Brief description of the drawings]
FIG. 1 is a functional block diagram showing a configuration of an embodiment of a logic circuit verification apparatus according to the present invention.
FIG. 2 is a functional block diagram showing a method of converting two logical descriptions into a finite state machine and comparing them.
FIG. 3 is a flowchart showing the operation of the verification apparatus of FIG. 1;
FIG. 4 is a diagram for explaining the definition of a finite state machine.
FIG. 5 is a diagram showing a specific example of a finite state machine.
FIG. 6 is a diagram showing a relationship between each state taken by a finite state machine.
FIG. 7 compares features of a steady state finite state machine and an unsteady state finite state machine.
FIG. 8 is a diagram showing a specific example of a finite state machine including a transition to a transitional state.
FIG. 9 is a diagram showing a steady finite state machine obtained by converting the finite state machine of FIG. 6;
FIG. 10 is a diagram showing a circuit that realizes a JK-flip-flop.
FIG. 11 is a diagram showing an example of behavioral description of a JK-flip flop in VHDL language.
12 shows a finite state machine made from a circuit that implements the JK flip-flop of FIG. 10 (a). FIG.
FIG. 13 shows a synchronous machine made from the finite state machine of FIG.
FIG. 14 is a diagram comparing state transitions of two finite state machines (a) and (b) in order to explain the arbitrary interpretation of the finite state machine.
15 is a time chart for comparing the input, output, and transition of the two finite state machines (a) and (b) of FIG. 14, and the value of the input signal a is changed from 0 to 1 immediately before the value of clk becomes 0. FIG. Indicates the case of changing.
16 is a time chart for comparing the input, output, and transition of the two finite state machines (a) and (b) in FIG. 14, and the case where the change in the value of the input signal a is immediately after the value of clk becomes zero. Show.
17 is a time chart for comparing the input, output, and transition of the two finite state machines (a) and (b) of FIG. 14, and the value of a is changed from 0 to 1 simultaneously with the change of the value of clk from 1 to 0. The case of changing to is shown.
FIG. 18 illustrates a technique for introducing a bit value that retains the previous clock value into a preliminary finite state machine.
FIG. 19 is a diagram illustrating a technique for determining a transition function of a finite state machine that does not include arbitrary interpretation by the technique of FIG. 18;
FIG. 20 shows a finite state machine (a) (a) that does not include the arbitrary interpretation of the clock value immediately before the two preliminary finite state machines (a) and (b) shown in FIG. The figure which shows b).
FIG. 21 is a diagram showing two stationary finite state machines (a) and (b) converted from the finite state machine of FIG. 20;
22 is a time chart for comparing the input, output, and transition of the two finite state machines (a) and (b) of FIG. 21, and the value of the input signal a is changed from 0 to 1 immediately before the value of clk becomes 0. FIG. Indicates the case of changing.
FIG. 23 is a time chart for comparing the input, output, and transition of the two finite state machines (a) and (b) in FIG. 21, in which the change in the value of the input signal a is immediately after the value of clk becomes zero. Show.
24 is a time chart for comparing the input, output, and transition of the two finite state machines (a) and (b) in FIG. 21, and the value of a is changed from 0 to 1 simultaneously with the change of the value of clk from 1 to 0. The case of changing to is shown.
FIG. 25 is a flowchart showing the operation of a verification apparatus using a conventional synchronous machine.
[Explanation of symbols]
100: Circuit description A, B
200 ... auxiliary information
10 ... Circuit description input section
11 ... Auxiliary information input part
12 ... Stabilized finite state machine generator
13 ... Preliminary finite state machine generator
14 ... Generating part of finite state machine not including arbitraryness
15 ... Converting part to steady finite state machine newM
16. Equivalence verification unit
17 ... Output unit

Claims (6)

複数の論理回路の等価性を形式的に検証する形式検証装置において、
前記論理回路を記述する回路記述と、前記論理回路に与えられる入力信号に関する情報とから、前記論理回路に対応した定常化有限状態機械を生成する定常化有限状態機械生成部と、
前記複数の回路記述から前記定常化有限状態機械生成部によって個別に生成された複数の定常化有限状態機械の論理的等価性を検証する等価性検証部と、
前記等価性検証部の検証結果を出力する出力部とを備え、
前記定常化有限状態機械生成部は、
前記回路記述で表された回路の複数の入力信号のうち、所定の入力信号とその他の入力信号の変化のタイミングに対し、一意的に定義された状態遷移を行う有限状態機械を生成する有限状態機械生成部と、
前記有限状態機械生成部によって生成した有限状態機械を、過渡的な状態への遷移を持たない定常化有限状態機械に変換する有限状態機械への変換部と、
を備えることを特徴とする論理回路の形式検証装置。
In a formal verification device that formally verifies the equivalence of multiple logic circuits,
A stationary finite state machine generating unit that generates a stationary finite state machine corresponding to the logic circuit from a circuit description describing the logic circuit and information about an input signal given to the logic circuit;
An equivalence verification unit for verifying logical equivalence of a plurality of stationary finite state machines generated individually by the stationary finite state machine generation unit from the plurality of circuit descriptions;
An output unit that outputs a verification result of the equivalence verification unit,
The steady state finite state machine generator is
Among the plurality of input signals of the circuit represented by the circuit description, a finite state that generates a finite state machine that performs a uniquely defined state transition with respect to a change timing of a predetermined input signal and other input signals A machine generator,
A conversion unit to a finite state machine that converts the finite state machine generated by the finite state machine generation unit into a stationary finite state machine that does not have a transition to a transient state;
An apparatus for verifying a format of a logic circuit, comprising:
前記定常化有限状態機械生成部は、前記論理回路を記述する回路記述に基づいて予備的な有限状態機械を生成する予備的な有限状態機械生成部を備え、一意的に定義された状態遷移を行う有限状態機械を生成する有限状態機械生成部は、前記予備的な有限状態機械生成部によって生成された予備的な有限状態機械に基づいて、所定の入力信号とその他の入力信号の変化のタイミングに対し、一意的に定義された状態遷移を行う有限状態機械を生成するものであることを特徴とする請求項1に記載の論理回路の形式検証装置。The stationary finite state machine generation unit includes a preliminary finite state machine generation unit that generates a preliminary finite state machine based on a circuit description describing the logic circuit, and performs a uniquely defined state transition. The finite state machine generating unit for generating the finite state machine to perform is based on the preliminary finite state machine generated by the preliminary finite state machine generating unit, and the timing of the change of the predetermined input signal and other input signals The logic circuit format verification apparatus according to claim 1, wherein a finite state machine that performs a uniquely defined state transition is generated . 前記有限状態機械生成部が、クロック信号と他の信号の値が同時に変化するタイミングに対して、一義的に定義された状態遷移を行う有限状態機械を生成することを特徴とする請求項1または請求項2に記載の論理回路の形式検証装置。The finite state machine generating unit, a clock signal and the timing values of the other signals change simultaneously, according to claim 1 or, characterized in that to generate the finite state machine performs state transitions uniquely defined The format verification apparatus for a logic circuit according to claim 2. 前記出力部が、定常化有限状態機械生成部において見いだした情報をも出力するものである請求項1記載の論理回路の形式検証装置。  2. The logic circuit format verification apparatus according to claim 1, wherein the output unit also outputs information found in the stationary finite state machine generation unit. 複数の論理回路の等価性を形式的に検証する形式検証方法において、
入出力装置を備えたコンピュータとそれを制御するプログラムによって実現される定常化有限状態機械生成部、等価性検証部、前記定常化有限状態機械生成部に具備された有限状態機械生成部と定常化有限状態機械変換部を使用し、
前記入出力装置から入力された各論理回路を記述する回路記述と各前記論理回路に与えられる入力信号に関する情報に基づいて、
前記有限状態機械生成部により、各論理回路について、前記回路記述で表された回路の複数の入力信号のうち、所定の入力信号とその他の入力信号の変化のタイミングに対し、一意的に定義された状態遷移を行う有限状態機械をそれぞれ生成する有限状態機械生成処理と、
前記定常化有限状態機械変換部により、前記有限状態機械生成処理によって生成した各論理回路に対応する有限状態機械を、各論理回路に対応する過渡的な状態への遷移を持たない定常化有限状態機械に変換する有限状態機械への変換処理と、
前記等価性検証部により、複数の回路記述から前記定常化有限状態機械生成部によって個別に生成された複数の定常化有限状態機械の論理的等価性を検証する等価性検証処理とを備えていることを特徴とする論理回路の検証方法。
In a formal verification method for formal verification of equivalence of multiple logic circuits,
Steady state finite state machine generation unit, equivalence verification unit, finite state machine generation unit and steady state provided in the steady state finite state machine generation unit realized by a computer including an input / output device and a program for controlling the computer Use a finite state machine converter,
Based on a circuit description describing each logic circuit inputted from the input / output device and information on an input signal given to each logic circuit,
The finite state machine generation unit uniquely defines each logic circuit with respect to a change timing of a predetermined input signal and other input signals among a plurality of input signals of the circuit represented by the circuit description. A finite state machine generation process for generating finite state machines that perform state transitions,
The finite state machine corresponding to each logic circuit generated by the finite state machine generation process by the steady finite state machine conversion unit, the steady finite state having no transition to the transient state corresponding to each logic circuit Conversion to a finite state machine that converts to a machine,
Equivalence verification processing for verifying the logical equivalence of a plurality of stationary finite state machines individually generated by the stationary finite state machine generation unit from a plurality of circuit descriptions by the equivalence verification unit. A logic circuit verification method characterized by the above.
前記定常化有限状態機械生成部が予備的な有限状態機械生成部を備え、
この予備的な有限状態機械生成部により、前記論理回路を記述する回路記述に基づいて予備的な有限状態機械を生成する予備的な有限状態機械生成処理と、
前記有限状態機械生成部により、前記予備的な有限状態機械生成部によって生成された予備的な有限状態機械に基づいて、所定の入力信号とその他の入力信号の変化のタイミングに対し、一意的に定義された状態遷移を行う有限状態機械を生成するしょりを備えていることを特徴とする請求項5に記載の論理回路の形式検証方法。
The steady state finite state machine generator comprises a preliminary finite state machine generator;
By this preliminary finite state machine generation unit, preliminary finite state machine generation processing for generating a preliminary finite state machine based on the circuit description describing the logic circuit;
Based on the preliminary finite state machine generated by the preliminary finite state machine generation unit, the finite state machine generation unit uniquely determines a change timing of a predetermined input signal and other input signals. 6. The format verification method for a logic circuit according to claim 5, further comprising a step of generating a finite state machine that performs the defined state transition .
JP06881997A 1997-03-21 1997-03-21 Logic circuit type verification apparatus and verification method Expired - Fee Related JP3660097B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP06881997A JP3660097B2 (en) 1997-03-21 1997-03-21 Logic circuit type verification apparatus and verification method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP06881997A JP3660097B2 (en) 1997-03-21 1997-03-21 Logic circuit type verification apparatus and verification method

Publications (2)

Publication Number Publication Date
JPH10269256A JPH10269256A (en) 1998-10-09
JP3660097B2 true JP3660097B2 (en) 2005-06-15

Family

ID=13384716

Family Applications (1)

Application Number Title Priority Date Filing Date
JP06881997A Expired - Fee Related JP3660097B2 (en) 1997-03-21 1997-03-21 Logic circuit type verification apparatus and verification method

Country Status (1)

Country Link
JP (1) JP3660097B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001195441A (en) 2000-01-13 2001-07-19 Nec Ic Microcomput Syst Ltd Method for designating 'don't care' output, processor using the same, and recording medium with processing method and processing program recorded thereon
JP2002259477A (en) 2001-03-06 2002-09-13 Mitsubishi Electric Corp Method for design change of semiconductor circuit

Also Published As

Publication number Publication date
JPH10269256A (en) 1998-10-09

Similar Documents

Publication Publication Date Title
US7162706B2 (en) Method for analyzing and validating clock integration properties in circuit systems
US7849428B2 (en) Formally deriving a minimal clock-gating scheme
US8181131B2 (en) Enhanced analysis of array-based netlists via reparameterization
US20080127002A1 (en) System and Program Product for Incremental Design Reduction via Iterative Overapproximation and Re-Encoding Strategies
TW201022978A (en) Method and apparatus for memory abstraction and verification using same
JP4393450B2 (en) Logic circuit model conversion apparatus and logic circuit model conversion program
JP2015524589A (en) Relative timing characterization
Han et al. A global-local optimization framework for simultaneous multi-mode multi-corner clock skew variation reduction
WO2021188429A1 (en) Machine learning-based prediction of metrics at early-stage circuit design
TWI768536B (en) Integrated circuit simulation and design method and system thereof
US11347917B2 (en) Determining and verifying metastability in clock domain crossings
US20210374314A1 (en) Engineering Change Order Scenario Compression by Applying Hybrid of Live and Static Timing Views
US20230297747A1 (en) Verification of hardware design for data transformation component
JP3660097B2 (en) Logic circuit type verification apparatus and verification method
US11550979B2 (en) Implementing and verifying safety measures in a system design based on safety specification generated from safety requirements
US11556676B2 (en) Scalable formal security verification of circuit designs
US10460055B1 (en) Modeling of sequential circuit devices of multi-clock domain IC design for a transient vectorless power analysis
US11062069B1 (en) Bounded deadlock check
US20220207225A1 (en) Lightweight unified power format implementation for emulation and prototyping
JP2010257003A (en) Logic equivalence verification system, logic equivalence verification method, method for manufacturing semiconductor integrated circuit, control program and readable storage medium
US10387595B1 (en) Systems and methods for modeling integrated clock gates activity for transient vectorless power analysis of an integrated circuit
JP3654941B2 (en) Logic simulation method and logic simulator
Wijayasekara Equivalence Verification for NULL Convention Logic and Latency-Insensitive Circuits
JPH11259554A (en) Timing analysis method for logic circuit, logic synthesis system using the method and record medium for programming and recording the method
CN113496106A (en) Method and system for validating a sequencer

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20041020

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041026

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041227

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050316

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

Free format text: PAYMENT UNTIL: 20080325

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20090325

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees