JP2011054070A - 冗長論理回路検出方法及び冗長論理回路検出装置 - Google Patents

冗長論理回路検出方法及び冗長論理回路検出装置 Download PDF

Info

Publication number
JP2011054070A
JP2011054070A JP2009204193A JP2009204193A JP2011054070A JP 2011054070 A JP2011054070 A JP 2011054070A JP 2009204193 A JP2009204193 A JP 2009204193A JP 2009204193 A JP2009204193 A JP 2009204193A JP 2011054070 A JP2011054070 A JP 2011054070A
Authority
JP
Japan
Prior art keywords
unit
logic circuit
waveform data
sequence
register
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.)
Ceased
Application number
JP2009204193A
Other languages
English (en)
Inventor
Noriyasu Nakayama
典保 中山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2009204193A priority Critical patent/JP2011054070A/ja
Priority to US12/875,236 priority patent/US8225253B2/en
Publication of JP2011054070A publication Critical patent/JP2011054070A/ja
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

【課題】意図的に配置した冗長な単位論理回路を検出する冗長論理回路検出方法を提供する。
【解決手段】記憶部14は、論理回路の論理設計情報に基づいて合成された複数のレジスタを示すレジスタ情報と、複数のレジスタを含む論理回路についての論理シミュレーションの実行結果である波形データと、波形データの比較の条件を定める制約条件とを格納する。パターンマッチング部15は、制約条件に従って、第1のレジスタについての波形データのシーケンスと一致する波形データのシーケンスを有する、第2のレジスタを検出する。出力部16は、パターンマッチング部15により検出された第1及び第2のレジスタを冗長回路情報として出力する。
【選択図】図1

Description

