(57)【要約】【課題】電子機器の開発初期段階でのデバッグ環境を高価なロジックアナライザを使用しなくても構築でき、しかも、プローブの浮遊容量や浮遊インダクタンス等による悪影響を排除できるようにする。【解決手段】組込マイコン１１およびＦＰＧＡ１５を搭載した電子機器１０において、バス_Ａ１２からパラレルデータを取り込んでＳＰＩのフォーマットのシリアルデータに変換する手段（データ取込部３１、ＦＩＦＯ３２およびシフトレジスタ３３）およびそれを制御する手段（ＤＳＰＩコントローラ３４）を有するデバッグ用バスモニター３０をＦＰＧＡ１５に実装するとともに、ロジックアナライザよりも安価なＳＰＩ析機能付汎用オシロスコープ４０を測定器として用いるようにしてデバッグシステム２０を構築する。【選択図】図１
2009003603.tif 000002
【特許請求の範囲】
【請求項１】
マイクロコンピュータおよび再構築可能なゲートアレイを搭載した電子機器内のバス通信のデバッグシステムであって、
前記ゲートアレイに実装され、前記マイクロコンピュータにつながるバスから取り込んだパラレルデータを、前記バス通信における不具合の発生の状況に応じて選択的にシリアルインターフェイスのフォーマットのシリアルデータに変換して出力するバスモニターと、
前記バスモニターから出力される前記シリアルデータを観測するシリアルインターフェイス解析機能付オシロスコープと
を備えたことを特徴とするデバッグシステム。
【請求項２】
前記バスモニターは、
前記マイクロコンピュータからモニターアドレスおよびマスクアドレスが設定されるレジスタ群と、
前記レジスタ群に設定された前記モニターアドレスおよび前記マスクアドレスに基づいて前記マイクロコンピュータにつながるバスからキャプチャーするアドレス線のアドレスデータを生成するアドレス生成手段と、
前記アドレス生成手段によって生成され前記アドレスデータと前記マイクロコンピュータにつながるバスのアドレス線のデータとを比較する比較手段と、
前記比較手段の比較結果がアドレス一致のときに前記バスから取り込んだパラレルデータを前記シリアルデータに変換して出力する変換手段とを有する
ことを特徴とする請求項１記載のデバッグシステム。
【請求項３】
前記ゲートアレイに第２のマイクロコンピュータが実装されており、
前記第２のマイクロコンピュータは、前記レジスタ群に対して前記モニターアドレスおよび前記マスクアドレスを設定する
ことを特徴とする請求項２記載のデバッグシステム。
【請求項４】
前記マイクロコンピュータは、前記ゲートアレイに備えられたバスを介して前記レジスタ群に対して前記モニターアドレスおよび前記マスクアドレスを設定する
ことを特徴とする請求項２記載のデバッグシステム。
【請求項５】
前記マイクロコンピュータは、自身につながるバスを介して前記レジスタ群に対して前記モニターアドレスおよび前記マスクアドレスを設定する
ことを特徴とする請求項２記載のデバッグシステム。
【請求項６】
マイクロコンピュータおよび再構築可能なゲートアレイを搭載した電子機器内のバス通信のデバッグ方法であって、
前記マイクロコンピュータにつながるバスから取り込んだパラレルデータを、前記バス通信における不具合の発生の状況に応じて選択的にシリアルインターフェイスのフォーマットのシリアルデータに変換して出力するバスモニターを前記ゲートアレイに実装し、
前記バスモニターから出力される前記シリアルデータをシリアルインターフェイス解析機能付オシロスコープで観測する
ことを特徴とするデバッグ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デバッグシステムおよびデバッグ方法に関し、特にマイクロコンピュータを搭載した電子機器内のバス通信のデバッグシステムおよびデバッグ方法に関する。
【背景技術】
【０００２】
現在、ＡＶ機器、家電機器を問わず、ほとんどの電子機器にはマイクロコンピュータが組み込まれている。以下、電子機器に組み込まれているマイクロコンピュータを組込マイコンと呼ぶこととする。この組込マイコンを搭載した電子機器において、ソフトウェアおよびハードウェアのデバッグについては、従来は、組込マイコンと当該組込マイコンにより制御されるペリフェラル（周辺機器）とをつなぐバスの観測したいラインにロジックアナライザをつないで、当該ロジックアナライザで動作を確認しながらデバッグしていくようにしていた（例えば、特許文献１参照）。
【０００３】
【特許文献１】特開２００２−２６７７１８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、ロジックアナライザという測定器は一般的に高価である。また、観測したいバスの幅が広くなれば（ライン数が増えれば）、ロジックアナライザをバスにつなぐプローブの数が増えてしまうため、プローブをつなぐ作業が非常に面倒で、煩雑になってしまう。さらに、バスにプローブをつなぐことにより、プローブの浮遊容量や浮遊インダクタンスが回路に悪影響を及ぼす可能性がある。そして、バスのクロック周波数が高くなる程、プローブの浮遊容量や浮遊インダクタンスが及ぼす悪影響が大きくなる。
【０００５】
そこで、本発明は、電子機器の開発初期段階でのデバッグ環境を高価なロジックアナライザを使用しなくても構築でき、しかも、プローブの浮遊容量や浮遊インダクタンス等に起因する回路への悪影響を排除できるデバッグシステムおよびデバッグ方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明は、マイクロコンピュータおよび再構築可能なゲートアレイを搭載した電子機器内のバス通信のデバッグに当たって、前記マイクロコンピュータにつながるバスから取り込んだパラレルデータを、前記バス通信における不具合の発生の状況に応じて選択的にシリアルインターフェイスのフォーマットのシリアルデータに変換して出力するバスモニターを前記ゲートアレイに実装し、前記バスモニターから出力される前記シリアルデータをシリアルインターフェイス解析機能付オシロスコープで観測するようにしている。
【０００７】
マイクロコンピュータ（組込マイコン）および再構築可能なゲートアレイ（ＦＰＧＡ）を搭載した電子機器において、ＦＰＧＡに実装されたバスモニターは、バスから取り込んだパラレルデータを、バス通信における不具合の発生の状況に応じて選択的にシリアルインターフェイス（より具体的には、ＳＰＩと称される３線シリアルインターフェイス）のフォーマットのシリアルデータに変換して出力する。そして、測定者は、バスモニターから出力されるシリアルデータをＳＰＩ析機能付汎用オシロスコープで観測することで、電子機器内のバス通信における不具合の有無の判断を行う。
【発明の効果】
【０００８】
本発明によれば、デバッグ用のバスモニターをＦＰＧＡに実装するとともに、ロジックアナライザよりも安価なＳＰＩ解析機能付オシロスコープを測定器として用いてデバッグシステムを構築することにより、電子機器の開発初期段階でのソフトウェアおよびハードウェアのデバッグ環境を、特に追加投資することなしに、簡単かつ安価に構築できる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の実施の形態について図面を参照して詳細に説明する。
【００１０】
図１は、本発明の一実施形態に係るデバッグシステムの構成の概略を示すブロック図である。
【００１１】
図１に示すように、組込マイコン１１を搭載し、当該組込マイコン１１に対してバス_Ａ（パラレルバス）１２を介してメモリ１３や周辺機器であるｎ個のペリフェラル（１）１４−１〜ペリフェラル（ｎ）１４−ｎが接続されてなる電子機器１０において、本実施形態に係るデバッグシステム２０は、再構築（再構成）可能なゲートアレイ、即ちＦＰＧＡ(Field Programmable Gate Array)１５にデバッグ用バスモニター３０を実装し、汎用のオシロスコープ４０を測定器として用いるシステム構成となっている。
【００１２】
最近の電子機器は、商品サイクルがどんどん短くなってきている。そして、商品をタイムリーに市場導入するためにＦＰＧＡを搭載する機器が多くなってきている。また、大規模なＦＰＧＡの価格も安くなってきている。ここで、ＦＰＧＡは、ハードウェアでありながらソフトウェアのように書き換え修正が可能で、その書き換えによって動作内容を変更することができる論理デバイスである。
【００１３】
また、汎用のオシロスコープにおいても、最低３線、好ましくは４線で送受信が可能な３線シリアルインターフェイスと称されるＳＰＩ(Serial Peripheral Interface)のデータフローを解析する機能（以下、「ＳＰＩ解析機能」と記述する）がついた機種も増えてきている。ここで、ＳＰＩ析機能付汎用オシロスコープの本来の使い方について、図２を用いて説明する。
【００１４】
図２からわかるように、ＳＰＩというインターフェイスは、マスタ機器５１からのクロック（ＳＣＫ）、マスタ機器５１からスレーブ機器５２−１〜５２−４に送られるシリアルデータ（ＭＯＳＩ）、スレーブ機器５２−１〜５２−４からマスタ機器５１に送られるシリアルデータ（ＭＩＳＯ）およびスレーブ機器５２−１〜５２−４のいずれかを選択するスレーブセレクト（ＳＳ）を伝送する４線５３〜５６で構成されるシリアルインターフェイスである。
【００１５】
そして、このＳＰＩというインターフェイスのデータフローを観測するために、ＳＰＩ析機能付汎用オシロスコープ４０を用いるというのが、当該ＳＰＩ析機能付汎用オシロスコープ４０の本来の使い方である。
【００１６】
本実施形態に係るデバッグシステム２０では、ＳＰＩ析機能付汎用オシロスコープ４０を本来の使い方ではなく、使い方に工夫をして活用するとともに、電子機器に搭載されるようになってきたＦＰＧＡ１５を利用してデバッグ用バスモニター３０を構成し、当該バスモニター３０によってバス_Ａ１２のデータをＳＰＩのフォーマットのシリアルデータに変換してＳＰＩ析機能付汎用オシロスコープ４０に入力することにより、バス_Ａ１２のデータを容易に観測できるようにしたことを特徴としている。
【００１７】
より具体的には、図２に示すＳＰＩにおいて、本来、シリアルデータＭＯＳＩ，ＭＩＳＯの２つの信号はマスタ機器５１とスレーブ機器５２−１〜５２−Ｎとの間の入出力の信号であるが、本実施形態に係るデバッグシステム２０においては、シリアルデータＭＯＳＩ，ＭＩＳＯの２つの信号とも、デバッグ用バスモニター３０からの出力信号として用いるようにしている。
【００１８】
ＦＰＧＡ１５は、例えば、バス_Ｂ（パラレルバス）１５１と、バス_Ａ１２とバス_Ｂ１５２との間のインターフェイス１５２と、バス_Ｂ１５２に接続されたＳＯＰＣ(System On Programmable Chip:つまりＦＰＧＡ１５上に実装できるマイクロコンピュータ）が実行された構成となっている。
【００１９】
［デバッグ用バスモニター］
以下に、本実施形態に係るデバッグシステム２０の特徴部分であるデバッグ用バスモニター３０について具体的に説明する。
【００２０】
図１に示すように、デバッグ用バスモニター３０は、組込マイコン１１とペリフェラル１４−１〜１４−ｎとをつなぐバス_Ａ１２のパラレルデータをＳＰＩのフォーマットのシリアルデータに変換するために、バス_Ａ１２につながるＦＰＧＡ１５内に実装されている。
【００２１】
デバッグ用バスモニター３０は、データ取込部３１、ＦＩＦＯ(First In First Out)メモリ３２、シフトレジスタ３３およびＤＳＰＩ(Debug Serial Parallel Interface)コントローラ３４を有し、パラレルデータをシリアルデータに変換するパラレル−シリアル変換手段（デバッグ用のパラレル−シリアルインターフェイス）を構成している。
【００２２】
ここで、組込マイコン１１とペリフェラル１４−１〜１４−ｎとをつなぐバス_Ａ１２は、大きく分けて、各種のコントロール線群と、アドレスを伝送するアドレス線群と、データを伝送するデータ線群の３種類の信号線群から構成されている。コントロール線群は、チップセレクト信号Ｃｈｉｐ_Ｓｅｌｅｃｔを伝送するチップセレクト線、Ｒｅａｄ信号を伝送する読み出し線およびＷｒｉｔｅ信号を伝送する書き込み線等からなる。
【００２３】
デバッグ用バスモニター３０は、上記信号線群のデータをデータ取込部３１によってキャプチャー（Ｃａｐｔｕｒｅ）して一旦ＦＩＦＯメモリ３２に取り込み、ＦＩＦＯメモリ３２からのパラレルデータをシフトレジスタ３３によってシリアルデータに変換してＳＰＩ析機能付汎用オシロスコープ４０に入力する。
【００２４】
ここで、ＦＩＦＯメモリ３２に一旦データを取り込む理由は、キャプチャーするパラレルデータは時間的に規則的に来る訳ではないのに対して、オシロスコープ４０に出力するシリアルデータについては、規則的なクロックに同期して出力しなければならないためである。すなわち、ＦＩＦＯメモリ３２は、時間軸のバッファの役割を担っている。
【００２５】
（ＤＳＰＩコントローラ）
図３は、ＤＳＰＩコントローラ３４の内部構成の一例を示すブロック図である。図３に示すように、ＤＳＰＩコントローラ３４は、キャプチャー条件を設定するための設定レジスタ群３４１、キャプチャーするアドレスを生成するアドレス生成器３４２、４つの比較器３４３〜３４６、ＯＲ回路３４７および２つのＡＮＤ回路３４８，３４９を有する構成となっている。
【００２６】
設定レジスタ群３４１は、モニターするアドレスｍｏｎ_ａｄｄｒが設定されるレジスタと、マスクするアドレスａｄｒｍａｓｋが設定されるレジスタと、モニターするチップセレクト（Ｃｈｉｐ  Ｓｅｌｅｃｔ）空間ＣＳ０Ｅ〜ＣＳ３Ｅが設定されるレジスタと、ペリフェラル１４−１〜１４−ｎから組込マイコン１１へのＲｅａｄデータＲＤのモニターの有無が設定されるレジスタと、組込マイコン１１からペリフェラル１４−１〜１４−ｎへのＷｒｉｔｅデータＷＲのモニターの有無が設定されるレジスタとからなる。設定レジスタ群３４１の各レジスタの詳細については後述する。
【００２７】
設定レジスタ群３４１の各レジスタには、本デバッグ用バスモニター３０による電子機器１０のハードウェアやソフトウェアのデバッグに当たって、モニター用のデータ（デバッグ用のテストデータ）、即ち上記のモニターアドレス、マスクアドレス、チップセレクト空間ＣＳ０Ｅ〜ＣＳ３ＥおよびデータＲＤ，ＷＲのモニターの有無が、測定者による指示の下に例えばＳＯＰＣ１５３からバス_Ｂ１５１を介して設定される。
【００２８】
なお、設定レジスタ群３４１の各レジスタへのモニター用のデータの設定に関しては、測定者による指示の下に組込マイコン１１からバス_Ａ１２、インターフェイス１５２およびバス_Ｂ１５１を介して設定することも可能である。
【００２９】
アドレス生成器３４２は、設定レジスタ群３４１の各レジスタに設定されたアドレスｍｏｎ_ａｄｄ，ａｄｒｍａｓｋに基づいてパラレルバス（バス_Ａ）１２からキャプチャーするアドレス線のアドレスを生成する。アドレス比較器３４３は、アドレス線のアドレスとアドレス生成器３４２で生成されたアドレスとを比較し、両アドレスが一致したときのみ出力が論理“１”（イネーブル）になる。
【００３０】
ＣＳ空間比較器３４４は、パラレルバス（バス_Ａ）１２からのコントロール線のうちのチップセレクト線の論理とレジスタＣＳ０Ｅ〜ＣＳ３Ｅの論理とを比較する。読み出し線比較器３４５は、コントロール線のうちの読み出し（Ｒｅａｄ）線の論理とレジスタＲＤの論理とを比較する。書き込み比較器３４６は、コントロール線のうちの書き込み（Ｗｒｉｔｅ）線の論理とレジスタＷＲの論理とを比較する。これら比較器３４４〜３４６は、両入力の論理が合致したときに出力が論理“１”（イネーブル）になる。
【００３１】
ＯＲ回路３４７は、読み出し線比較器３４５および書き込み比較器３４６の各比較出力を２入力とする。ＡＮＤ回路３４８は、ＣＳ空間比較器３４４の比較出力とＯＲ回路３４７の出力とを２入力とする。ＡＮＤ回路３４９は、アドレス比較器３４３の比較出力とＡＮＤ回路３４８の出力とを２入力とする。ＡＮＤ回路３４９の出力はＷｒｉｔｅ_Ｅｎａｂｌｅ信号として、ＦＩＦＯ３２のＷｒｉｔｅ_Ｅｎａｂｌｅ端子に与えられる。
【００３２】
上記構成のＤＳＰＩコントローラ３４は、キャプチャー条件をすべて満たしたときにのみ、ＦＩＦＯ３２に対してＷｒｉｔｅ_Ｅｎａｂｌｅ信号を出力する。Ｗｒｉｔｅ_Ｅｎａｂｌｅ信号が与えられると、ＦＩＦＯ３２は、データ取込部３１によって取り込まれた各データ（パラレルデータ）を取り込む。そして、ＦＩＦＯ３２に取り込まれたパラレルデータは、最終的に、シフトレジスタ３３を介してＳＰＩのフォーマットにてシリアルデータとして出力される。
【００３３】
なお、ここでは、ＤＳＰＩコントローラ３４の内部構成をハードウェアで実現した場合を例に挙げて説明したが、ＣＰＵによる制御の下に、アドレス生成器３４２、比較器３４３〜３４６、ＯＲ回路３４７およびＡＮＤ回路３４８，３４９の各機能をソフトウェアにて実現することも可能である。
【００３４】
（レジスタマップ）
図４に、デバッグ用バスモニター３０のレジスタマップの一例を示す。設定レジスタ群３４１の各レジスタは、論理“１”でイネーブルとなる。本例の場合、観測できるチップセレクト空間はＣＳ０〜ＣＳ３、データの方向はＲｅａｄとＷｒｉｔｅ、アドレスは２６ｂｉｔで、設定次第でどのようなデータ観測でもできる。
【００３５】
例えば、チップセレクト空間ＣＳ０のアドレス０ｘ１５７ｄｅ１９のＲｅａｄ命令だけのデータ、というピンポイントでのデータ観測ができる。また、アドレスマスク（ａｄｒｍａｓｋ）を使えば、チップセレクト空間ＣＳ１のすべてのＲｅａｄとＷｒｉｔｅのデータを観測することもできる。
【００３６】
デバッグ用バスモニター３０のレジスタマップにおいて、アドレス“０”がコントロールレジスタｃｏｎｔｒｏｌ、アドレス“１”がモニター上位アドレスレジスタｍｏｎ_ａｄｄｒ_ｕ、アドレス“２”がモニター下位アドレスレジスタｍｏｎ_ａｄｄｒ_ｌである。
【００３７】
レジスタｍｏｎ_ａｄｄｒ_ｕ／ｍｏｎ_ａｄｄｒ_ｌは、指定したアドレスのアクセスのみモニターできる。レジスタｍｏｎ_ａｄｄｒ_ｕが上位のアドレス［２５：１６］で、レジスタｍｏｎ_ａｄｄｒ_ｌが下位のアドレス［１５：０］である。
【００３８】
レジスタａｄｒｍａｓｋ，ＣＳ０Ｅ〜ＣＳ３Ｅ，ＲＤ，ＷＲは、コントロールレジスタｃｏｎｔｒｏｌの一部である。レジスタａｄｒｍａｓｋは、２６ｂｉｔのアドレスの下位からこの値番目までのアドレスをマスクする。例えば、ａｄｒｍａｓｋ＝５の場合は、ｍｏｎ_ａｄｄｒ［２５：５］を比較する。つまり、［４：０］のアドレスすべてをモニターする。
【００３９】
レジスタＣＳ０Ｅ〜ＣＳ３Ｅがイネーブルになることで、チップセレクト空間ＣＳ０〜ＣＳ３をそれぞれモニターする。レジスタＲＤがイネーブルになることで、ペリフェラル１４−１〜１４−ｎから組込マイコン１１へのＲｅａｄデータをモニターする。レジスタＷＲがイネーブルになることで、組込マイコン１１からペリフェラル１４−１〜１４−ｎへのＷｒｉｔｅデータをモニターする。
【００４０】
コントロールレジスタｃｏｎｔｒｏｌには、上記レジスタａｄｒｍａｓｋ，ＣＳ０Ｅ〜ＣＳ３Ｅ，ＲＤ，ＷＲに加えてレジスタｒｅｓｅｔ，ｉｎｉｔ，ｃｏｎｔｉが含まれている。レジスタｒｅｓｅｔがイネーブルになることで、デバッグ用バスモニター３０をリセットする。リセット後、レジスタｒｅｓｅｔは自動的に論理“０”に戻る。
【００４１】
レジスタｉｎｉｔがイネーブルになることで、デバッグ用バスモニター３０の設定を初期化する、即ちＷＲ＝１，ＲＤ＝１，ＣＳ３Ｅ＝１，ＣＳ２Ｅ＝１，ＣＳ１Ｅ＝１，ＣＳ０Ｅ＝１，ｃｏｎｔｉ＝１にする。初期化後、レジスタｉｎｉｔは自動的に論理“０”に戻る。初期化状態は、ａｄｒｍａｓｋ＝２６、つまりすべてのアドレスをモニターする。
【００４２】
レジスタｃｏｎｔｉ（ｃｏｎｔｉｎｕｏｕｓ  ｍｏｄｅ）を論理“１”にすると、最後にアクセスしたデータが常に出続ける。オシロスコープ４０のレンジやトリガーレベル設定に用いると便利である。レジスタｃｏｎｔｉを論理“０”にすると、キャプチャーした有効データのみ出力する。データが終われば出力を停止して、再びデータが来ればそれを出力する。
【００４３】
（シリアルデータの仕様）
図５に、デバッグ用バスモニター２０からＳＰＩのフォーマットにて出力され、ＳＰＩ解析機能付オシロスコープ４０に供給されるシリアルデータ（Ｓｅｒｉａｌ_ｄａｔａ）の仕様の例を示す。
【００４４】
一般的に、ＳＰＩの規格としては、“ＭＯＳＩ（マスター出力スレーブ入力信号）”，“ＭＩＯＳ（マスター入力スレーブ出力信号）”，“ｓｃｌｋ（シリアルクロック）”，“ｓｓ_ｎ（データ有効区間）”の４つの信号から構成される。
【００４５】
このＳＰＩの規格のシリアルデータにおいて、“ＭＯＳＩ”，“ＭＩＯＳ”にそれぞれＳｅｒｉａｌ_ｄａｔａ（ａｄｄｒｅｓｓ），Ｓｅｒｉａｌ_ｄａｔａ（ｄａｔａ，ｉｎｆｏ）を割り当てることにより、ＳＰＩ解析機能付オシロスコープ４０上で観測できるようにする。
【００４６】
ｉｎｆｏは、コントロール線情報（Ｒｅａｄ／Ｗｒｉｔｅ／Ｃｈｉｐ_Ｓｅｌｅｃｔ）である。一例として、Ｒｅａｄ／Ｗｒｉｔｅについては“２”が“Ｗｒｉｔｅ”、“１”が“Ｒｅａｄ”である。また、Ｃｈｉｐ_Ｓｅｌｅｃｔについては“０”が“ＣＳ０”、“１”が“ＣＳ１”、“２”が“ＣＳ２”、“３”が“ＣＳ３”である。
【００４７】
（ハードウェア不具合の観測例）
次に、上記構成のデバッグ用バスモニター３０によるハードウェア不具合の観測例を、例えばアドレス線のショートチェックを行う場合について図６を用いて説明する。本例では、アドレス線Ａ０がＧＮＤにショートしているものとする。
【００４８】
なお、図６において、図１と同等部分には同一符号を付して示し、バス_Ａ１２についてはアドレス線のみを拡大して示している。また、図１では図示を省略しているが、バス_Ａ１２には、組込マイコン１１の保護やバス駆動能力増強のためにバスバッファ１６が挿入されている。
【００４９】
この例の場合、例えば、ペリフェラル（１）１４−１に対して、０ｘ０１番地にデータ“０ｘ５６”を書き込み、その後、０ｘ０１番地のデータを読むと、“０ｘ５６”なるデータが返ってくる、という動作となる。
【００５０】
このとき、実際には、ペリフェラル（１）１４−１の０ｘ００番地のレジスタにアクセスしているのだが、組込マイコン１１から見れば、０ｘ０１番地のレジスタにアクセスして動作しているように見えて、アドレス線の不具合を見落とすおそれがある。
【００５１】
この場合、図１の構成において、測定者による指示の下に、ＳＯＰＣ１５３からＤＳＰＩコントローラ３４のレジスタに対して、モニターするアドレスを０ｘ０１番地に指定する処理を行う。
【００５２】
具体的には、図４に示すレジスタマップにおいて、ＣＳ０Ｅ＝１，ＣＳ１Ｅ＝０，ＣＳ２Ｅ＝０，ＣＳ３Ｅ＝０，ＲＤ＝１，ＷＲ＝１，ａｄｒｍａｓｋ［５：０］＝０，ｃｏｎｔｉ＝０，ｍｏｎ_ａｄｄｒ_ｕ＝０ｘ００００，ｍｏｎ_ａｄｄｒ_ｌ＝０ｘ０００１と設定する。
【００５３】
このとき、図３に示すＤＳＰＩコントローラ３４において、レジスタマップの設定に基づいてアドレス生成器３４２で生成されたアドレスデータと、バス_Ａ１２のアドレス線からのデータとがアドレス比較器３４３で比較されることになるが、アドレス線Ａ０がＧＮＤにショートしている訳であるから、その比較結果がアドレス不一致となる。
【００５４】
これにより、最終段のＡＮＤ回路３４９がゲート断となり、ＤＳＰＩコントローラ３４からＦＩＦＯ３２に対してＷｒｉｔｅ_Ｅｎａｂｌｅ信号が与えられないために、デバッグ用バスモニター３０からＳＰＩ解析機能付オシロスコープ４０に対してデータが出力されてこない。したがって、測定者はハードウェア上のどこかに不具合があることを知ることができる。
【００５５】
ハードウェア上のどこかに不具合があることを知ると、測定者は、ＤＳＰＩコントローラ３４のレジスタに対して、ａｄｒｍａｓｋ［５：０］＝１、即ちアドレスの下位１ｂｉｔをマスクする設定を行うように、ＳＯＰＣ１５３に指示を与える。
【００５６】
ａｄｒｍａｓｋ［５：０］＝１の設定により、アドレスの下位１ｂｉｔが“Ｄｏｎ’ｔ  Ｃａｒｅ”になるので、アドレスとしては、０ｘ００と０ｘ０１をモニターし、アドレス比較器３４３でアドレス比較を行うことになる。
【００５７】
そして、アドレス比較器３４３での比較結果がアドレス一致となり、ＤＳＰＩコントローラ３４からＦＩＦＯ３２に対してＷｒｉｔｅ_Ｅｎａｂｌｅ信号が与えられるために、デバッグ用バスモニター３０からＳＰＩ解析機能付オシロスコープ４０に対してアドレス＝０ｘ００、データ＝０ｘ５６というシリアルデータが出力される。
【００５８】
測定者は、デバッグ用バスモニター３０から出力されるシリアルデータをＳＰＩ解析機能付オシロスコープ４０で観測することで、最終的に、アドレス線Ａ０に不具合があることを知ることができる。
【００５９】
このようにして、測定者による指示の下に、モニター用のデータ（デバッグ用のテストデータ）を組込マイコン１１またはＳＯＰＣ１５３からＤＳＰＩコントローラ３４のレジスタに設定し、その設定情報に基づくアドレスデータとバス_Ａ１２のアドレス線のデータとを比較し、アドレスが一致したときに、バス_Ａ１２から取り込んだパラレルデータをＳＰＩのフォーマットのシリアルデータに変換（即ち、バス通信における不具合の発生の状況に応じて選択的に変換）して出力することにより、ハードウェア的にアドレス線に不具合が存在すれば、デバッグ用バスモニター３０からシリアルデータが出力されず、そのことをＳＰＩ析機能付汎用オシロスコープ４０の観測によって知ることができるため、ハードウェア的に不具合があることが容易にわかる。
【００６０】
ここでは、アドレス線Ａ０に不具合を観測する場合を例に挙げて説明したが、この一連のデバッグ処理は、実際には、すべてのアドレス線に対して順番に行われ、すべてのアドレス線についてハードウェア不具合の観測が行われるとともに、アドレス線群以外のコントロール線群およびデータ線群のハードウェア不具合についても同様に行われる。
【００６１】
上述したように、組込マイコン１１およびＦＰＧＡ１５を搭載した電子機器１０において、バス_Ａ１２からパラレルデータを取り込んでＳＰＩのフォーマットのシリアルデータに変換する手段（データ取込部３１、ＦＩＦＯ３２およびシフトレジスタ３３）とそれを制御する手段（ＤＳＰＩコントローラ３４）とを有するデバッグ用バスモニター３０をＦＰＧＡ１５に実装するとともに、ロジックアナライザよりも安価なＳＰＩ析機能付汎用オシロスコープ４０を測定器として用いてデバッグシステム２０を構築することにより、電子機器１０の開発初期段階でのソフトウェアおよびハードウェアのデバッグ環境を、特に追加投資することなしに、また高価なロジックアナライザを用いなくても、簡単かつ安価に構築できる。
【００６２】
また、バス_Ａ１２から取り込んだパラレルデータを、不具合の発生の状況に応じて選択的にＳＰＩのフォーマットのシリアルデータに変換してＳＰＩ析機能付汎用オシロスコープ４０に入力する構成を採っていることにより、ロジックアナライザのように５０〜６０本近くの多数のプローブ線をつなぐ必要がなく、ＳＰＩ析機能付汎用オシロスコープ４０の場合には例えば４本のプローブ線をつなぐだけでよく、しかも、そのプローブの浮遊容量や浮遊インダクタンス等に起因する悪影響を排除できる。
【００６３】
特に、上記実施形態では、ＳＯＰＣ１５３を搭載したＦＰＧＡ１５に対してデバッグ用バスモニター３０を実装した構成を採っていることから、ＦＰＧＡ１５外のメインの組込マイコン１１と、ＦＰＧＡ１５内のＳＯＰＣ（マイコン）１５３の両方から、デバッグ用バスモニター３０を制御できる、具体的には、ＤＳＰＩコントローラ３４のレジスタにモニター用のデータ（デバッグ用のテストデータ）を設定できる。
【００６４】
このように、ＳＯＰＣ１５３を搭載したＦＰＧＡ１５に対してデバッグ用バスモニター３０を実装した構成は、メインの組込マイコン１１とデバッグ用バスモニター３０とのバス_Ａ１２を介しての通信が十分に確立できていないときのデバッグの場合に、組込マイコン１１からデバッグ用バスモニター３０を制御できなくても、ＳＯＰＣ１５３からデバッグ用バスモニター３０を制御できるため有効である。
【００６５】
［変形例］
なお、本発明は、ＳＯＰＣ１５３を搭載したＦＰＧＡ１５へのデバッグ用バスモニター３０の実装に限られるものではなく、メインの組込マイコン１１とデバッグ用バスモニター３０とのバス_Ａ１２を介しての通信が十分に確立できている場合には以下のような構成を採ることも可能である。
【００６６】
図７に示すように、ＳＯＰＣ１５３は実装されていないが、内部のコンポーネントを構成し易く、使い易いようにするために、専用のバスアーキテクチャー（バス_Ｂ１５１）を備えているＦＰＧＡ１５Ａに対してデバッグ用バスモニター３０を実装し、組込マイコン１１からバス_Ａ１２、インターフェイス１５２およびバス_Ｂ１５１を介してデバッグ用バスモニター３０を制御する構成を採ることも可能である。
【００６７】
また、図８に示すように、専用のバスアーキテクチャーを備えていないＦＰＧＡ１５Ｂに対してデバッグ用バスモニター３０を実装し、組込マイコン１１から当該組込マイコン１１と同じバス_Ａ１２を介してデバッグ用バスモニター３０を制御する構成を採ることも可能である。
【００６８】
ところで、電子機器１０に搭載するＦＰＧＡ１５，１５Ａ，１５Ｂについては、勿論、他の目的で使うために搭載されるものであろうから、電子機器１０内のバス通信のデバッグが終わってバス通信が確立されてしまえば、本デバッグ用バスモニター３０のモジュールを取り去ってしまって、本来実装すべき機能や別の機能を実装するようにすればよい。
【００６９】
また、ＦＰＧＡ１５，１５Ａ，１５Ｂのゲート数に余裕があるのであれば、本デバッグ用バスモニター３０のモジュールをそのまま残しておいて、後々のバージョンアップの際のデバッグに使うようにしてもよい。このような使い方をすることにより、バージョンアップの際に改めて、本デバッグ用バスモニター３０をＦＰＧＡ１５，１５Ａ，１５Ｂに構築する必要がないため有利である。
【図面の簡単な説明】
【００７０】
【図１】本発明の一実施形態に係るデバッグシステムの構成の概略を示すブロック図である。
【図２】ＳＰＩ析機能付汎用オシロスコープの本来の使い方の説明図である。
【図３】ＤＳＰＩコントローラの内部構成の一例を示すブロック図である。
【図４】デバッグ用バスモニターのレジスタマップの一例を示す図である。
【図５】デバッグ用バスモニターのシリアルデータの仕様の例を示す図である。
【図６】デバッグ用バスモニターによるハードウェア不具合の観測例の説明に供する図である。
【図７】本発明の変形例に係るデバッグシステムの構成の概略を示すブロック図である。
【図８】本発明の他の変形例に係るデバッグシステムの構成の概略を示すブロック図である。
【符号の説明】
【００７１】
１０…電子機器、１１…組込マイコン、１２…バス、１３…メモリ、１４−１〜１４−ｎ…ペリフェラル、１５，１５Ａ，１５Ｂ…ＦＰＧＡ、２０…デバッグシステム、３０…デバッグ用バスモニター、４０…ＳＰＩ解析機能付オシロスコープ
【図１】
2009003603.tif 000003
【図２】
2009003603.tif 000004
【図３】
2009003603.tif 000005
【図４】
2009003603.tif 000006
【図５】
2009003603.tif 000007
【図６】
2009003603.tif 000008
【図７】
2009003603.tif 000009
【図８】
2009003603.tif 000010