(57)【要約】【課題】  回路設計の過程で冗長回路を検出し、かつ冗長回路を表示可能な情報処理方法を提供する。【解決手段】  ハードウェア記述言語を用いた回路動作情報およびその回路動作情報を論理合成してネットリストに変換するためのライブラリが格納された記憶部と、表示部とを備えた情報処理装置による冗長回路を検出する情報処理方法であって、記憶部に格納された回路動作情報を一文毎に階層化するステップと、ライブラリを参照し、階層化された回路動作情報を論理合成してネットリストに変換するステップと、論理的に冗長な箇所となる冗長故障箇所をネットリストから検出するステップと、冗長故障箇所を含む冗長回路を示す情報を表示部に表示させるステップとを有するものである。【選択図】  図１
2006024008.tif 000002
【特許請求の範囲】
【請求項１】
ハードウェア記述言語を用いて回路の動作が記述された回路動作情報および該回路動作情報を論理合成して回路パターンの情報であるネットリストに変換するためのライブラリが格納された記憶部と、表示部とを備えた情報処理装置による冗長回路を検出する情報処理方法であって、
前記記憶部に格納された回路動作情報を一文毎に階層化するステップと、
前記ライブラリを参照し、階層化された前記回路動作情報を論理合成して前記ネットリストに変換するステップと、
論理的に冗長な箇所となる冗長故障箇所を前記ネットリストから検出するステップと、
前記冗長故障箇所を含む前記冗長回路を示す情報を前記表示部に表示させるステップと、
を有する情報処理方法。
【請求項２】
前記回路動作情報を階層化する際、単位回路の動作が記述された回路ブロック毎に異なるブロック名を付与するステップを有し、
前記冗長回路を示す情報が、前記冗長故障箇所を含む回路ブロックの前記ブロック名である請求項１記載の情報処理方法。
【請求項３】
ハードウェア記述言語を用いて回路の動作が記述された回路動作情報および該回路動作情報を論理合成して回路パターンの情報であるネットリストに変換するためのライブラリが格納された記憶部と、
冗長回路を示す情報を表示するための表示部と、
前記記憶部に格納された回路動作情報を一文毎に階層化した後、前記ライブラリを参照し、階層化された該回路動作情報を論理合成してネットリストに変換し、その後、論理的に冗長な箇所となる冗長故障箇所を前記ネットリストから検出して該冗長故障箇所を含む前記冗長回路を示す情報を前記表示部に表示させるデータ処理部と、
を有する情報処理装置。
【請求項４】
前記データ処理部は、前記回路動作情報を階層化する際、単位回路の動作が記述された回路ブロック毎に異なるブロック名を付与し、
前記冗長回路を示す情報が、前記冗長故障箇所を含む回路ブロックの前記ブロック名である請求項３記載の情報処理装置。
【請求項５】
ハードウェア記述言語を用いて回路の動作が記述された回路動作情報および該回路動作情報を論理合成して回路パターンの情報であるネットリストに変換するためのライブラリが格納された記憶部と、表示部とを備えたコンピュータに冗長回路を検出させるためのプログラムであって、
前記記憶部に格納された回路動作情報を一文毎に階層化するステップと、
前記ライブラリを参照し、階層化された前記回路動作情報を論理合成してネットリストに変換するステップと、
論理的に冗長な箇所となる冗長故障箇所を前記ネットリストから検出するステップと、
前記冗長故障箇所を含む前記冗長回路を示す情報を前記表示部に表示させるステップとを有する処理を前記コンピュータに実行させるためのプログラム。
【請求項６】
前記回路動作情報を階層化する際、単位回路の動作が記述された回路ブロック毎に異なるブロック名を付与するステップを有し、
前記冗長回路を示す情報が、前記冗長故障箇所を含む回路ブロックの前記ブロック名である請求項５記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、回路の設計情報から冗長回路を検出するための情報処理方法、情報処理装置、およびその方法をコンピュータに実行させるためのプログラムに関する。
【背景技術】
【０００２】
ＬＳＩの中でも特定用途向けＩＣ（ＡＳＩＣ：Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）では、回路設計にかかる期間を短くするために、設計者がハードウェア記述言語（ＨＤＬ：Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）を用いて回路動作を記述した後、コンピュータが予め準備されたライブラリを参照してその回路動作の記述に対応した回路パターンであるネットリストを作製する方法がとられている。ネットリストはトランジスタレベルの構成を示すセルで組み立てられており、半導体製造の露光用マスクに転写可能なデータにほぼ等しい。設計者が回路動作を記述することで、製造用マスクの回路パターンがコンピュータにより作製されるため、回路設計にかかる期間が従来よりも大幅に短縮できる。ＨＤＬにより回路の動作が記述された回路動作情報としてＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）が一般的である。ＲＴＬの一例について簡単に説明する。
【０００３】
図５はＲＴＬの記述例を示す図である。ここでは、ＲＴＬがＶｅｒｉｌｏｇ−ＨＤＬで記述された場合を示している。
【０００４】
図５は、ｎ通りの入力に対して「１」の出力が１通りであることをチェックする１／ｎチェック回路である。ここでは、ｎの値は４となる。図５においてＡおよびＢが「０」であるとすると、１番目の継続代入文「ａｓｓｉｇｎ」の右辺の「〜Ａ」および「〜Ｂ」はどちらも「〜（否定）」により「１」となる。そのため、左辺のＳ０は、「１」と「１」のＡＮＤの結果の「１」となる。２番目以降の継続代入文の左辺はいずれも「０」となり、Ｓ１＝Ｓ２＝Ｓ３＝０となる。そして、Ｓ０〜Ｓ３の値を並べると、「１０００」となる。この値は「ｃａｓｅ」文の１番目「４’ｂ１０００」に相当し、この場合「ＤＯＵＴ＝１’ｂ０」となり、出力は「０」となる。
【０００５】
このように、ＡおよびＢが正常な状態で入力されると、Ｓ０、Ｓ１、Ｓ２およびＳ３のうち１つしか「１」が立たないように作られており、「ｃａｓｅ」文中のｄｅｆａｕｌｔは適用されない。
【０００６】
一方、作製されたＬＳＩの信号線に生じたスタック・フォールト（単一縮退故障）により入力信号が正常でない場合、「ｃａｓｅ」文中のｄｅｆａｕｌｔが適用され、ＤＯＵＴに「１」が立ち、「ａｓｓｉｇｎ  ＣＨＥＣＫ＝ＤＯＵＴ＆ＥＣＨＫ」の文によるチェック機構が働いて、故障の発生を示す信号が「ＣＨＥＣＫ」に出力される。なお、以下では、入力信号が論理値「０」に固定される単一縮退故障を０縮退故障と称し、入力信号が論理値「１」に固定される単一縮退故障を１縮退故障と称する。
【０００７】
このようにして、図５に示した１／ｎチェック回路に代表されるような冗長回路を予め組み込んで信頼性を高める手法がとられている。ところが、このような冗長回路は通常では論理的にありえない回路であるため、ＲＴＬからネットリストに変換する過程で論理の最適化によって冗長回路が削除されてしまう可能性がある。このことを図５に示した１／ｎチェック回路の例で説明する。
【０００８】
図５から通常状態ではＤＯＵＴ＝０になるので、信号ＣＨＥＣＫは、数値の“０”とＥＣＨＫとの＆（ＡＮＤ）をとることになる。ＡＮＤをとる２つの数値のうち、一方が“０”であると他方のＥＣＨＫの値が何であっても、信号ＣＨＥＣＫの値は“０”になり、「ａｓｓｉｇｎ  ＣＨＥＣＫ＝ＤＯＵＴ＆ＥＣＨＫ」の文を設けている意味がなくなってしまう。そのため、この部分は不必要な回路であるとみなされ、最適化で削除されてしまう。
【０００９】
冗長回路には、上述したように、信頼性のために意図的に設けられているものがあるが、実際に論理的に冗長であることから不必要なものもある。いずれの場合も、単一縮退故障のような故障原因としてコンピュータに認識される冗長故障箇所をＲＴＬの記述中に含むことになる。冗長故障箇所が最適化で削除されてしまう理由は次の通りである。論理合成の基本最適化手法の一つとして、ゲートやモジュール同士を接続している物理的な状態を示すネットについて、１縮退故障を検出できないネットは１クランプに置き換え、０縮退故障を検出できないネットは０クランプに置き換えて最適化を行うものがある。これは縮退故障を検出できないネットはクランプに変更しても外部から見た回路の動作に変化がないということに基づいている（例えば、非特許文献１参照）。
【００１０】
最適化処理の際、コンピュータは冗長回路が信頼性のためのものか、不必要なものかを判断できない。信頼性のための冗長回路が削除されるのを防止するために、最適化処理の前に設計者が予めＲＴＬを見て最適化処理の対象から外す回路を指定する方法が開示されている（例えば、特許文献１参照）。
【非特許文献１】Giovanni De Micheli著、「Synthesis and Optimization of Digital Circuits」、（米国）、マグロウ・ヒル社、1994年、p.408-409
【特許文献１】特開平１１−１０２３８６号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
上記特許文献１の方法では、信頼性のための冗長回路が多く存在する場合、コンピュータに論理合成をさせる前に、設計者がそれらの冗長回路をＲＴＬ中から全て見つけ出し、その全てに最適化から保護する処理を行わなければならず、多大な工数がかかっていた。
【００１２】
本発明は上述したような従来の技術が有する問題点を解決するためになされたものであり、回路設計の過程で冗長回路を検出し、かつ冗長回路を表示可能な情報処理方法、情報処理装置、およびその方法をコンピュータに実行させるためのプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記目的を達成するための本発明の情報処理方法は、ハードウェア記述言語を用いて回路の動作が記述された回路動作情報および該回路動作情報を論理合成して回路パターンの情報であるネットリストに変換するためのライブラリが格納された記憶部と、表示部とを備えた情報処理装置による冗長回路を検出する情報処理方法であって、
前記記憶部に格納された回路動作情報を一文毎に階層化するステップと、
前記ライブラリを参照し、階層化された前記回路動作情報を論理合成して前記ネットリストに変換するステップと、
論理的に冗長な箇所となる冗長故障箇所を前記ネットリストから検出するステップと、
前記冗長故障箇所を含む前記冗長回路を示す情報を前記表示部に表示させるステップと、
を有するものである。
【００１４】
本発明では、回路動作情報を一文毎に階層化しているため、論理合成で冗長回路を含む文が削除されることがない。また、冗長故障箇所を含む冗長回路が抽出されて冗長回路を示す情報が表示部に表示される。そのため、設計者は、表示部に出力される情報から、信頼性のために残すべき冗長回路を特定することが可能となる。
【００１５】
一方、上記目的を達成するための本発明の情報処理装置は、ハードウェア記述言語を用いて回路の動作が記述された回路動作情報および該回路動作情報を論理合成して回路パターンの情報であるネットリストに変換するためのライブラリが格納された記憶部と、
冗長回路を示す情報を表示するための表示部と、
前記記憶部に格納された回路動作情報を一文毎に階層化した後、前記ライブラリを参照し、階層化された該回路動作情報を論理合成してネットリストに変換し、その後、論理的に冗長な箇所となる冗長故障箇所を前記ネットリストから検出して該冗長故障箇所を含む前記冗長回路を示す情報を前記表示部に表示させるデータ処理部と、
を有する構成である。
【００１６】
また、上記目的を達成するための本発明のプログラムは、ハードウェア記述言語を用いて回路の動作が記述された回路動作情報および該回路動作情報を論理合成して回路パターンの情報であるネットリストに変換するためのライブラリが格納された記憶部と、表示部とを備えたコンピュータに冗長回路を検出させるためのプログラムであって、
前記記憶部に格納された回路動作情報を一文毎に階層化するステップと、
前記ライブラリを参照し、階層化された前記回路動作情報を論理合成してネットリストに変換するステップと、
論理的に冗長な箇所となる冗長故障箇所を前記ネットリストから検出するステップと、
前記冗長故障箇所を含む前記冗長回路を示す情報を前記表示部に表示させるステップとを有する処理を前記コンピュータに実行させるものである。
【発明の効果】
【００１７】
本発明では、設計者が意図的に組み込んだ冗長回路の一覧が検出されるため、最適化から保護すべき冗長回路を容易に特定することが可能となる。
【発明を実施するための最良の形態】
【００１８】
本発明の情報処理方法は、冗長回路を検出するために、ＲＴＬを一文毎に階層化し、最適化を行ってネットリストに変換した後、冗長故障箇所をネットリストから検出して、冗長故障箇所を有する冗長回路を表示するものである。
【００１９】
本実施例の情報処理システムについて説明する。
【００２０】
図１は本実施例の情報処理システムの一構成例を示すブロック図である。図１に示すように、情報処理システムは、情報記憶装置１と、データ処理装置２と、ディスプレイ装置等の表示部３とを有する構成である。
【００２１】
情報記憶装置１には、ＲＴＬ１１と、階層化ＲＴＬ１２と、ネットリスト１３と、冗長回路候補リスト１４とが格納される。
【００２２】
ＲＴＬ１１はＶｅｒｉｌｏｇ−ＨＤＬなどのＨＤＬで回路動作が記述された回路動作情報である。本実施例では、ハードウェア記述言語にＶｅｒｉｌｏｇ−ＨＤＬを用いている。
【００２３】
階層化ＲＴＬ１２はＲＴＬ１１を一文毎に階層化したものである。階層化ＲＴＬ１２において、モジュール構文で定義される単位回路の動作が記述された回路ブロックのブロック名には、対応するＲＴＬ１１のモジュール名、信号名、行番号などが含まれる。
【００２４】
ネットリスト１３は、データ処理装置２が階層化ＲＴＬ１２を論理合成し、最適化した結果による回路パターンである。
【００２５】
冗長回路候補リスト１４は、データ処理装置２によって検出される、冗長回路の候補一覧である。
【００２６】
なお、情報記憶装置１には、論理合成の際にＲＴＬに記述された回路の動作を回路のパターンに置き換えるためのライブラリ（不図示）が格納されているが、ライブラリについては従来と同様なためその詳細な説明を省略する。
【００２７】
データ処理装置２は、ＲＴＬ１１を階層化する階層化部２１と、階層化ＲＴＬ１２を論理合成してネットリスト１３にまとめる論理合成部２２と、ネットリスト１３から冗長故障箇所を検出する冗長故障検出部２３とを有する。また、データ処理装置２は、プログラムにしたがって上記各部の所定の処理を実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）と、プログラムを格納するためのメモリとを備えている。
【００２８】
階層化部２１はＲＴＬ記述を読み込み、それを一文毎に階層化して階層化ＲＴＬ１２を情報記憶装置１に格納する。階層化する際に、元のＲＴＬ１１と対応をとるために、モジュール名、信号名、行番号などをブロック名に付与する。
【００２９】
論理合成部２２は階層を保持したまま、ＲＴＬ１１を論理的に等価なネットリスト１３に変換する。この変換方法については、L. Stok et al.著、「BooleDozer: Logic synthesis for ASICs」、（米国）、IBM Journal of R&D, VOL.40 NO.4 JULY 1996、p.407-430 に詳細に開示されている。このとき、遅延と面積に関して論理の最適化を実行する。ここでは、冗長回路であってもすべて階層化されており、論理合成部２２は階層をまたいで最適化は行わないため、最適化を実行することで冗長回路が削除されることはない。
【００３０】
冗長故障検出部２３は、ネットリスト１３を読み込み、冗長故障箇所を検出し、冗長故障箇所を含む文を整形して冗長回路候補リスト１４を作成して情報記憶装置１に格納する。そして、冗長回路候補リスト１４を表示部３に表示させる。
【００３１】
次に、上述した構成の情報処理システムの動作について説明する。ここでは、ＲＴＬ１１が図５のような記述であった場合とする。
【００３２】
図２は情報処理システムの動作手順を示すフローチャートである。
【００３３】
操作者がＲＴＬ１１をネットリスト１３に変換する旨の指示を入力すると、階層化部２１がＲＴＬ１１を読み込み、一文毎に階層化した階層化ＲＴＬ１２を出力する（ステップＳ１）。図３は図５に示したＲＴＬの下位階層を示す図である。
【００３４】
図３に示すように、新規に作成される下位モジュールとなる回路ブロックのブロック名にはＲＴＬ１１のモジュール名を付与し、インスタンス名には対応するＲＴＬ１１の式の左辺信号名と行番号を付与している。例えば、「ＴＥＳＴ＿Ｓ０＿５（Ｓ０，Ａ，Ｂ）；」には、ＲＴＬ１１の継続代入文「ａｓｓｉｇｎ  Ｓ０＝〜Ａ＆〜Ｂ；」に対応して、左辺信号名「Ｓ０」と行番号「５」が付与されている。これにより元のＲＴＬ１１との対応をとりやすくしている。
【００３５】
図４は図３に示した階層化ＲＴＬの下位階層を示す図である。図４に示すように、図３に示したモジュール名に対応してモジュール定義構文が設けられている。モジュール定義構文のポート宣言文にはピン名にＡおよびＢが定義されている。また、「ＤＯＵＴ」の値に関連するモジュールと、「ＣＨＥＣＫ」の値に関連するモジュールが別になっている。そのため、たとえ「ａｓｓｉｇｎ  ＣＨＥＣＫ＝ＤＯＵＴ＆ＥＣＨＫ」の文に対応するセルに冗長故障箇所が含まれていても、モジュールをまたいで最適化が行われることはない。
【００３６】
ステップＳ１の後、論理合成部２２が階層化ＲＴＬ１２に対して論理合成および最適化を行い、階層化ＲＴＬ１２を論理的に等価なネットリスト１３に変換する（ステップＳ２）。ここでの論理合成は、階層を保持したまま、遅延および面積の最適化を行っている。この論理合成の過程で階層は保持されるため、従来の手順で論理合成をすると削除されてしまう冗長故障箇所も消えたりすることはない。また、ブロック名にはＲＴＬ１１に対応する情報が含まれているので、ネットリスト１３における各セルがＲＴＬ１１のどの文から生成されたものなのかがわかる。
【００３７】
ネットリスト１３では階層の下にセルが構成されている。表１はセルのリストを示す一例である。「ＴＥＳＴ＿ＤＯＵＴ＿１０」および「ＴＥＳＴ＿ＣＨＥＣＫ＿１９」はブロック名であり、Ｕ１、Ｕ２、Ｕ３およびＵ８はセルのインスタンス名である。なお、以下に挙げる以外にもセルが多数存在するが、その記述を省略している。
【００３８】
（表１）
・
TEST_DOUT_10/U1
TEST_DOUT_10/U2
TEST_DOUT_10/U3
・
・
TEST_CHECK_19/U8
・
・
その後、冗長故障検出部２３がネットリスト１３を読み込み、各セルについて入力信号線に縮退故障がある場合とない場合とで出力が変化するかを調べ、出力に変化がないところを冗長故障箇所として検出する（ステップＳ３）。ここでは、冗長故障検出部２３は、図４に示したモジュール「ＴＥＳＴ＿ＣＨＥＣＫ＿１９」の「ａｓｓｉｇｎ  ＣＨＥＣＫ＝ＤＯＵＴ＆ＥＣＨＫ」の文に対応するセルに冗長故障箇所があるものと判定する。また、この文に関連して、ブロック名「ＴＥＳＴ＿ＤＯＵＴ＿１０」のセルも冗長故障箇所があるものと判定する。表２はこれらの検出結果の一例を示すリストである。そして、ＡおよびＢはピン名である。
【００３９】
（表２）
TEST_DOUT_10/U1/A
TEST_DOUT_10/U2/A
TEST_DOUT_10/U2/B
TEST_CHECK_19/U8/A
続いて、冗長故障検出部２３は、このリストの各文からセル名およびピン名を削除し、ブロック名のみを残す。その際、同一のブロック名が複数ある場合には１つだけ残す。そして、その結果を冗長回路候補リスト１４として表示部３に表示させる（ステップＳ４）。冗長回路候補リスト１４は以下に示す表３のようになる。
【００４０】
（表３）
TEST_DOUT_10
TEST_CHECK_19
このようして表示部３に表示された冗長回路候補リスト１４のブロック名から、設計者は信頼性のための冗長回路を特定することが可能となる。
【００４１】
本発明では、ＲＴＬからネットリストに論理合成する際、冗長回路を削除することなく、冗長回路の候補リストを表示する。そのため、設計者は、候補リストのブロック名を見て、信頼性のための冗長回路だけ残すようにすることが可能となる。したがって、ＲＴＬからネットリストへの変換前に、設計者が信頼性のための冗長回路を予め全て見つけて最適化からの保護処理を行う必要がなく、設計者の労力が軽減される。
【００４２】
なお、本実施例では、階層化部２１と論理合成部２２を別の構成としたが、階層化部２１を論理合成部２２に組み込んで、論理合成部２２中で全文を階層化するモードを付け加えるようにしてもよい。
【００４３】
また、本実施例では、情報記憶装置１、データ処理装置２および表示部３を有する情報処理システムとして説明したが、記憶部、データ処理部および表示部を有する情報処理装置であってもよい。
【００４４】
また、本実施例では、ハードウェア記述言語にＶｅｒｉｌｏｇ−ＨＤＬを用いた場合で説明したが、Ｖ（Ｖｅｒｙ  Ｈｉｇｈ  Ｓｐｅｅｄ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）ＨＤＬなど他の言語であってもよい。
【００４５】
さらに、本発明の情報処理方法をコンピュータに実行させるためのプログラムに適用してもよい。
【図面の簡単な説明】
【００４６】
【図１】本発明の情報システムの一構成例を示すブロック図である。
【図２】本発明の情報システムの動作手順を示すフローチャートである。
【図３】図５に示したＲＴＬの下位階層を示すリストである。
【図４】図３に示したリストの下位階層を示すリストである。
【図５】ＲＴＬの記述例を示す図である。
【符号の説明】
【００４７】
１    情報記憶装置
２    データ処理装置
３    表示部
１１    ＲＴＬ
１２    階層化ＲＴＬ
１３    ネットリスト
１４    冗長回路候補リスト
２１    階層化部
２２    論理合成部
２３    冗長故障検出部
【図１】
2006024008.tif 000003
【図２】
2006024008.tif 000004
【図３】
2006024008.tif 000005
【図４】
2006024008.tif 000006
【図５】
2006024008.tif 000007