本発明は、冗長論理回路検出方法及び冗長論理回路検出装置に関する。
大規模な論理回路の設計においては、論理回路の論理設計情報に基づいて、冗長な、換言すれば、重複する論理回路が共有化される。これにより、論理回路を減らして、ハードウェア量を減らすことが行われる。
例えば、類似部分回路抽出を用いた論理合成方法及び論理合成装置において、ハードウェア記述言語を入力し、入力した論理情報から共通論理を抽出し、合成性能を考慮しながら共通論理を下位階層として共通参照する形態に変換することが提案されている。これは、演算器の共有化を目的として、論理式が共通であることを検出するものである。
また、回路変換方法及び回路設計支援装置及び記録媒体において、入力された回路の記述から、制御条件及びデータ演算部の対応関係を抽出し、データ演算部を判定した結果に基づき制御条件及びデータ演算部を統合することが提案されている。
また、論理シミュレーション装置及び論理回路情報作成方法において、入力マクロ論理記述情報から入力対出力の条件を示す条件文を検索し、検索した条件文に基づき状態推移情報を追加した中間論理記述情報を生成し、入力マクロ論理記述情報等の論理シミュレーションを実行し状態値情報を出力し、状態値情報を基に冗長機能対応の固定条件文を判定抽出し、この判定結果に基き入力マクロ論理記述情報から固定条件文を削除し新論理記述を生成することが提案されている。
特開平10−021291号公報 特開平11−85832号公報 特開平9−34927号公報
前述した、入力した論理情報から共通論理を抽出し、共通論理を下位階層として共通参照する形態に変換する方法は、論理回路の設計者が意図的に配置した冗長なレジスタやカウンタ等の論理回路を検出することも目的としたものではない。このため、前記方法によっては、設計者が意図的に配置した冗長なレジスタやカウンタ等の論理回路が、共通論理として検出されずに、論理回路に残ってしまう。このような、冗長なレジスタやカウンタ等の論理回路は、半導体集積回路(LSI)の回路面積、消費電力、検証の容易性等において種々の問題を発生させる原因となる。
本発明は、意図的に配置された冗長な論理回路を検出する冗長論理回路検出方法を提供することを目的とする。
開示された冗長論理回路検出方法において、記憶部が、論理回路の論理設計情報に基づいて合成された複数の単位論理回路を示す単位論理回路情報と、前記複数の単位論理回路を含む前記論理回路についての論理シミュレーションの実行結果である波形データと、前記波形データの比較の条件を定める制約条件とを格納する。パターンマッチング部が、前記制約条件に従って、前記複数の単位論理回路に含まれる第1の単位論理回路についての前記波形データのシーケンスと一致する波形データのシーケンスを有する、前記複数の単位論理回路に含まれる第2の単位論理回路を検出する。出力部が、前記パターンマッチング部により検出された前記第1の単位論理回路と第2の単位論理回路とを冗長回路情報として出力する。
開示された冗長論理回路検出方法によれば、設計者が意図的に配置した冗長なレジスタやカウンタ等の論理回路を検出することができ、これにより、設計者は、例えば半導体集積回路の回路面積、消費電力、検証の容易性等における種々の問題を回避することができる。
冗長論理回路検出装置の構成の一例を示す図である。 冗長論理回路検出装置のハードウェア構成の一例を示す図である。 冗長論理回路検出処理フローを示す図である。 冗長論理回路検出処理フローを示す図である。 冗長レジスタの検出処理の一例を説明する図である。 冗長論理回路の部分一致の検出処理フローを示す図である。 冗長論理回路の部分一致の検出処理フローを示す図である。 冗長レジスタの部分一致の検出処理の一例を説明する図である。 冗長レジスタの部分一致の検出処理の他の一例を説明する図である。 冗長カウンタの検出処理の一例を説明する図である。 冗長論理回路検出装置の構成の他の一例を示す図である。 冗長レジスタの繰り返しシーケンス検出処理の一例を説明する図である。
図1は、冗長論理回路検出装置の構成の一例を示す図である。
図1の冗長論理回路検出装置1は、例えば、冗長なレジスタを検出する冗長レジスタ検出装置である。従って、検出の対象となる冗長回路である単位論理回路は、レジスタである。このために、冗長論理回路検出装置1は、レジスタ情報入力部11、波形データ入力部12、制約条件入力部13、記憶部14、パターンマッチング部15、出力部16、レジスタ情報格納部111、波形データ格納部121、制約条件格納部131、検出結果格納部161を含む。
レジスタ情報入力部11は、レジスタ情報格納部111に格納されたレジスタ情報を読み出して、記憶部14に入力、換言すれば、格納する。レジスタ情報は、論理回路の論理設計情報に基づいて合成された複数のレジスタ、具体的には、複数のレジスタの名前を示す。
レジスタ情報格納部111は、予め、レジスタ情報を格納する。レジスタ情報は、論理回路の論理設計情報に基づいて、論理合成ツールにより合成された情報であり、例えば、論理合成ツール(コンパイラ)から入力される。レジスタ情報は、対象とする論理回路における、レジスタ毎の名称(レジスタ名)を含む。例えば、レジスタ名は、RTL(Register Transfer Level)の記述に基づいて生成される。具体的には、レジスタ名は、RTLをコンパイルすることにより得られる。
なお、RTLの記述は、周知の論理合成ソフトウェアツールにより論理ゲートを組合せた論理回路に変換される。変換された論理回路には、ユニークな名前が付与される。例えば、レジスタにはレジスタ名が付与される。冗長論理回路検出装置1では、その際に用いられる、レジスタ名を利用する。
波形データ入力部12は、波形データ格納部121に格納された波形データを読み出して、記憶部14に入力(格納)する。波形データは、複数のレジスタを含む前記論理回路についての論理シミュレーションの実行結果である。
具体的には、波形データとは、回路の入出力ポートと、回路のレジスタや信号の値(論理値)の時間遷移を記録したものである。図1のパターンマッチング部15は、波形データにおいて、レジスタの値(出力値)の時間遷移を記録した部分を用いる。冗長回路とは、ある1個の回路と他の回路とが共通の(同一の)シーケンスを有する場合における、それらの回路を言う。シーケンスとは、波形データにおいて、データの値、及び、値を取る順序(データパターン)が同一であることをいう。
波形データ格納部121は、予め、波形データを格納する。波形データは、論理回路の論理設計情報についての論理シミュレータによる論理シミュレーションの実行結果であり、例えば論理シミュレータから入力される。具体的には、波形データは、論理回路への入力、当該入力に対応する論理回路内の複数のレジスタを含む回路の入出力に関する波形データが予め格納される。例えば、論理シミュレータによりトレースされた論理回路内の波形データが格納される。
制約条件入力部13は、制約条件格納部131に格納された制約条件を読み出して、記憶部14に格納する。制約条件とは、波形データの比較の条件を定める条件、換言すれば、パターンマッチング部15におけるパターンマッチング処理の条件である。
制約条件格納部131は、予め、制約条件を格納する。制約条件は、前記条件として、複数のレジスタに含まれるあるレジスタ(以下、第1のレジスタ)についての波形データのシーケンスにおいて、複数のレジスタに含まれる第1のレジスタ以外のレジスタ(以下、第2のレジスタ)の検出に用いられる当該区間の開始点、終了点及び長さを定める。開始点及び終了点は、例えば当該シーケンスにおけるクロックに基づいて定められる。長さは、当該シーケンスにおける開始点から終了点までの区間(以下、スループット長)である。制約条件は、例えば利用者により、予め、制約条件格納部131に入力される。
記憶部14は、前述したように、レジスタ情報入力部11から入力されたレジスタ情報、波形データ入力部12から入力された波形データ、及び制約条件入力部13から入力された制約条件を格納する。
パターンマッチング部15は、記憶部14に格納されたレジスタ情報、波形データ、制約条件を参照して、レジスタ情報に含まれる複数のレジスタの波形データのシーケンスについてパターンマッチングを実行する。複数のレジスタの波形データのシーケンスが一致した場合には、その結果(検出結果)を記憶部14に記憶し、出力部16に通知する。
具体的には、パターンマッチング部15は、制約条件に従って、第1のレジスタについての波形データのシーケンスと一致する波形データのシーケンスを有する、第2のレジスタを検出する。第2のレジスタは、複数であっても良い。このために、パターンマッチング部15は、第1のレジスタについての波形データのシーケンスにおける制約条件により指定された区間を、第2のレジスタについての波形データのシーケンスと比較する。
第1のレジスタは、レジスタ情報に含まれる複数のレジスタから選択される。この選択に基づいて、波形データに含まれる当該第1のレジスタの波形データのシーケンスが読み出される。第2のレジスタは、レジスタ情報に含まれる複数のレジスタにおいて第1のレジスタを除いたレジスタから選択される。この選択に基づいて、波形データに含まれる当該第2のレジスタの波形データのシーケンスが読み出される。
パターンマッチング部15は、読み出した第1のレジスタのシーケンスと、第2のレジスタのシーケンスとを比較して、共通の(同一の)シーケンスを検出する。換言すれば、パターンマッチング部15は、比較すべき波形データのシーケンスの時間軸方向における、当該第1及び第2のレジスタの出力ポートのビット位置に基づいて、出力パターンがマッチングする否かを調べる。マッチングする場合、パターンマッチング部15は、共通のシーケンスであると判断する。パターンマッチング部15によるパターンマッチング処理については、図3及び図4を参照して後述する。
出力部16は、パターンマッチング部15により検出された第1のレジスタと第2のレジスタとの組を、冗長回路情報として出力する。このために、出力部16は、例えばパターンマッチング部15により検出された第1のレジスタと第2のレジスタとの組を、記憶部14から読み出して、冗長回路情報として検出結果格納部161へ格納する。
論理回路の設計者は、以上の処理により得られ、検出結果格納部161に格納された冗長回路情報を参照する。これにより、設計者は、論理回路における冗長回路の有無、特に、冗長回路として検出されたレジスタの組合せを知ることができる。
この後、例えば、設計者は、論理回路の設計において、他の設計者により意図的に配置された冗長なレジスタを削減することができる。この結果、半導体集積回路を小型化することができ、消費電力を削減することができる。更に、論理回路の論理検証を容易にすることができる、C記述対RTL等の高位等価性検証技術を用いた等価性検証を成功させることができる。
図2は、冗長論理回路検出装置1のハードウェア構成の一例を示す図である。
冗長論理回路検出装置1であるコンピュータは、CPU21と、RAM22と、ROM23と、ディスプレイ24と、磁気ディスク装置(HDD)25と、入出力装置(I/O)26と、これらの間を接続するバス27とを含む。
例えば、レジスタ情報入力部11、波形データ入力部12、制約条件入力部13、パターンマッチング部15、出力部16は、CPU21と、RAM22に存在しCPU21上で実行される各処理プログラムとにより実現される。RAM22は、例えばCPU21が使用する主記憶である。また、記憶部14はRAM22に設けられる。レジスタ情報格納部111、波形データ格納部121、制約条件格納部131、検出結果格納部161は、HDD25に設けられる。利用者は、例えばI/O26及びディスプレイ24を用いて、制約条件を制約条件格納部131に入力する。
次に、図3及び図4を参照して、冗長論理回路検出装置1のパターンマッチング部15が実行する冗長レジスタの検出処理について説明する。図3及び図4は、一体となってパターンマッチング部15が実行する冗長論理回路検出処理フローを示す。
パターンマッチング部15は、パターンマッチング処理の開始に先立って、制約条件を記憶部14から読み出す。この後、記憶部14から複数のレジスタを含むレジスタ情報を読み出し(ステップS1)、読み出したレジスタ情報から、1個の第1のレジスタregAを選択する(ステップS2)。
パターンマッチング部15は、記憶部14に格納されたレジスタregAの波形データのシーケンス、換言すれば、波形の先頭からスループット長までの波形(波形W)を抽出する(ステップS3)。
なお、ステップS3においては、レジスタregAの波形データの波形の先頭からスループット長の波形Wを抽出するが、波形Wは、これに限られない。例えば、波形Wは、レジスタregAの波形データの波形の先頭以外から抽出するようにしても良い。
パターンマッチング部15は、読み出したレジスタ情報に含まれる複数のレジスタにおいて、レジスタregAをスキップ(除外)した上で、1個の第2のレジスタregBを選択する(ステップS4)。この時、パターンマッチング部15は、実際には、レジスタregAのみでなく、レジスタregAのビット幅より大きいビット幅を有するレジスタも、レジスタregBの選択の対象から除外する。
これは、この場合、ビット幅の小さいレジスタregAの波形が、ビット幅の大きいレジスタregBの波形に一致することはないからである。逆に、後述するように、ビット幅の大きいレジスタregBの波形は、ビット幅の小さいレジスタregAの波形と部分的に一致する場合がある。従って、後述するように、この場合、ビット幅の小さいレジスタregAの波形は、ビット幅の大きいレジスタregBの波形と部分的に一致するか否かが調べられる。
パターンマッチング部15は、記憶部14に格納された制約条件に基づいて、「nサイクル」を決定する(ステップS5)。ここで、nの初期値は「0」である。また、サイクルは、論理回路に供給される動作クロックのサイクルである。これにより、パターンマッチング部15は、レジスタregBの波形データの先頭即ち1(=0+1)サイクル目からサイクル数を「+1」だけインクリメントしてスループット長に達するまでの間、パターンマッチング処理を繰り返す。
パターンマッチング部15は、レジスタregBの波形データのnサイクル目と、波形Wとのパターンマッチング処理を実施する(ステップS6)。換言すれば、パターンマッチング部15は、レジスタregBの波形データのnサイクル目の値と波形Wの各サイクルの値とを、波形Wの先頭(1サイクル目)から順に比較する。これにより、波形WにおいてレジスタregBの波形データのnサイクル目の値と一致するサイクル(一致サイクル)が検出される。
この後、パターンマッチング部15は、レジスタregBの波形データのnサイクル目の値と波形Wの各サイクルの値とが一致したか否かを調べる(ステップS7)。これにより、両者の一致する区間の先頭を検出することができる。
レジスタregBの波形のnサイクル目と波形Wとのパターンが一致しない場合(ステップS7 No)、パターンマッチング部15は、nサイクルの実行によりスループット長までのパターンマッチングが終了したか否かを判断する(ステップS11)。
スループット長までのパターンマッチングが終了した場合(ステップS11 Yes)、パターンマッチング部15は、レジスタ情報における第2レジスタregBの数の分だけレジスタregBが選択されたか(レジスタregBのループが終了したか)否かを判断する(ステップS12)。
第2レジスタregBの数の分だけレジスタregBが選択された場合(ステップS12 Yes)、パターンマッチング部15は、更に、レジスタ情報における第1レジスタregAの数の分だけレジスタregAが選択されたか(レジスタregAのループが終了したか)否かを判断する。第1レジスタregAの数の分だけレジスタregAが選択された場合(ステップS13 Yes)、パターンマッチング部15は、パターンマッチング処理を終了する。
一方、レジスタregBの波形のnサイクル目の値と波形Wの値が一致した場合(ステップS7 Yes)、パターンマッチング部15は、一致サイクル以降において、レジスタregAの波形WとレジスタregBの波形とについて、パターンマッチング処理を実施する(ステップS8)。
この後、パターンマッチング部15は、レジスタregAの波形WのシーケンスとレジスタregBの波形のシーケンスとが一致したか否かを調べる(ステップS9)。これにより、波形Wのシーケンスと一致するシーケンスを有するレジスタregBを検出することができる。
レジスタregAの波形WのシーケンスとレジスタregBの波形のシーケンスとが一致しない場合(ステップS9 No)、ステップS11が実行される。レジスタregAの波形WのシーケンスとレジスタregBの波形のシーケンスとが一致した場合(ステップS9 Yes)、パターンマッチング部15は、レジスタregA及びレジスタregBの組を、冗長回路情報として、記憶部14に格納し(ステップS10)、ステップS11を実行する。
ステップS11において、nサイクルがスループット長の区間まで終了していない場合(ステップS11 No)、ステップS5が実行される。
ステップS12において、第2レジスタregBの数の分だけレジスタregBが選択されていない場合(ステップS12 No)、ステップS4が実行される。
ステップS13において、第1レジスタregAの数の分だけレジスタregAが選択されていない場合(ステップS13 No)、ステップS2が実行される。
次に、図5を参照して、冗長論理回路の検出処理について具体的に説明する。図5は、冗長レジスタの検出処理の一例を説明する図である。
図5において、第1のレジスタregAと、第2のレジスタregBは、共に、ビット幅が「8」である。図5に示すように、第1のレジスタregAの波形データは、8ビットデータ「8’hE4」「8’h2A」「8’h97」のように変化するシーケンスを有する。また、第2のレジスタregBの波形データが、例えば、8ビットデータ「8’hE4」「8’h2A」のように変化するシーケンスを有する。
なお、例えば「8’hE4」は、16進数で「E4」であることを示す。他の8ビットでも同様である。また、制約条件として、スループット長が2クロック分の周期として定められているものとする。従って、第1の論理回路の波形Wに相当するのは、「8’hE4」「8’h2A」のシーケンスである。
パターンマッチング部15は、スループット長に対応するレジスタregAの波形データのシーケンスを、レジスタregBの波形データのシーケンスと比較する。これにより、レジスタregBの波形データの2サイクル目の8ビットデータ「8’hE4」が、スループット長に対応するレジスタregAの波形データの先頭の8ビットデータ「8’hE4」と一致する。換言すれば、値「8’hE4」を取るサイクルが、一致サイクルである。
一致サイクルが判明したので、パターンマッチング部15は、スループット長に対応するレジスタregAの波形データと、レジスタregBの波形データの2サイクル目以降とを比較する。この場合、図5に示すように、両者が一致する。これにより、レジスタregAとレジスタregBとの組が、冗長回路として検出される。
なお、図5において、開始点は、例えば、スループット長においてパターンマッチングを開始するタイミングを示し、スループット長の先頭に一致する。スループット長は、クロックclockを基準とする時間により表され、波形データの長さに相当する。終了点は、例えばスループット長においてパターンマッチングを終了するタイミングを示し、スループット長の最後に一致する。
パターンマッチング部15が実行する冗長レジスタの検出処理は、以上の例に限られない。例えば、以下に述べるように、比較対象である2個のレジスタの波形データが、部分的にしか一致していない場合でも、当該2個のレジスタを冗長レジスタとして検出するようにしても良い。
以下、図6及び図7を参照して、冗長論理回路検出装置1のパターンマッチング部15が実行する部分一致の冗長レジスタの検出処理について説明する。図6及び図7は、一体となって冗長回路の部分一致の冗長検出処理フローを示す。
パターンマッチング部15は、図3のステップS1〜S6と同様にして、ステップS11〜S16を実行する。
次に、パターンマッチング部15は、比較対象の2個のレジスタregA及びレジスタregBのビット幅の差分に基づいて、処理を(ビット幅の差分+1)回だけループさせるためのパラメータを設定する(ステップS17)。前記パラメータの初期値は、例えば(ビット幅の差分+1)とされる。
次に、パターンマッチング部15は、図3のステップS7〜S10と同様にして、ステップS18〜S111を実行する。
次に、パターンマッチング部15は、(ビット幅の差分+1)回のループが終了したか否かを調べる(ステップS112)。例えば、パターンマッチング部15は、前記パラメータを「−1」だけデクリメントして、その値が「0」か否かを調べる。(ビット幅の差分+1)回のループが終了していない場合(ステップS112 No)、パターンマッチング部15は、ステップS17を繰り返す。(ビット幅の差分+1)回のループが終了した場合(ステップS112 Yes)、パターンマッチング部15は、図4のステップS11〜S13と同様にして、ステップS113〜S115を実行する。
図8は、冗長レジスタの部分一致の検出処理の一例を説明する図である。
図8において、レジスタregAはビット幅が「1」のレジスタであり、レジスタregBはビット幅が「2」のレジスタである。なお、前述したように、図3及び図4の処理においては、パターンマッチング部15は、レジスタregAのビット幅より大きいビット幅を有するレジスタも、レジスタregBの選択の対象から除外する。従って、図8の例は、レジスタregAのビット幅より大きいビット幅を有するレジスタも、レジスタregBの選択の対象から除外しない例である。
この場合、パターンマッチング部15は、波形Wに相当するレジスタregAのシーケンスと、レジスタregBの波形でパターンマッチングを行う。具体的には、レジスタregAのシーケンスと、レジスタregBの0ビットの信号regB[0]及び1ビットの信号regB[1]の各々とを比較する。この場合、図8に示すように、レジスタregAのシーケンスは、レジスタregB[0]のシーケンスと一致する。これにより、レジスタregAと、レジスタregB[0]との組が、冗長回路と推定される冗長レジスタの組として、記憶部14に記憶される。
図5及び図8に示す冗長レジスタの検出処理において、レジスタのビット幅ではなく、第1のレジスタregAのシーケンスと、第2のレジスタregBのシーケンスが完全に一致していなくても、冗長レジスタとして検出するようにしても良い。
この場合、例えば、制約条件は、第1のレジスタregAについての波形データのシーケンスと、第2のレジスタregBについての波形データのシーケンスとが一致する割合を定める。この割合は、経験的に定めることができ、予め設定される。パターンマッチング部15は、第1のレジスタregAについての波形データのシーケンスと割合より多く一致するシーケンスを有するレジスタを、第2のレジスタregBとして検出する。
例えば、図3及び図4の処理のステップS8において一致点を検出した後、レジスタregAの波形データのシーケンスと、レジスタregBの波形データのシーケンスが不一致であっても、前記割合以上一致していれば、冗長回路と推定されるレジスタの組として、検出する。これにより、波形データのシーケンスが、部分的に一致するレジスタを、冗長レジスタとして検出することができる。
図9は、冗長レジスタの部分一致の検出処理の他の一例を説明する図である。
図5及び図8に示す冗長レジスタの検出処理において、第1のレジスタregAのシーケンスがある値が連続する連続区間を含む場合、当該連続区間を第2のレジスタregBのシーケンスとの比較に用いないようにしても良い。
図9に示すように、第1のレジスタregAについての波形データのシーケンスが、ある値が連続する連続区間を含む場合がある。例えば、1個のスループットにおいて、8ビットデータ「8’h00」が2個連続する場合がある。この連続区間においては、第1のレジスタregAの波形データは、固定値となる。
この場合、例えば、制約条件は、第1のレジスタregAについての波形データのシーケンスにおいて、連続区間を、複数のレジスタに含まれる第1のレジスタregA以外のレジスタについての波形データのシーケンスとの比較から除外する第1の除外区間とすることを定める。パターンマッチング部15は、第1のレジスタregAについての波形データのシーケンスから第1の除外区間を除外した区間を、複数のレジスタに含まれる第1のレジスタregA以外のレジスタについての波形データのシーケンスと比較する。これにより、レジスタregAの波形データにおけるスループットから8ビットデータ「8’h00」を除いた8ビットデータ「8’hE4」及び「8’h2A」が、レジスタregBの波形データと一致する。この結果、第2のレジスタregBが検出される。
例えば比較すべき2つのレジスタが、固定値を保持し続けている場合は、機能的に全く関係がないレジスタであっても、双方の波形データが疑似的に一致してしまう。図9の例によれば、固定値が継続することによる疑似的な一致を検出しないようにすることができる。
なお、レジスタregAのスループットにおけるシーケンスが全て同一値(固定値)である場合には、レジスタregAの処理をスキップして、次のレジスタのパターンマッチング処理を実行する。
図9は第1のレジスタregAのシーケンスが連続区間を含む場合の例であるが、第2のレジスタregBのシーケンスが連続区間を含む場合でも、当該連続区間を第1のレジスタregAとの比較に用いないようにしても良い。
この場合、例えば、制約条件は、複数のレジスタに含まれる第1のレジスタregA以外のレジスタについての波形データのシーケンスにおいて、連続区間を、第1のレジスタregAについての波形データのシーケンスとの比較から除外する第2の除外区間とすることを定める。パターンマッチング部15は、複数のレジスタに含まれる第1のレジスタregA以外のレジスタについての波形データのシーケンスから第2の除外区間を除外した区間を、第1のレジスタregAについての波形データのシーケンスと比較する。これにより、図9の例と同様に、第2のレジスタを検出することができる。
以上の例は冗長レジスタの検出処理の例であるが、冗長論理回路は、レジスタに限られない。例えば、冗長論理回路として、冗長なカウンタを検出することもできる。
図10は、冗長カウンタの検出処理の一例を示す。
図10において、回路3は、検出しようとしている冗長回路、換言すれば、複数のカウンタ31を含む。また、回路3は、複数の後段回路32を含む。複数のカウンタ31において、第1の論理回路として選択されたカウンタをカウンタ31Aと表し、第2の論理回路として選択されたカウンタをカウンタ31Bと表し、他のカウンタは省略する。
カウンタ31Aとカウンタ31Bは、相互に冗長な回路である。後段回路32Aは、カウンタ31Aの出力に接続された回路であり、後段回路32Bは、カウンタ31Bの出力に接続された回路である。
カウンタ31Aとカウンタ31Bには、動作クロックとしてクロックclkが入力され、入力信号enとして信号Sampleが入力され、リセット信号rstとして信号Frameが入力される。信号Sampleは、「0,1,0,1,・・・」を繰り返す信号である。信号Frameは、信号Sampleの256周期毎に、信号Sampleの1周期の間だけ「1」となり、それ以外は「0」である信号である。
カウンタ31Aは、信号Frameが入力されたタイミングで、その出力が「0」にリセットされ、出力が「15」に達するまで信号Sample(の「1」)をカウントし、一旦出力が「15」に達すると、これをリセットされるまで継続して出力する。カウンタ31Bは、信号Frameが入力されたタイミングで、その出力が「0」にリセットされ、出力が「255」に達するまで信号Sample(の「1」)をカウントする。
従って、カウンタ31Aの出力は、リセットから最初に「15」になるまでは、カウンタ31Bの出力と同じである。このため、カウンタ31Aは、カウンタ31Bと統合することができるという意味で、冗長であると考えられる。
図11は、冗長論理回路検出装置の構成の他の一例を示す図である。
図11の冗長論理回路検出装置は、制約条件入力部13と制約条件格納部131とを含まない。従って、図11の冗長論理回路検出装置においては、レジスタ情報と波形データとが用意される。また、制約条件入力部13等に代えて、繰返しシーケンス検出部17が設けられる。繰返しシーケンス検出部17は、第1のレジスタregAについての波形データのシーケンスにおいて、同一のシーケンスが繰り返される繰返し区間を検出する。なお、検出される論理回路は、レジスタに限られない。
パターンマッチング部15は、繰返しシーケンス検出部17により検出された繰返し区間を、第2のレジスタregBの検出に用いられる区間の開始点、終了点及び長さとして用いる。具体的には、パターンマッチング部15は、第1のレジスタregAについての波形データのシーケンスにおける繰返し区間を、第1のレジスタregA以外のレジスタについての波形データのシーケンスと比較する。これにより、パターンマッチング部15は、第1のレジスタregAについての波形データのシーケンスと一致する波形データのシーケンスを有する、第2のレジスタregBを検出する。これにより、制約条件を入力することなく、繰り返し区間(繰返しシーケンス)をスループットとして用いて、冗長なレジスタを検出することができる。
次に、図12を参照して、冗長レジスタの繰り返しシーケンスの検出処理について具体的に説明する。図12は、冗長レジスタの繰り返しシーケンス検出処理の一例を示す図である。
図12において、第1のレジスタregAの波形データは、8ビットデータ「8’h00」「8’h01」「8’h02」「8’h03」のように変化するシーケンスを有する。例えば、サンプル長N=3とした場合において、8ビットデータ「8’h00」「8’h01」「8’h02」をサンプルとして取得し、順次1周期づつずらして、後続の波形データと比較する。これにより、8ビットデータ「8’h00」「8’h01」「8’h02」が、4周期後の波形データと一致することが検出される。この結果、当該8ビットデータ「8’h00」「8’h01」「8’h02」の区間が、第1のレジスタregAの繰返し区間とされる。換言すれば、当該8ビットデータ「8’h00」「8’h01」「8’h02」が、第2のレジスタregBの検出のために用いられる。
なお、サンプル長は、繰返し区間が検出されるまで、「2」から順に「+1」づつ予め定められたビット長までインクリメントされる。また、サンプルは、繰返し区間が検出されるまで、波形データの先頭から順に1周期づつずらして取得される。
以上の例においては、2個の論理回路の波形データのシーケンスの一致を検出することにより、当該冗長な論理回路を検出する。しかし、冗長な論理回路は、波形データのシーケンスの一致の検出以外にも、以下の方法によっても検出することができる。
例えば、この場合、制約条件は、第1のレジスタregAについての波形データのシーケンスとの差分が一定である波形データのシーケンスを有するレジスタを、第2のレジスタregBとして検出することを定める。パターンマッチング部15は、第1のレジスタregAについての波形データのシーケンスとの差分が一定である波形データのシーケンスを有するレジスタを、第2のレジスタとして検出する。
例えば、2個のカウンタの出力値の差分が一定である(固定である)場合がある。この場合、当該2個のカウンタの波形データのシーケンスが一致することは無い。しかし、2個のカウンタの出力値の差分が一定である場合、一方のカウンタの出力値に当該差分に相当する値を加算(又は減算)すれば、双方のカウンタの出力は同一となる。このため、当該2個のカウンタは統合することができるという意味で、冗長である。従って、当該2個のカウンタは冗長カウンタとして検出される。
1 冗長論理回路検出装置
11 レジスタ情報入力部
12 波形データ入力部
13 制約条件入力部
14 記憶部
15 パターンマッチング部
16 出力部
111 レジスタ情報格納部
121 波形データ格納部
131 制約条件格納部
161 検出結果格納部

