(57)【要約】【課題】ＲＴレベルから最終的なＡＳＩＣまでの各抽象度の設計段階で、検証対象回路の内部の動作をチェックできる半導体集積回路を提供する。【解決手段】入力信号ＩＮに従って予め定められた論理処理を行って出力信号ＯＵＴを出力するステートマシン１１と組み合わせ回路１２を有するシステムＬＳＩ１０に、信号線１３の状態の異常を検出するための機能検証回路２０を設ける。機能検証回路２０は、ハードウエアに変換可能なハードウエア記述言語で記述され、かつ論理回路として合成されたもので、内部の信号線１３の状態の履歴を保持する状態履歴保持部２１と、状態履歴保持部２１に保持された状態履歴に基づいて信号線１３に出力されるべき信号を生成する遷移チェック信号生成部２２と、遷移チェック信号生成部２２で生成された信号と信号線１３に出力された信号を比較する比較部２３と、比較結果を出力する出力部２４を備える。【選択図】図１
2008107872.tif 000002
【特許請求の範囲】
【請求項１】
入力信号に従って予め定められた論理処理を行って出力信号を出力する組み合わせ回路を有する半導体集積回路において、前記組み合わせ回路における論理処理中の内部信号の状態及び変化の異常を検出するために、その機能をハードウエアに変換可能なハードウエア記述言語で記述され、かつ論理回路として合成された機能検証回路を備えたことを特徴とする半導体集積回路。
【請求項２】
前記機能検証回路は、
前記内部信号の状態の履歴を保持する状態履歴保持部と、
前記状態履歴保持部に保持された前記内部信号の状態に基づいて、前記組み合わせ回路から出力されるべき内部信号を生成する遷移チェック信号生成部と、
前記遷移チェック信号生成部で生成された出力されるべき内部信号と、前記組み合わせ回路から実際に出力される内部信号とを比較する比較部と、
前記比較部における比較結果を出力する出力部とを、
備えたことを特徴とする請求項１記載の半導体集積回路。
【請求項３】
前記比較部によって前記組み合わせ回路における論理処理中の内部信号の状態または変化の異常が検出されたときに、該比較部における比較結果を保持して前記出力部に与える保持部を設けたことを特徴とする請求項２記載の半導体集積回路。
【請求項４】
前記出力部は、前記比較結果を符号化して出力することを特徴とする請求項２または３記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路、特にその内部の動作状態を監視して異常状態を出力する動作監視機能を備えた半導体集積回路に関するものである。
【背景技術】
【０００２】
小型化、軽量化、省電力化及び低コスト化の要求により、ＣＰＵ(Central  Processing  Unit：中央処理装置)
、メモリ、各種の論理回路、及び入出力インタフェース等を単一のチップ上に設けたシステムＬＳＩの使用が広まっている。
【０００３】
システムＬＳＩの設計は、今までに開発されてきた各種の機能を実現するための機能ブロックのデータを利用すると共に、目的のシステムを構成するために必要な機能ブロックを新たに作成し、これらの機能ブロックを組み合わせることによって所望の機能を有するＬＳＩを構成するという手法が用いられている。
【０００４】
このような設計手法では、先ず各機能ブロックの機能内容をアルゴリズム・レベルで記述した動作モデルを使用し、論理動作レベルでのシミュレーションによるシステム検証を行う。次に、各機能ブロックの機能内容を機能ブロック間及び機能ブロック内の信号の動作で記述したＲＴ(Register  Transfer)レベルのモデルを使用し、ＲＴレベルでのシミュレーションによる機能検証を行う。このＲＴレベルでは、実際の部品の動作遅延は含まれないので、動作タイミングの確認はできない。更に、各機能ブロックのネットリスト（構成要素であるトランジスタ等の部品とその部品間の接続関係を記述したもの）を用いて信号レベルでシミュレーションを行い、動作遅延を考慮した動作タイミングを検証する。その後、ネットリストに基づいてＦＰＧＡ(Field  Programmable  Gate  Array)によるハードウエア・エミュレータを作成してハードウエアによる機能確認試験を行い、更に、最終的なシステムＬＳＩであるＡＳＩＣ(Application  Specified  Integrated  Circuit：特定用向け専用標準ＩＣ)を作成して機能の確認及び性能試験を行う。このように、抽象度の高いアルゴリズム・レベルから、順次抽象度を下げて最終的なＡＳＩＣまで、各抽象度の設計段階でそれぞれに対応する検証を行い、完全な機能を備えたＡＳＩＣが完成する。
【０００５】
ＲＴレベルのシミュレーションによる機能検証では、検証対象回路の動作を確認する仕組みとして、自動的に異常を検出して通知する「アサーション」と呼ばれるソフトウエア・モデルを、ＲＴレベルで記述した検証対象回路のモデル内に組み込んだり、シミュレーション用のプログラム(シミュレータ)に組み込んだりすることが行われている。
【０００６】
アサーションは、検証対象回路の機能仕様で許容された状態や動作を、検証専用言語やハードウエア記述言語を用いて記述したものである。アサーションを組み込むことにより、シミュレーション実行中に検証対象回路の状態や動作を監視し、この検証対象回路が機能仕様で許容された範囲から外れた場合に、人間の判断を介することなく、自動的に表示装置やログファイルにその異常発生の情報を出力することができるようになっている。アサーションの特徴は、検証対象回路のインタフェースだけでなく、この検証対象回路内部の状態や動作を容易にチェックできることである。
【０００７】
このアサーションを適用することにより、シミュレーション結果の信号波形を目視チェックする必要が無くなるだけでなく、シミュレーション実行中に検証対象回路内部の状態をチェックすることができるので、不具合が発生した箇所の特定が容易になる。更に、機能検証用のテストプログラム毎に動作期待値を作成する必要が無くなるので、人為的な誤りや検証工数を低減できる。
【０００８】
図２は、従来のアサーションを使用したシミュレーション環境の一例を示す図である。
このシミュレーションでは、ＲＴレベルで記述した検証対象回路モデル１と、検証対象回路へ入力信号ＩＮを与えると共に、この検証対象回路からの出力信号ＯＵＴを受けて次の入力信号ＩＮを制御する検証モデル２が用いられる。また、このシミュレーションでは、検証対象回路モデル１と検証モデル２の間の入出力信号を監視するアサーション３、この検証対象回路モデル１内の信号を回路の外部から監視するアサーション４が用いられる。更に、検証対象回路モデル１の内部には、回路内部の信号を監視するアサーション１ａが組み込まれる。
【０００９】
このようなモデルを用いてシミュレーションを行うと、検証対象回路モデル１からの出力信号ＯＵＴはアサーション３によってチェックされ、この検証対象回路モデル１内部の信号はアサーション４とアサーション１ａによってチェックされる。そして、アサーション３，４，１ａによってチェックされた信号が予め機能仕様で許容された範囲から外れていると、これらのアサーションによって異常として検出される。異常を検出したアサーション３，４，１ａは、図示しない表示装置やログファイルにその異常発生の情報を出力する。
【００１０】
【特許文献１】特開２００１−１０１２４７号公報
【特許文献２】特開２００６−１６３５５９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
前記ＲＴレベルのシミュレーションでは、synopsys社のＳＶＡ(System  Verilog  Assertion)や、Accellera社のＰＳＬ(Property  Specification  Language)等のハードウエア検証専用言語で記述したアサーションを用いて検証を行っている。このようなハードウエア検証専用言語は、ＨＤＬ(Hardware  Description  Language)等のハードウエア記述言語ではないため、このハードウエア検証専用言語で記述したアサーションのモデルを論理回路に変換することができない。このため、次のような課題があった。
【００１２】
即ち、ＲＴレベルでのシミュレーションによる機能検証が完了して次のネットリストによるシミュレーションを行うときに、検証対象回路モデル１を論理回路に変換することになるが、この検証対象回路モデル１の中に組み込んだアサーション１ａは、論理合成の対象外となり、ハードウエアとして合成することができない。このため、ネットリストによるシミュレーションを行う場合、ＲＴレベルでのシミュレーションでは可能であった検証対象回路モデル内部の信号の自動監視ができなくなってしまう。従って、ネットリストによるシミュレーションでは、シミュレーション結果の信号波形を目視でチェックする必要がある。更に、ＦＰＧＡやＡＳＩＣ等のハードウエアによるシミュレーションでは、検証対象回路の出力端子の信号だけに基づいて機能の正常・異常の判断を行わなければならないので、異常が発生した場合の不具合箇所の特定が困難になるという課題があった。
【００１３】
また、ハードウエア検証専用言語は、上記のような会社からそれぞれ異なった仕様で提供されているため、それに対応したシミュレータを用いる必要がある。このため、あるシミュレータを対象に作成したアサーションを、他のシミュレータに流用して使用することができないという不便さがあった。
【００１４】
本発明は、ＲＴレベルから最終的なＡＳＩＣまでの各抽象度の設計段階で、検証対象回路の内部の動作をチェックできる半導体集積回路を提供することを目的としている。
【課題を解決するための手段】
【００１５】
本発明は、入力信号に従って予め定められた論理処理を行って出力信号を出力する組み合わせ回路を有する半導体集積回路において、前記組み合わせ回路における論理処理中の内部信号の状態及び変化の異常を検出するために、その機能をハードウエアに変換可能なハードウエア記述言語で記述され、かつ論理回路として合成された機能検証回路を備えたことを特徴としている。
【発明の効果】
【００１６】
本発明では、半導体集積回路中に、入力信号に従って予め定められた論理処理を行って出力信号を出力する組み合わせ回路に加えて、ハードウエアに変換可能なハードウエア記述言語で記述され、かつ論理回路として合成された機能検証回路を設けている。これにより、検証対象回路である組み合わせ回路の内部の動作をチェックできる。しかも、この機能検証回路は、ハードウエアに変換可能なハードウエア記述言語で記述されたものである。従って、ＲＴレベルの設計段階でのモデルとして記述しておけば、一般的なシミュレータでシミュレーション可能であるだけでなく、ＦＰＧＡによるハードウエア・エミュレータへの変換や、ＡＳＩＣによる実際のシステムＬＳＩへの変換時にそのままハードウエアに変換することができる。従って、ＲＴレベルから最終的なＡＳＩＣまでの各抽象度の設計段階で、検証対象回路の内部の動作をチェックできるという効果がある。
【発明を実施するための最良の形態】
【００１７】
この発明の前記並びにその他の目的と新規な特徴は、次の好ましい実施例の説明を添付図面と照らし合わせて読むと、より完全に明らかになるであろう。但し、図面は、もっぱら解説のためのものであって、この発明の範囲を限定するものではない。
【実施例１】
【００１８】
図１は、本発明の実施例１のシステムＬＳＩのテスト環境を示す図である。
このシステムＬＳＩ１０は、検証対象となる本来の論理処理を行うステートマシン１１と組み合わせ回路１２に加えて、これらのステートマシン１１と組み合わせ回路１２の間の複数の信号線１３の状態を監視するための機能検証回路２０を備えている。
【００１９】
機能検証回路２０は、信号線１３の過去の状態やその変化の履歴を保持するための状態履歴保持部２１を有している。状態履歴保持部２１は、例えば信号線１３毎に設けられた複数のシフトレジスタで構成され、ステートマシン１１に与えられるクロック信号ＣＬＫと共通のクロック信号で各信号線１３の状態をシフトして保持するものである。なお、各シフトレジスタの段数は、現在の信号線１３の状態に影響を与える範囲で、この信号線１３の過去の状態を保持できる段数に設定されている。状態履歴保持部２１には、遷移チェック信号生成部２２が接続されている。
【００２０】
遷移チェック信号生成部２２は、状態履歴保持部２１に保持された信号線１３の過去の状態に基づいて、信号線１３に現在出力されるべき信号を生成する順序回路である。遷移チェック信号生成部２２の出力側には、比較部２３が接続されている。
【００２１】
比較部２３は、遷移チェック信号生成部２２で生成された期待される信号と、各信号線１３に実際に出力される信号とを比較するものである。比較部２３による比較結果は、出力部２４に与えられるようになっている。出力部２４は、比較結果の信号の組み合わせを符号化して異常発生通知用の端子２５に出力するものである。
【００２２】
これらの状態履歴保持部２１、遷移チェック信号生成部２２、比較部２３、出力部２４及び端子２５で構成される機能検証回路２０は、ＲＴレベルでの設計当初から、ステートマシン１１や組み合わせ回路１２と同じＨＤＬ等のハードウエア記述言語で記述され、これらのステートマシン１１や組み合わせ回路１２と同時にハードウエアに変換され、論理回路として合成されたものである。
【００２３】
このシステムＬＳＩ１０は、図２の検証モデル２に対応するテスト装置３０に接続されて機能試験が行われる。テスト装置３０は、システムＬＳＩ１０に動作の基準となるクロック信号ＣＬＫを与え、検証対象回路であるステートマシン１１と組み合わせ回路１２に入力信号ＩＮを与えると共に、この検証対象回路からの出力信号ＯＵＴを受けて次の入力信号ＩＮを制御するものである。更に、テスト装置３０は、システムＬＳＩ１０の端子２５から出力される符号化された異常発生通知信号を解読して、このシステムＬＳＩ１０内部でどのような異常が検出されたのかを出力する検証モデル３１と、異常発生通知信号と検証対象回路内の障害箇所及び原因等の関連を予め保持するデータベース３２と、検出された異常状態を表示する表示装置３３と、異常状態の情報を記録するログファイル３４を備えている。
【００２４】
次に、図１のテスト環境によるシステムＬＳＩ１０の機能検証動作を説明する。
（１）テスト装置３０から、クロック信号ＣＬＫに同期してシステムＬＳＩ１０へ入力信号ＩＮを与える。
【００２５】
（２）システムＬＳＩ１０のステートマシン１１と組み合わせ回路１２では、テスト装置３０から与えられた入力信号ＩＮに基づいた論理動作を行い、その論理動作の結果を出力信号ＯＵＴとしてテスト装置３０に出力する。
【００２６】
（３）一方、システムＬＳＩ１０内部の機能検証回路２０では、クロック信号ＣＬＫに従って、信号線１３の状態を状態履歴保持部２１に保持する。
【００２７】
（４）遷移チェック信号生成部２２は、状態履歴保持部２１に保持された信号線１３の過去の状態に基づいて、信号線１３に現在出力されるべき信号を生成する。
【００２８】
（５）比較部２３は、遷移チェック信号生成部２２で生成された信号と、各信号線１３に実際に出力された信号とを比較し、一致したときは論理値“０”、不一致のときは論理値“１”を各信号線１３に対応して出力する。
【００２９】
（６）出力部２４は、比較部２３から出力される比較結果の信号の組み合わせを符号化して異常発生通知用の端子２５に出力する。従って、複数の信号線１３の内、少なくとも１つの信号線１３の状態が期待された状態でない場合には、端子２５から出力される値は０以外の異常発生通知信号となる。
【００３０】
（７）テスト装置３０の検証モデル３１は、システムＬＳＩ１０の端子２５から出力される異常発生通知信号を解読し、データベース３２を参照して、このシステムＬＳＩ１０内部でどのような異常が検出されたのかの情報を出力する。
【００３１】
（８）検証モデル３１から出力された情報は、表示装置３３に出力され、更に後から解析するためにログファイル３４に記録される。
【００３２】
（９）テスト装置３０では、システムＬＳＩ１０から異常発生通知信号が検出されなければ、このシステムＬＳＩ１０から出力される出力信号ＯＵＴに基づいて、次に与えるべき入力信号ＩＮを生成する。
【００３３】
（１０）その後、（１）に戻り、予め用意したテスト用の入力信号ＩＮが終了するまで、（１）〜（９）の動作を繰り返す。
【００３４】
以上のように、この実施例１のシステムＬＳＩ１０は、本来の論理処理を行うステートマシン１１と組み合わせ回路１２に加えて、これらのステートマシン１１と組み合わせ回路１２の間の検証対象となる複数の信号線１３の状態を監視する機能検証回路２０を備えている。これにより、検証対象回路の内部の動作をチェックできる。
【００３５】
更に、この機能検証回路２０は、ＲＴレベルでの設計当初からステートマシン１１や組み合わせ回路１２と同じＨＤＬ等のハードウエア記述言語で記述され、これらのステートマシン１１や組み合わせ回路１２と同時に論理回路として合成されたものである。従って、ＲＴレベルでのシミュレーションでは、シミュレータによる制約を受けずに、一般的なシミュレータを用いてシミュレーションを行うことができる。また、ネットリストによる論理回路への変換においても、ステートマシン１１や組み合わせ回路１２と同時に機能検証回路２０のネットリストが生成される。これにより、ネットリストを使用したシミュレーションにおいても、検証対象回路の内部の動作のチェックが可能である。
【００３６】
従って、このシステムＬＳＩ１０は、ＲＴレベルから最終的なＡＳＩＣまでのＬＳＩ設計において、抽象度の異なる各設計段階で検証対象回路の内部の動作をチェックすることができるという利点がある。
【実施例２】
【００３７】
図３は、本発明の実施例２を示すシステムＬＳＩの構成図である。
このシステムＬＳＩ１０Ａは、図１中のシステムＬＳＩ１０における機能検証回路２０に代えて、機能と構成が若干異なる機能検証回路２０Ａを設けたものである。即ち、この機能検証回路２０Ａは、比較部２３と出力部２４の間に、異常発生時にこの比較部２３の出力信号Ｓ２３ａ〜Ｓ２３ｎを保持するための回路(保持部)を挿入したものである。
【００３８】
比較部２３の出力信号Ｓ２３ａ〜Ｓ２３ｎは、それぞれ論理積ゲート(以下、「ＡＮＤ」という)２６ａ〜２６ｎの第１の入力側に与えられるようになっている。ＡＮＤ２６ａ〜２６ｎの出力側は、それぞれ論理和ゲート(以下、「ＯＲ」という)２７ａ〜２７ｎの第１の入力側に接続され、これらのＯＲ２７ａ〜２７ｎの出力側が、それぞれリセット機能つき（但し、リセット端子は図示していない）フリップフロップ(以下、「ＦＦ」という)２８ａ〜２８ｎのデータ入力端子に接続されている。ＦＦ２８ａ〜２８ｎの出力端子は、出力部２４に接続されると共に、それぞれＯＲ２７ａ〜２７ｎの第２の入力側に接続されている。
【００３９】
更に、ＦＦ２８ａ〜２８ｎの出力端子は、否定的論理和ゲート（以下、「ＮＯＲ」という）２９の入力側に接続され、このＮＯＲ２９の出力側が、ＡＮＤ２６ａ〜２６ｎの第２の入力側に共通に接続されている。
【００４０】
このシステムＬＳＩは、図１と同様のテスト装置３０を用いたテスト環境でテストされる。そして、機能検証回路２０Ａでは、ステートマシン１１と組み合わせ回路１２の間の信号線１３の状態を、クロック信号ＣＬＫに従って状態履歴保持部２１に保持する。遷移チェック信号生成部２２は、状態履歴保持部２１に保持された信号線１３の過去の状態に基づいて、この信号線１３に現在出力されるべき信号を生成する。
【００４１】
比較部２３は、遷移チェック信号生成部２２で生成された信号と、各信号線１３に実際に出力された信号とを比較し、一致したときは“０”、不一致のときは“１”の信号を、各信号線１３に対応する出力信号Ｓ２３ａ〜Ｓ２３ｎとして出力する。
【００４２】
初期状態では、ＦＦ２８ａ〜Ｓ２８ｎはリセットされているので、ＮＯＲ２９の出力信号は“１”である。従って、比較部２３の各出力信号Ｓ２３ａ〜Ｓ２３ｎは、それぞれＡＮＤ２６ａ〜２６ｎ及びＯＲ２７ａ〜２７ｎを介してＦＦ２８ａ〜Ｓ２８ｎの入力側に与えられ、クロック信号ＣＬＫに同期して保持される。異常が発生しなければ、出力信号Ｓ２３ａ〜Ｓ２３ｎはすべて“０”であるので、ＦＦ２８ａ〜Ｓ２８ｎの保持内容は“０”で変化しない。
【００４３】
ここで、異常が発生して、例えば出力信号Ｓ２３ａが“１”になったとする。これにより、次のクロック信号ＣＬＫのタイミングで、ＦＦ２８ａに“１”が保持され、ＮＯＲ２９の出力信号は“０”に変化する。ＮＯＲ２９の出力信号が“０”になると、出力信号Ｓ２３ａ〜Ｓ２３ｎに拘りなく、ＡＮＤ２６ａ〜２６ｎの出力信号はすべて“０”になる。また、各ＦＦ２８ａ〜２８ｎのデータ入力端子には、それぞれの出力端子の信号がＯＲ２７ａ〜２７ｎを介してフィードバックされる。これにより、出力信号Ｓ２３ａが“１”になった時点での各出力信号Ｓ２３ａ〜Ｓ２３ｎの値が、それぞれＦＦ２８ａ〜２８ｎに保持されて出力部２４に与えられる。この状態は、例えばテスト装置側からリセット信号が与えられるまで継続される。
【００４４】
以上のように、この実施例２のシステムＬＳＩ１０Ａは、リセット信号が与えられるまで、比較部２３で異常を検出したときの出力信号Ｓ２３ａ〜Ｓ２３ｎを保持するための回路を備えているので、実施例１と同様の利点に加えて、テスト装置側の機能を簡素化することができる。即ち、図１中のテスト装置３０における検証モデル３１、表示装置３２及びログファイル３３ではなく、ＬＥＤ（発光ダイオード）等の単純なデバイスを使用するだけで、異常な動作の発生とその原因を確認することができる。
【００４５】
なお、本発明は、上記実施例に限定されず、種々の変形が可能である。この変形例としては、例えば、次のようなものがある。
（ａ）システムＬＳＩの検証対象回路は、ステートマシン１１と組み合わせ回路１２に限定されず、どのような論理回路でも適用可能である。また、検証対象の内部信号は、単数・複数を問わない。
（ｂ）システムＬＳＩの設計段階で機能検証回路２０，２０Ａを記述する言語は、ＨＤＬに限定されない。検証対象である本来の論理処理を行うステートマシンや組み合わせ回路用の記述言語と同じものを使用して機能検証回路を記述すれば、ＲＴレベルのシミュレーションからハードウエアの設計まで一貫して行うことができるので、設計工数を削減することができる。
（ｃ）図３において、比較部２３の出力信号Ｓ２３〜Ｓ２３ｎを保持するための回路構成は一例であり、異常状態が検出されたときの出力信号Ｓ２３〜Ｓ２３ｎをそのまま保持できるものであれば、どのような回路構成でも良い。
（ｄ）出力部２４では、システムＬＳＩのピン数の増加を抑えるために、比較部２３の出力信号Ｓ２３ａ〜Ｓ２３ｎを符号化して端子２５に出力するように構成しているが、ピン数の増加が問題にならない程度であれば、符号化する必要は無い。
【図面の簡単な説明】
【００４６】
【図１】本発明の実施例１のシステムＬＳＩのテスト環境を示す図である。
【図２】従来のアサーションを使用したシミュレーション環境の一例を示す図である。
【図３】本発明の実施例２を示すシステムＬＳＩの構成図である。
【符号の説明】
【００４７】
１１    ステートマシン
１２    組み合わせ回路
１３    信号線
２０，２０Ａ    機能検証回路
２１    状態履歴保持部
２２    遷移チェック信号生成部
２３    比較部
２４    出力部
２５    端子
２６    ＡＮＤ
２７    ＯＲ
２８    ＦＦ
２９    ＮＯＲ
【図１】
2008107872.tif 000003
【図２】
2008107872.tif 000004
【図３】
2008107872.tif 000005