(57)【要約】【課題】ＡＳＩＣ、ＦＰＧＡなどの内部回路におけるＣＰＵインターフェース部のリードアクセスを、バス衝突を発生することなく省略可能にして、回路規模を削減する。【解決手段】ＣＰＵバスアクセス補助回路（１０３）は、ＣＰＵ（１０１）からＡＳＩＣ及びＦＰＧＡデバイス（１０６）〜（１０７）へのデータ書き込み信号を受けた時、前記ＣＰＵから出力されたアドレスに該当する前記デバイスのアドレスに前記ＣＰＵから出力されたデータを書き込むための制御を行うとともに、該書き込まれたアドレスおよび書き込みデータを外部ＲＡＭ（１０５）に記憶し、前記ＣＰＵから前記デバイスからのデータ読み出し信号を受けた時、前記デバイスにアクセスしないで、前記外部ＲＡＭの該当アドレスに記憶されているデータを読み出して前記ＣＰＵへ出力可能にする。【選択図】図１
2008117050.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵと、該ＣＰＵからのＷｒｉｔｅ／Ｒｅａｄアクセスに対応するレジスタを有するインターフェース部を備えたＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field Programmable Gate Array）等の信号処理用デバイスの間に接続され、前記ＣＰＵからアドレス、データおよびＷｒｉｔｅ制御信号が入力されたとき、該アドレスに該当する前記デバイスのレジスタに対して前記データを書き込むとともに、外部接続されたＲＡＭに前記データを前記アドレスごとに記憶する制御を実行するデータ書き込み制御手段と、前記ＣＰＵからアドレス、およびＲｅａｄ制御信号が入力されたとき、該アドレスに該当する前記デバイスのレジスタまたは前記外部接続されたＲＡＭの該当アドレスのいずれか一方にアクセスしてデータを読み出すとともに、該読み出したデータを前記ＣＰＵへ出力する制御を実行する読出し制御手段と、を有していることを特徴とするＣＰＵバスアクセス補助回路。
【請求項２】
前記読出し制御手段は、前記ＣＰＵから出力されたアドレスが、前記デバイス内のＷｒｉｔｅのみに対応しているレジスタのアドレスであるときには、前記外部接続されたＲＡＭの該当するアドレスのデータを読み出して前記ＣＰＵへ出力する機能を有していることを特徴とする請求項１に記載のＣＰＵバスアクセス補助回路。
【請求項３】
前記ＣＰＵで処理されるソフトウェアおよび前記デバイスの不具合解析を行うデバッグ機能制御手段を備えていることを特徴とする請求項１または２に記載のＣＰＵバスアクセス補助回路。
【請求項４】
前記デバッグ機能制御手段は、前記ソフトウェアのデバッグ時に、前記ＣＰＵからのＲｅａｄ要求に対して、前記デバイスに対するＲｅａｄ制御を行わずに、事前に前記外部ＲＡＭへ書き込んでいたデバッグ用のデータを前記ＣＰＵに対して送信する制御を実行する機能を有していることを特徴とする請求項３に記載のＣＰＵバスアクセス補助回路。
【請求項５】
前記デバッグ機能制御手段は、前記ソフトウェアまたはデバイスの不具合解析時に、前記ＣＰＵからのＷｒｉｔｅアクセス、及びＲｅａｄアクセスを該当デバイスに対して行わせるとともに、当該アクセス内容を前記外部ＲＡＭへログとして保存させる制御を実行する機能を有していることを特徴とする請求項３または４に記載のＣＰＵバスアクセス補助回路。
【請求項６】
ＣＰＵと、該ＣＰＵからのＷｒｉｔｅ／Ｒｅａｄアクセスに対応するレジスタを有するインターフェース部を備えたＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field Programmable Gate Array）等の信号処理用デバイスの間に接続されるＣＰＵバスアクセス補助回路であって、
前記ＣＰＵから出力されるアドレスを入力し、該入力アドレスの中から当該ＣＰＵバスアクセス補助回路における処理と関連するアドレスのみを抽出して、前記アドレスよりも少ないビット数からなる内部アドレスに変換してＣＰＵバス監視制御部およびバスアクセス制御信号出力部へ出力する機能を有するアドレスデコーダと、
前記ＣＰＵから出力されるＷｒｉｔｅ／Ｒｅａｄ制御信号と前記アドレスデコーダから出力される内部アドレスを監視し、前記ＣＰＵからＷｒｉｔｅ制御信号が入力されたとき、外部接続されたＲＡＭの前記内部アドレスに対応するアドレスに前記ＣＰＵから出力されたデータを書き込むための制御を行うとともに、前記バスアクセス制御信号出力部にデータ書き込み制御信号を出力し、前記ＣＰＵからＲｅａｄ制御信号が入力されたとき、前記内部アドレスから、当該内部アドレスに該当する前記デバイスのレジスタがＷｒｉｔｅのみに対応するレジスタであるか否かを判定し、Ｗｒｉｔｅのみに対応するレジスタと判定したとき前記外部接続されたＲＡＭの前記内部アドレスに対応するアドレスに書き込まれたデータを読み出して前記ＣＰＵへ出力するための制御を行い、Ｒｅａｄにも対応しているレジスタと判定したときは前記バスアクセス制御信号出力部にデータ読出し制御信号を出力する機能を有するＣＰＵバス監視制御部と、
前記ＣＰＵバス監視制御部から前記データ書き込み制御信号が入力されたとき、前記アドレスデコーダから入力された内部アドレスから、対応するデバイスを判定してデバイス選択信号およびＷｒｉｔｅ制御信号を出力するとともに、前記ＣＰＵと前記デバイス間のデータバスに接続された双方向バッファをデータ書き込み方向に制御する双方向バッファ制御信号を出力し、前記ＣＰＵバス監視制御部から前記データ読出し制御信号が入力されたとき、前記アドレスデコーダから入力された内部アドレスから、対応するデバイスを判定してデバイス選択信号およびＲｅａｄ制御信号を出力するとともに、前記双方向バッファをデータ読出し方向に制御する双方向バッファ制御信号を出力する機能を有するバスアクセス制御信号出力部と、
を備えていることを特徴とするＣＰＵバスアクセス補助回路。
【請求項７】
デバック対象レジスタへのアクセスを判定してソフトウェアに対してデバック用のデータを送信する制御を行うデバック機能制御部を備えていることを特徴とする請求項６に記載のＣＰＵバスアクセス補助回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＡＳＩＣ（Application Specific Integrated Circuit）あるいはＦＰＧＡ（Field Programmable Gate Array）等の信号処理デバイスを備えたデータ処理装置に関し、特に、これらの信号処理デバイスに対するＣＰＵからのアクセス技術に関する。
【背景技術】
【０００２】
ディジタル携帯電話などの無線通信システムにおける送受信装置には、多くのＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field Programmable Gate Array）等の信号処理デバイスが実装されているが、近年は、無線送信装置の処理能力の拡大に伴い、多機能、高機能化によってデバイス当りの回路規模は増加しており、それに伴って、デバイス毎のコストが上昇し、装置全体としての価格も上がってしまうという問題がある。そのためＡＳＩＣやＦＰＧＡなどのデバイスの回路規模を削減してコストを下げることが要求されている。
【０００３】
また従来のＡＳＩＣやＦＰＧＡなどのデバイスでは、ＡＳＩＣやＦＰＧＡのＣＰＵインターフェース部において、ＣＰＵからの設定値などを格納するためのレジスタを内部回路で実現し、さらにＣＰＵのＷｒｉｔｅ／Ｒｅａｄアクセスに対応して、レジスタに設定された内容を直接読み出して確認できるようにしている。しかし、ＡＳＩＣ、ＦＰＧＡの多機能化に伴って必要なレジスタの量が増加しており、そのため、ＡＳＩＣ、ＦＰＧＡの回路規模が更に拡大し、コスト上昇の原因となっている。
【０００４】
この問題を解消する方法として、ＡＳＩＣやＦＰＧＡにおけるＣＰＵインターフェース部のレジスタをＲｅａｄには対応せずに、Ｗｒｉｔｅのみに対応させて回路規模の削減を行う方法もあるが、レジスタをＷｒｉｔｅのみに対応させた場合、当該レジスタに設定した値を随時読み出すことができないため、ＡＳＩＣやＦＰＧＡなどのデバイス試作評価やデバイス単体評価にかかる工数が増加してしまうという問題が生ずる。
【０００５】
そこで、Ｗｒｉｔｅのみに対応させたレジスタへのアクセスをログとして保存する機能をソフトウェアに実装させるなどの方法もあるが、ソフトウェアに不具合が発生した場合には、不具合発生時にデバイスに書き込まれた設定値を知ることができなくなるため、不具合解析が困難となるという問題がある。さらに、多機能、高機能化に伴い、装置を制御するソフトウェアも多機能化が進んでいるため、装置のデバッグや不具合発生時の解析が複雑になってきている。
【０００６】
これらの問題に対する一解決手段として、マイクロプロセッサ（ＭＰＵ）と、該ＭＰＵからの書き込み及び読出しが共に可能なＲＡＭと、前記ＭＰＵからの書き込みが可能なレジスタを含むデータ処理装置において、前記ＲＡＭのアドレスの一部を前記書き込みが可能なレジスタのアドレスとして割り付け、前記レジスタへのデータ書き込み動作時に、前記レジスタと前記ＲＡＭの該当領域に前記データを同時に書き込み、前記レジスタに書き込んだデータの読出し時には、前記ＲＡＭの該当領域から前記書き込みデータを読み出すことにより、回路規模の拡大を抑えてレジスタに設定した内容を容易に確認できるようにする方法が、特許文献１等で提案されている。
【０００７】
一方、データ処理装置で動作するソフトウェアの評価を行う場合、ソフトウェアの動作をロジックアナライザなどの測定器を用いて評価する方法もあるが、その場合、測定器を接続するのが困難となる場合があり、さらに、測定器によるモニタだけでは正確な解析ができない場合もある。また、ハードウェアの動作がトリガとなるソフトウェア制御の確認においては、ハードウェアのトリガの発生方法が困難である場合、評価工数が増大するという問題がある。
【０００８】
ＣＰＵバスのモニタに関しては、例えば特許文献２〜３などで提案されているが、これらはＣＰＵが書き込んだ値をモニタする方法に止まり、ハードウェアのレジスタ表示がトリガとなるソフトウェアの評価に関しては考慮されていない。
【０００９】
【特許文献１】特開昭５８−１１４２５８号公報
【特許文献２】特開２００３−０５８５２２号公報
【特許文献３】特開２００５−１６４４７２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
前記特許文献１に記載の発明の場合、書き込み専用レジスタに書き込まれた値を格納するＲＡＭのアドレスと書き込み専用レジスタのアドレスを同一アドレスに設定し、書き込み専用レジスタへ書き込んだ値と同一の値をＲＡＭに対しても書き込むようにしており、そのため書き込み専用レジスタに書き込まれた値を読み出す際には、書き込み専用レジスタ及びＲＡＭに対してＭＰＵから同一のアドレスで直接アクセスされるため、これらのレジスタ及び論理回路からなる構成として既存ＡＳＩＣが適用された場合にはバス衝突が発生する可能性がある。
【００１１】
即ち、レジスタに対して読み出し制御があった際、ＡＳＩＣはその対象となるデータがＡＳＩＣの外部端子から出力されるときに、入力／出力の方向制御（スリーステート）を行っているため、この方向制御を行っているＡＳＩＣの回路構成によってはデータバスの衝突が起きる可能性がある。例えば、ＡＳＩＣの書き込み専用レジスタに対して、読み出し制御を行ったときに、ある固定データを出力(例としてALL 0など)する制御をしていた場合、ＲＡＭからのアクセスと衝突する。ＡＳＩＣの書き込み専用レジスタの読み出し制御時に衝突を起こさないようにするためには、ＡＳＩＣのリワークが必要となり、そのため適用できるＡＳＩＣが限定されてしまうという問題がある。
【００１２】
また、前記特許文献２〜３に記載の発明は、ＣＰＵが書き込んだ値をモニタする方法に留まり、例えば、ハードウェアで検出しているALM or Normalをレジスタへ表示させ、そのレジスタ値をソフトウェアが監視し、ALMのレジスタ値が表示されたときに動作するソフトウェア制御を評価するような技術については考慮されていない。このハードウェアで検出させるALMの発生方法が困難である場合、試験の時間が長くなってしまうという問題がある。
【００１３】
本発明の第１の目的は、ＡＳＩＣ、ＦＰＧＡなどの内部回路におけるＣＰＵインターフェース部のリードアクセスを、バス衝突を発生することなく省略可能にして、ＡＳＩＣ、ＦＰＧＡなどの回路規模の削減を可能にする手段を提供することにある。
【００１４】
本発明の第２の目的は、ハードウェアの動作に関係するソフトウェアの不具合解析やソフトウェアのデバッグを容易に実現することが可能な手段を提供することにある。
【００１５】
本発明の第３の目的は、不具合解析時のログを必要な容量に応じて取得することを可能にする手段を提供することにある。
【課題を解決するための手段】
【００１６】
本発明は、ＣＰＵと、該ＣＰＵからのＷｒｉｔｅ／Ｒｅａｄアクセスに対応するレジスタを有するインターフェース部を備えたＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field Programmable Gate Array）等の信号処理用デバイスの間に、前記ＣＰＵからアドレス、データおよびＷｒｉｔｅ制御信号が入力されたとき、該アドレスに該当する前記デバイスのレジスタに対して前記データを書き込むとともに、外部接続されたＲＡＭに前記データを前記アドレスごとに記憶する制御を実行するデータ書き込み制御手段と、前記ＣＰＵからアドレス、およびＲｅａｄ制御信号が入力されたとき、該アドレスに該当する前記デバイスのレジスタまたは前記外部接続されたＲＡＭの該当アドレスのいずれか一方にアクセスしてデータを読み出すとともに、該読み出したデータを前記ＣＰＵへ出力する制御を実行する読出し制御手段と、を有するＣＰＵバスアクセス補助回路を接続したことを特徴としている。
【００１７】
本発明では、ＣＰＵとＡＳＩＣ、ＦＰＧＡなどのデバイスに対するバスアクセスを制御するＣＰＵバスアクセス補助回路と、ＣＰＵからのアクセス内容を記憶させるための外部ＲＡＭが用いられ、あるデバイスに対してＣＰＵから設定値の変更などのＷｒｉｔｅ制御が実行された場合には、ＣＰＵバスアクセス補助回路は対象となっているデバイスへのＷｒｉｔｅ制御を行った上で、同様の設定値をアドレス毎に外部ＲＡＭへ記憶する動作を実行する。
【００１８】
そして設定された内容を確認する場合、ＣＰＵは、各デバイスのレジスタに対してＲｅａｄ要求を行うが、本発明では、ＣＰＵから各デバイスへのＲｅａｄ／Ｗｒｉｔｅ制御は、ＣＰＵバスアクセス補助回路を介して行われる。その際、ＣＰＵバスアクセス補助回路は、ＣＰＵがアクセスしたレジスタのアドレスを判定して、ＣＰＵがアクセスしたレジスタまたは外部ＲＡＭの該当アドレスのいずれか一方から読み出したデータをＣＰＵへ出力するＲｅａｄ制御を行うので、バスの衝突が発生することはない。
【００１９】
即ち、ＣＰＵバスアクセス補助回路は、ＣＰＵからのＲｅａｄ要求に対して、ＣＰＵからＲｅａｄ要求を受けたデバイスのアドレスが、書き込みにのみ対応するレジスタのアドレスである場合には、対応するレジスタ内容を外部ＲＡＭから読み出してＣＰＵへ送信することで、Ｒｅａｄアクセスを実現する。この書き込みにのみ対応するレジスタからのＲｅａｄ要求は、デバイスの評価の際に必要となるものであり、必要に応じて外部ＲＡＭの取り付け／取り外しが可能である。外部ＲＡＭを取り外しても、通常動作時にデバイスに対するアクセスを妨げることはない。
【００２０】
また、本発明のＣＰＵバスアクセス補助回路は、ソフトウェアとデバイスの不具合解析を行う場合、ＣＰＵからのＷｒｉｔｅアクセス、及びＲｅａｄアクセスを該当デバイスに対して行うのと同時にそのアクセス内容を外部ＲＡＭへログとして保存する機能を備えることができる。
【００２１】
さらに、本発明のＣＰＵバスアクセス補助回路は、ソフトウェアのデバッグ時において、デバイスのレジスタに対して所望の値を表示させたい場合は、ＣＰＵからのＲｅａｄ要求に対して、デバイスに対するＲｅａｄ制御を行わずに、事前に外部ＲＡＭへ書き込んでいたデバッグ用のデータをＣＰＵに対して送信し、デバイスの動作としてソフトウェアが制御することにより、短時間でかつ容易にデバッグを実現する手段を備えることができる。また、このＣＰＵバスアクセス補助回路によりデータ送信のタイミングのシーケンスを組むことができ、その設定もＣＰＵからできるため様々なデバッグに対応することができる。
【００２２】
このように本発明では、ＣＰＵバスアクセス補助回路と外部ＲＡＭを用いることにより、ＣＰＵからのＲｅａｄアクセスをＣＰＵバスアクセス補助回路と外部ＲＡＭで制御することで、ＣＰＵとバスアクセスを行っている全てのＡＳＩＣ、ＦＰＧＡの回路規模削減を実現可能とし、例えば、基地局に実装されるＣＰＵとのアクセスを必要とするＡＳＩＣやＦＰＧＡなどのデバイスの回路規模を削減することができる。
【００２３】
ＡＳＩＣ、ＦＰＧＡのＣＰＵインターフェース部に設けられているＣＰＵからのＲｅａｄアクセス回路は、Ｗｒｉｔｅアクセス回路とほぼ同等の回路規模であるため、本発明のＣＰＵバスアクセス補助回路と外部ＲＡＭを用いて、ＣＰＵからＡＳＩＣ、ＦＰＧＡへのアクセスを制御することにより、書き込みに対応しているレジスタに対するＣＰＵインターフェース部の回路規模は約１／２にすることができる。また、本方式のＣＰＵバスアクセス補助回路で使用する外部ＲＡＭはコネクタを介して接続しているため、デバイスの評価終了後の量産出荷時に取り外すことによりコスト削減が可能となる。
【００２４】
さらに、本発明のＣＰＵバスアクセス補助回路はＣＰＵとＡＳＩＣ、ＦＰＧＡなどのデバイスとのアクセスを中継していることから、ＣＰＵバスの状態をモニタすることができるため、測定器を接続せずにソフトウェアのデバッグ及び不具合解析を実施することが可能となる。
【００２５】
一般的にデバイスを制御するソフトウェアはデバイスのレジスタの内容をトリガにして動作している。例としてデバイスの内部動作結果をレジスタに反映させ、それをトリガとして動作するソフトウェアをデバッグする場合、従来はデバイスの内部動作をレジスタへ反映させるために、実際にハードウェアを動作させることによってデバッグしているが、デバイスの動作が複雑であるとデバッグが困難となる。しかし、本発明ではＣＰＵバスアクセス補助回路によって、ＣＰＵからのリード要求に対して、事前に外部ＲＡＭへ書き込んでいた値をデバイスのレジスタ内容としてＣＰＵへ送信できるため、デバイスの操作の必要がなく、ソフトウェアのデバッグを容易に行うことができるようになる。
【００２６】
また本発明のＣＰＵバスアクセス補助回路は比較的少ない回路規模で構成することができ、ＰＬＤ（Programmable Logic Device）にも容易に実装することが可能であり、低いコストで実現できる。また、再書き込みが可能なデバイスを使用することにより、様々なデバッグや不具合解析に対して、ＣＰＵバスアクセス補助回路を作り変えることも容易である。
【００２７】
本発明のＣＰＵバスアクセス補助回路は、例えばＷ−ＣＤＭＡ（Wideband-Code Division Multiple Access）無線通信システムの基地局などにおいて、ベースバンド信号部に実装されるＣＰＵバスアクセス補助及び不具合解析回路として用いることができる。
【発明の効果】
【００２８】
本発明を用いることにより、ＡＳＩＣ、ＦＰＧＡなどの内部回路におけるＣＰＵインターフェース部のリードアクセスを省略し回路規模を削減できるため、コスト削減が可能となる。
【００２９】
また、ＣＰＵと各デバイス間のアクセスの監視やＣＰＵに対して表示させるデータを制御することができるので、ハードウェアの動作に関係するソフトウェアの不具合解析やソフトウェアのデバッグが容易に実現できる。
【００３０】
さらに、外部コネクタ（ＥＴＨＥＲなど）により外部ＲＡＭを交換できるので、不具合解析時のログを必要な容量に応じて取得することができる。
【発明を実施するための最良の形態】
【００３１】
図１は、本発明の実施形態を示すデータ処理装置の全体構成を示すブロック図である。
【００３２】
本実施形態のデータ処理装置は、ＣＰＵ（１０１）、ＡＳＩＣ及びＦＰＧＡ＿１（１０６）、・・・、ＡＳＩＣ及びＦＰＧＡ＿ｎ（１０７）、ＣＰＵバスアクセス補助回路（１０３）、双方向バッファ（１０２）、コネクタ（１０４）、外部ＲＡＭ（１０５）によって構成される。なお、各ＡＳＩＣ及びＦＰＧＡ＿１（１０６）、・・・、ＡＳＩＣ及びＦＰＧＡ＿ｎ（１０７）は、ＡＳＩＣ、ＦＰＧＡのどちらが実装されても良く、またその数ｎは任意である。
【００３３】
本実施形態において、ＣＰＵ（１０１）からのアドレスバス、データバス、Ｒｅａｄ制御信号、Ｗｒｉｔｅ制御信号はＣＰＵバスアクセス補助回路（１０３）へ接続される。また、ＡＳＩＣ及びＦＰＧＡ＿１（１０６）、・・・、ＡＳＩＣ及びＦＰＧＡ＿ｎ（１０７）のデバイスに対しては、データバスは双方向バッファ（１０２）を介して接続され、Ｒｅａｄ制御信号、Ｗｒｉｔｅ制御信号はＣＰＵバスアクセス補助回路（１０３）を介して接続される。
【００３４】
ソフトウェアがＡＳＩＣ及びＦＰＧＡ＿１（１０６）、・・・、ＡＳＩＣ及びＦＰＧＡ＿ｎ（１０７）のデバイスのレジスタを制御する（例えば、基地局装置においてあるユーザのデータパケットを受信したときに、特定の拡散符号を用いて拡散処理を行わせるために、ＡＳＩＣやＦＰＧＡのレジスタに対してユーザの情報と拡散符号の設定を行うことで所望の動作をさせる）ときには、ＣＰＵ（１０１）からＡＳＩＣ及びＦＰＧＡ＿１（１０６）、・・・、ＡＳＩＣ及びＦＰＧＡ＿ｎ（１０７）の該当レジスタのアドレスおよび設定するデータが出力される。
【００３５】
ＣＰＵ（１０１）から出力されるアドレスは、ＡＳＩＣ及びＦＰＧＡ＿１（１０６）、・・・、ＡＳＩＣ及びＦＰＧＡ＿ｎ（１０７）とＣＰＵバスアクセス補助回路（１０３）へそれぞれ入力される。また設定データは、ＣＰＵバスアクセス補助回路（１０３）へ入力されるとともに、ＦＰＧＡ＿１（１０６）、・・・、ＡＳＩＣ及びＦＰＧＡ＿ｎ（１０７）に対しては双方向バッファ（１０２）を介して入力される。また、Ｒｅａｄ制御信号／Ｗｒｉｔｅ制御信号はＣＰＵバスアクセス補助回路（１０３）へ入力される。
【００３６】
ＣＰＵバスアクセス補助回路（１０３）は、ＣＰＵ（１０１）から入力されるＲｅａｄ制御信号／Ｗｒｉｔｅ制御信号から、Ｒｅａｄ制御かＷｒｉｔｅ制御かを判断し、入力アドレス値から、どのデバイスに対するアクセスなのかを判断する。そして、Ｗｒｉｔｅ制御の場合には、デバイス選択信号とＷｒｉｔｅ制御信号およびバッファ制御信号を出力し、双方向バッファ（１０２）を介して該当するデバイスのレジスタに対してＣＰＵ（１０１）からの設定データを書き込む制御を行うとともに、該当するデバイスのレジスタに書き込んだデータを外部ＲＡＭ（１０５）へアドレスごとに格納する制御を行う。
【００３７】
一方、Ｒｅａｄ制御の場合には、ＣＰＵバスアクセス補助回路（１０３）は、ＣＰＵ（１０１）から入力されたアドレスがＷｒｉｔｅのみに対応しているレジスタのアドレスに該当するアドレスであると判定したときは、外部ＲＡＭ（１０５）の当該レジスタに割り当てられているアドレスに書き込まれているデータを読み出してＣＰＵ（１０１）へ出力し、ＡＳＩＣ及びＦＰＧＡ＿１（１０６）、・・・、ＡＳＩＣ及びＦＰＧＡ＿ｎ（１０７）と接続されているデータバスは双方向バッファ（１０２）によりハイインピーダンス制御する。
【００３８】
なお図示されていないが、ＣＰＵバスアクセス補助回路（１０３）と外部ＲＡＭ（１０５）の間にもＲｅａｄ制御信号、Ｗｒｉｔｅ制御信号、アドレスバス、データバスが設けられている。ＣＰＵバスアクセス補助回路（１０３）と外部ＲＡＭ（１０５）間のアドレスバスは、ＣＰＵ（１０１）から出力されるアドレスバスとは独立したバスであり、格納したいレジスタのアドレス空間が確保できるアドレスバスの本数だけで構成することが可能である。
【００３９】
本実施形態によれば、ＡＳＩＣ及びＦＰＧＡ＿１（１０６）、・・・、ＡＳＩＣ及びＦＰＧＡ＿ｎ（１０７）におけるレジスタの内、Ｗｒｉｔｅのみに対応しているレジスタに書き込まれたデータをＣＰＵ（１０１）が確認する際には、ＣＰＵバスアクセス補助回路（１０３）により、ＣＰＵ（１０１）から出力されるアドレスバスとは独立したアドレスバスで接続された外部ＲＡＭ（１０５）から読み出すことができるので、Ｗｒｉｔｅのみに対応しているレジスタに書き込まれたデータ（レジスタ値）をＲｅａｄ用にラッチするためのＦ／Ｆをデバイス内に設ける必要がなく、その分、ＡＳＩＣ及びＦＰＧＡ＿１（１０６）、・・・、ＡＳＩＣ及びＦＰＧＡ＿ｎ（１０７）の回路規模を削減することができる。
【００４０】
また、この外部ＲＡＭ（１０５）はコネクタ（１０４）によって接続されているため、必要に応じて取り付け／取り外しが可能であるため、量産出荷時に外部ＲＡＭ（１０５）を取り外すことによりコスト削減を行うこともできる。さらに本実施形態のＣＰＵバスアクセス補助回路（１０３）は、後述するデバッグ機能制御部を備えており、デバッグ時において、ＣＰＵ（１０１）に対して試験用のデータをＡＳＩＣ及びＦＰＧＡ＿１（１０６）、・・・、ＡＳＩＣ及びＦＰＧＡ＿ｎ（１０７）のレジスタの値として、送信させることも可能となっている。
【００４１】
即ち、通常動作では、ＣＰＵからのＲｅａｄアクセスがあった場合、ＣＰＵバスアクセス補助回路（１０３）により、ＡＳＩＣ及びＦＰＧＡ＿１（１０６）、・・・、ＡＳＩＣ及びＦＰＧＡ＿ｎ（１０７）のレジスタの内容をＣＰＵ（１０１）に対して送信するが、デバッグ時にＣＰＵからのＲｅａｄアクセスがあった場合は、ＣＰＵバスアクセス補助回路（１０３）はデバイス選択信号、Ｒｅａｄ制御信号をＡＳＩＣ及びＦＰＧＡ＿１（１０６）、・・・、ＡＳＩＣ及びＦＰＧＡ＿ｎ（１０７）に対して送信せずに、ＣＰＵバスアクセス補助回路（１０３）に対して事前にＣＰＵ（１０１）から設定されたデータを読み出し、データバスを介してＣＰＵ（１０１）へ送信する。
【００４２】
図２は、本実施形態におけるＣＰＵバスアクセス補助回路の構成を示すブロック図である。
【００４３】
本実施形態のＣＰＵバスアクセス補助回路（１０３）は、アドレスデコーダ（２０１）、双方向制御部（２０２）、ＣＰＵバス監視制御部（２０３）、コネクタ（２０４）、外部ＲＡＭ（２０５）、デバッグ機能制御部（２０６）、バスアクセス制御信号出力部（２０７）によって構成されている。
【００４４】
ＣＰＵ（１０１）からＣＰＵバスアクセス補助回路（１０３）へ入力されるアドレスは、アドレスデコーダ（２０１）によって各デバイスのレジスタに対応する内部信号に変換され、ＣＰＵバス監視制御部（２０３）およびバスアクセス制御信号出力部（２０７）へ送信される。データバスに関してはスリーステート制御される。即ちデータバスは双方向制御部（２０２）によって、Ｗｒｉｔｅアクセス時には入力として、またＲｅａｄアクセス時は出力または入力として処理され、それ以外の場合はＨｉ−Ｚ状態となる。
【００４５】
ＦＰＧＡ＿１（１０６）、・・・、ＡＳＩＣ及びＦＰＧＡ＿ｎ（１０７）などの信号処理デバイスのレジスタに対してＷｒｉｔｅ制御された場合、ＣＰＵバス監視制御部（２０３）は外部ＲＡＭ（２０５）に対して、アドレスデコーダ（２０１）により内部アドレスに変換されたアドレスごとにＣＰＵ（１０１）からのデータ書き込みを行うとともに、バスアクセス制御信号出力部（２０７）から双方向バッファ制御信号、デバイス選択（ＣＳ）信号、各デバイスへのＷｒｉｔｅ制御信号を出力させることにより、双方向バッファ（１０２）を制御して該当するデバイスのレジスタへＣＰＵ（１０１）からの前記データの書き込みを行う。
【００４６】
ＣＰＵ（１０１）からデバイスのＷｒｉｔｅのみに対応しているレジスタに対するＲｅａｄ要求があった場合には、バスアクセス制御信号出力部（２０７）からデバイスに対するＲｅａｄ制御は行わずに、外部ＲＡＭ（２０５）へ書き込まれたデータがＣＰＵバス監視制御部（２０３）によって読み出され、双方向制御部（２０２）を介してデータバスへ出力される。従って、デバッグ時に必要なレジスタに対するＲｅａｄ制御をデバイスに実装する必要がなくなり、その分回路規模を削減することができる。
【００４７】
一方、Ｒｅａｄ可能なレジスタに対するＲｅａｄ要求である場合は、バスアクセス制御信号出力部（２０７）から、デバイスへのＲｅａｄ制御信号が出力され、デバイスからのデータが双方向バッファ（１０２）を介してＣＰＵ（１０１）に入力される。そのとき、双方向制御部（２０２）はハイインピーダンスまたはデータ入力に制御される。Ｒｅａｄ要求されたレジスタが、デバイスのＷｒｉｔｅのみに対応しているレジスタであるか、あるいはＲｅａｄ可能なレジスタであるかの情報は、これらのデバイスが実装された段階で、ＣＰＵバスアクセス補助回路（１０３）内に設定登録され、ＣＰＵバス監視制御部（２０３）によって参照される。
【００４８】
通常デバイスがＣＰＵからのＲｅａｄ制御をする場合には、Ｒｅａｄ用にレジスタ値をラッチするためのＦ／Ｆを用意する必要がある。従って、Ｗｒｉｔｅのみ対応しているレジスタに書き込まれたデータをデバッグ時にデバイスから読み出して確認する必要がある場合には、Ｗｒｉｔｅのみ対応しているレジスタにもＲｅａｄ用にレジスタ値をラッチするためのＦ／Ｆが必要となる。そのため、デバイスのＷｒｉｔｅのみに対応しているレジスタに対するデバッグ時のＲｅａｄ制御の実装を省くことにより、その回路規模は約１／２（ラッチ以外の制御もあるため単純に１／２とはならないが）となる。
【００４９】
外部ＲＡＭ（２０５）はコネクタ（２０４）で接続されているため必要な容量を選択でき、さらに取り外すことも可能である。また、デバッグ機能制御部（２０６）は、ソフトウェアに対してデバッグ用のデータを送信する制御を行う。このデバック機能制御部（２０６）は、主にソフトウェアの評価に用いられ、ソフトウェアに対して表示させたいレジスタ値、及び表示させる周期、表示させる回数などを設定して制御させることにより実現される。
【００５０】
そのためデバッグ機能制御部（２０６）はレジスタを持つことが可能であり、デバッグ用途に応じて様々な試験のパターンを実現することができる。このような機能が必要なのは、ハードウェアのレジスタ値をソフトウェアが監視し、レジスタ値によってソフトウェアがある制御をするような場合があり、このソフトウェアでの監視において、監視周期と保護段数がある場合、デバック機能制御部（２０６）の機能により評価を迅速に進めることができる。
【００５１】
また、ＣＰＵバス監視制御部（２０３）は、ＣＰＵ（ソフトウェア）からのアクセスを、アドレスバス及びデータバスによりを監視しており、アドレスバスを監視することで、デバック機能制御部（２０６）にてデバック対象レジスタへのアクセスの場合であるかの判断、また、書き込みのみ対応しているレジスタへのアクセスの判断などを行い、それぞれに対応した制御を行う（対象となっているアドレス以外のアドレスに対しての制御は通常のリード及びライト制御を行う）。
【００５２】
デバック対象レジスタへのアクセスの場合には、対象アドレスとアドレスバスの状態が一致し、さらにリード制御時である場合にはデバック用レジスタ値をＣＰＵ（１０１）に対して送信し、ライト制御時である場合には、その書き込みがあった回数を記録させる。また、書き込みのみ対応しているレジスタへのライトアクセスの場合には、デバイスへの書き込みと同時に外部ＲＡＭへの書き込みを行い、リードアクセスの場合には、デバイスへのリード制御をマスクし、外部ＲＡＭに格納しているデータを表示させる。
【００５３】
図３は、本実施形態のＣＰＵバスアクセス補助回路におけるＲｅａｄ制御の動作を示すタイムチャートである。次に、本実施形態のＣＰＵバスアクセス補助回路の動作について図１〜図３を参照して説明する。
【００５４】
先ず、ＣＰＵ（１０１）からＡＳＩＣ及びＦＰＧＡ＿１（１０６）のレジスタに対してＷｒｉｔｅ制御があった場合、アドレスデコーダ（２０１）は、ＣＰＵバスアクセス補助回路（１０３）へ入力されたアドレスを内部アドレスに変換する。内部アドレスに変換するための情報は、ＣＰＵバスアクセス補助回路を実装（インプリメント）するときに、初期値としてハードウェア側でＣＰＵバスアクセス補助回路（１０３）内に設定する。
【００５５】
ＣＰＵ（１０１）には、ＡＳＩＣ及びＦＰＧＡ＿１（１０６）、・・・、ＡＳＩＣ及びＦＰＧＡ＿ｎ（１０７）以外にＲＯＭ、ＲＡＭ等が接続されており、ＣＰＵ（１０１）から出力されるアドレスには、ＡＳＩＣ及びＦＰＧＡ＿１（１０６）、・・・、ＡＳＩＣ及びＦＰＧＡ＿ｎ（１０７）の各レジスタのアドレス以外にこれらのＲＯＭ、ＲＡＭ等にアクセスするためのアドレスも含まれているため、ＣＰＵ（１０１）から出力されるアドレスをそのまま用いると、アドレスのビット数が多くなり、ＣＰＵバスアクセス補助回路（１０３）の規模が大きくなる。
【００５６】
そこで、本実施例では、アドレスデコーダ（２０１）により、実装されるＡＳＩＣ及びＦＰＧＡ＿１（１０６）、・・・、ＡＳＩＣ及びＦＰＧＡ＿ｎ（１０７）に設けられるレジスタの数を勘案して全レジスタのアドレスを指定可能な比較的少ない容量で設定した内部アドレスに変換することにより、アドレスビット数を減らしてＣＰＵバスアクセス補助回路（１０３）の規模を小さくしている。なお、ＣＰＵ（１０１）から出力されるアドレスをそのまま内部アドレスとして利用することも可能である。
【００５７】
変換された内部アドレスはＡＳＩＣ及びＦＰＧＡ＿１（１０６）、・・・、ＡＳＩＣ及びＦＰＧＡ＿ｎ（１０７）の各レジスタに対応している信号である。また、データは双方向制御部（２０２）からＣＰＵバス監視制御部（２０３）へ入力され、変換された内部アドレスとＣＰＵ（１０１）からのＷｒｉｔｅ制御信号をもとに、外部ＲＡＭ（２０５）へ内部アドレスごとにデータが書き込まれる。
【００５８】
さらに、外部ＲＡＭ（２０５）へ書き込まれたデータと同様のデータをＡＳＩＣ及びＦＰＧＡ＿１（１０６）のレジスタに対しても書き込む。そのため、アドレスデコーダ（２０１）からの内部アドレスとＣＰＵ（１０１）からのＷｒｉｔｅ制御信号はバスアクセス制御信号出力部（２０７）へ入力され、バスアクセス制御信号出力部（２０７）は内部アドレスから対応するデバイスを判定し（ここではＡＳＩＣ及びＦＰＧＡ＿１（１０６））、デバイス選択信号、およびＷｒｉｔｅ制御信号を出力する。
【００５９】
また、バスアクセス制御信号出力部（２０７）は双方向バッファ制御信号を出力して双方向バッファ（１０２）を制御する。その結果、ＡＳＩＣ及びＦＰＧＡ＿１（１０６）に対して、ＣＰＵ（１０１）からのアドレスと、デバイス選択信号、Ｗｒｉｔｅ制御信号およびＣＰＵ（１０１）からのデータが入力され、ＡＳＩＣ及びＦＰＧＡ＿１（１０６）の該当レジスタへデータが書き込まれる。これらの制御により、外部ＲＡＭ（２０５）とＡＳＩＣ及びＦＰＧＡ＿１（１０６）のレジスタへ同じタイミングで同様のデータが書き込まれる。
【００６０】
次に、ＡＳＩＣ及びＦＰＧＡ＿１（１０６）のレジスタに対してＲｅａｄ制御があった場合は、該当レジスタがＲｅａｄに対応しているか、またはＲｅａｄには対応せずＷｒｉｔｅのみに対応しているかによって動作が異なる。
【００６１】
先ず、アドレスデコーダ（２０１）によって内部信号に変換されたアドレスがＲｅａｄに対応しているレジスタであるかどうかの判定を、ＣＰＵバス監視制御部（２０３）によって行う。Ｒｅａｄに対応しているレジスタのアドレスは使用するＡＳＩＣ等のデバイスの仕様を見れば分かるので、その判定基準は、本発明のＣＰＵバスアクセス補助回路（１０３）を設計する段階で初期値としてＣＰＵバスアクセス補助回路（１０３）内に設定される。
【００６２】
変換された内部アドレスがＲｅａｄに対応しているレジスタである場合には、図３（１）に示すように、バスアクセス制御信号出力部（２０７）からＲｅａｄ制御信号とデバイス選択信号をＡＳＩＣ及びＦＰＧＡ＿１（１０６）へ出力し、また双方向バッファ制御信号を双方向バッファ（１０２）へ出力してデータの伝送方向を制御することによって、ＣＰＵ(１０１)からのアドレスにより指定されたＡＳＩＣ及びＦＰＧＡ＿１（１０６）の該当レジスタから出力されたデータをＣＰＵ（１０１）へ入力させる。
【００６３】
このとき、ＣＰＵバスアクセス補助回路（１０３）内の双方向制御部（２０２）は、通常はハイインピーダンスに制御されるが、レジスタから読み出したデータをデバッグ用として利用する場合には、双方向制御部（２０２）を制御することによりデータバス上のＡＳＩＣ及びＦＰＧＡ＿１（１０６）の該当レジスタから出力されたデータをＣＰＵバス監視制御部（２０３）に入力し、モニタ用のログとして外部ＲＡＭ（２０５）に保存することもできる。
【００６４】
また、Ｒｅａｄ制御時で読み出したレジスタがＷｒｉｔｅ制御で書き込まれたレジスタである場合には、双方向制御部（２０２）を制御することによりＡＳＩＣ及びＦＰＧＡ＿１（１０６）のレジスタから出力されたデータをＣＰＵバス監視制御部（２０３）に取り込むとともに、外部ＲＡＭ（２０５）に書き込まれている該当するアドレスのデータを読み出して両者を比較することにより、ＡＳＩＣ及びＦＰＧＡ＿１（１０６）のレジスタの試験を同時に行うこともできる。
【００６５】
一方、アドレスデコーダ（２０１）によって内部信号に変換されたアドレスが、Ｒｅａｄに対応せずＷｒｉｔｅのみに対応している場合には、図３（２）に示すように、バスアクセス制御信号出力部（２０７）からはＲｅａｄ制御信号およびデバイス選択信号はアサートされない。従って、ＡＳＩＣ及びＦＰＧＡ＿１（１０６）へはＲｅａｄ制御に関する信号は入力されず、ＡＳＩＣ及びＦＰＧＡ＿１（１０６）からはデータは出力されない。また、双方向バッファ制御信号による双方向バッファ（１０２）のデータ方向制御も行われないので、デバイスのデータバスはハイインピーダンスの状態を保持している。
【００６６】
Ｗｒｉｔｅのみに対応しているレジスタに書き込まれている設定値は、Ｗｒｉｔｅ制御時に外部ＲＡＭ（２０５）にも同時に書き込まれているため、ＣＰＵバスアクセス補助回路（１０３）は、Ｗｒｉｔｅのみに対応しているレジスタに対するＣＰＵ（１０１）からのＲｅａｄ要求に対しては、外部ＲＡＭ（２０５）に書き込まれている該当アドレスのデータを読み出すとともに双方向制御部（２０２）を制御することにより、ＣＰＵ（１０１）がデータを受信できるタイミングで、データバス上へ外部ＲＡＭ（２０５）から読み出したデータを出力する。
【００６７】
次に、デバッグ機能制御部（２０６）によって、Ｒｅａｄに対応しているレジスタの仮想の内容をデバッグ用にＣＰＵ（１０１）に対して送信することによりソフトウェアの不具合を解析する場合には、ＣＰＵ（１０１）からのＲｅａｄ要求に対して、ＣＰＵバスアクセス補助回路（１０３）はデバイスに対するＲｅａｄ制御を行わずに、デバッグ機能制御部（２０６）から読み出した値を、双方向制御部（２０２）を介してデータバスへ出力させる。
【００６８】
ソフトウェアのデバッグ動作のためにＲｅａｄに対応しているレジスタに所望の値を設定する（記憶させる）作業は、実際の試験を行う前に、デバッグの種類に応じてＣＰＵ（１０１）からデバッグ機能制御部（２０６）へ設定される。このデバッグ動作は、回路変更の必要がないため、通常動作に影響させずにデバッグを進めることができる。
【００６９】
即ち、ＣＰＵバスアクセス補助回路（１０３）をプログラマブルデバイスとして設計する段階で、デバック機能（ＣＰＵに対してデバック用のデータを出力させる機能）と通常運用のための機能の両方を機能として持たせ、デバック機能を使いたい場合は、ＣＰＵバスアクセス補助回路のレジスタ設定により、デバック機能ＯＮモードにすることで、デバック用に表示させたい値（これもデバックする前に設定）を表示させ、また、デバック機能ＯＦＦモードにすることで、監視対象のデバイスのレジスタの値をＣＰＵに対して出力させる。
【００７０】
動作としては、デバック用の回路も通常運用の回路も、ＣＰＵバスを制御している部分は共有であるが、デバック機能と通常運用は排他で用いられるため、通常運用中にデバック機能制御部（２０６）から読み出した値がデータバスを介してＣＰＵへ出力させることはなく、この機能はデバック時にのみ使用される。従って、一方の機能部がもう一方の機能部の動作を妨害することはない。
【図面の簡単な説明】
【００７１】
【図１】本発明の実施形態を示すデータ処理装置の全体構成を示すブロック図である。
【図２】本実施形態におけるＣＰＵバスアクセス補助回路の構成を示すブロック図である。
【図３】本実施形態のＣＰＵバスアクセス補助回路におけるＲｅａｄ制御の動作を示すタイムチャートである。
【符号の説明】
【００７２】
１０１  ＣＰＵ
１０２  双方向バッファ
１０３  ＣＰＵバスアクセス補助回路
１０４、２０４  コネクタ
１０５、２０５  外部ＲＡＭ
１０６、１０７  ＡＳＩＣ及びＦＰＧＡ
２０１  アドレスデコーダ
２０２  双方向制御部
２０３  ＣＰＵバス監視制御部
２０６  デバッグ機能制御部
２０７  バスアクセス制御信号出力部
【図１】
2008117050.tif 000003
【図２】
2008117050.tif 000004
【図３】
2008117050.tif 000005