Claims (10)

  1. 記憶部が、論理回路の論理設計情報に基づいて合成された複数の単位論理回路を示す単位論理回路情報と、前記複数の単位論理回路を含む前記論理回路についての論理シミュレーションの実行結果である波形データと、前記波形データの比較の条件を定める制約条件とを格納し、
    パターンマッチング部が、前記制約条件に従って、前記複数の単位論理回路に含まれる第1の単位論理回路についての前記波形データのシーケンスと一致する波形データのシーケンスを有する、前記複数の単位論理回路に含まれる第2の単位論理回路を検出し、
    出力部が、前記パターンマッチング部により検出された前記第1の単位論理回路と第2の単位論理回路とを冗長回路情報として出力する
    ことを特徴とする冗長論理回路検出方法。
  2. 単位論理回路情報入力部が、前記単位論理回路情報を前記記憶部に入力し、
    波形データ入力部が、前記波形データを前記記憶部に入力し、
    制約条件入力部が、前記制約条件を前記記憶部に入力する
    ことを特徴とする請求項1に記載の冗長論理回路検出方法。
  3. 前記単位論理回路情報が、前記論理回路の論理設計情報に基づいて、論理合成ツールにより合成された情報であり、
    前記波形データが、前記論理回路の論理設計情報についての論理シミュレータによる論理シミュレーションの実行結果である
    ことを特徴とする請求項2に記載の冗長論理回路検出方法。
  4. 前記制約条件が、前記第1の単位論理回路についての前記波形データのシーケンスにおいて、前記第2の単位論理回路の検出に用いられる当該区間の開始点、終了点及び長さを定め、
    前記パターンマッチング部が、前記第1の単位論理回路についての前記波形データのシーケンスにおける前記制約条件により指定された区間を、前記複数の単位論理回路に含まれる前記第1の単位論理回路以外の単位論理回路についての前記波形データのシーケンスと比較することにより、前記第2の単位論理回路を検出する
    ことを特徴とする請求項1に記載の冗長論理回路検出方法。
  5. 前記制約条件が、前記第1の単位論理回路についての前記波形データのシーケンスと前記第2の単位論理回路についての前記波形データのシーケンスとが一致する割合を定め、
    前記パターンマッチング部が、前記第1の単位論理回路についての前記波形データのシーケンスと前記割合より多く一致するシーケンスを有する単位論理回路を、前記第2の単位論理回路として検出する
    ことを特徴とする請求項1に記載の冗長論理回路検出方法。
  6. 前記制約条件が、前記第1の単位論理回路についての前記波形データのシーケンスにおいて、ある値が連続する連続区間を、前記複数の単位論理回路に含まれる前記第1の単位論理回路以外の単位論理回路についての前記波形データのシーケンスとの比較から除外する第1の除外区間とすることを定め、
    前記パターンマッチング部が、前記第1の単位論理回路についての前記波形データのシーケンスから前記第1の除外区間を除外した区間を、前記複数の単位論理回路に含まれる前記第1の単位論理回路以外の単位論理回路についての前記波形データのシーケンスと比較することにより、前記第2の単位論理回路を検出する
    ことを特徴とする請求項1に記載の冗長論理回路検出方法。
  7. 前記制約条件が、前記複数の単位論理回路に含まれる前記第1の単位論理回路以外の単位論理回路についての前記波形データのシーケンスにおいて、ある値が連続する連続区間を、前記第1の単位論理回路についての前記波形データのシーケンスとの比較から除外する第2の除外区間とすることを定め、
    前記パターンマッチング部が、前記複数の単位論理回路に含まれる前記第1の単位論理回路以外の単位論理回路についての前記波形データのシーケンスから前記第2の除外区間を除外した区間を、前記第1の単位論理回路についての前記波形データのシーケンスと比較することにより、前記第2の単位論理回路を検出する
    ことを特徴とする請求項1に記載の冗長論理回路検出方法。
  8. 前記制約条件が、前記第1の単位論理回路についての前記波形データのシーケンスとの差分が一定である波形データのシーケンスを有する単位論理回路を、前記第2の単位論理回路として検出することを定め、
    前記パターンマッチング部が、前記第1の単位論理回路についての前記波形データのシーケンスとの差分が一定である波形データのシーケンスを有する単位論理回路を、前記第2の単位論理回路として検出する
    ことを特徴とする請求項1に記載の冗長論理回路検出方法。
  9. 記憶部が、論理回路の論理設計情報に基づいて合成された複数の単位論理回路を示す単位論理回路情報と、前記複数の単位論理回路を含む前記論理回路についての論理シミュレーションの実行結果である波形データとを格納し、
    繰返しシーケンス検出部が、前記複数の単位論理回路に含まれる第1の単位論理回路についての前記波形データのシーケンスにおいて、同一のシーケンスが繰り返される繰返し区間を検出し、
    パターンマッチング部が、前記繰返しシーケンス検出部により検出された前記繰返し区間を前記複数の単位論理回路に含まれる第2の単位論理回路の検出に用いられる区間の開始点、終了点及び長さとして用いて、前記第1の単位論理回路についての前記波形データのシーケンスにおける前記繰返し区間を前記第1の単位論理回路以外の単位論理回路についての前記波形データのシーケンスと比較して、前記第1の単位論理回路についての前記波形データのシーケンスと一致する波形データのシーケンスを有する、前記第2の単位論理回路を検出し、
    出力部が、前記パターンマッチング部により検出された前記第1の単位論理回路と第2の単位論理回路とを冗長回路情報として出力する
    ことを特徴とする冗長論理回路検出方法。
  10. 論理回路の論理設計情報に基づいて合成された複数の単位論理回路を示す単位論理回路情報と、前記複数の単位論理回路を含む前記論理回路についての論理シミュレーションの実行結果である波形データと、前記波形データの比較の条件を定める制約条件とを格納する記憶部と、
    前記制約条件に従って、前記複数の単位論理回路に含まれる第1の単位論理回路についての前記波形データのシーケンスと一致する波形データのシーケンスを有する、前記複数の単位論理回路に含まれる第2の単位論理回路を検出するパターンマッチング部と、
    前記パターンマッチング部により検出された前記第1の単位論理回路と第2の単位論理回路とを冗長回路情報として出力する出力部とを含む
    ことを特徴とする冗長論理回路検出装置。
