(57)【要約】【課題】  外部接続してロジックアナライザを使用した場合、ＬＳＩ内部の状態値を記録した際のメモリ容量不足などを引き起こすとともに、デバック作業の非効率化を招く要因となった。【解決手段】  モニター信号の波形データが異なる状態値を出力する場合、メモリアドレスをカウントＵＰしこの状態値をメモリ５へ書き込む。連続する同一状態値を出力する場合はこの状態値を圧縮処理し、同一データ繰り返し回数カウント値、値の異なるデータ個数のカウント値を重畳させて記録する。また波形データにおいてトリガが発生しない間は、メモリ有効アドレス内において何度もメモリアドレス、メモリデータを上書きする。トリガが発生するとCOUNT信号生成回路１３のカウンタがデクリメントされ、カウンタが０になるとメモリ書き込み動作が停止し終了合図のステータスを通知する。このステータス情報を元にメモリ格納データのメモリリードへ移行する。【選択図】  図２
2006090727.tif 000002
【特許請求の範囲】
【請求項１】
ブレッドボード評価環境及び小型器のフィールド試験環境におけるＬＳＩ評価のデバックを効率化させるため、ロジックアナライザ機能をＬＳＩチップ上に具備させたことを特徴とする半導体集積回路。
【請求項２】
前記フィールド試験においてモニター端子が有さない小型器でも内蔵ＬＳＩの波形データを外部端末に表示させることを特徴とする請求項１の半導体集積回路。
【請求項３】
特性評価に適した波形データに加工する回路を具備し、前記モニター信号に流れている波形データが異なる状態値が交互かつ頻繁に繰り返されるデータの場合には、該異なる状態値のデータを記録し、前記波形データが連続する同一状態値のデータの場合には、該同一状態値データを圧縮処理し、該圧縮処理に関する補足情報と共に記憶させることを特徴とする請求項１あるいは請求項２記載の半導体集積回路。
【請求項４】
中央処理装置の指示によりレジスタ群の初期設定を行うレジスタ群初期設定手段と、
前記レジスタ群初期設定手段に設定された読み出し許可若しくは書き込み許可に基づきSTART信号あるいはEND信号を出力するデータロード信号生成手段と、
前記レジスタ群初期設定手段により初期設定されたデータをロードするとともに、外部より与えられるMON信号の１／２サイクル遅延信号を生成し、前記MON信号と併せて出力するMONラッチ回路と、
前記レジスタ群の対象レジスタ毎に予め設定された値と一致する波形データを検出し、前記MON信号の１／２サイクル遅延信号に基づいてトリガ信号を発生するトリガ生成手段と、
前記外部より与えられるMON信号及び前記MONラッチ回路で生成される１／２サイクル遅延MON信号を比較して双方の信号が同レベルの場合にEQU信号を"１"レベルで、また前記EQU信号の１サイクル遅延信号とEQU信号の反転信号からCLR信号を"１"レベルで、また前記EQU信号の１サイクル遅延信号とEQU信号からSTOP信号を"１"レベルとして夫々生成出力する制御信号生成手段と、
前記レジスタ群初期設定手段によって初期設定されたデータをロードするとともに、前記トリガ信号に基づきカウンタをデクリメントし、前記カウンタ値が「０」でない場合にCOUNT_NZ信号を出力し、前記カウンタが"０"になると前記COUNT_NZ信号を停止して、メモリ書き込み終了を示すステータス情報を前記レジスタ群初期設定手段に通知するカウント信号生成手段と、
前記レジスタ群初期設定手段により初期設定されたデータをロードするとともに、前記COUNT_NZ信号及び前記EQU信号並びに前記START信号を基に同一データの繰り返し回数を示すRUN信号を生成するRUN信号生成手段と
前記レジスタ群初期設定手段により初期設定されたデータをロードするとともに、前記COUNT_NZ信号及び前記EQU信号及び前記START信号並びに前記CLR信号を基に規程の回数以内で交互に値が変化したデータの総数を示すLENGTH信号を生成するLENGTH信号生成手段と、
前記レジスタ群初期設定手段により初期設定されたデータをロードするとともに、収集された波形信号データが「規程の回数未満で交互かつ頻繁に値が変化する状態」ならば、メモリアドレスを１カウントずつＵＰしながらメモリにデータを書き込み、該収集された波形データが「同じ値が一定回数連続した状態」であれば同一データ繰り返し回数カウント値及び値の異なるデータ個数のカウント値を圧縮した観測データに重畳してメモリに書き込み、前記STOP信号を受信しない間かつ前記メモリの有効アドレス範囲内においてメモリ書き込みを繰り返すメモリアドレス生成手段と、
前記中央処理装置の指示に基づき前記メモリのリードアドレスを指定することで、該メモリより格納データを出力させるメモリデータ出力生成手段によって構成されたロジックアナライザをチップ上に備えてなることを特徴とするオンチップ・ロジックアナライザ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ブレッドボード評価環境及び、小型器のフィールド試験環境でＬＳＩ評価のデバックを効率化させるため、ロジックアナライザ機能をＬＳＩチップ内に具備したものである。
【背景技術】
【０００２】
従来技術のＬＳＩチップのデバック作業について図面を参照しつつ説明する。図１４に示すように、ブレッドボード上のＬＳＩチップのデバック用観測端子（モニター端子）に出力されるデータを、外部に接続されるロジックアナライザ１４１が読み出してデバックを行ってきた。
ところがモニター端子は、ブレッドボード上であれば容易に接続できるものの、小型器の場合は極めて接続しにくく、フィールド試験での波形データの取得は困難であった。
また例えばＬＳＩをデバックしたりその障害を解析したりするためには、外部に接続されるロジックアナライザ１４１でＬＳＩ内部の状態値を連続して把握しておくことが要求され、そしてこの状態値を解析しながら不具合の原因を解決していくことも必要とされる。しかし近年のＬＳＩはますます集積度が向上し、これに伴いトレーサで収集すべきデータ量も大幅に増大してきている。よって、記録するメモリの容量を超えるトレースデータが集中し、データ容量不足による解析不能状態を誘起するという問題もあった。
また、トレースデータは同じ値が繰り返される場合、データ圧縮処理を施さないと特性評価するために適したトレースデータの加工を行うことができないという問題があった。
さらに外部に接続されるロジックアナライザで取得したデータは、データ圧縮処理ができないが故に、同じ値が繰り返す場合にデータを加工することに多大な労力を費やさざるを得ない、という問題もあった。
【０００３】
そこで、このような課題を解消することを目的としてデータトレース機能やデバッグ機能をＬＳＩに内蔵させる先行技術が、特開２００２−２４２０１公報「半導体集積回路」や特開平０８−６３３７４号公報「トレース機能内蔵型ＬＳＩ」等により開示されている。
【０００４】
【特許文献１】特開２００２−２４２０１公報
【特許文献２】特開平０８−６３３７４号公報
【特許文献３】特開２００１−１７５５１０公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上述のごとくブレッドボード評価環境において外部接続してロジックアナライザを使用した場合、ＬＳＩ内部の状態値を記録した際のメモリ容量不足など、問題解決のための情報を十分に提供することができなくなる不具合をもたらした。また、モニター端子が存在しない小型器でもフィールド試験での波形データの取得が不可能であることや、特性評価するのに適した観測データ加工を施せず、デバック作業の非効率化を招くという問題点があった。
【０００６】
オンチップ・ロジックアナライザ回路のデータ圧縮方式は、デバッグで必要なデータのみを効率よくメモリへ記録し、不要なデータ蓄積削減を目的とするものであるから、図１５に示すように信号波形は同じ値が連続して発生するケースが圧倒的に多い。このような場合は、全てのデータをそのまま格納するより、繰り返し回数を格納した方が、より長時間の波形データを同じメモリ容量に格納することができる。
本発明の目的は、ブレッドボード評価環境及び、小型器のフィールド試験環境におけるＬＳＩ評価のデバックを効率化させるため、機能をＬＳＩチップ内に具備させることにより、フィールド試験においてモニター端子が存在しない小型器でも内蔵ＬＳＩの波形データのトレースを可能とさせるオンチップ・ロジックアナライザを提供することにある。
また、本発明の別の目的は、問題の解決に必要なデータのみを確実に収集し、さらに特性評価に適した観測データ加工を施すことの可能な、従来技術と比較してＬＳＩ設計のデバッグ効率を大幅に改善させ得るオンチップ・ロジックアナライザを提供することにある。
【課題を解決するための手段】
【０００７】
以上の課題を鑑みて、本発明のオンチップ・ロジックアナライザは、中央処理装置の指示によりレジスタ群の初期設定を行うレジスタ群初期設定手段と、前記レジスタ群初期設定手段に設定された読み出し許可若しくは書き込み許可に基づきSTART信号あるいはEND信号を出力するデータロード信号生成手段と、前記レジスタ群初期設定手段により初期設定されたデータをロードするとともに、外部より与えられるMON信号の１／２サイクル遅延信号を生成し、前記MON信号と併せて出力するMONラッチ回路と、前記レジスタ群の対象レジスタ毎に予め設定された値と一致する波形データを検出し、前記MON信号の１／２サイクル遅延信号に基づいてトリガ信号を発生するトリガ生成手段と、前記外部より与えられるMON信号及び前記MONラッチ回路で生成される１／２サイクル遅延MON信号を比較して双方の信号が同レベルの場合にEQU信号を"１"レベルで、また前記EQU信号の１サイクル遅延信号とEQU信号の反転信号からCLR信号を"１"レベルで、また前記EQU信号の１サイクル遅延信号とEQU信号からSTOP信号を"１"レベルとして夫々生成出力する制御信号生成手段と、前記レジスタ群初期設定手段によって初期設定されたデータをロードするとともに、前記トリガ信号に基づきカウンタをデクリメントし、前記カウンタ値が「０」でない場合にCOUNT_NZ信号を出力し、前記カウンタが"０"になると前記COUNT_NZ信号を停止して、メモリ書き込み終了を示すステータス情報を前記レジスタ群初期設定手段に通知するカウント信号生成手段と、前記レジスタ群初期設定手段により初期設定されたデータをロードするとともに、前記COUNT_NZ信号及び前記EQU信号並びに前記START信号を基に同一データの繰り返し回数を示すRUN信号を生成するRUN信号生成手段と前記レジスタ群初期設定手段により初期設定されたデータをロードするとともに、前記COUNT_NZ信号及び前記EQU信号及び前記START信号並びに前記CLR信号を基に規程の回数以内で交互に値が変化したデータの総数を示すLENGTH信号を生成するLENGTH信号生成手段と、前記レジスタ群初期設定手段により初期設定されたデータをロードするとともに、収集された波形信号データが「規程の回数未満で交互かつ頻繁に値が変化する状態」ならば、メモリアドレスを１カウントずつＵＰしながらメモリにデータを書き込み、該収集された波形データが「同じ値が一定回数連続した状態」であれば同一データ繰り返し回数カウント値及び値の異なるデータ個数のカウント値を圧縮した観測データに重畳してメモリに書き込み、前記STOP信号を受信しない間かつ前記メモリの有効アドレス範囲内においてメモリ書き込みを繰り返すメモリアドレス生成手段と、前記中央処理装置の指示に基づき前記メモリのリードアドレスを指定することで、該メモリより格納データを出力させるメモリデータ出力生成手段からなるロジックアナライザを一つのＬＳＩチップ上に構成したことを特徴とする。
【発明の効果】
【０００８】
本発明においては、ロジックアナライザ機能をＬＳＩチップ内に搭載させてこれを用いることにより、連続した同一の繰り返しデータの書きこみについては、データ圧縮処理を施すことができ、メモリ保存データの使用効率を向上させる効果を奏する。
また、特性評価を行うのに適したデータ加工する機能を具備させることにより、デバック効率を改善させる効果を奏する。さらに、モニター端子が存在しない小型器であってもフィールド試験での波形データの取得が可能となり、外付けのロジックアナライザが不要でハード自体も小型させ得ることと相まって、全体的な構成を大幅に小型化させる効果を奏する。
【発明を実施するための最良の形態】
【０００９】
次に、本発明の実施の形態について図面を参照して詳細に説明する。図１から図１３は本発明の実施形態を示す構成図である。
【００１０】
図１は、本発明のオンチップ・ロジックアナライザを搭載するＬＳＩチップ及びブレッドボードを示す構成ブロック図である。ＬＳＩチップ（図中点線で囲まれた部分）内において,ロジックアナライザ回路１にSEL（セレクタ）回路２を介して得られるチップ内のモニター信号を入力し、ＰＣ等の端末３からブレッドボード及び小型器上に搭載されたＣＰＵ４に評価プログラムを実行するよう指示を出し、このＣＰＵ４がデータ処理を行うことで、ロジックアナライザ回路１に内蔵されたレジスタ群初期設定回路１１にＣＰＵ４からアクセスが行われる。このアクセスに基づきモニター信号に流れている波形データがＳＲＡＭメモリ５へ取り込まれ、取得されたデータはＣＰＵ４を通じて端末３に転送され、ここで適宜な形式に加工された後に表示される。
図２は、本実施形態のＬＳＩチップ内におけるロジックアナライザ回路１の詳細な構成ブロック図である。以下、この図を用いて一連の波形信号トレース動作を詳細に説明する。
まずロジックアナライザ１に内蔵されたレジスタ群初期設定回路１１に、ＣＰＵ４がアクセスすることでレジスタ群の初期設定が行われる。そして最終的にＣＰＵ４がレジスタWR_ENABLEに対してライトアクセスすることで、メモリ用アドレス生成回路１２、COUNT信号生成回路１３、RUN信号生成回路１４、LENGTH信号生成回路１５に各々初期設定されたデータがロードされる。また、レジスタWR_ENABLEにＣＰＵ４がライトアクセスすることによって、COUNT信号生成回路１３で生成されたCOUNT_NZ信号が“１”となる。これによりメモリ５のMEMWEB信号、MEMCSB信号が両方とも“０”となって波形信号収集モード動作が開始し、メモリ５に対してアドレス、データの書き込み動作が行われる。
この際、モニター信号に流れる波形データが図１５に示すところの「値が変化する」状態であれば、メモリアドレス生成回路１２でメモリアドレスをカウントＵＰしながらメモリ５へデータを書き込む。逆に波形データが「同じ値が連続」状態であれば、RUN信号生成回路１４、LENGTH信号生成回路１５から夫々出力された「同一データ繰り返し回数カウント値」「値の異なるデータ個数のカウント値」を観測用データにデータ圧縮してメモリ５に書き込む。トリガが発生しない間は、メモリ５の有効アドレス内において何度も繰り返してメモリに上書きする。
TRIG生成回路１６で生成されるトリガ（TRIG）は、波形信号収集動作開始後１回目のトリガのみが有効であり、TARGETレジスタで設定された値と同一の波形データを検出することによって発生する。TRIGが発生するとCOUNT信号生成回路１３のカウンタがデクリメントされ、カウンタが“０”になるとメモリ蓄積動作が停止し、COUNT信号生成回路１３はメモリ書きこみ終了合図のステータス情報をレジスタ群初期設定回路１１に通知する。このステータス情報を元に、ＣＰＵ４を通じて、メモリ５に格納されたデータのメモリ読み出しモードへ移行する。
メモリ読み出しモードには、ＣＰＵ４がレジスタ群初期設定回路１１のRD_ENABLEを有効とすることによって移行する。またメモリ格納データは、ＣＰＵ４にメモリリードアドレスを指定することで、メモリ５から格納データMEMDBI(31:0)として出力され、ＣＰＵ４を介して端末３に転送されて、特性評価に適した波形データに加工を施された上で表示される。
図３はMONラッチ回路１７の詳細な構成ブロック図である。レジスタ群初期設定回路１１のPHASEレジスタに設定された値が全て“０”ならば、検査対象ＬＳＩチップのデバッグ用モニター端子MON[31：0]信号はセレクタSEL３４をスルーで通過する。Ｆ／Ｆ３２のクロックが立ち上がると、メモリ５のMON[31：0]信号に対して１Ｔサイクル遅延CURR_MON[31：0]が出力され、Ｆ／Ｆ３３のクロック立ち上がりでCURR_MON[31：0]信号の１Ｔサイクル遅延OLD_MON[31：0]が出力される。通常、モニター信号に流れている波形データは、PHASEレジスタを使用せずに動作させるが、ＬＳＩチップ内で各ブロックから出力されたモニター信号の回路遅延、配線遅延を考慮した場合の動作保証バックアップ回路として、MON[31：0]信号の半サイクルの遅延を与えるPHASEレジスタも使用可能となる。PHASEレジスタに設定された値によって、３２ビットのPHASE[31：0]の1ビット毎ごとにMON[31：0]信号の半サイクルの遅延が与えられる。
次にTRIG生成回路１６の詳細構成ブロック図を図４に示す。MONラッチ回路１７で生成されたCURR_MON[31：0]と、レジスタ群初期設定回路１１のTARGETレジスタ及びMASKレジスタで各々設定されるTARGET[31：0]、MASK[31：0]によってトリガ信号TRIGが生成される。このTRIGは、TARGETレジスタに格納された値とCURR_MON[31：0]の一致によって発生する信号であり、MASKレジスタに格納された値が“１”となっているビット位置のみで値を比較する。CURR_MON[31：0]、TARGET[31：0]、MASK[31：0]の関係について図５に示す。また、トリガ信号(TRIG)生成回路１６で発生するTRIGは、後述する図８のCOUNT信号生成回路１３内において、COUNTレジスタ(REG_COUNT)のデクリメント処理の開始信号としても使用される。
図６は制御信号生成回路１８の詳細構成ブロック図である。制御信号としては、EQU信号、CLR信号、STOP信号の三種類が用意されているが、この各信号について説明するその発生過程及び動作について順番に説明する。まずEQU信号であるが、この信号はMONラッチ回路１７で生成されたCURR_MON[31：0]とOLD_MON[31：0]が等しいデータの場合にはEQU信号レベルを“１”で出力する。これに伴いRUN信号生成回路１４内のRUNレジスタ(REG_RUN)では、カウントイネーブル(COUNT_NZ)が有効でEQU信号が“１”レベルの場合にクロックが立ち上がり、同一データの繰り返し回数のカウント動作を開始する。反対にCURR_MON[31：0]とOLD_MON[31：0]が異なる場合はEQU信号を“０”で出力する。後述するRUNレジスタ(REG_RUN)では、カウントイネーブル(COUNT_NZ)が有効でEQU信号が“０”レベルの場合にクロックが立ち上がり、同一データの繰り返し回数は初期値“０”にリセットされる。またEQU信号は、これも後述するLENGTH信号生成回路１５のLENGTH(REG_LENGTH)レジスタにも使用される。LENGTHレジスタ(REG_LENGTH)では、カウントイネーブル(COUNT_NZ)が有効でEQU信号が“１”レベルの場合に、クロックが立ち上がり前カウント値を保持する。またLENGTHレジスタ(REG_LENGTH)では、カウントイネーブル(COUNT_NZ)が有効でEQU信号が“０”レベルであった場合に、クロックが立ち上がって値の異なるデータの個数カウント動作を開始する。
続いてCLR（クリア）信号について説明する。CLR信号は、Ｆ／Ｆ６２のクロック立ち上がりによってEQU信号の１Ｔサイクル遅延信号とEQU信号の反転信号、not(EQU)にアンドゲートを用いることで生成される“１”レベルの１Ｔ幅の信号である。このCLR信号は図１０のLENGTH信号生成回路１５におけるLENGTH(REG_LENGTH)レジスタに使用され、RUNレジスタ(REG_RUN)ではカウントイネーブル(COUNT_NZ)が有効でCLR信号が“１”レベルであった場合はクロックが立ち上がり、LENGTHレジスタを、カウント値を保持していた状態から初期値“０”状態に戻す役割を持つ。
次にSTOP信号について説明する。この信号はＦ／Ｆ６２のクロック立ち上がりにより、EQU信号の１Ｔサイクル遅延信号とEQU信号にアンドゲートを用いることで生成される。このSTOP信号は、図８のCOUNT信号生成回路１３のCOUNTレジスタ(REG_COUNT)、図１１のメモリアドレス信号生成回路１２のポインタレジスタ(REG_PTR)で使用する信号でもある。
図８のCOUNTレジスタ(REG_COUNT)においては、カウントイネーブル(COUNT_EN)が有効かつＦ／Ｆ８２のクロック立ち上がりによるSTOP信号の１Ｔサイクル遅延信号が“１”レベルであった場合、COUNTレジスタが、クロック立ち上がりでデクリメントされたカウントデータを保持する。これに対してカウントイネーブル(COUNT_EN)が有効かつＦ／Ｆ８２のクロック立ち上がりによるSTOP信号の１Ｔサイクル遅延信号が“０”レベルであった場合、COUNTレジスタはクロックの立ち上がりでカウントのデクリメント動作を開始する。また図１１のポインタレジスタでは、カウントイネーブル(COUNT_NZ)が有効かつSTOP信号が“１”レベルであった場合、クロック立ち上がりでアドレスカウントのデータを保持する。これに対してカウントイネーブル(COUNT_NZ)が有効でSTOP信号が“０”レベルであった場合、はクロック立ち上がりでアドレスカウントのカウントＵＰ動作を開始する。
図７はデータロード信号生成回路（兼書込終了信号生成回路）１９の詳細構成を示すブロック図である。この回路から発生するSTART（スタート）信号は、レジスタWR_ENABLEにＣＰＵ４がライトアクセスすることにより、メモリ用アドレス生成回路１２、COUNT信号生成回路１３、RUN信号生成回路１４、LENGTH信号生成回路１５に初期設定されたデータをロードするために生成されたクロック１Ｔ幅の信号である。またSTARTが有効になると、COUNT信号生成回路１３のCOUNT_NZ信号が“１”となることでメモリのMEMWEB信号、MEMCSB信号が“０”となり、波形データ収集動作が開始されメモリ５へのアドレス、データの書き込み動作が始まる。END_FLGも、レジスタWR_ENABLEにライトアクセスすることでセット条件となり、クロックの立ち上がりで“１”となる。このEND_FLGは、メモリ５に対する書きこみ終了合図であるMEMWR_END生成条件として使用される。MEMWR_END生成条件は、メモリ５に対する書きこみが終了した場合に限りCOUNT_NZ信号が“０”となり、以下の論理式を用いることでMEMWR_ENDは“１”が出力される。
MEMWR_END = END_FLG＊not(COUNT_NZ)
MEMWR_ENDはＣＰＵのI/F上のリードレジスタに対して“１”の状態値が反映され、メモリ書きこみ終了合図のステータスがレジスタ群初期設定回路１１に通知される。このステータス情報を元にＣＰＵ４を通じ、メモリ５の格納データのメモリリードへ移行する。メモリリードは、ＣＰＵ４からレジスタRD_ENABLEを有効とするで、メモリ読み出しモードとなる。またレジスタRD_ENABLEを有効とすることでEND_FLGのリセット条件になり、クロック立ち上がりによって“０”となる。
先にも説明したが、図８はCOUNT信号生成回路１３の詳細構成を示すブロック図である。COUNTレジスタ(REG_COUNT)は、トリガが到来してからメモリに蓄積されるデータ個数を示している。あらかじめデータ収集前に、ＣＰＵからCOUNTレジスタに対して、トリガが到来してからメモリに蓄積するCOUNT数を設定する。データロード信号生成回路１９で生成されたSTARTは、ここでCOUNT信号生成回路１３の初期設定（COUNTレジスタにトリガが到来してからメモリに蓄積するCOUNT数）をロードするために用いられる。COUNTレジスタには、STARTがクロック１Ｔ幅の“１”レベルの時にクロックが立ち上がり、COUNTレジスタ(REG_COUNT)は初期設定値をロードにすると同時にCOUNT信号生成回路１３中のCMP回路で、初期値“０”とCOUNTレジスタ(REG_COUNT)の設定データを比較する。比較の結果、データ値が一致しなければCOUNT_NZ_TMP1信号が“０”レベルを出力する。COUNT_NZ_TMP1信号出力のすぐ先にはインバータが接続されており、これを通すことによってCOUNT_NZ信号は、“１”レベルになる。このCOUNT_NZ信号はまた、図９のRUN信号生成回路１４内のRUNレジスタ(REG_RUN)、図１０のLENGTH信号生成回路１５内のLENGTHレジスタ(REG_LENGTH)、及び図１１のメモリアドレス信号生成回路１２内のポインタレジスタ(REG_PTR)の各々に対するカウントイネーブル信号としても使用される。COUNT_NZ信号が“１”レベルを保持している間は、LENGTHレジスタ及びポインタレジスタの双方においてカウント動作が有効となる。またCOUNT_NZ信号はメモリ書き込み動作にも使用される。COUNT_NZ信号が“１”レベルを保持している間は、メモリライトに必要なMEMWEB信号、MEMCSB信号が共に“０”レベルとなって波形収集動作が開始され、アドレス及びデータのメモリ書き込み動作が実行される。
COUNT_NZ信号が、“１”レベルになった後、トリガ信号(TRIG)生成回路１６で生成されたTRIG信号を受信すると、COUNT_EN信号は“１”レベルになる。COUNT信号生成回路１３には、Ｆ／Ｆ８７のクロック立ち上がりごとにTRIG信号のレベル保持を行う回路が設けられており、COUNT_NZ信号が“０”レベルとなるまでCOUNT_EN信号が“１”レベルを保持し続ける。COUNT_EN信号は、COUNTレジスタ(REG_COUNT)のカウントデクリメントのイネーブル信号としても使用されており、COUNT_EN信号が“１”レベルを保持している間はカウントデクリメントが有効となり、COUNTレジスタ(REG_COUNT)は‘０’になるまでカウントデクリメント動作を実行する。COUNTレジスタ(REG_COUNT)が“０”になった後、COUNT信号生成回路１３中のCMP回路８５は、初期値“０”とCOUNTレジスタ(REG_COUNT)“０”とを比較し、データ値が一致した場合にはCOUNT_NZ_TMP1信号を“１”レベルで出力する。この際、先に説明したとおりCOUNT信号生成回路１３においてCOUNT_NZ信号が“０”レベルとなる（図９参照）ことで、COUNTレジスタ(REG_COUNT)の減算カウントイネーブル信号(COUNT_EN)も“０”レベルとなりCOUNTレジスタ(REG_COUNT)のカウントデクリメント動作の更新は停止する。
COUNT信号生成回路１３から出力されるCOUNT_EN信号が“１”レベルを保持している時に、Ｆ／Ｆ８２のクロック立ち上がりでSTOP信号の１Ｔサイクル遅延信号が“１”レベルであった場合、COUNTレジスタはそのクロックの立ち上がりでカウントデクリメントのカウントデータを保持する。また逆にＦ／Ｆ８２のクロック立ち上がりでSTOP信号の１Ｔサイクル遅延信号が“０”レベルであった場合は、クロック立ち上がりでカウントデクリメント動作を行う。COUNTレジスタ(REG_COUNT)から出力するCOUNT_RD[9：0]は、ＣＰＵのI/F上からCOUNTレジスタの状態を認識するため、リードレジスタに接続する信号である。
図９はRUN信号生成回路１４の詳細構成を示すブロック図である。データ収集前に、ＣＰＵ４がRUNレジスタ(REG_RUN)に初期値“０”を設定する。STARTが“１”レベルの際、クロックの立ち上がりでRUNレジスタ(REG_RUN)には初期設定値がロードされる。これと同時にCOUNT_NZ信号（図８参照）が“１”レベルとなる。COUNT_NZ信号は、RUNレジスタ(REG_RUN)のカウントイネーブル信号としても使用されており、COUNT信号生成回路１３のCOUNTレジスタ(REG_COUNT)が“０”になった後は、COUNT_NZ信号が“０”レベルとなることでRUNレジスタ(REG_RUN)の同一データの繰り返し回数カウントの更新は停止する。また同じくRUNレジスタ(REG_RUN)において、カウントイネーブル(COUNT_NZ)が“１”レベルでEQU信号が“１”レベルの場合に、SEL９１及びSEL９２の双方において同一データの繰り返し回数のカウント動作が選択され、これによってRUNレジスタ(REG_RUN)はクロックの立ち上がりで同一データの繰り返し回数のカウント動作をする。また、カウントイネーブル(COUNT_NZ)が“１”レベルでEQU信号が“０”レベルの場合、SEL９２において“０”レベルが選択されるため、クロックの立ち上がりによってRUNレジスタ(REG_RUN)に格納された同一データの繰り返し回数は初期値“０”にリセットされる。
さらにRUN信号生成回路１４では、同一データの繰り返し回数のカウントが可能な値が‘Ｆ／ＦＦ／Ｆh’設定されているため、EQU信号が65535クロック以上で“１”レベルが続く場合のCMP回路９４の出力信号は“１”レベルとなり、SEL９１でRUNレジスタ(REG_RUN)の状態値‘Ｆ／ＦＦ／Ｆh’が選択され、RUNレジスタ(REG_RUN)としては‘Ｆ／ＦＦ／Ｆh’を保持する。また、RUNレジスタ(REG_RUN)から出力するRUN[15：0]は、ＣＰＵのI/F上からRUNレジスタの状態を知るため、リードレジスタに接続する信号であると共に、図１２のメモリデータ出力生成回路２０に接続する信号である。
図１０にLENGTH信号生成回路１５の詳細構成を示す。データ収集前に、ＣＰＵ４からLENGTHレジスタ(REG_LENGTH)に初期値“０”を設定する。LENGTHレジスタには、STARTがクロック１Ｔ幅の“１”レベルの時にクロック立ち上がりでLENGTHレジスタ(REG_LENGTH)は初期設定値がロードされると同時に、COUNT_NZ信号が“１”レベルとなる。COUNT_NZ信号は、LENGTHレジスタ(REG_ LENGTH)のカウントイネーブル信号としても使用される。COUNT信号生成回路１３のCOUNTレジスタ(REG_COUNT)が“０”になった後は、COUNT_NZ信号が“０”レベルとなることでLENGTHレジスタ(REG_LENGTH)のカウントイネーブル信号(COUNT_NZ)は‘０’レベルとなり、LENGTHレジスタ(REG_LENGTH)の値の異なるデータの個数を示すカウントの更新は停止する。またLENGTHレジスタ(REG_LENGTH)ではカウントイネーブル(COUNT_NZ)が“１”レベルでEQU信号が“０”レベルの場合にSEL１０１において、LENGTHレジスタ状態値＋１が選択される。この時、CLR信号が“０”レベルであった場合、SEL１０２においてもLENGTHレジスタ状態値＋１が選択され、このLENGTHレジスタ(REG_LENGTH)はクロックの立ち上がりによりカウントＵＰ動作をする。さらにLENGTHレジスタ(REG_LENGTH)ではカウントイネーブル(COUNT_NZ)が“１”レベルでEQU信号も“１”レベルだった場合、SEL１０１においてLENGTHレジスタ状態値保持動作が選択される。この時、CLR信号が“０”レベルであれば、SEL１０２においてもLENGTHレジスタの状態値保持動作が選択されることによってLENGTHレジスタの状態保持をする。またLENGTHレジスタ(REG_LENGTH)では、カウントイネーブル(COUNT_NZ)が“１”レベルでCLR信号も“１”レベルであった場合はSEL１０２において“０”レベルが選択される。この時、EQU信号によるSEL１０１の選択状態は無視され、LENGTHレジスタはクロックが立ち上がり、カウント値を保持していた状態から初期値“０”状態に戻される。また、LENGTHレジスタ(REG_LENGTH)から出力するLENGTH[9：0]はＣＰＵのI/F上からLENGTHレジスタの状態を知るためにリードレジスタに接続する信号であると共に、図１２のメモリデータ出力生成回路に接続する信号でもある。
図１１にメモリアドレス信号生成回路１２の詳細ブロック図を示す。データ収集前に、ＣＰＵ４からポインタレジスタ(REG_PTR)にメモリアドレス初期設定値の設定をする。ポインタレジスタ(REG_PTR)には、STARTがクロック１Ｔ幅の“１”レベルの時にクロック立ち上がりでポインタレジスタ(REG_PTR)は初期設定値がロードされると同時に、COUNT_NZ信号が“１”レベルとなる。COUNT_NZ信号は、ポインタレジスタ(REG_ PTR)のカウントイネーブル信号としても使用され、COUNT信号生成回路１３のCOUNTレジスタ(REG_COUNT)が“０”になった後は、COUNT_NZ信号が“０”レベルとなることでポインタレジスタ(REG_PTR)のカウントイネーブル信号(COUNT_NZ)は“０”になりポインタレジスタ(REG_PTR)のアドレスカウントＵＰ動作の更新は停止し、最後に格納したデータのメモリアドレスが格納される。またSTOP信号の働きとしては、カウントイネーブル(COUNT_NZ)が“１”レベルでSTOP信号“１”レベルの場合に、ポインタレジスタ(REG_PTR)はクロックの立ち上がりでアドレスカウントのデータを保持する。ポインタレジスタ(REG_PTR)ではカウントイネーブル(COUNT_NZ)が“１”レベルでSTOP信号が“０”レベルの場合に、クロック立ち上がりによってアドレスカウントをカウントＵＰ動作する。さらにメモリへ出力するメモリアドレスMEM_AB[9：0]は、STOP信号“１”レベルの場合にポインタレジスタ(REG_PTR)の状態値をスルーで出力させ、STOP信号“０”レベルの場合にはポインタレジスタ(REG_PTR)の状態値＋１にしたものを出力することで、同一データ繰り返しが続いたとき（CLR信号“１”レベル状態時）のメモリに書き込みアドレス値を調整する。そしてポインタレジスタ(REG_PTR)から出力するPTR_RD[9：0]は、ＣＰＵのI/F上からポインタレジスタの状態を知るためにリードレジスタに接続する信号である。
次に図１２を参照してメモリデータ出力生成回路２０の動作について説明する。EQU信号“１”レベルの時、RUNレジスタ及びLENGTHレジスタで生成した同一データ繰り返し回数カウント値RUN[15：0]と値の異なるデータ個数のカウント値LENGTH[9：0]を、メモリの書き込みデータMEMDBOとして出力する。これは同一データ繰り返し回数カウント値、値の異なるデータ個数のカウント値の圧縮処理した結果をメモリデータとして出力する機能である。またEQU信号“０”レベルの時は、現在のMON信号(CURR_MON)の値がMEMDBOに出力される。
【００１１】
図１３に波形収集モードにおける各信号の動作波形を示す。波形収集動作は、ロジックアナライザ１内のレジスタ群初期設定回路１１にＣＰＵ４からライトアクセスを開始させることで波形収集するため必要な初期設定などをレジスタに設定し、最後にレジスタWR_ENABLEにＣＰＵ４からライトアクセスすることで、本発明のロジックアナライザ１は波形収集動作を開始する。
レジスタWR_ENABLEにＣＰＵ４からライトアクセスするとメモリ用アドレス生成回路１２、COUNT信号生成回路１３、RUN信号生成回路１４、LENGTH信号生成回路１５に初期設定されたデータがロードされる。またCOUNT信号生成回路１３で生成されたCOUNT_NZ信号は“１”となり、これに伴いメモリのMEMWEB信号、MEMCSB信号が“０”となることで、波形収集モード動作が開始されてアドレス、データのメモリ書き込みが始まる。モニター信号に流れている波形データが異なる状態値のデータならば、メモリアドレスをカウントＵＰしながらメモリへデータを書き込み、連続する同一状態値のデータならばRUN信号生成回路１４、LENGTH信号生成回路１５の各回路から出力される同一データ繰り返し回数カウント値及び値の異なるデータ個数のカウント値を、特性評価に適した観測加工用データにデータ圧縮してメモリに書き込む。トリガが発生しない間は、メモリの有効アドレス内において、アドレス及びデータを何度も上書きする。動作開始後１回目のトリガが発生するCOUNTがデクリメントされ、COUNTが“０”になると動作が停止する。COUNTが“０”でない間中、常にデータは格納されている。COUNTの値はメモリサイズの半分程度にすることによって、トリガの前後を同程度の時間とすることができる。波形収集モードは１回の波形収集動作につき、動作開始後１回目のトリガのみ有効である。
波形収集後、リードレジスタMEMWR_ENDにメモリの書きこみが終了したことを知らせるステータスが残る。このステータス情報を元に、ＣＰＵ４を通して格納データのメモリリードへ移行する。メモリ５から格納データの展開方法は、リードレジスタPTR_RDをリードし、メモリの最後に書き込んだアドレスを見つけた後にLENGTH_RDをリードすれば、メモリ５に対し、データ圧縮が行われたアドレスまでたどることができる。データ圧縮が行われたアドレスを見つけることができれば、順々に前のアドレスをたどり格納されたデータを元の波形データとして展開できる。
図１６は波形収集モードを使用したロジック繰り返しデータ圧縮処理したメモリへの格納状態の例を示した図であり、(a)入力データの例の様な信号が入力されたとすると、まず値が変化している間、32Bit の(D0, D1, D2, D3)はそのままメモリに格納される。そして、D4の最初のデータまでは、値が変化しているので、そのままメモリに格納される。D4の2番目のデータからは、メモリには、値が変化した値の個数Nを下位16bitに、D4の繰り返し数Mから2を引いた値(M-2)を上位16bitにし、同じアドレスに保存される。D4の連続が終わり、D5が来たら、次のアドレスにこの値をそのまま保存し、これまでと同様に、値が変化している間(D5, D6, D7, 最初のD8)はそのままメモリに保存し、また、値の繰り返しが発生したら、変化したデータの個数と繰り返し数をメモリに格納する。このようにデータを格納していくことによって、格納すべきデータを圧縮することができる。最後に書き込んだメモリのアドレスを示すポインタレジスタ(PTR)および、変化した値の個数、繰り返す回数をカウントするレジスタ(LENGTH, RUN, 詳細は後述)を利用し、最後に書き込んだメモリアドレスから順に前のアドレスにたどってゆくことによって、格納されたデータから、元の波形データに展開することもできる。図１６の例では、アドレス10の値を読み出し、このアドレスからL＋2を引いたアドレスがその前のカウント値が入ったアドレスになる。同様に、5番地のアドレスからは、N＋2を引けば良い。このようなデータ圧縮処理機構を具備することで、特性評価に適した観測データの加工を施すことができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の一実施形態を示す図であり、オンチップ・ロジックアナライザを搭載するＬＳＩチップ及びブレッドボードを示すブロック図である。
【図２】本実施形態のＬＳＩチップ内におけるロジックアナライザ回路１の詳細構成を示す全体ブロック図である。
【図３】本実施形態のＬＳＩチップ内におけるMONラッチ回路１７の構成を示す部分ブロック図である。
【図４】本実施形態のＬＳＩチップ内におけるTRIG生成回路１６の構成を示す部分ブロック図である。
【図５】TRIG生成回路１６にて生成される信号CURR_MON[31：0]、TARGET[31：0]、MASK[31：0]の関係について示した図である。
【図６】本実施形態のＬＳＩチップ内における制御信号生成回路１８の構成を示す部分ブロック図である。
【図７】本実施形態のＬＳＩチップ内におけるデータロード信号生成回路（兼書込終了信号生成回路）１９の構成を示す部分ブロック図である。
【図８】本実施形態のＬＳＩチップ内におけるCOUNT信号生成回路１３の構成を示す部分ブロック図である。
【図９】本実施形態のＬＳＩチップ内におけるRUN信号生成回路１４の構成を示す部分ブロック図である。
【図１０】本実施形態のＬＳＩチップ内におけるLENGTH信号生成回路１５の構成を示す部分ブロック図である。
【図１１】本実施形態のＬＳＩチップ内におけるメモリアドレス信号生成回路１２の構成を示す部分ブロック図である。
【図１２】本実施形態のＬＳＩチップ内におけるメモリデータ出力生成回路２０の構成を示す部分ブロック図である。
【図１３】波形収集モードにおける各信号の動作波形を示すチャートである。
【図１４】外部ロジックアナライザを用いてＬＳＩチップのデバックを行う従来技術を示した図である。
【図１５】ロジックアナライザにおける信号波形の一例を示した図である。
【図１６】波形収集モードを使用したロジック繰り返しデータ圧縮処理したメモリへの格納状態の例を示した図である。
【符号の説明】
【００１３】
１  ロジックアナライザ
２  セレクタ
３  端末（ＰＣ）
４  ＣＰＵ
５  ＳＲＡＭ（メモリ）
１１  レジスタ群初期設定回路
１２  メモリアドレス生成回路
１３  COUNT信号生成回路
１４  RUN信号生成回路
１５  LENGTH信号生成回路
１６  TRIG生成回路
１７  MONラッチ
１８  制御信号生成回路
１９  データロード信号生成回路（兼書込終了信号生成回路）
２０  メモリデータ出力生成回路
【図１】
2006090727.tif 000003
【図２】
2006090727.tif 000004
【図３】
2006090727.tif 000005
【図４】
2006090727.tif 000006
【図５】
2006090727.tif 000007
【図６】
2006090727.tif 000008
【図７】
2006090727.tif 000009
【図８】
2006090727.tif 000010
【図９】
2006090727.tif 000011
【図１０】
2006090727.tif 000012
【図１１】
2006090727.tif 000013
【図１２】
2006090727.tif 000014
【図１３】
2006090727.tif 000015
【図１４】
2006090727.tif 000016
【図１５】
2006090727.tif 000017
【図１６】
2006090727.tif 000018