JP2009288922A - 論理等価検証装置、論理等価検証方法、および論理等価検証プログラム - Google Patents
論理等価検証装置、論理等価検証方法、および論理等価検証プログラム Download PDFInfo
- Publication number
- JP2009288922A JP2009288922A JP2008139178A JP2008139178A JP2009288922A JP 2009288922 A JP2009288922 A JP 2009288922A JP 2008139178 A JP2008139178 A JP 2008139178A JP 2008139178 A JP2008139178 A JP 2008139178A JP 2009288922 A JP2009288922 A JP 2009288922A
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- flip
- correction circuit
- correction
- modeled
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
【課題】非同期クロック間データ転送部分でのリタイミングを伴う回路変更前後での論理等価検証ができるようにする。
【解決手段】非同期箇所抽出部1bは、非同期箇所を抽出する。修正後回路モデリング部1cは、非同期箇所抽出部1bで抽出した非同期箇所の前後のFFの少なくとも一部を組合せ回路に置き換えてモデリング済修正後回路を生成する。マッチング部1dは、FFから置き換えられた組合せ回路を包含するロジックコーンに対応する修正前回路内の範囲をモデリング範囲とする。修正前回路モデリング部1eは、修正前回路内のモデリング範囲に含まれるFFを組合せ回路に置き換えてモデリング済修正前回路を生成する。比較検証部1fは、ロジックコーン同士の論理等価検証を行う。
【選択図】図1
【解決手段】非同期箇所抽出部1bは、非同期箇所を抽出する。修正後回路モデリング部1cは、非同期箇所抽出部1bで抽出した非同期箇所の前後のFFの少なくとも一部を組合せ回路に置き換えてモデリング済修正後回路を生成する。マッチング部1dは、FFから置き換えられた組合せ回路を包含するロジックコーンに対応する修正前回路内の範囲をモデリング範囲とする。修正前回路モデリング部1eは、修正前回路内のモデリング範囲に含まれるFFを組合せ回路に置き換えてモデリング済修正前回路を生成する。比較検証部1fは、ロジックコーン同士の論理等価検証を行う。
【選択図】図1
Description
本発明は回路の修正前後における論理等価検証を行う論理等価検証装置、論理等価検証方法、および論理等価検証プログラムに関し、特に非同期箇所が存在する回路の論理等価検証を行うための論理等価検証装置、論理等価検証方法、および論理等価検証プログラムに関する。
電子回路の設計段階において、その電子回路で実現される機能を変更せずに回路を修正した場合、修正前の回路と修正後の回路とが論理的に等価であることを検証する必要がある。このような論理等価検証は、同様の信号を入力したときに、同様の出力信号が得られるかどうかを検証する。このような検証では、入力から出力までの回路規模が大きくなる程、処理量が増加する。そのため、大規模な電子回路全体を1つの検証単位として論理等価検証を行うと、検証にかかる処理量が膨大となり、実用的な時間内での検証が困難である。そこで、電子回路を複数に分割し、分割された回路をロジックコーンとし、ロジックコーンごとに検証が行われる。
ロジックコーンの始点は、回路の出力ポート、フリップフロップ(FF)の入力、またはブラックボックスの入力である。ロジックコーンの終点は、回路の入力ポート、FFの出力、またはブラックボックスの出力である。
図18は、従来の等価性検証対象を示す図である。修正前回路900では、入力ポート911,912は組合せ回路931の入力側に接続されている。組合せ回路931の出力は、FF921の入力側に接続されている。また、入力ポート913はFF922の入力に接続されている。FF921とFF922との出力は、共に組合せ回路932の入力側に接続されている。組合せ回路932の出力は、FF923の入力側に接続されている。FF923の出力は、組合せ回路933の入力側に接続されている。組合せ回路933の出力は、出力ポート941に接続されている。
このような修正前回路900では、4つのロジックコーン951〜954が生成される。ロジックコーン951は、FF921を始点とし、入力ポート911,912を終点とする。ロジックコーン952は、FF922を始点とし、入力ポート913を終点とする。ロジックコーン953は、FF923を始点とし、FF921,922を終点とする。ロジックコーン954は、出力ポート941を始点とし、FF923を終点とする。
修正後回路901は、組合せ回路931a,932a,933aの構成が修正前回路900と異なっている。他の構成は同じである。このような修正後回路901では、4つのロジックコーン961〜964が生成される。ロジックコーン961は、FF921を始点とし、入力ポート911,912を終点とする。ロジックコーン962は、FF922を始点とし、入力ポート913を終点とする。ロジックコーン963は、FF923を始点とし、FF921,922を終点とする。ロジックコーン964は、出力ポート941を始点とし、FF923を終点とする。
この場合、修正前回路900と修正後回路901とのそれぞれのロジックコーンのうち、始点と終点とが共通するロジックコーン同士を、論理等価検証を行うべきペアとする。すなわち、修正前回路900のロジックコーン951と修正後回路901のロジックコーン961とのペア、修正前回路900のロジックコーン952と修正後回路901のロジックコーン962とのペア、修正前回路900のロジックコーン953と修正後回路901のロジックコーン963とのペア、修正前回路900のロジックコーン954と修正後回路901のロジックコーン964とのペアが作成される。そして、コンピュータによって、ペアとなったロジックコーン間での論理等価検証が行われる。論理等価検証の結果、すべてのロジックコーンのペアが論理的に一致していれば、修正前回路900と修正後回路901とが論理的に等価であると判断できる。
なお、FFを組合せ回路に変更して論理検証を行うこともできる(例えば、特許文献1参照)。
特開平7−85113号公報
しかし、図18に示した論理等価検証は、リタイミングが発生しない回路修正の場合にのみ適用可能である。リタイミングとは、FFを跨いだ回路修正を行うことである。図18に示したように、従来の論理等価検証では原則としてFFを境界にしてロジックコーンを作る。これは回路修正をしたとしても、ロジックコーン内で論理的に等価な回路に変更を行うことが前提である。ところが、リタイミングを伴う回路変更(境界となるFFを跨いだ回路変更)を行うと、該当部分のロジックコーンは修正前後において論理的に等価ではない。そのため、単純にFFを境界としたロジックコーンで論理等価検証を行うことはできない。
リタイミングを伴う回路変更を行ってFFを境界としたロジックコーンで論理等価検証を行ったとしても、ロジックコーン単位での検証において論理的に不一致であると判定されてしまう。そのため、設計担当者が、論理的に不一致と判断された複数のロジックコーンを組み合わせたときの動作を確認し、全体として正しい動作かどうかを判断する必要が生じ、非常に手間がかかる。
ところで、リタイミングを伴う回路変更は、非同期クロック間データ転送を行う部分において生じやすい。すなわち、非同期クロック間データ転送を行う部分では、データや制御信号の値を転送前に確定させるために組合せ論理の箇所を変更する場合がある。これにより、非同期クロックの乗り換え箇所(非同期箇所)でリタイミングが発生する。そこで、非同期クロック間データ転送を行う部分におけるリタイミングを伴う回路修正に関して、コンピュータなどの装置による論理等価検証が可能であれば、リタイミングを伴う回路修正前後における論理等価検証の作業効率が飛躍的に向上する。
本発明はこのような点に鑑みてなされたものであり、非同期箇所でのリタイミングを伴う回路変更前後での論理等価検証が可能な論理等価検証装置、論理等価検証方法、および論理等価検証プログラムを提供することを目的とする。
上記課題を解決するために、修正前回路と修正前回路を修正して得られた修正後回路との論理等価検証処理を行う論理等価検証装置が提供される。論理等価検証装置は、非同期箇所抽出部、修正後回路モデリング部、マッチング部、修正前回路モデリング部、および比較検証部を有する。
非同期箇所抽出部は、修正後回路を記憶する修正後回路記憶部を参照し、修正後回路中で非同期のデータ転送が行われる非同期箇所を抽出する。修正後回路モデリング部は、非同期箇所抽出部で抽出した非同期箇所の前後のフリップフロップの少なくとも一部を対象フリップフロップとする。そして、修正後回路モデリング部は、フリップフロップに対応する組合せ回路を記憶するモデリングデータ記憶部を参照し、修正後回路内の対象フリップフロップを組合せ回路に置き換えてモデリング済修正後回路を生成する。マッチング部は、モデリング済修正後回路と修正前回路とのフリップフロップ同士を対応づけるマッチング処理を行う。修正前回路モデリング部は、モデリングデータ記憶部を参照し、修正前回路内のマッチング処理により対応づけられたフリップフロップを境界とするロジックコーンの範囲に含まれるフリップフロップを組合せ回路に置き換えてモデリング済修正前回路を生成する。比較検証部は、モデリング済修正前回路とモデリング済修正後回路との対応するロジックコーンを生成する。そして、比較検証部は、モデリング済修正前回路とモデリング済修正後回路とにおける始点と終点とが共通するロジックコーン同士の論理等価検証を行う。
このような論理等価検証装置によれば、修正後回路中で非同期のデータ転送が行われる非同期箇所が抽出される。次に、抽出された非同期箇所の前後のフリップフロップの少なくとも一部が対象フリップフロップとされ、修正後回路内の対象フリップフロップを組合せ回路に置き換えたモデリング済修正後回路が生成される。さらに、モデリング済修正後回路と修正前回路とのフリップフロップ同士を対応づけるマッチング処理が行われる。その後、修正前回路内のロジックコーンの範囲に含まれるフリップフロップを組合せ回路に置き換えたモデリング済修正前回路が生成される。そして、モデリング済修正前回路とモデリング済修正後回路とにおける始点と終点とが共通するロジックコーン同士の論理等価検証が行われる。
上記論理等価検証装置では、リタイミングを伴う修正が行われていても、フリップフロップを境界とするロジックコーンによる論理等価検証による修正前後での論理的な等価性を検証することができる。
以下、本発明の実施の形態を図面を参照して説明する。
図1は、実施の形態の概要を示す図である。論理等価検証装置1は、修正前回路と修正前回路を修正して得られた修正後回路との論理等価検証処理を行うため、モデリングデータ記憶部1a、非同期箇所抽出部1b、修正後回路モデリング部1c、マッチング部1d、修正前回路モデリング部1e、および比較検証部1fを有する。
図1は、実施の形態の概要を示す図である。論理等価検証装置1は、修正前回路と修正前回路を修正して得られた修正後回路との論理等価検証処理を行うため、モデリングデータ記憶部1a、非同期箇所抽出部1b、修正後回路モデリング部1c、マッチング部1d、修正前回路モデリング部1e、および比較検証部1fを有する。
モデリングデータ記憶部1aは、フリップフロップ(FF)に対応する組合せ回路を記憶する。
非同期箇所抽出部1bは、修正後回路を記憶する修正後回路記憶部3を参照し、修正後回路中で非同期のデータ転送が行われる非同期箇所を抽出する。
非同期箇所抽出部1bは、修正後回路を記憶する修正後回路記憶部3を参照し、修正後回路中で非同期のデータ転送が行われる非同期箇所を抽出する。
修正後回路モデリング部1cは、非同期箇所抽出部1bで抽出した非同期箇所の前後のFFの少なくとも一部を対象FFとする。そして、修正後回路モデリング部1cは、モデリングデータ記憶部1aを参照し、修正後回路内の対象FFを組合せ回路に置き換えてモデリング済修正後回路を生成する。
マッチング部1dは、モデリング済修正後回路と修正前回路のFF同士を対応付ける。この際に用いられる手法は、特に限定しない。
修正前回路モデリング部1eは、モデリングデータ記憶部1aを参照し、マッチング部1dにより対応付けられたFFを境界とするロジックコーンの範囲を修正前回路から抽出し、このロジックコーンの範囲に含まれるFFを組合せ回路に置き換えてモデリング済修正前回路を生成する。
修正前回路モデリング部1eは、モデリングデータ記憶部1aを参照し、マッチング部1dにより対応付けられたFFを境界とするロジックコーンの範囲を修正前回路から抽出し、このロジックコーンの範囲に含まれるFFを組合せ回路に置き換えてモデリング済修正前回路を生成する。
比較検証部1fは、モデリング済修正前回路とモデリング済修正後回路において、マッチング部1dにより対応付けられたFFを境界とするロジックコーン同士の論理等価検証を行う。
このような論理等価検証装置1によれば、非同期箇所抽出部1bにより、修正後回路中で非同期のデータ転送が行われる非同期箇所が抽出される。次に、修正後回路モデリング部1cにより、抽出された非同期箇所の前後のFFの少なくとも一部が対象FFとされ、修正後回路内の対象FFを組合せ回路に置き換えたモデリング済修正後回路が生成される。さらに、マッチング部1dにより、モデリング済修正後回路と修正前回路とのフリップフロップ同士を対応づけるマッチング処理が行われる。その後、修正前回路モデリング部1eにより、修正前回路内のロジックコーンの範囲に含まれるFFを組合せ回路に置き換えたモデリング済修正前回路が生成される。そして、比較検証部1fにより、モデリング済修正前回路とモデリング済修正後回路とにおける始点と終点とが共通するロジックコーン同士の論理等価検証が行われる。
このような論理等価検証装置1では、非同期箇所前後のFFを論理回路に置き換えた。そのため、非同期クロックの乗り換え箇所で、FFを跨いだ論理変更(リタイミング)が発生した場合でも、FFを境界としたロジックコーンによる論理等価検証手法によって等価検証が可能となっている。
以下、リタイミングが行われた場合の論理等価検証例を図2〜図5を参照して説明する。
図2は、電子回路の修正例を示す図である。図2には、大規模な電子回路の一部に対する修正例が示されている。上段に修正前回路200が示され、下段に修正後回路201が示されている。
図2は、電子回路の修正例を示す図である。図2には、大規模な電子回路の一部に対する修正例が示されている。上段に修正前回路200が示され、下段に修正後回路201が示されている。
修正前回路200は、データの入力側に4つのFF211〜214が設けられている。FF211の出力は、セレクタ231に入力される。セレクタ231の出力はFF221に入力される。FF221の出力は、セレクタ231に入力されると共に、組合せ回路241に入力される。また、FF212の出力も組合せ回路241に入力される。組合せ回路241の出力は、セレクタ232に入力される。セレクタ232の出力は、FF225に入力される。FF225の出力は、セレクタ232に入力されると共に、データ出力側のFF215に入力される。
FF213の出力は、FF222に入力される。FF222の出力は、組合せ回路242に入力される。また、FF214の出力も、組合せ回路242に入力される。組合せ回路242の出力は、セレクタ231に対してイネーブル信号として入力されると共に、FF223に入力される。FF223の出力は、FF224に入力される。FF224の出力は、セレクタ232に対してイネーブル信号として入力される。
修正前回路200は、実際にはHDL(Hardware Description Language)などで記述された回路データである。回路データにおいて、データ入力側のFF211〜214には、それぞれ「i1」、「i2」、「i3」、「i4」という識別子が設定されている。また、FF221〜225には、それぞれ「ff1」、「ff2」、「ff3」、「ff4」、「ff5」という識別子が設定されている。さらに、データ出力側のFF215には、「o1」という識別子が設定されている。
なお、FF211〜214,221,222は、第1系統のクロック信号(clk1)に同期して動作する。また、FF223〜225,215は、第2系統のクロック信号(clk2)に同期して動作する。この場合、組合せ回路241からセレクタ232へのデータ転送、および組合せ回路242からFF223へのデータ転送は、非同期クロック間のデータ転送である。ここで、非同期クロック間のデータ転送においてメタ・ステーブル問題が発生しないように、送受信タイミングを制御する信号(セレクタ232に入力されるイネーブル信号)にシンクロナイザが必要になる。シンクロナイザとは、非同期クロック間のデータ転送部分に設けられた多段のDフリップフロップである。Dフリップフロップを2つ以上つなげることで、非同期クロック間データ転送における信号の同期化を図ることができる。図2の例では、FF223,224によってシンクロナイザが構成されている。
このような修正前回路200に対して、データや制御信号の値を転送前に確定させるため、組合せ回路241,242の配置場所が変更されることがある。そのような変更を加えた回路が、修正後回路201である。
修正後回路201では、組合せ回路241の位置が、FF211とセレクタ231との間に移動している。すなわち、FF211,212の出力が組合せ回路241に入力され、組合せ回路241の出力がセレクタ231に入力されている。また、FF221の出力は、セレクタ232に直接入力されている。また、組合せ回路242の位置が、FF213とFF222との間に移動している。すなわち、FF213,214の出力が組合せ回路242に入力され、組合せ回路242の出力がFF222に入力されている。また、FF222の出力は、FF223に直接入力されている。
このような修正を施した場合、非同期箇所でリタイミングが発生する。このとき修正前回路200と修正後回路201とのそれぞれにおいてFF221〜225を境界とするロジックコーンを生成すると、FF222を始点としFF213,214を終点とするロジックコーン261,262が生成される。修正前回路200で生成されたロジックコーン261には組合せ回路242が含まれていない。一方、修正後回路201で生成されたロジックコーン262には、組合せ回路242が含まれている。従って、2つのロジックコーン261,262の論理等価検証を行うと、正しい修正が行われたとしても不一致の結果となる。
そこで、論理等価検証が可能なように一部のFFをモデリングする。モデリングとは、ここではFFを論理回路に置き換える処理である。FFのモデリングには、特開平7−85113号公報の技術を使用することができる。このとき、モデリングするFFの数が多くなる程、個々のロジックコーンの回路規模が大きくなり、論理等価検証の処理負荷が増大する。そのため、必要最小限のFFについてのみモデリングする必要がある。
本実施の形態では、非同期クロックの乗り換え箇所を抽出し、そこから前後1段ずつのFFについてモデリングを行う。FFをモデリングし組合せ回路に置き換えることで、リタイミングが発生した箇所をまとめて1つのロジックコーンとして扱うことが可能となる。
図3は、修正前回路のモデリング例を示す図である。修正前回路200のうちクロック乗り換え箇所から前後1段ずつのFF221,222,223,225が、組合せ回路271〜274に置き換えられている。この際、FFの出力がそのFFの入力側のセレクタに入力されている場合、セレクタも含めたモデリングが行われる。また、組合せ回路271〜274のうちの未使用のポートは、論理に影響を与えないよう入力信号が1にクリップ(固定)される。なお、FF221,222,223,225において、クロック信号は出力値を確定するタイミングを制御するものであり、出力の論理値には直接関与しない。そのため、置き換え後の組合せ回路271〜274では、クロック信号の入力は削除されている。
図4は、修正後回路のモデリング例を示す図である。修正後回路201のうちクロック乗り換え箇所から前後1段ずつのFF221,222,223,225が、組合せ回路275〜278に置き換えられている。この際、FFの出力がそのFFの入力側のセレクタに入力されている場合、セレクタも含めたモデリングが行われ、組合せ回路275〜278のうちの未使用のポートは入力信号が1にクリップ(固定)され、クロック信号の入力は削除されている。
このように、修正前回路200と修正後回路201とに対して、一部のFFのモデリング処理を行う。
図5は、モデリング済の修正前回路と修正後回路との比較検証状況を示す図である。モデリング済修正前回路202においてFFを境界としたロジックコーンを生成すると、FF215を始点としFF211〜214を終点とするロジックコーン281と、FF224を始点としFF213,214を終点とするロジックコーン282とが生成される。同様に、モデリング済修正後回路203においてFFを境界としたロジックコーンを生成すると、FF215を始点としFF211〜214を終点とするロジックコーン283と、FF224を始点としFF213,214を終点とするロジックコーン284とが生成される。
図5は、モデリング済の修正前回路と修正後回路との比較検証状況を示す図である。モデリング済修正前回路202においてFFを境界としたロジックコーンを生成すると、FF215を始点としFF211〜214を終点とするロジックコーン281と、FF224を始点としFF213,214を終点とするロジックコーン282とが生成される。同様に、モデリング済修正後回路203においてFFを境界としたロジックコーンを生成すると、FF215を始点としFF211〜214を終点とするロジックコーン283と、FF224を始点としFF213,214を終点とするロジックコーン284とが生成される。
ここで、モデリング済修正前回路202のロジックコーン281とモデリング済修正後回路203のロジックコーン283とが比較検証され、モデリング済修正前回路202のロジックコーン282とモデリング済修正後回路203のロジックコーン284とが比較検証される。これらの比較対象のロジックコーンは、データや制御信号の値の確定タイミングが異なるだけであり、動作内容に変更はない。従って、回路の修正が正しく行われていれば論理等価検証で等価であると判定され、誤りがあれば不一致であると判定される。
以上のようにして、回路修正でリタイミングが発生しても、FFを境界として生成したロジックコーンに基づいて論理等価検証装置1による演算処理で論理等価検証を行うことができる。その結果、リタイミング部分の論理的な等価性を、人手により確認する必要がなくなる。
しかも、非同期箇所前後のFFのみをモデリングしているため、比較検証を行う個々のロジックコーンの規模の大規模化は、最小限に抑えられている。従って、比較検証にかかる処理量の増加も最小限に抑えられる。
なお、図1に示した論理等価検証装置1の機能は、コンピュータによって実現可能である。そこで、以下に、論理等価検証をコンピュータで行う場合の実施の形態を詳細に説明する。
図6は、本実施の形態に用いるコンピュータのハードウェア構成例を示す図である。コンピュータ100は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス107を介してRAM(Random Access Memory)102、ハードディスクドライブ(HDD:Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、および通信インタフェース106が接続されている。
RAM102は、コンピュータ100の主記憶装置として使用される。RAM102には、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。HDD103は、コンピュータ100の二次記憶装置として使用される。HDD103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
グラフィック処理装置104には、モニタ11が接続されている。グラフィック処理装置104は、CPU101からの命令に従って、画像をモニタ11の画面に表示させる。モニタ11としては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置がある。
入力インタフェース105には、キーボード12とマウス13とが接続されている。入力インタフェース105は、キーボード12やマウス13から送られてくる信号を、バス107を介してCPU101に送信する。なお、マウス13は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
通信インタフェース106は、ネットワーク10に接続されている。通信インタフェース106は、ネットワーク10を介して、他のコンピュータとの間でデータの送受信を行う。
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。
図7は、論理等価検証機能を示すブロック図である。コンピュータ100は、修正前回路記憶部110、修正後回路記憶部120、および論理等価検証部130を有している。
図7は、論理等価検証機能を示すブロック図である。コンピュータ100は、修正前回路記憶部110、修正後回路記憶部120、および論理等価検証部130を有している。
修正前回路記憶部110は、修正前の電子回路を示す回路データを記憶する。例えば、HDD103の記憶領域の一部が、修正前回路記憶部110として使用される。修正前回路記憶部110には、例えば、HDLで記述された回路データが記憶される。この例では、図2に示した修正前回路200を包含する回路データが、修正前回路記憶部110に記憶されているものとする。
修正後回路記憶部120は、修正後の電子回路を示す回路データを記憶する。例えば、HDD103の記憶領域の一部が、修正後回路記憶部120として使用される。修正後回路記憶部120には、例えば、HDLで記述された回路データが記憶される。この例では、図2に示した修正後回路201を包含する回路データが、修正後回路記憶部120に記憶されているものとする。
論理等価検証部130は、修正前回路200と修正後回路201とが論理的に等価であることを比較検証する。そのために、論理等価検証部130は、モデリングデータ記憶部131、デザイン読み込み部132、非同期箇所抽出部133、修正後回路モデリング部134、マッチング部135、マッチングデータ記憶部135a、修正前回路モデリング部136、比較検証部137、およびレポート出力部138を有している。
モデリングデータ記憶部131は、FFのモデリングをするときの組合せ回路を記憶している。例えば、HDD103の記憶領域の一部が、モデリングデータ記憶部131として使用される。
デザイン読み込み部132は、ユーザからの論理等価検証を指示する操作入力に応答して、修正前後の回路データを読み込む。具体的には、デザイン読み込み部132は、修正前の回路データを修正前回路記憶部110から読み込み、修正後の回路データを修正後回路記憶部120から読み込む。読み込んだ回路データは、論理等価検証部130が管理するRAM102内の記憶領域に格納される。
非同期箇所抽出部133は、修正後回路201に基づいて非同期箇所を抽出する。具体的には、非同期箇所抽出部133は、修正後回路201に含まれるFFに入力されるクロック信号の系統を判別する。修正後回路201の回路データには、各FFのクロック信号の識別子が設定されており、非同期箇所抽出部133は、その識別子によってクロック信号の系統を識別できる。そして、非同期箇所抽出部133は、修正後回路201で示されるFF間の接続関係に基づいて、異なる系統に属するFFが隣接している部分を検出する。そして、非同期箇所抽出部133は、検出した部分のFFの識別情報を、非同期箇所として抽出する。
修正後回路モデリング部134は、修正後回路201に含まれるFFのうち、非同期箇所の前後のFFについてモデリングする。具体的には、修正後回路モデリング部134は、モデリングデータ記憶部131からFFの組合せ回路を取得する。次に、修正後回路モデリング部134は、修正後回路201内の非同期箇所として抽出されたFFを組合せ回路に置き換え、モデリング済修正後回路203とする。
マッチング部135は、修正前回路200とモデリング済修正後回路203とのマッチングを行う。これにより、モデリング済修正後回路203のモデリング範囲(モデリングされた組合せ回路を包含するロジックコーン)に対応する修正前回路200のモデリング範囲が決定できる。具体的には、マッチング部135は、修正前回路200とモデリング済修正後回路203のロジックコーンの始点となるFF同士の対応付けを行う。そして、マッチング部135は、その対応情報をマッチングデータ記憶部135aに保存する。
マッチングデータ記憶部135aは、修正前回路200とモデリング済修正後回路203とのロジックコーンの始点となるFF同士の対応情報を記憶する。例えば、RAM102の記憶領域の一部がマッチングデータ記憶部135aとして使用される。
修正前回路モデリング部136は、マッチングデータ記憶部135aを参照し、修正後回路201でモデリングされた範囲の始点と終点となるFFと対応付けられたFFを起点とし、修正前回路200の出力側からバックトレース、入力側からフォワードトレースを行う。これにより、修正前回路モデリング部136は、修正後回路201のモデリング範囲を決定する。ここで、バックトレースとは、信号の入力方向へと信号線を辿ることである。また、フォワードトレースとは、信号の出力方向へと信号線を辿ることである。そして、修正前回路モデリング部136は、修正前回路200のモデリング範囲に含まれるFFをモデリングする。具体的には、修正前回路モデリング部136は、モデリングデータ記憶部131からFFの組合せ回路を取得する。次に、修正前回路モデリング部136は、マッチングデータ記憶部135aより修正前回路200内のモデリング範囲の始点と終点となるFFを取得し、その範囲に含まれるFFを組合せ回路に置き換え、モデリング済修正前回路202とする。
比較検証部137は、モデリング済修正前回路202と、モデリング済修正後回路203との比較検証を行う。具体的には、比較検証部137は、マッチングデータ記憶部135aに保存されているペアとなった2つのロジックコーンを比較し、論理的に等価か否かを検証する。
レポート出力部138は、ロジックコーンのペアに対する比較検証結果を、レポート20として出力する。
次に、モデリングデータ記憶部131に格納されているFFに対応する組合せ回路について説明する。
次に、モデリングデータ記憶部131に格納されているFFに対応する組合せ回路について説明する。
図8は、モデリングデータ記憶部に格納された組合せ回路を示す図である。モデリング対象回路131aは、入力側にセレクタ31が接続されたFF32である。セレクタ31には、データ(DATA)と、FF32の出力信号(Q)とが入力されている。また、セレクタ31には、データの出力タイミングを制御するイネーブル信号(EN)が入力されている。すなわち、セレクタ31は、イネーブル信号(EN)が入力されたタイミングで、データ(DATA)を出力する。FF32には、セット信号(SET)とリセット信号(RESET)とが入力されている。
このようなモデリング対象回路131aをモデリングしたときのモデリングデータ131bでは、イネーブル信号(EN)とデータ(DATA)とがAND回路(論理積回路)41に入力される。AND回路41の出力と、反転したセット信号(SET)とがOR回路(論理和回路)42に入力される。OR回路42の出力とリセット信号(RESET)とがAND回路43に入力される。そして、AND回路43の出力が、モデリングデータ131bに示される組合せ回路の出力信号(Q)となる。
このようなモデリングデータ131bによって、修正前回路200および修正後回路201内の非同期クロック間データ転送部分のFFを組合せ回路に置き換えることができる。なお、このようなFFから組合せ回路への置き換えについては、特開平7−85113号公報の技術を使用できる。
以上のような機能を有するコンピュータ100によって、ユーザからの操作入力に応答して、論理等価検証が行われる。以下、論理等価検証処理を手順に沿って詳細に説明する。
まず、論理等価検証を指示する操作入力が行われると、デザイン読み込み部132によって、修正前回路記憶部110から修正前回路200が読み込まれ、修正後回路記憶部120から修正後回路201が読み込まれる。次に、非同期箇所抽出部133によって、修正後回路201に基づいて非同期箇所(クロック乗り換え箇所)が検出される。
図9は、非同期箇所検出例を示す図である。図9には、非同期箇所を含む修正後回路201が示されている。非同期箇所検出処理では、非同期箇所抽出部133が、全てのFFについてクロックの系統を判断する。そして、隣接するFFのクロック系統が同一か否かを判断する。以下の条件のいずれかを満たせば、クロック系統が同一と判断できる。
(1)回路データで予め設定されているクロック名が同じである。
(2)回路データで予め設定されているクロックドメイングループが同じである。
(3)クロック信号のバックトレースにより、同一クロック信号の入力が確認できる。
(2)回路データで予め設定されているクロックドメイングループが同じである。
(3)クロック信号のバックトレースにより、同一クロック信号の入力が確認できる。
図9の例では、FF211〜214,221,222は、第1系統のクロック信号(clk1)に同期している。また、FF223〜225,215は、第2系統のクロック信号(clk2)に同期している。そこで、非同期箇所抽出部133は、FF間の接続関係のみに着目し(間に挟まるFF以外の組合せ回路は考慮せずに)、隣接するFFのクロックの系統が同一か否かを判断する。そして、異なるクロック系統のFFが隣接していた場合には、隣接するFFの間がクロック乗り換え箇所51,52と判断される。
図9の例では、FF221とFF225との間がクロック乗り換え箇所51である。同様に、FF222とFF223とを接続する信号線がクロック乗り換え箇所52となる。
クロック乗り換え箇所が検出されると、修正後回路モデリング部134によって、修正後回路201内のFFがモデリングされる。なお、修正後回路201に対するFFのモデリング条件は、以下の通りである。
クロック乗り換え箇所が検出されると、修正後回路モデリング部134によって、修正後回路201内のFFがモデリングされる。なお、修正後回路201に対するFFのモデリング条件は、以下の通りである。
(1)非同期箇所から、前後1段のFFを対象とする。ただし、2段目にFFがある場合は、1段目と2段目とが同一系統かつ同一エッジ(互いのクロック信号が反転していない)であること。
(2)FFの出力がフィードバックするイネーブル信号として扱われるセレクタが、FFのデータ入力端子の直前に存在する場合、そのセレクタも含めてモデリングする。
このモデリング条件を図9の修正後回路201に当てはめると、まず、クロック乗り換え箇所51,52の前後1段のFF221,222,223,225がモデリング候補となる。FF221の2段目のFF211,212は、同一系統かつ同一エッジである。また、FF221には、FF221の出力がフィードバックするイネーブル信号として扱われるセレクタ231が、データ入力端子の直前に存在する。従って、FF221とセレクタ231とがモデリング対象となる。同様に、FF225に関しても、セレクタ232とFF225とがモデリング対象となる。
このモデリング条件を図9の修正後回路201に当てはめると、まず、クロック乗り換え箇所51,52の前後1段のFF221,222,223,225がモデリング候補となる。FF221の2段目のFF211,212は、同一系統かつ同一エッジである。また、FF221には、FF221の出力がフィードバックするイネーブル信号として扱われるセレクタ231が、データ入力端子の直前に存在する。従って、FF221とセレクタ231とがモデリング対象となる。同様に、FF225に関しても、セレクタ232とFF225とがモデリング対象となる。
FF222の2段目のFF213,214は、同一系統かつ同一エッジである。また、FF222の直前にはセレクタは存在しない。従って、FF222単体でモデリングの対象となる。同様にFF223も、FF223単体でモデリングの対象となる。
修正後回路モデリング部134は、モデリング対象であるFFを、モデリングデータ記憶部131に示される組合せ回路に置き換える。このとき、組合せ回路のうち、使用されないポートがある場合、そのポートの信号を1にクリップする。
図10は、FFのモデリング例を示す図である。図10には、セレクタ231とFF221とのセットおよびFF222を、それぞれ組合せ回路275,276に置き換えた例である。
組合せ回路275は、図8に示したモデリングデータ131bと同じように接続されたAND回路275a、OR回路275b、およびAND回路275cで構成されている。このとき、モデリング前のセレクタ231に入力されていたデータ(DATA)とイネーブル信号(EN)とは、AND回路275aの入力となる。なお、モデリング前の回路において、組合せ回路275のOR回路275bに入力されるセット信号(SET)と、AND回路275cに入力されるリセット信号(RESET)とに対応する信号がない。そこで、これらの入力ポートの値は1にクリップされる。
組合せ回路276は、図8に示したモデリングデータ131bと同じように接続されたAND回路276a、OR回路276b、およびAND回路276cで構成されている。このとき、モデリング前のFF222に入力されていたデータ(DATA)は、AND回路276aの入力となる。なお、モデリング前の回路において、組合せ回路275のAND回路276aに入力されるイネーブル信号(EN)、OR回路276bに入力されるセット信号(SET)、およびAND回路276cに入力されるリセット信号(RESET)に対応する信号がない。そこで、これらの入力ポートの値は1にクリップされる。
マッチング部135は、モデリングが終了すると、モデリング済修正後回路203においてFFを境界とするロジックコーンにおける始点と終点とを判断する。
図11は、モデリング済修正後回路のロジックコーンにおける始点と終点とを示す図である。図9に示されるFF221,222,223,225が組合せ回路275,276,277,278に置き換えられたことにより、FF215を始点とするロジックコーンの終点はFF211〜214となる(図11中、始点と終点とを破線で示す)。また、FF224を始点とするロジックコーンの終点はFF213,214となる(図11中、始点と終点とを一点鎖線で示す)。
図11は、モデリング済修正後回路のロジックコーンにおける始点と終点とを示す図である。図9に示されるFF221,222,223,225が組合せ回路275,276,277,278に置き換えられたことにより、FF215を始点とするロジックコーンの終点はFF211〜214となる(図11中、始点と終点とを破線で示す)。また、FF224を始点とするロジックコーンの終点はFF213,214となる(図11中、始点と終点とを一点鎖線で示す)。
そして、マッチング部135は、モデリング済修正後回路203から得られたロジックコーンの始点、および終点となるFFの名前をRAM102に保存する。次に、修正前回路200のモデリングが行われる。修正前回路200のモデリング条件は以下の通りである。
(1)修正後回路201でFFをモデリング後に生成されるロジックコーンと同じ範囲(o1→i1,i2,i3,i4)を修正前回路200のFFのモデリング範囲とする。
(2)修正前回路200で、モデリング済修正後回路203のロジックコーンの始点に対応する位置からバックトレース、終点に対応する位置からフォワードトレースを行い、始点または終点と同一系統・同一エッジの1段目のFFをモデリング対象とする。
(2)修正前回路200で、モデリング済修正後回路203のロジックコーンの始点に対応する位置からバックトレース、終点に対応する位置からフォワードトレースを行い、始点または終点と同一系統・同一エッジの1段目のFFをモデリング対象とする。
(3)バックトレース中に別のロジックコーンの始点・終点に到達した場合、トレースは終了とする。
修正前回路200のモデリングをする場合、まず、マッチング部135が、モデリング済修正後回路203のFFと修正前回路200のFFとの対応付けを行う。そして、修正前回路モデリング部136は、モデリング済修正後回路203から得られたロジックコーンの始点、および終点となるFFに対応する修正前回路200内のFFを、新しくロジックコーンの始点、および終点とする。
修正前回路200のモデリングをする場合、まず、マッチング部135が、モデリング済修正後回路203のFFと修正前回路200のFFとの対応付けを行う。そして、修正前回路モデリング部136は、モデリング済修正後回路203から得られたロジックコーンの始点、および終点となるFFに対応する修正前回路200内のFFを、新しくロジックコーンの始点、および終点とする。
図12は、修正前回路のロジックコーンの始点と終点とを示す図である。モデリング済修正後回路203のロジックコーンの始点と終点とに対応する修正前回路200内のFFが、修正前回路200の新たなロジックコーンの始点と終点となる。
修正前回路200のロジックコーンの始点と終点が定まると、修正前回路モデリング部136が、新たなロジックコーン内をモデリング範囲とする。具体的には、修正前回路モデリング部136は、修正前回路200で、ロジックコーンの始点からバックトレースを行うと共に、終点からフォワードトレースを行う。そして、修正前回路モデリング部136は、バックトレース、フォワードトレースにおける1段目の同一系統・同一エッジのFFをモデリング対象として決定する。図12の例では、FF215からバックトレースした1段目のFF225がモデリング対象となる。
修正前回路モデリング部136は、モデリング対象として決定したFFを、モデリングデータ記憶部131内のモデリングデータ131bに従ってモデリングする。その結果、図3に示したようなモデリング済修正前回路202が生成される。そして、比較検証部137によって、図5に示すようなロジックコーンのペア同士で、比較検証が行われる。すべてのロジックコーンのペアに関する比較検証で、論理的に等価であると判定された場合、修正前回路200と修正後回路201とは論理的に等価であると判断される。比較検証の結果は、レポート20として出力される。レポート20は、HDD103に格納されると共にモニタ11に表示される。
次に、非同期箇所抽出処理、修正後回路モデリング処理、および修正前回路モデリング処理の手順を、図13〜図15を参照して詳細に説明する。
まず、非同期箇所抽出処理について説明する。
まず、非同期箇所抽出処理について説明する。
図13は、非同期箇所抽出処理の手順を示すフローチャートである。以下、図13に示す処理をステップ番号に沿って説明する。
[ステップS11]非同期箇所抽出部133は、修正後回路201を参照し、入力クロック毎に、各FFに対してクロックドメインを設定する。具体的には、非同期箇所抽出部133は、回路に入力されるクロック信号を順に選択する。そして、非同期箇所抽出部133は、選択したクロック信号をFFに到達するまでフォワードトレースする。非同期箇所抽出部133は、同一クロック信号からフォワードトレースによって到達したFFを同一のクロックドメインとする。非同期箇所抽出部133は、各FFに対して、そのFFのクロックドメインを一意に識別する識別子を設定する。
[ステップS11]非同期箇所抽出部133は、修正後回路201を参照し、入力クロック毎に、各FFに対してクロックドメインを設定する。具体的には、非同期箇所抽出部133は、回路に入力されるクロック信号を順に選択する。そして、非同期箇所抽出部133は、選択したクロック信号をFFに到達するまでフォワードトレースする。非同期箇所抽出部133は、同一クロック信号からフォワードトレースによって到達したFFを同一のクロックドメインとする。非同期箇所抽出部133は、各FFに対して、そのFFのクロックドメインを一意に識別する識別子を設定する。
[ステップS12]非同期箇所抽出部133は、修正後回路201からFF一覧を抽出する。
[ステップS13]非同期箇所抽出部133は、ステップS12で抽出したFF一覧から、未選択のFFを1つ選択する。
[ステップS13]非同期箇所抽出部133は、ステップS12で抽出したFF一覧から、未選択のFFを1つ選択する。
[ステップS14]非同期箇所抽出部133は、選択したFFにクロックドメインが設定されていないか否かを判断する。例えば、クロック信号を発生させる内部回路を介してクロック信号が入力されているFFの場合、ステップS11の処理においてクロックドメインが設定されない。選択したFFにクロックドメインが設定されていない場合、処理がステップS15に進められる。選択したFFにクロックドメインが設定されている場合、処理がステップS16に進められる。
[ステップS15]非同期箇所抽出部133は、選択したFFに対して独自のクロックドメインを示す識別子を設定する。
[ステップS16]非同期箇所抽出部133は、選択したFFからバックトレースし、前段のFFを検出する。
[ステップS16]非同期箇所抽出部133は、選択したFFからバックトレースし、前段のFFを検出する。
[ステップS17]非同期箇所抽出部133は、選択したFFと前段のFFとの間が非同期か否かを判断する。具体的には、非同期箇所抽出部133は、選択したFFと前段のFFとのクロックドメインが同一であれば同期していると判断し、クロックドメインが異なれば非同期であると判断する。同期していれば処理がステップS19に進められる。非同期であれば処理がステップS18に進められる。
[ステップS18]非同期箇所抽出部133は、選択したFFと前段のFFとの識別子を、非同期箇所一覧へ出力する。なお、非同期箇所一覧は、RAM102内に格納されている。
[ステップS19]非同期箇所抽出部133は、すべてのFFに対して処理を行ったか否かを判断する。すべてのFFに対して処理が完了していれば非同期箇所抽出処理を終了する。未処理のFFがあれば、処理がステップS13に進められる。
このようにして、非同期箇所が検出され、非同期箇所一覧に非同期箇所が設定される。
図14は、非同期箇所一覧の例を示す図である。非同期箇所一覧60には、複数の非同期箇所情報61,62が登録されている。非同期箇所情報61,62には、非同期箇所の前段のFFの識別子と後段のFFの識別子との対が設定されている。また、各FFの識別子には、そのFFのクロックドメインを示す識別子が付与されている。非同期箇所一覧60の非同期箇所情報61は、図9に示したクロック乗り換え箇所51を示している。また、非同期箇所一覧60の非同期箇所情報62は、図9に示したクロック乗り換え箇所52を示している。
図14は、非同期箇所一覧の例を示す図である。非同期箇所一覧60には、複数の非同期箇所情報61,62が登録されている。非同期箇所情報61,62には、非同期箇所の前段のFFの識別子と後段のFFの識別子との対が設定されている。また、各FFの識別子には、そのFFのクロックドメインを示す識別子が付与されている。非同期箇所一覧60の非同期箇所情報61は、図9に示したクロック乗り換え箇所51を示している。また、非同期箇所一覧60の非同期箇所情報62は、図9に示したクロック乗り換え箇所52を示している。
このような非同期箇所一覧60がRAM102内に格納され、修正後回路モデリング部134で参照可能な状態に置かれる。
次に、修正後回路モデリング処理について説明する。
次に、修正後回路モデリング処理について説明する。
図15は、修正後回路モデリング処理の手順を示すフローチャートである。以下、図15に示す処理をステップ番号に沿って説明する。
[ステップS21]修正後回路モデリング部134は、非同期箇所一覧60から未処理の非同期箇所情報を1つ選択する。
[ステップS21]修正後回路モデリング部134は、非同期箇所一覧60から未処理の非同期箇所情報を1つ選択する。
[ステップS22]修正後回路モデリング部134は、選択した非同期箇所情報に示される非同期箇所からトレースを行い前後1段目のFFをモデリング候補とする。さらに、修正後回路モデリング部134は、前後2段目のFFを検索する。
[ステップS23]修正後回路モデリング部134は、2段目のFFが存在したか否かを判断する。2段目のFFが存在すれば、処理がステップS24に進められる。2段目のFFが存在しなければ処理がステップS25に進められる。
[ステップS24]修正後回路モデリング部134は、1段目のFFと2段目のFFとのクロック信号が同一系統か否かを判断する。具体的には、1段目のFFと2段目のFFとのそれぞれに設定されたクロックドメインの識別子が共通であれば、同一系統と判断される。同一系統であれば処理がステップS25に進められる。同一系統でなければ処理がステップS29に進められる。
[ステップS25]修正後回路モデリング部134は、1段目のFFの直前に、そのFFの出力がフィードバックされたセレクタがあるか否かを判断する。該当するセレクタがあれば、処理がステップS26に進められる。該当するセレクタがなければ、処理がステップS27に進められる。
[ステップS26]修正後回路モデリング部134は、1段目のFFの直前のセレクタを省略する。具体的には、修正後回路モデリング部134は、該当するセレクタに対する入力を、FFへの入力とする。また、修正後回路モデリング部134は、セレクタへの制御入力をFFへのイネーブル信号入力とする。
[ステップS27]修正後回路モデリング部134は、1段目のFFを組合せ回路に置き換える。具体的には、修正後回路モデリング部134は、モデリングデータ記憶部131から組合せ回路のモデリングデータ131bを取得する。そして、修正後回路201における非同期箇所の前後1段のFFをモデリングデータ131bで示される組合せ回路に置き換える。この際、未使用ポートの入力は1にクリップする。
[ステップS28]修正後回路モデリング部134は、ステップS22で検出した2段目のFFの識別子をモデリング範囲リストに出力する。なお、モデリング範囲リストはRAM102内に設けられる。
[ステップS29]修正後回路モデリング部134は、非同期箇所一覧60に登録されたすべての非同期箇所情報を処理したか否かを判断する。すべての非同期箇所情報についての処理が完了していれば、修正後回路モデリング処理が終了する。未処理の非同期箇所情報があれば、処理がステップS21に進められる。
図16は、モデリング範囲リストの例を示す図である。モデリング範囲リスト70には、モデリング範囲情報71,72が登録されている。モデリング範囲情報は、モデリング範囲の出力側のFFの識別子(図中、左側の値)と、入力側のFFの識別子(図中、右側の値)とが設定される。モデリング範囲情報71,72に設定されるFFは、モデリング範囲を1つのロジックコーンとしたときの始点と終点とに相当する。
次に、修正前回路モデリング処理について説明する。
図17は、修正前回路モデリング処理を示すフローチャートである。以下、図17に示す処理をステップ番号に沿って説明する。
図17は、修正前回路モデリング処理を示すフローチャートである。以下、図17に示す処理をステップ番号に沿って説明する。
[ステップS31]修正前回路モデリング部136は、モデリング範囲リスト70を参照し、未処理のモデリング範囲情報を1つ選択する。
[ステップS32]修正前回路モデリング部136は、修正前回路200に対し、選択したモデリング範囲情報で示される出力側のFFからバックトレースを行い、入力側のFFからフォワードトレースを行う。
[ステップS32]修正前回路モデリング部136は、修正前回路200に対し、選択したモデリング範囲情報で示される出力側のFFからバックトレースを行い、入力側のFFからフォワードトレースを行う。
なお、モデリング範囲リスト70のモデリング範囲情報に設定されているFFの識別子は、モデリング済修正後回路203のFFを示すものである。図2〜図5に示したように、本実施の形態では説明を分かりやすくするため、修正前回路200と修正後回路201との対応関係にあるFFを同じ識別子で表している。しかし、実際には、回路の修正前後において、対応するFFに同じ識別子が割り当てられるとは限らない。そのため、マッチング部135によってマッチング処理を行い、修正前回路200と修正後回路201とのFF間の対応関係が判断される。修正前回路モデリング部136は、マッチング部135によってマッチングデータ記憶部135aに格納された情報を参照し、モデリング済修正後回路203と修正前回路200とのFF間の対応関係を認識する。そして、修正前回路モデリング部136は、モデリング範囲リスト70に示されるFFに対応する修正前回路200内のFFを判断し、バックトレースおよびフォワードトレースを行う。
[ステップS33]修正前回路モデリング部136は、別モデリング範囲に到達したか否かを判断する。例えば、バックトレースにより到達したFFの識別子がモデリング範囲リスト70内のいずれかのモデリング範囲情報の出力側のFFとして設定されていれば、別モデリング範囲に到達したものと判断される。別モデリング範囲に到達した場合、処理がステップS35に進められる。別モデリング範囲に到達していなければ、処理がステップS34に進められる。
[ステップS34]修正前回路モデリング部136は、ステップS32のバックトレース、フォワードトレースによる1段目の同一系統のFFを組合せ回路に置き換える。
[ステップS35]修正前回路モデリング部136は、すべてのモデリング範囲情報に対して処理を行ったか否かを判断する。すべてのモデリング範囲情報の処理が完了していれば、修正前回路モデリング処理を終了する。未処理のモデリング範囲情報があれば、処理がステップS31に進められる。
[ステップS35]修正前回路モデリング部136は、すべてのモデリング範囲情報に対して処理を行ったか否かを判断する。すべてのモデリング範囲情報の処理が完了していれば、修正前回路モデリング処理を終了する。未処理のモデリング範囲情報があれば、処理がステップS31に進められる。
モデリング済修正前回路202が生成されると、比較検証部137によって、図5に示したようなロジックコーン単位での比較検証が行われる。そして、比較されたロジックコーン同士が論理的に等価であれば、その旨の比較結果が出力される。比較されたロジックコーン同士が論理的に等価でなければ、不等価である旨の比較結果が出力される。比較結果を示すレポート20は、レポート出力部138によって出力される。
設計担当者は、レポート20を参照して、回路修正の適否を判断する。すなわち、すべてのロジックコーンの比較検証結果が等価であると判定されれば、回路修正が正しく行われたことが分かる。また、不等価であると判断されたロジックコーンがあれば、そのロジックコーンの修正内容に間違いあるため、設計担当者は、修正後の回路を再確認する必要がある。
このようにして、非同期クロックの乗り換え箇所でFFを跨いだ論理変更(リタイミング)が発生した場合でも、FFを境界としたロジックコーンによる論理等価検証の手法を用いて等価検証が可能となる。
なお、上記の処理機能は、各処理機能の処理内容を記述したプログラムをコンピュータで実行することにより、コンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disc)などがある。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
なお、本発明は、上述の実施の形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変更を加えることができる。
以上説明した実施の形態の主な技術的特徴は、以下の付記の通りである。
以上説明した実施の形態の主な技術的特徴は、以下の付記の通りである。
(付記1) 修正前回路と前記修正前回路を修正して得られた修正後回路との論理等価検証処理を行う論理等価検証装置であって、
前記修正後回路を記憶する修正後回路記憶部を参照し、前記修正後回路中で非同期のデータ転送が行われる非同期箇所を抽出する非同期箇所抽出部と、
前記非同期箇所の前後のフリップフロップの少なくとも一部を対象フリップフロップとし、フリップフロップに対応する組合せ回路を記憶するモデリングデータ記憶部を参照し、前記修正後回路内の前記対象フリップフロップを組合せ回路に置き換えてモデリング済修正後回路を生成する修正後回路モデリング部と、
前記モデリング済修正後回路と前記修正前回路とのフリップフロップ同士を対応づけるマッチング処理を行うマッチング部と、
前記モデリングデータ記憶部を参照し、前記修正前回路内のマッチング処理により対応づけられたフリップフロップを境界とするロジックコーンの範囲に含まれるフリップフロップを組合せ回路に置き換えてモデリング済修正前回路を生成する修正前回路モデリング部と、
前記モデリング済修正前回路と前記モデリング済修正後回路との対応するロジックコーンを生成し、前記モデリング済修正前回路と前記モデリング済修正後回路とにおける始点と終点とが共通するロジックコーン同士の論理等価検証を行う比較検証部と、
を有する論理等価検証装置。
前記修正後回路を記憶する修正後回路記憶部を参照し、前記修正後回路中で非同期のデータ転送が行われる非同期箇所を抽出する非同期箇所抽出部と、
前記非同期箇所の前後のフリップフロップの少なくとも一部を対象フリップフロップとし、フリップフロップに対応する組合せ回路を記憶するモデリングデータ記憶部を参照し、前記修正後回路内の前記対象フリップフロップを組合せ回路に置き換えてモデリング済修正後回路を生成する修正後回路モデリング部と、
前記モデリング済修正後回路と前記修正前回路とのフリップフロップ同士を対応づけるマッチング処理を行うマッチング部と、
前記モデリングデータ記憶部を参照し、前記修正前回路内のマッチング処理により対応づけられたフリップフロップを境界とするロジックコーンの範囲に含まれるフリップフロップを組合せ回路に置き換えてモデリング済修正前回路を生成する修正前回路モデリング部と、
前記モデリング済修正前回路と前記モデリング済修正後回路との対応するロジックコーンを生成し、前記モデリング済修正前回路と前記モデリング済修正後回路とにおける始点と終点とが共通するロジックコーン同士の論理等価検証を行う比較検証部と、
を有する論理等価検証装置。
(付記2) 前記非同期箇所抽出部は、前記修正後回路内のフリップフロップ間の接続関係に着目し、互いに異なるクロック信号に基づくフリップフロップが隣接している場合、該当する2つのフリップフロップの間を非同期箇所と判断することを特徴とする付記1記載の論理等価検証装置。
(付記3) 前記修正後回路モデリング部は、前記修正後回路における前記非同期箇所を基準としてフォワードトレースとバックトレースとを行い、2段のフリップフロップが存在する場合、1段目と2段目とのフリップフロップが同一系統のクロック信号に同期していれば1段目のフリップフロップを前記対象フリップフロップとすることを特徴とする付記1記載の論理等価検証装置。
(付記4) 前記修正後回路モデリング部は、前記修正後回路における前記非同期箇所を基準としてフォワードトレースとバックトレースとを行い、2段目のフリップフロップが存在しない場合、1段目のフリップフロップを前記対象フリップフロップとすることを特徴とする付記1記載の論理等価検証装置。
(付記5) 前記修正後回路モデリング部は、前記対象フリップフロップの直前に、前記対象フリップフロップの出力信号が入力されたセレクタが存在する場合、該当するセレクタを含めて組合せ回路に置き換えることを特徴とする付記1記載の論理等価検証装置。
(付記6) 前記修正後回路モデリング部は、前記対象フリップフロップから置き換えた組合せ回路において不使用の入力ポートがある場合、該当する入力ポートの値を1に固定することを特徴とする付記1記載の論理等価検証装置。
(付記7) 前記マッチング部は、前記対象フリップフロップから置き換えられた組合せ回路を包含するロジックコーンの出力側のフリップフロップを始点、入力側のフリップフロップを終点とし、前記修正前回路内の前記始点と前記終点とに対応するフリップフロップを検出し、検出されたフリップフロップに挟まれた範囲を前記モデリング範囲とすることを特徴とする付記1記載の論理等価検証装置。
(付記8) 修正前回路と前記修正前回路を修正して得られた修正後回路との論理等価検証処理をコンピュータで実行する論理等価検証方法であって、
前記コンピュータが、
前記修正後回路を記憶する修正後回路記憶部を参照し、前記修正後回路中で非同期のデータ転送が行われる非同期箇所を抽出し、
抽出した前記非同期箇所の前後のフリップフロップの少なくとも一部を対象フリップフロップとし、フリップフロップに対応する組合せ回路を記憶するモデリングデータ記憶部を参照し、前記修正後回路内の前記対象フリップフロップを組合せ回路に置き換えてモデリング済修正後回路を生成し、
前記モデリング済修正後回路と前記修正前回路とのフリップフロップ同士を対応づけるマッチング処理を行い、
前記モデリングデータ記憶部を参照し、前記修正前回路内のマッチング処理により対応づけられたフリップフロップを境界とするロジックコーンの範囲に含まれるフリップフロップを組合せ回路に置き換えてモデリング済修正前回路を生成し、
前記モデリング済修正前回路と前記モデリング済修正後回路との対応するロジックコーンを生成し、前記モデリング済修正前回路と前記モデリング済修正後回路とにおける始点と終点とが共通するロジックコーン同士の論理等価検証を行う、
ことを特徴とする論理等価検証方法。
前記コンピュータが、
前記修正後回路を記憶する修正後回路記憶部を参照し、前記修正後回路中で非同期のデータ転送が行われる非同期箇所を抽出し、
抽出した前記非同期箇所の前後のフリップフロップの少なくとも一部を対象フリップフロップとし、フリップフロップに対応する組合せ回路を記憶するモデリングデータ記憶部を参照し、前記修正後回路内の前記対象フリップフロップを組合せ回路に置き換えてモデリング済修正後回路を生成し、
前記モデリング済修正後回路と前記修正前回路とのフリップフロップ同士を対応づけるマッチング処理を行い、
前記モデリングデータ記憶部を参照し、前記修正前回路内のマッチング処理により対応づけられたフリップフロップを境界とするロジックコーンの範囲に含まれるフリップフロップを組合せ回路に置き換えてモデリング済修正前回路を生成し、
前記モデリング済修正前回路と前記モデリング済修正後回路との対応するロジックコーンを生成し、前記モデリング済修正前回路と前記モデリング済修正後回路とにおける始点と終点とが共通するロジックコーン同士の論理等価検証を行う、
ことを特徴とする論理等価検証方法。
(付記9) 修正前回路と前記修正前回路を修正して得られた修正後回路との論理等価検証処理をコンピュータに実行させる論理等価検証プログラムであって、
前記コンピュータを、
前記修正後回路を記憶する修正後回路記憶部を参照し、前記修正後回路中で非同期のデータ転送が行われる非同期箇所を抽出する非同期箇所抽出部、
前記非同期箇所の前後のフリップフロップの少なくとも一部を対象フリップフロップとし、フリップフロップに対応する組合せ回路を記憶するモデリングデータ記憶部を参照し、前記修正後回路内の前記対象フリップフロップを組合せ回路に置き換えてモデリング済修正後回路を生成する修正後回路モデリング部、
前記モデリング済修正後回路と前記修正前回路とのフリップフロップ同士を対応づけるマッチング処理を行うマッチング部、
前記モデリングデータ記憶部を参照し、前記修正前回路内のマッチング処理により対応づけられたフリップフロップを境界とするロジックコーンの範囲に含まれるフリップフロップを組合せ回路に置き換えてモデリング済修正前回路を生成する修正前回路モデリング部、
前記モデリング済修正前回路と前記モデリング済修正後回路との対応するロジックコーンを生成し、前記モデリング済修正前回路と前記モデリング済修正後回路とにおける始点と終点とが共通するロジックコーン同士の論理等価検証を行う比較検証部、
として機能させる論理等価検証プログラム。
前記コンピュータを、
前記修正後回路を記憶する修正後回路記憶部を参照し、前記修正後回路中で非同期のデータ転送が行われる非同期箇所を抽出する非同期箇所抽出部、
前記非同期箇所の前後のフリップフロップの少なくとも一部を対象フリップフロップとし、フリップフロップに対応する組合せ回路を記憶するモデリングデータ記憶部を参照し、前記修正後回路内の前記対象フリップフロップを組合せ回路に置き換えてモデリング済修正後回路を生成する修正後回路モデリング部、
前記モデリング済修正後回路と前記修正前回路とのフリップフロップ同士を対応づけるマッチング処理を行うマッチング部、
前記モデリングデータ記憶部を参照し、前記修正前回路内のマッチング処理により対応づけられたフリップフロップを境界とするロジックコーンの範囲に含まれるフリップフロップを組合せ回路に置き換えてモデリング済修正前回路を生成する修正前回路モデリング部、
前記モデリング済修正前回路と前記モデリング済修正後回路との対応するロジックコーンを生成し、前記モデリング済修正前回路と前記モデリング済修正後回路とにおける始点と終点とが共通するロジックコーン同士の論理等価検証を行う比較検証部、
として機能させる論理等価検証プログラム。
1 論理等価検証装置
1a モデリングデータ記憶部
1b 非同期箇所抽出部
1c 修正後回路モデリング部
1d マッチング部
1e 修正前回路モデリング部
1f 比較検証部
2 修正前回路記憶部
3 修正後回路記憶部
1a モデリングデータ記憶部
1b 非同期箇所抽出部
1c 修正後回路モデリング部
1d マッチング部
1e 修正前回路モデリング部
1f 比較検証部
2 修正前回路記憶部
3 修正後回路記憶部
Claims (7)
- 修正前回路と前記修正前回路を修正して得られた修正後回路との論理等価検証処理を行う論理等価検証装置であって、
前記修正後回路を記憶する修正後回路記憶部を参照し、前記修正後回路中で非同期のデータ転送が行われる非同期箇所を抽出する非同期箇所抽出部と、
前記非同期箇所の前後のフリップフロップの少なくとも一部を対象フリップフロップとし、フリップフロップに対応する組合せ回路を記憶するモデリングデータ記憶部を参照し、前記修正後回路内の前記対象フリップフロップを組合せ回路に置き換えてモデリング済修正後回路を生成する修正後回路モデリング部と、
前記モデリング済修正後回路と前記修正前回路とのフリップフロップ同士を対応づけるマッチング処理を行うマッチング部と、
前記モデリングデータ記憶部を参照し、前記修正前回路内のマッチング処理により対応づけられたフリップフロップを境界とするロジックコーンの範囲に含まれるフリップフロップを組合せ回路に置き換えてモデリング済修正前回路を生成する修正前回路モデリング部と、
前記モデリング済修正前回路と前記モデリング済修正後回路との対応するロジックコーンを生成し、前記モデリング済修正前回路と前記モデリング済修正後回路とにおける始点と終点とが共通するロジックコーン同士の論理等価検証を行う比較検証部と、
を有する論理等価検証装置。 - 前記非同期箇所抽出部は、前記修正後回路内のフリップフロップ間の接続関係に着目し、互いに異なるクロック信号に基づくフリップフロップが隣接している場合、該当する2つのフリップフロップの間を非同期箇所と判断することを特徴とする請求項1記載の論理等価検証装置。
- 前記修正後回路モデリング部は、前記修正後回路における前記非同期箇所を基準としてフォワードトレースとバックトレースとを行い、2段のフリップフロップが存在する場合、1段目と2段目とのフリップフロップが同一系統のクロック信号に同期していれば1段目のフリップフロップを前記対象フリップフロップとすることを特徴とする請求項1記載の論理等価検証装置。
- 前記修正後回路モデリング部は、前記修正後回路における前記非同期箇所を基準としてフォワードトレースとバックトレースとを行い、2段目のフリップフロップが存在しない場合、1段目のフリップフロップを前記対象フリップフロップとすることを特徴とする請求項1記載の論理等価検証装置。
- 前記修正後回路モデリング部は、前記対象フリップフロップの直前に、前記対象フリップフロップの出力信号が入力されたセレクタが存在する場合、該当するセレクタを含めて組合せ回路に置き換えることを特徴とする請求項1記載の論理等価検証装置。
- 修正前回路と前記修正前回路を修正して得られた修正後回路との論理等価検証処理をコンピュータで実行する論理等価検証方法であって、
前記コンピュータが、
前記修正後回路を記憶する修正後回路記憶部を参照し、前記修正後回路中で非同期のデータ転送が行われる非同期箇所を抽出し、
抽出した前記非同期箇所の前後のフリップフロップの少なくとも一部を対象フリップフロップとし、フリップフロップに対応する組合せ回路を記憶するモデリングデータ記憶部を参照し、前記修正後回路内の前記対象フリップフロップを組合せ回路に置き換えてモデリング済修正後回路を生成し、
前記モデリング済修正後回路と前記修正前回路とのフリップフロップ同士を対応づけるマッチング処理を行い、
前記モデリングデータ記憶部を参照し、前記修正前回路内のマッチング処理により対応づけられたフリップフロップを境界とするロジックコーンの範囲に含まれるフリップフロップを組合せ回路に置き換えてモデリング済修正前回路を生成し、
前記モデリング済修正前回路と前記モデリング済修正後回路との対応するロジックコーンを生成し、前記モデリング済修正前回路と前記モデリング済修正後回路とにおける始点と終点とが共通するロジックコーン同士の論理等価検証を行う、
ことを特徴とする論理等価検証方法。 - 修正前回路と前記修正前回路を修正して得られた修正後回路との論理等価検証処理をコンピュータに実行させる論理等価検証プログラムであって、
前記コンピュータを、
前記修正後回路を記憶する修正後回路記憶部を参照し、前記修正後回路中で非同期のデータ転送が行われる非同期箇所を抽出する非同期箇所抽出部、
前記非同期箇所の前後のフリップフロップの少なくとも一部を対象フリップフロップとし、フリップフロップに対応する組合せ回路を記憶するモデリングデータ記憶部を参照し、前記修正後回路内の前記対象フリップフロップを組合せ回路に置き換えてモデリング済修正後回路を生成する修正後回路モデリング部、
前記モデリング済修正後回路と前記修正前回路とのフリップフロップ同士を対応づけるマッチング処理を行うマッチング部、
前記モデリングデータ記憶部を参照し、前記修正前回路内のマッチング処理により対応づけられたフリップフロップを境界とするロジックコーンの範囲に含まれるフリップフロップを組合せ回路に置き換えてモデリング済修正前回路を生成する修正前回路モデリング部、
前記モデリング済修正前回路と前記モデリング済修正後回路との対応するロジックコーンを生成し、前記モデリング済修正前回路と前記モデリング済修正後回路とにおける始点と終点とが共通するロジックコーン同士の論理等価検証を行う比較検証部、
として機能させる論理等価検証プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008139178A JP2009288922A (ja) | 2008-05-28 | 2008-05-28 | 論理等価検証装置、論理等価検証方法、および論理等価検証プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008139178A JP2009288922A (ja) | 2008-05-28 | 2008-05-28 | 論理等価検証装置、論理等価検証方法、および論理等価検証プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009288922A true JP2009288922A (ja) | 2009-12-10 |
Family
ID=41458097
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008139178A Pending JP2009288922A (ja) | 2008-05-28 | 2008-05-28 | 論理等価検証装置、論理等価検証方法、および論理等価検証プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009288922A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112257366A (zh) * | 2020-10-13 | 2021-01-22 | 国微集团(深圳)有限公司 | 一种用于等价性验证的cnf生成方法及系统 |
-
2008
- 2008-05-28 JP JP2008139178A patent/JP2009288922A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112257366A (zh) * | 2020-10-13 | 2021-01-22 | 国微集团(深圳)有限公司 | 一种用于等价性验证的cnf生成方法及系统 |
CN112257366B (zh) * | 2020-10-13 | 2024-05-07 | 深圳国微芯科技有限公司 | 一种用于等价性验证的cnf生成方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI510915B (zh) | Computer automated test system and test methods, recording media and program products | |
EP3396555B1 (en) | Method and system for automated enterprise testing system | |
WO2018076735A1 (zh) | 一种修复保持时间违例的方法和装置、计算机存储介质 | |
US9721057B2 (en) | System and method for netlist clock domain crossing verification | |
US11347682B2 (en) | Database-driven zero downtime data migration | |
JP4118578B2 (ja) | 半導体集積回路の設計方法および設計プログラム | |
JP4763629B2 (ja) | 検証装置、検証方法及びプログラム | |
JP2009288922A (ja) | 論理等価検証装置、論理等価検証方法、および論理等価検証プログラム | |
US8510693B2 (en) | Changing abstraction level of portion of circuit design during verification | |
US20110010436A1 (en) | Configuration-information setting method and information processing device | |
JP4831375B2 (ja) | 検証装置、検証方法、及びプログラム | |
JP5811859B2 (ja) | ソースコードの静的解析装置、システム、方法、及びそのためのプログラム | |
JP6318976B2 (ja) | デバッグ回路、デバッガ装置、半導体装置及びデバッグ方法 | |
JP4852464B2 (ja) | 論理等価検証装置、論理等価検証方法、論理等価検証プログラムおよび記録媒体 | |
JP2010015229A (ja) | 回路設計装置および回路設計方法 | |
JP2009116497A (ja) | 同期化回路の検証方法及びその検証装置 | |
JP5799589B2 (ja) | 検証方法及び検証プログラム | |
CN100428249C (zh) | 验证支持装置和验证支持方法 | |
JP2020009279A (ja) | 情報処理プログラム、情報処理装置及び情報処理方法 | |
US8782579B2 (en) | Connection verification method, recording medium thereof, and connection verification apparatus | |
JP5645754B2 (ja) | マルチサイクルパス検出装置及びマルチサイクルパス検出プログラム | |
JP2016105214A (ja) | 情報処理装置及び情報処理プログラム | |
WO2010100830A1 (ja) | 半導体装置、回路修正方法、設計支援装置及び設計支援プログラムが格納された記録媒体 | |
JP2002215707A (ja) | 同期回路設計方法及び同期回路設計プログラムを記録した記録媒体 | |
CN114510894A (zh) | 提高fpga原型验证效率的方法及装置 |