JP2009204193A 2009-09-04 2009-09-04 冗長論理回路検出方法及び冗長論理回路検出装置 Ceased JP2011054070A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009204193A JP2011054070A (ja) 2009-09-04 2009-09-04 冗長論理回路検出方法及び冗長論理回路検出装置
US12/875,236 US8225253B2 (en) 2009-09-04 2010-09-03 Redundant logic circuit detection method and device and computer-readable recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009204193A JP2011054070A (ja) 2009-09-04 2009-09-04 冗長論理回路検出方法及び冗長論理回路検出装置

Publications (1)

Publication Number Publication Date
JP2011054070A true JP2011054070A (ja) 2011-03-17

Family

ID=43648636

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009204193A Ceased JP2011054070A (ja) 2009-09-04 2009-09-04 冗長論理回路検出方法及び冗長論理回路検出装置

Country Status (2)

Country Link
US (1) US8225253B2 (ja)
JP (1) JP2011054070A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9582619B1 (en) * 2013-10-21 2017-02-28 Xilinx, Inc. Simulation of a circuit design block using pattern matching

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02285433A (ja) * 1989-04-27 1990-11-22 Nec Corp 冗長回路検出方法
JPH1021291A (ja) * 1996-06-28 1998-01-23 Nec Corp 類似部分回路抽出を用いた論理合成方法及び論理合成装置
JP2000207440A (ja) * 1999-01-18 2000-07-28 Toshiba Corp 半導体集積回路の設計検証装置、方法及び記憶媒体
JP2003196342A (ja) * 2001-12-27 2003-07-11 Toshiba Corp Lsi設計検証装置、lsi設計検証方法、及びlsi設計検証プログラム
JP2006323856A (ja) * 2006-06-16 2006-11-30 Toshiba Corp Lsi設計検証装置、lsi設計検証方法、及びlsi設計検証プログラム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0520383A (ja) 1991-07-09 1993-01-29 Hokuriku Nippon Denki Software Kk 論理検証方式
JP2752923B2 (ja) * 1995-07-18 1998-05-18 日本電気アイシーマイコンシステム株式会社 論理シミュレーション装置および論理回路情報作成方法
JPH1185832A (ja) 1997-09-16 1999-03-30 Toshiba Corp 回路変換方法および回路設計支援装置および記録媒体
US6336205B1 (en) * 1998-11-12 2002-01-01 Matsushita Electric Industrial Co., Ltd. Method for designing semiconductor integrated circuit
US6557147B1 (en) * 2000-05-01 2003-04-29 Hewlett-Packard Company Method and apparatus for evaluating a circuit
US7337100B1 (en) * 2003-06-12 2008-02-26 Altera Corporation Physical resynthesis of a logic design
US6983435B2 (en) * 2003-06-19 2006-01-03 International Business Machines Corporation Integrated design verification and design simplification system
US7058914B2 (en) * 2003-07-08 2006-06-06 International Business Machines Corporation Automatic latch compression/reduction
US7287235B1 (en) * 2004-08-06 2007-10-23 Calypto Design Systems, Inc. Method of simplifying a circuit for equivalence checking
US7757189B1 (en) * 2005-09-23 2010-07-13 Altera Corporation Super duplicate register removal
US7412677B1 (en) * 2006-02-22 2008-08-12 Altera Corporation Detecting reducible registers

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02285433A (ja) * 1989-04-27 1990-11-22 Nec Corp 冗長回路検出方法
JPH1021291A (ja) * 1996-06-28 1998-01-23 Nec Corp 類似部分回路抽出を用いた論理合成方法及び論理合成装置
JP2000207440A (ja) * 1999-01-18 2000-07-28 Toshiba Corp 半導体集積回路の設計検証装置、方法及び記憶媒体
JP2003196342A (ja) * 2001-12-27 2003-07-11 Toshiba Corp Lsi設計検証装置、lsi設計検証方法、及びlsi設計検証プログラム
JP2006323856A (ja) * 2006-06-16 2006-11-30 Toshiba Corp Lsi設計検証装置、lsi設計検証方法、及びlsi設計検証プログラム

Also Published As

Publication number Publication date
US20110061033A1 (en) 2011-03-10
US8225253B2 (en) 2012-07-17

Similar Documents

Publication Publication Date Title
CA2708116C (en) Integrated circuit analysis systems and methods
JP2005512236A (ja) タイミンググラフ縮小によるタイミングモデル抽出
US8302041B1 (en) Implementation flow for electronic circuit designs using choice networks
JP2008065496A (ja) Lsiの消費電力ピーク見積プログラム及びその装置
JP5450840B2 (ja) プログラムの実行性能評価のためのテストデータ生成方法
JP2006285333A (ja) 動作合成装置及び方法
JP4200465B2 (ja) 半導体集積回路の設計方法及び設計システム
US9081930B1 (en) Throughput during high level synthesis
Hage et al. On testing of superscalar processors in functional mode for delay faults
JP2008123056A (ja) 論理回路のタイミング制約生成システムおよび論理回路のタイミング制約生成方法、制御プログラム、可読記録媒体
US10878150B1 (en) Loop optimization in a circuit design netlist
JP2011054070A (ja) 冗長論理回路検出方法及び冗長論理回路検出装置
JP2006259820A (ja) 故障検出改善装置、故障検出改善プログラム、故障検出改善方法
JP2007304699A (ja) 回路連言標準形生成方法及び回路連言標準形生成装置並びにハザードチェック方法及びハザードチェック装置
Tziouvaras et al. Instruction-flow-based timing analysis in pipelined processors
JP2004171149A (ja) マルチサイクルパス解析方法
JP5621792B2 (ja) 半導体回路設計支援装置及び方法、並びに半導体回路設計支援プログラム
JP2003216672A (ja) 半導体回路設計支援装置及び方法、並びに半導体回路設計支援プログラム
JP2009271653A (ja) 消費電力見積方法、回路設計支援装置及びプログラム
JP2004145712A (ja) 半導体設計における動作記述の等価性検証方法
JP2010257003A (ja) 論理等価性検証システム、論理等価性検証方法、半導体集積回路の製造方法、制御プログラムおよび可読記憶媒体
JP5262678B2 (ja) 動作合成システム、動作合成方法、及び動作合成用プログラム
JP6394278B2 (ja) 有限状態機械の設計検証装置、設計検証方法、及び設計検証プログラム
JP2008245164A (ja) 順序回路及びその高速化方法
JP2002073713A (ja) 回路生成装置、回路生成方法及びcad設計装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120510

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130212

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130410

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130723

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130924

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140318

A045 Written measure of dismissal of application [lapsed due to lack of payment]

Free format text: JAPANESE INTERMEDIATE CODE: A045

Effective date: 20140729