(57)【要約】データ処理システムの開発方法は、データ処理システムに採用すべきＳＯＣ・ＬＳＩ（３）を、プロセッサ及びこのプロセッサに接続され比較的動作速度が高速な回路モジュールを成す第１ユーザロジックの部分と、前記プロセッサに接続され比較的動作速度が低速で済む回路モジュールを成す第２ユーザロジックの部分とに切り分け、夫々の部分の機能を第１可変論理デバイス（３６）と第２可変論理デバイス（３７）に分けて設定し、第１可変論理デバイスで実現されたプロセッサ機能を用いてターゲットプログラムを実行させ、実行結果の評価内容を前記可変論理デバイスやターゲットプログラムにフィードバックさせる。前記可変論理デバイスに対する機能設定はソフトウェア的に行なうことができ、実機完成する前にシステムの評価を行なうことができ、システム開発と評価を同一環境で行なうことが可能である。ＳＯＣ化されるデータ処理システムの開発をソフトウェアとハードウェアの双方に着目して支援することが容易になる。
2002063473.tif 000002
【特許請求の範囲】
【請求項１】
多数の記憶セルにロードされる論理構成定義データに応じて論理機能がプログラマブルに決定される第１可変論理デバイスに第１ユーザロジック及び評価用プロセッサ機能を実現する第１処理と、
多数の記憶セルにロードされる論理構成定義データに応じて論理機能がプログラマブルに決定される第２可変論理デバイスに第２ユーザロジックを実現してターゲットボードを構成する第２処理と、
前記第１可変論理デバイス及び第２可変論理デバイスを評価支援システムに接続して、前記第１可変論理デバイスにターゲットプログラムを実行させ、実行結果に基づいて前記ターゲットボード及びターゲットプログラムを評価する第３処理と、
前記評価結果に基づいて、前記第１可変論理デバイス、前記第２可変論理デバイス、ターゲットボード又は前記ターゲットプログラムに必要な修正を加える第４処理と、を含むことを特徴とするデータ処理システムの開発方法。
【請求項２】
前記第３処理において、前記第１可変論理デバイスが実装される評価ボードとホストシステムを前記評価支援システムとして用い、
前記評価ボードは、実装された前記第１可変論理デバイスに接続される評価用コントローラ及びメモリと、前記評価用コントローラ及びメモリに接続される評価用インタフェース回路と、実装された前記第１可変論理デバイスに接続されるユーザインタフェース回路とを有し、
前記ユーザインタフェース回路に前記ターゲットボードの第２可変論理デバイスが接続され、前記評価用インタフェース回路に前記ホストシステムが接続される、ことを特徴とする請求の範囲第１項記載のデータ処理システムの開発方法。
【請求項３】
前記第１処理は、論理構成定義データに基づいて、ＣＰＵバス及びこれに接続されるＣＰＵを含むプロセッサコアと、前記ＣＰＵバスに接続される第１ユーザロジックと、前記プロセッサコア及び第１ユーザロジックに接続可能にされ且つ前記評価用コントローラにインタフェースされるテストインタフェースユニットとを第１可変論理デバイスに形成することを特徴とする請求の範囲第２項記載のデータ処理システムの開発方法。
【請求項４】
前記第１処理において、前記プロセッサコアに、ＣＰＵバスに接続されるバスステートコントローラを含め、前記バスステートコントローラを前記ユーザインタフェース回路に接続することを特徴とする請求の範囲第３項記載のデータ処理システムの開発方法。
【請求項５】
前記第１処理において、前記プロセッサコアに、ＣＰＵバスに接続される周辺バスを更に含め、前記周辺バスを前記ユーザインタフェース回路に接続することを特徴とする請求の範囲第４項記載のデータ処理システムの開発方法。
【請求項６】
前記第１処理において、前記テストインタフェースユニットには、クロック端子、モード端子、データ入力端子、及びデータ出力端子を外部端子として設定し、前記データ入力端子から与えられるコマンドに基づいて前記データ入力端子及びデータ出力端子の接続先を決定し、前記モード端子の状態に応じて、前記データ入力端子に供給される情報を取り込み、取り込んだ情報を前記決定された接続先に送り出し、また、前記決定された接続先からの情報を取り込んで、前記データ出力端子から外部に出力する機能を設定することを特徴とする請求の範囲第３項記載のデータ処理システムの開発方法。
【請求項７】
前記テストインタフェースユニットはＩＥＥＥ１１４９．１の規格に準拠した手順で信号入出力を行なうものであることを特徴とする請求の範囲第６項記載のデータ処理システムの開発方法。
【請求項８】
前記評価用コントローラは、トレース制御、ブレークポイント制御、ユーザプログラムの実行制御、ホストインタフェース制御の各機能を有して成るものであることを特徴とする請求の範囲第２項記載のデータ処理システムの開発方法。
【請求項９】
回路基板に、評価用コントローラ、前記評価用コントローラに接続される可変論理デバイス、前記可変論理デバイスに接続されるメモリ、前記可変論理デバイスに接続されるユーザインタフェース回路、及び前記評価用コントローラに接続される評価用インタフェース回路が実装され、前記可変論理デバイスは、多数の記憶セルにロードされる論理構成定義データに応じて論理機能がプログラマブルに決定されて評価用マイクロプロセッサ機能及び第１ユーザロジックが実現される半導体デバイスであることを特徴とする評価ボード。
【請求項１０】
前記可変論理デバイスは、論理構成定義データに基づいて、ＣＰＵバス及びこれに接続されるＣＰＵを含むプロセッサコアと、前記ＣＰＵバスに接続される第１ユーザロジックと、前記プロセッサコア及び第１ユーザロジックに接続可能にされ且つ前記評価用コントローラにインタフェースされるテストインタフェースユニットが形成されるものであることを特徴とする請求の範囲第９項記載の評価ボード。
【請求項１１】
前記プロセッサコアは、ＣＰＵバスに接続されるバスステートコントローラを含み、前記バスステートコントローラは前記ユーザインタフェース回路に接続する請求の範囲第１０項記載の評価ボード。
【請求項１２】
前記プロセッサコアはＣＰＵバスに接続される周辺バスブリッジ回路を更に含み、前記周辺バスブリッジ回路は前記ユーザインタフェース回路に接続する請求の範囲第１１項記載の評価ボード。
【請求項１３】
前記ユーザインタフェース回路にターゲットボードが接続され、前記ターゲットボードは、多数の記憶セルにロードされる論理構成定義データに応じて論理機能がプログラマブルに決定されて第２ユーザロジックを実現する可変論理デバイスを有するものであることを特徴とする請求の範囲第１２項記載の評価ボード。
【請求項１４】
前記テストインタフェースユニットは、クロック端子、モード端子、データ入力端子、及びデータ出力端子を外部端子として有し、前記データ入力端子から与えられるコマンドに基づいて前記データ入力端子及びデータ出力端子の接続先を決定し、前記モード端子の状態に応じて、前記データ入力端子に供給される情報を取り込み、取り込んだ情報を前記決定された接続先に送り出し、また、前記決定された接続先からの情報を取り込んで、前記データ出力端子から外部に出力するものであることを特徴とする請求の範囲第１０項記載の評価ボード。
【請求項１５】
前記テストインタフェースユニットはＩＥＥＥ１１４９．１の規格に準拠した手順で信号入出力を行なうものであることを特徴とする請求の範囲第１４項記載の評価ボード。
【請求項１６】
前記評価用コントローラは、トレース制御、ブレークポイント制御、ユーザプログラムの実行制御、ホストインタフェース制御の各機能を有して成るものであることを特徴とする請求の範囲第１０項記載の評価ボード。
【請求項１７】
前記評価用インタフェース回路として、ホストコンピュータに接続可能なホストインタフェース回路を有するものであることを特徴とする請求の範囲第９項記載の評価ボード。
【請求項１８】
前記評価用インタフェース回路として、ファイルメモリカードを接続可能なファイルメモリインタフェース回路を有するものであることを特徴とする請求の範囲第９項記載の評価ボード。
【発明の詳細な説明】
技術分野
本発明は、システムオンチップ（ＳＯＣ：Ｓｙｓｔｅｍ  Ｏｎ  ａ  Ｃｈｉｐ）化されるデータ処理システムを開発する方法、並びにその開発時におけるシステムデバッグ若しくはプログラムデバッグの支援に利用される評価ボードに関し、例えば、携帯通信端末用のＳＯＣ化された半導体集積回路（ＬＳＩ：Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔｓ）の開発に適用して有効な技術に関する。
背景技術
半導体集積回路は高集積化及び高機能化により、設計が複雑化し、ＬＳＩのユーザがその応用システムの開発を計画してから、そのシステムに適用されるＬＳＩが完成するには、長期間を要するのが通例である。開発期間を短縮するという点では、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）を利用して所要の論理機能を実現し、これを用いて開発すべきターゲットシステムの評価行なうことが有用である。例えば、ＦＰＧＡの多数の記憶セルに論理機能定義データ（接続定義データ）をロードして圧縮或は通信プロトコルなどの所望の論理機能を実現して動作させ、その動作結果に基づいてターゲットシステムの評価を行なうことが可能になる。これにより、ＬＳＩを試作するとき早い段階で論理機能のバグを発見して除去することが可能になる。
前記ＦＰＧＡを用いた論理検証技術として、ユーザロジックをプログラムしたＦＰＧＡとＣＰＵコアなどによってエミュレーション用プロセッサとしての検証用ボードを構成するもの（特開平８−１６４２５号）、ＬＳＩの論理未確定部分をＦＰＧＡチップに置き換え、これをそのＬＳＩと結合させて検証に用いるようにするもの（特開２０００−４９２８７号）、ＦＰＧＡなどのプログラム素子に設計した回路を展開させエミュレーションを行なうようにするもの（特開平１１−２６５２９９号）等がある。
しかしながら、ＳＯＣの場合にはマルチチップのシステム構成に比べると、ユーザロジックをＣＰＵの高速バスに接続したりする場合もあり、これをマルチチップ形態のシステムに置き換えれば、プロセッサの内外にユーザロジックを配置するようなことになり、エミュレータにユーザボード（ターゲットシステム）を接続する従来のエミュレーション方式では、そのような要求に答えるシステムのデバッグには対応が難しい。特開平１１−２６５２９９号等もこれについて考慮されていない。要するに、ＦＰＧＡを用いた従来の検証技術は、インサーキットエミュレータを中心にこれにターゲットシステム若しくはユーザロジックを接続してデバッグを行なうという、マルチチップによるシステム開発を主眼としたものに過ぎない。ＳＯＣによるＬＳＩの開発を想定すると、ソフトウェアとハードウェアを含めたシステムトータルとしてのシステム開発を支援できるようにすることの有用性が本発明者によって明らかにされた。詳しくは、▲１▼ＳＯＣのＬＳＩ開発のための統一的な開発方法を実現することが望ましく、▲２▼ソフトウェアを含めたシステムトータルのデバッグを行なってバスの占有率、キャッシュメモリのヒット率、メモリアロケーションの最適化、ソフトウェアアルゴリズムの評価結果等を容易に得られるようにするとよく、▲３▼評価の信頼性を上げるために実機での確認作業に近い形態でシステム評価を行なえるようにするとよく、▲４▼開発期間の短縮、マンマシンインタフェースなどのヒューマン・ファクタの問題点をシステム開発の上流段階で検出できるためにはシステム開発とシステム評価を同一環境で行なえることが好都合である、ということが本発明者によって見出された。
本発明の目的は、ＳＯＣ化されるべきデータ処理システムのためのシステム開発をソフトウェアとハードウェアを含めたシステムトータルとして支援することができるデータ処理システムの開発方法を提供することにある。
本発明の別の目的は、システム開発と評価を同一環境で行なうことが容易なデータ処理システムの開発方法を提供することにある。
本発明の更に別の目的は、ユーザロジックをＣＰＵの高速バスに接続したりする場合にも、実機での確認作業に近い形態でシステム評価を可能とする評価ボードを提供することにある。
本発明の上記並びにその他の目的と新規な特徴は本明細書の以下の記述と添付図面から明らかにされるであろう。
発明の開示
《データ処理システムの開発方法》
本発明に係るデータ処理システムの開発方法は、特にＳＯＣ化されるべきデータ処理システムの全体的な機能、特にＳＯＣ化すべきＬＳＩの機能に着眼し、多数の記憶セルにロードされる論理構成定義データに応じて論理機能がプログラマブルに決定される第１可変論理デバイスに第１ユーザロジック及び評価用プロセッサ機能を実現する第１処理と、多数の記憶セルにロードされる論理構成定義データに応じて論理機能がプログラマブルに決定される第２可変論理デバイスに第２ユーザロジックを実現してターゲットボードを構成する第２処理と、前記第１可変論理デバイス及び第２可変論理デバイスを評価支援システムに接続して、前記第１可変論理デバイスにターゲットプログラムを実行させ、実行結果に基づいて前記ターゲットボード及びターゲットプログラムを評価する第３処理と、前記評価結果に基づいて、前記第１可変論理デバイス、前記第２可変論理デバイス、ターゲットボード又は前記ターゲットプログラムに必要な修正を加える第４処理と、を含む。第１、第２可変論理デバイスのためのユーザロジックとしては、ユーザ自身が用意したユーザのためのロジックだけでなく、ユーザの希望を満たすように半導体集積回路メーカ或いはそれ以外から提供されるいわゆるＩＰ（Ｉｎｔｅｌｌｅｃｔｕａｌ  Ｐｒｏｐａｔｙ）モジュールデータに基づくロジックも対象とされる。
上記より、データ処理システムに採用すべきＳＯＣ化ＬＳＩを、プロセッサ、プロセッサに接続され比較的動作速度が高速な回路モジュールを成す第１ユーザロジック、及びプロセッサに接続され比較的動作速度が低速で済む回路モジュールを成す第２ユーザロジックに切り分け、プロセッサ及び第１ユーザロジックの機能を第１可変論理デバイスに、前記第２ユーザロジックの機能を第２可変論理デバイスに設定し、第１可変論理デバイスで実現されたプロセッサ機能を用いてターゲットプログラムを実行させ、実行結果の評価内容を第１及び第２可変論理デバイスやターゲットプログラムにフィードバックさせることができる。したがって、ＳＯＣ化を企図したデータ処理システムに対しソフトウェアとハードウェアの双方に着目してシステム開発を支援することが容易である。
第１及び第２可変論理デバイスに対する機能設定はソフトウェア的に行なうことができ、実機のようなハードウェアシステムが一応完成する前にシステムの評価を行なうことができ、これにより、システム開発と評価を同一環境で行なうことが可能である。
実機のようなハードウェアシステムが一応完成する前であっても、比較的動作速度が高速な回路モジュールを成す第１ユーザロジックはプロセッサ機能と一緒に同じ可変論理デバイスによってその機能が実現されるから、ユーザロジックをＣＰＵの高速バスに接続したりする場合にも、実機での確認作業に近い形態でシステム評価を行なうことが可能である。
本発明に係るデータ処理システムの開発方法における具体的な態様として、前記第３処理では、前記第１可変論理デバイスが実装される評価ボードとホストシステムを前記評価支援システムとして用いてよい。前記評価ボードは、実装された前記第１可変論理デバイスに接続される評価用コントローラ及びメモリと、前記評価用コントローラ及びメモリに接続される評価用インタフェース回路と、実装された前記第１可変論理デバイスに接続されるユーザインタフェース回路とを有する。前記ユーザインタフェース回路に前記ターゲットボードの第２可変論理デバイスを接続し、前記評価用インタフェース回路に前記ホストシステムを接続すればよい。
このとき、前記第１処理では、論理構成定義データに基づいて、ＣＰＵバス及びこれに接続されるＣＰＵを含むプロセッサコアと、前記ＣＰＵバスに接続される第１ユーザロジックと、前記プロセッサコア及び第１ユーザロジックに接続可能にされ且つ前記評価用コントローラにインタフェースされるテストインタフェースユニットとを第１可変論理デバイスに形成することになる。
前記第１処理において、前記プロセッサコアに、ＣＰＵバスに接続されるバスステートコントローラを含め、前記バスステートコントローラを第１バス（システムバス）を介して前記ユーザインタフェース回路に接続するようにしてよい。
また、前記第１処理において、前記プロセッサコアに、ＣＰＵバスに接続される周辺バスブリッジ回路を更に含め、前記周辺バスブリッジ回路を第２バス（周辺バス）を介して前記ユーザインタフェース回路に接続するようにしてよい。
前記第１可変論理デバイスによるターゲットプログラムの実行結果を得るための手段である、前記テストインタフェースユニットには、例えば、前記評価用コントローラにインタフェースされる外部端子として、クロック端子、モード端子、データ入力端子、及びデータ出力端子を設定し、前記データ入力端子から与えられるコマンドに基づいて前記データ入力端子及びデータ出力端子の接続先を決定し、前記モード端子の状態に応じて、前記データ入力端子に供給される情報を取り込み、取り込んだ情報を前記決定された接続先に送り出し、また、前記決定された接続先からの情報を取り込んで、前記データ出力端子から外部に出力する機能を設定するようにしてよい。このテストインタフェースユニットを採用することにより、プロセッサコアや第１ユーザロジックの論理機能部分等におけるバスや信号線を必要に応じて選択して、デバッグモニタ用に外部に導通させることができる。したがって、評価若しくは解析に必要な評価用マイクロプロセッサの動作結果情報等の収集を比較的自由に行なうことができる。このテストインタフェースユニットは、例えばＪＴＡＧ（Ｊｏｉｎｔ  Ｔｅｓｔ  Ａｃｔｉｏｎ  Ｇｒｏｕｐ  ＩＥＥＥ標準１１４９．１）によるバウンダリスキャン機能を流用する回路であり、ＩＥＥＥ１１４９．１の規格に準拠した手順で信号入出力を行なう。特に、ＩＥＥＥ１１４９．１の規格に準拠した信号入出力機能を採用しれば、少ないテスト専用外部端子数にてデバッグモニタ情報の収集が可能になる。
前記評価用コントローラは、トレース制御、ブレークポイント制御、ユーザプログラムの実行制御、ホストインタフェース制御の各機能を有し、これにより、インサーキットエミュレータの機能を実現し、前記第１可変論理デバイスにターゲットプログラムを実行させ、また、その実行結果を取得するための制御を行なえばよい。
《評価ボード》
本発明に係る評価ボードは、回路基板に、評価用コントローラ、前記評価用コントローラに接続される可変論理デバイス、前記可変論理デバイスに接続されるメモリ、前記可変論理デバイスに接続されるユーザインタフェース回路、及び前記評価用コントローラに接続される評価用インタフェース回路が実装され、前記可変論理デバイスは、多数の記憶セルにロードされる論理構成定義データに応じて論理機能がプログラマブルに決定されて評価用マイクロプロセッサ機能及び第１ユーザロジックが実現される半導体デバイスである。
ＳＯＣ化を目指すデータ処理システムの開発に当たり、前記評価ボードの可変論理デバイスはプロセッサと当該プロセッサに接続され動作速度が比較的高速な回路モジュールとの機能を担い、プロセッサに接続され動作速度が比較的低速で済む第２ユーザロジックについては、評価ボードのユーザインタフェース回路に接続されることになる。開発すべきデータ処理システムのハードウェア的な機能を可変論理デバイスに設定し、この可変論理デバイスで実現されたプロセッサ機能を用いてターゲットプログラムを実行させて、開発すべきシステムのデバッグを行なうことができる。この評価ボードは上記データ処理システムの開発方法に好適である。
評価ボードの前記可変論理デバイスは特定のシステムだけに専用化されず、また、開発すべきシステムに必要なロジックを前記可変論理デバイスだけで賄うことができないときは前記可変論理デバイスにユーザインタフェース回路を介して外部の第２可変論理デバイスを接続可能になっているから、種々のシステム開発に対し高い汎用性をもって利用することができる。
前記可変論理デバイスには、論理構成定義データに基づいて、ＣＰＵバス及びこれに接続されるＣＰＵを含むプロセッサコアと、前記ＣＰＵバスに接続される第１ユーザロジックと、前記プロセッサコア及び第１ユーザロジックに接続可能にされ且つ前記評価用コントローラにインタフェースされるテストインタフェースユニットを形成してよい。
前記プロセッサコアがＣＰＵバスに接続されるバスステートコントローラを含むとき、このバスステートコントローラが前記ユーザインタフェース回路に接続されてよい。また、前記プロセッサコアがＣＰＵバスに接続される周辺バスを更に含むとき、この周辺バスが前記ユーザインタフェース回路に接続されてよい。
前記ユーザインタフェース回路には例えばターゲットボードが接続され、前記ターゲットボードには第２ユーザロジックを実現する前記第２可変論理デバイス等を配置しておけばよい。
前記テストインタフェースユニットはＪＴＡＧユニットのような回路で構成してよい。前記評価用コントローラは、トレース制御、ブレークポイント制御、ユーザプログラムの実行制御、ホストインタフェース制御の各機能を有し、インサーキットエミュレータと同様の機能を達成できるのが好都合である。前記評価用インタフェース回路として、ホストコンピュータに接続可能なホストインタフェース回路を有してよい。前記評価用インタフェース回路として、ファイルメモリカードを接続可能なファイルメモリインタフェース回路を備えてもよい。トレース制御で蓄積できるバス情報の記憶容量は一般的に少ないから、これを補うのに役立つ。
発明を実施するための最良の形態
第１図にはデータ処理システムをハードウェアとソフトウェアの両面から示してある。ＬＳＩのユーザが設計若しくは開発しようとするデータ処理システム（ユーザシステム又はターゲットシステムと称する）１のハードウェアは、所定の配線基板２にＬＳＩ３〜７が実装されて構成される。特定のＬＳＩ３，４にタスクを実行させるためのプログラムは、特に制限されないが、オペレーティングシステム（ＯＳ）１０と、そのＯＳ１０に管理されるミドルウェア１１、アプリケーションプログラム１２、デバイスドライバ１３などのプログラムによって構成される。プログラムはＬＳＩ３，４の記憶領域に保持される。
一つのＬＳＩ３は、ＳＯＣ・ＬＳＩとされ、他のＬＳＩに比べて大規模な論理構成を有し、また、ユーザシステムに固有のユーザロジックも内蔵する。ＬＳＩ３をマルチチップで構成する場合には前記ユーザロジックはゲートアレイ若しくはＡＳＩＣ等の手法で別の単体ＬＳＩなどとして実現されるであろう。
第２図には前記ＳＯＣ・ＬＳＩ３の具体例が示される。ＳＯＣ・ＬＳＩ３は、特に制限されないが、半導体集積回路メーカが開発したプロセッサ若しくはマイクロコンピュータの各種ファミリーに共通使用される機能ブロックとしてプロセッサコア１４を有する。このプロセッサコア１４には、特に制限されないが、ユーザにより選択されたＳＲＡＭ２２及び第１ユーザロジックとしてのハイスピードモジュール２５が接続されて、プロセッサ部１５が構成される。このプロセッサ部１５はユーザの要求仕様を一部満足させたユーザ仕様のマクロプロセッサ若しくはマイクロコンピュータとして位置付けることができる。プロセッサ部１５の外には、ユーザにより選択された不揮発性メモリと第２ユーザロジックとしてのミドルスピードモジュール２７及びロースピードモジュール２９が接続される。前記ＳＯＣ・ＬＳＩ３は、単結晶シリコン等の半導体チップに、ＣＭＯＳ等の半導体集積回路製造技術によって形成されている。
前記ハイスピードモジュール２５、ミドルスピードモジュール２７及びロースピードモジュール２９は、所謂ＩＰモジュールとして提供されている設計データ（マスクパターンデータや論理記述データ等）に基づいて形成されている。
前記プロセッサコア１４は、特に制限されないが、夫々ＣＰＵバス２０を共有するＣＰＵコア２１、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）２２、周辺バスブリッジ回路（ＰＰＢ）２３、及びバスステートコントローラ（ＢＳＣ）２４を有し、更にユーザデバッグ回路（ＡＵＤ）３１を備える。ハイスピードモジュール２５及びＳＲＡＭ２２はＣＰＵバス２０に直結される。前記周辺バスブリッジ回路（ＰＰＢ）２３に周辺バス（第２バス）２６を介して前記ミドルスピードモジュール２７が接続される。また、前記バスステートコントローラ２４にシステムバス（第１バス）２８を介してロースピードモジュール２９及び不揮発性メモリ３０が接続される。バスステートコントローラ２４はＣＰＵバス２０とシステムバス２８上での信号振幅、並列信号ビット数、情報転送速度等の相違に応じた入出力動作を制御する。周辺バスブリッジ回路２３も同様であり、ＣＰＵバス２０と周辺バス２６上での信号振幅、並列信号ビット数、情報転送速度等の相違に応じた入出力動作を制御する。
前記ＣＰＵコア２１は、特に制限されないが、ＣＰＵ３２とＤＳＰ３３を備え、その動作プログラムは、例えば不揮発性メモリ３０が保持する。特に図示はしないが、ＣＰＵコア２１にキャッシュメモリが内蔵されてもよい。前記ＳＲＡＭ２２は例えばＤＳＰ３３のデータメモリなどに利用される。不揮発性メモリ３０は例えば電気的に書き換え可能なフラッシュッメモリなどとされ、チューニングデータ若しくは制御データなどのデータテーブルが形成されていてもよい。ユーザデバッグ回路（ＡＵＤ）３１は例えばＪＴＡＧインタフェースを利用して周辺バス２６の状態を外部から任意に参照可能にする、オンボード状態でデバッグを行なうときの内部参照機能を提供する。
ハイスピードモジュール２５はＣＰＵ３２に代わって所定の演算処理を負担するアクセラレータのような高速演算回路などを実現する。ミドルスピードモジュール２７はシリアルインタフェースコントローラなどの周辺機能を実現する。ロースピードモジュール２９はキー入力インタフェースコントローラなどの低速周辺機能を実現する。ＳＯＣ・ＬＳＩ３の外部にはシステムバス２８を介してシンクロナス・ダイナミック・ランダム・アクセス・メモリ（ＳＤＲＡＭ）３４に代表される別の半導体デバイスが接続される。尚、ＳＤＲＡＭ３４は前記ＬＳＩ４〜７の一例である。
第３図にはＳＯＣ・ＬＳＩ３を利用するデータ処理システムの開発方法が概略的に例示される。ＳＯＣ・ＬＳＩ３の設計開発（Ｓ１）ではＳＯＣ・ＬＳＩ３の機能設計、論理設計、回路設計、及びデバイス設計が行なわれ、ＬＳＩが試作され、最後に製品化される。これと共に、ＳＯＣ・ＬＳＩ３で所要のソフトウェア機能を実行するためのアプリケーションプログラムやミドルウェアなどのユーザプログラムを開発する（Ｓ２）。
製造されたＳＯＣ・ＬＳＩ３は例えばディジタルカメラや通信装置などのシステムに実装され、開発されたユーザプログラムを実行して所要の機能を実現するようにされる。
設計開発では、試作ＬＳＩ若しくは評価用ＬＳＩが製造される前に、可変論理デバイスとしてのＦＰＧＡ３６，３７にＳＯＣ・ＬＳＩ３に搭載すべき機能を実現する。例えば第２図の例に従えば、前記ＦＰＧＡ３６には前記プロセッサ部１５に応ずる機能を設定し、ＦＰＧＡ３７には前記ミドルスピードモジュール２７及びロースピードモジュール２９に応ずる機能を設定する。そして、開発対象とされるターゲットシステム上でそれらＦＰＧＡ３６，３７を開発途上のユーザプログラムで動作させて、システムデバッグ及びソフトウェアデバッグ等の検証／テストを行なう（Ｓ３）。デバッグ結果は設計開発処理Ｓ１及びプログラム開発処理Ｓ２にフィードバックされる。
第４図にはＦＰＧＡ３６，３７の一例が示される。同図に従えば、ＦＰＧＡ３６，３７は、マトリクス配置された多数の可変論理ユニット４０、可変接続ユニット４１、可変外部入出力回路４２Ａ〜４２Ｄ、行方向に延在された複数の信号配線４３、列方向に延在された複数の信号配線４４、及びプログラム制御回路４５などがから成る。
前記可変論理ユニット４０、可変接続ユニット４１及び可変外部入出力回路４２Ａ〜４２Ｄの夫々は、信号パス、信号パスの前記信号線４３，４４等への接続経路を選択する複数の可変スイッチセル、複数の可変論理セル、及びデータラッチ回路を有する。可変論理セルの論理機能、可変スイッチセルによる可変論理セルと信号パスとの接続形態、そして前記可変スイッチセルによる信号パス同志の接続形態は、前記データラッチ回路にラッチされる論理構成定義データ（論理機能定義データとも称する）によって決定される。各データラッチ回路に対する論理構成定義データの供給はプログラム制御回路４５が制御する。
前記データラッチ回路はスタティックラッチ、或は不揮発性メモリセルによって構成され、全てのデータラッチ回路に論理構成定義データを初期設定することにより、ＦＰＧＡ３６，３７のハードウェア的な論理構成が決定され、その論理構成に従った動作を行なう。論理構成定義データを変更すれば、ＦＰＧＡ３６，３７の論理機能を変化させることができる。
第５図にはユーザプログラムの開発環境の概略が示される。開発環境の使用者は、各種エディタなどを用いて、Ｃ言語乃至アセンブリ言語でプログラムを作成する。これは通常、複数のモジュールに分割して作成される。Ｃコンパイラ５０は、使用者の作成したそれぞれのＣ言語ソースプログラムを入力し、アセンブリ言語ソースプログラム乃至オブジェクトモジュールを出力する。アセンブラ５１は、アセンブリ言語ソースプログラムを入力し、オブジェクトモジュールを出力する。リンケージエディタ５２は、前記Ｃコンパイラ５０やアセンブラ５１の生成した、複数のオブジェクトモジュールを入力して、各モジュールの外部参照や相対アドレスなどの解決を行い、１つのプログラムに結合して、ロードモジュールを出力する。ロードモジュールは、前記ＦＰＧＡ３６を有する後述の評価ボード６０に供給され、インサーキットエミュレーションのように、開発対象とされるターゲットシステム上でＦＰＧＡ３６，３７を動作させて、システムデバッグ及びソフトウェアデバッグ等の検証若しくはテストに供される。尚、前記ロードモジュールは、例えばシミュレータデバッガ５３に入力され、パーソナルコンピュータなどのシステム開発装置上で、ＣＰＵの動作をシミュレーションし、実行結果を表示し、プログラムの解析や評価を行なうことも可能である。
第６図にはＳＯＣ・ＬＳＩ３を用いるデータ処理システムの開発方法の詳細が例示される。ＦＰＧＡ開発処理ＧＳ１は、特に制限されないが、ＦＰＧＡ３６に第１ユーザロジック及び評価用プロセッサ機能を実現し、ＦＰＧＡ３７に第２ユーザロジックを実現することである。第２図のＳＯＣ／ＬＳＩ３に即して詳しく説明すると、前記第１ユーザロジックとは、第２図に代表的に示されたハイスピードモジュール２５に割当てられるデータ処理機能である。評価用プロセッサ機能とは、第２図のプロセッサコア１４及びＳＲＡＭ２２の機能である。要するに、ＦＰＧＡ３６にはプロセッサ部１５の機能を有するマイクロプロセッサのためのエミュレーション用マイクロプロセッサ機能を実現する。このエミュレーション用マイクロプロセッサ機能については後で詳述する。
ＦＰＧＡ３６，３７の論理機能を決定する論理機能定義データはＦＰＧＡライタ６１からＦＰＧＡ３６，３７に供給される。ＳＯＣ／ＬＳＩ３の論路設計データは例えばＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）若しくはＨＤＬ（Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）と呼ばれる形式で論理記述されており、ホストコンピュータ６２は、その論理設計データの対応回路部分の記述データ若しくはその記述データを所定のデータフォーマットに変換してＦＰＧＡライタ６１に与える。ＦＰＧＡライタ６１はそのような論理記述データを解読して、ＦＰＧＡ３６，３７に論理機能を設定するのに必要な論理機能定義データを生成する。また、ホストコンピュータ６２は、便宜上第５図で説明した開発環境を備え、ＳＯＣ／ＬＳＩ３のために生成したロードモジュールを有する。
プロトタイプボード開発処理ＧＳ２は、ＳＯＣ・ＬＳＩ３を搭載してディジタルカメラなどを構成するのに必要なターゲットボードとしてのプロトタイプボード６３を構成する処理であり、実機との相違点は、ＳＯＣ／ＬＳＩ３が搭載されず、その代わりに、ＦＰＧＡ３７が搭載され、また、ＦＰＧＡ３６と接続するためのコネクタ６４が設けられ、その他のユーザロジック６５は実機と同じであってよい。
ターゲットプログラム実行処理ＧＳ３は、ＦＰＧＡ３６を実装した評価ボード６０に、前記ＦＰＧＡ３７を実装したプロトタイプボード６３を接続し、評価ボード６０にホストコンピュータ６２からターゲットプログラムとしてのロードモジュールをダウンロードし、このロードモジュールをＦＰＧＡ３６に実行させ、実行結果をフラッシュメモリカード６７に収集する処理である。
評価ボード６０は、回路基板６８に、ＦＰＧＡ３６と、前記ＦＰＧＡ３６に接続される評価用コントローラ７０及びメモリ（ＳＤＲＡＭ）７１と、前記評価用コントローラ７０に接続される評価用インタフェース回路７３，７４と、前記ＦＰＧＡ３６に接続されるユーザインタフェース回路７５とを有する。
前記ユーザインタフェース回路７５に前記ターゲットボード６３のコネクタ６４が結合される。前記評価用インタフェース回路７３にホストシステム６２が接続され、評価用インタフェース回路７４にフラッシュッメモリカード６７が着脱可能にされる。
分析・評価・編集処理ＧＳ４は、フラッシュメモリカード６７に収集されたターゲットプログラム実行結果と、ターゲットシステムの構成情報、ターゲットプログラムの開発情報に基づいて、ターゲットシステム及びターゲットプログラムを所要の主題について解析して結果を取得する処理である。この分析・評価・編集処理ＧＳ４は前記ホストシステム６２などを用いて行なえばよい。解析によりプログラムにバグが発見され、或はシステム構成に不具合が発見されたときは、その内容に応じてＦＰＧＡ３６、ＦＰＧＡ３７、その他のユーザロジック６５、又は前記ターゲットプログラムに必要な修正を加える。
第７図にはエミュレーション用マイクロプロセッサ機能が設定されたＦＰＧＡ３６の詳細が評価ボード６０及びプロトタイプボード６３と共に例示される。エミュレーション用マイクロプロセッサ機能が設定されたＦＰＧＡ３６には、第２図のプロセッサ部１５の機能、即ち、ＣＰＵコア２１、ＰＰＢ２３、ＢＳＣ２４及びＡＵＤ３１を含むプロセッサコア１４の機能と、ＳＲＡＭ２２の機能と、ハイスピードモジュール２５の機能とが実現され、その他に、プロセッサコア１４及びハイスピードモジュール２５に接続可能にされ且つ前記評価用コントローラ７０にインタフェースされるテストインタフェースユニット（ＥＩＦ）８０の機能が設定される。
前記バスステートコントローラ２４に接続するシステムバス２８、そして前記ＰＰＢ２３に接続する周辺バス２６は、ユーザインタフェース回路７５を介してプロトタイプボード６３に接続されるようになる。
第７図の評価ボード６０とプロトタイプボード６３が接続された状態において、第２図のＳＯＣ・ＬＳＩ３の機能は、エミュレーション用マイクロプロセッサ機能が設定されたＦＰＧＡ３６、ミドルスピードモジュール２７及びロースピードモジュール２９の機能が設定されたＦＰＧＡ３７、その他ユーザロジック６５の中に設けられた不揮発性メモリ３０によって代替可能になる。
評価用コントローラ７０は、インサーキットエミュレータの機能であるトレース制御、ブレークポイント制御、ユーザプログラムの実行制御、及びホストインタフェース制御の各機能を有し、ＦＰＧＡ３６、ＳＤＲＡＭ７１、及び評価用インタフェース回路７３、７４に接続される。評価用コントローラ７０は、特に制限されないが、ＦＰＧＡ３６に実現されるＣＰＵバス２０及びテストインタフェースユニット８０に接続される。評価用コントローラ７０とＦＰＧＡ３６のＣＰＵバス２０との接続は、専ら、インサーキットエミュレータの機能であるトレース制御やブレークポイント制御を行なうためである。評価用コントローラ７０とテストインタフェースユニット８０との接続は、専ら、ＣＰＵコア２１によるユーザプログラムの実行によって得られる結果を大規模に収集することを想定している。
ＳＤＲＡＭ７１は、テストインタフェースユニット８０等から得られる情報のバッファメモリとしての利用、或は、ターゲットシステムのメモリを代替する貸し出しメモリとしての利用が可能にされる。ソフトウェアデバッグを行なう場合はユーザプログラムをターゲットボード６３の不揮発性メモリ３０に代えてＳＤＲＡＭ７１に配置することが予想される。
第８図には前記テストインタフェースユニット８０の一例が示される。このテストインタフェースユニット８０は、ＵＤ３１と同じく、例えばＪＴＡＧ（Ｊｏｉｎｔ  Ｔｅｓｔ  Ａｃｔｉｏｎ  Ｇｒｏｕｐ  ＩＥＥＥ標準１１４９．１）に準拠した信号入出力機能を備える。
テストインタフェースユニット８０は、ＦＰＧＡ３６の外部と非同期でシリアルに情報の入出力を行うための外部インタフェース端子として、テストクロック端子ＴＣＫ、テストモードセレクト端子ＴＭＳ、テストリセット端子／ＴＲＳＴ、テストデータ入力端子ＴＤＩ、テストデータ出力端子ＴＤＯを有する。そして、それら５個の端子を用いてインタフェース制御を行なために、特に制限されないが、シフトレジスタＳＤＳＦＴ、コマンドレジスタＳＤＩＲ、ステータスレジスタＳＤＳＲ、複数個のデータレジスタＳＤＤＲ０〜ＳＤＤＲｎ、コマンドデコーダ８１、ＴＡＰコントローラ８２、セレクタ８３を有する。
前記シフトレジスタＳＤＳＦＴは、ＴＡＰコントローラ８２から出力される制御信号８４（特にそれに含まれるシフトクロック）に同期して、テストデータ入力端子ＴＤＩに入力されるシリアルデータをシリアル入力する。シリアル入力されたデータは、コマンドレジスタＳＤＩＲ又はデータレジスタＳＤＤＲ０〜ＳＤＤＲｎの中で選択されたレジスタにパラレルに入力される。また、前記レジスタＳＤＩＲ，ＳＤＳＲ，ＳＤＤＲ０〜ＳＤＤＲｎはセレクタ８３の一方に接続され、セレクタ８３の他方には前記ＣＰＵバス２０、周辺バス２６、システムバス２８、ＣＰＵコア２１の内部で本来閉じている信号線８５、ハイスピードモジュール２５の内部で本来閉じている信号線８６に接続される。シフトレジスタＳＤＳＦＴをレジスタＳＤＩＲ、ＳＤＤＲ０〜ＳＤＤＲｎの内のどのレジスタに接続するか、また、セレクタ８３を介してレジスタＳＤＩＲ、ＳＤＤＲ０〜ＳＤＤＲｎの内のどのレジスタをどの信号線８５，８６やバス２０，２６，２８に接続するかは、ＴＡＰコントローラ８２から出力される制御信号８４によって決る。
コマンドレジスタＳＤＩＲに供給されたコマンドは、コマンドデコーダ８１にパラレルに供給される。コマンドデコーダ８１はこれに供給されたコマンドを解読して、入出力させるべきレジスタＳＤＳＲ，ＳＤＤＲ０〜ＳＤＤＲｎの選択やセレクタ８３の選択を制御するための入出力モードデータを生成してＴＡＰコントローラ８２に与える。
ＴＡＰコントローラ８２は、前記入出力モードデータで指定されたレジスタＳＤＳＲ，ＳＤＤＲ０〜ＳＤＤＲｎ及びセレクタ８３の選択態様を制御し、その態様での入出力動作タイミングを、端子ＴＭＳの論理値に従い、前記端子ＴＣＫからの同期クロックに同期して生成する。制御信号８４はその選択態様や入出力動作タイミング等を規定する制御信号を総称する。ＴＡＰコントローラ８２は前記タイミング制御を状態遷移制御で行ない、テストモードセレクト端子ＴＭＳの論理値が現在の論理値に対して“１”又は“０”の何れに変化するかによって内部制御状態を、予め決められた状態遷移モデルに従って順次遷移させていく。換言すれば、現在のステートから次のステートに進む方向はテストモードセレクト端子ＴＭＳに与えられる信号の論理値によって決定される。順次遷移された個々の制御状態に応じて複数ビットの制御信号８４の状態が変化される。
例えば信号線８５の状態を収集したい場合には、その動作に割当てられたコマンドコードがレジスタＳＤＩＲに入力される。ＴＡＰコントローラ８２の状態遷移制御の最初の入力待ち状態では、端子ＴＤＩからの入力をシストレジスタＳＤＳＦＴからコマンドレジスタＳＤＩＲに伝達するようになっている。コマンドデコーダ８１は入力されるコマンドを解読して、解読結果に基づいて状態遷移制御を進める。例えば、信号線８５の状態をＣＰＵから順次レジスタＳＤＤＲ０〜ＳＤＤＲｎにサイクリックに蓄積し、蓄積された情報をレジスタＳＤＤＲ０〜ＳＤＤＲｎの順にサイクリックにシフトレジスタＳＤＳＲを介して端子ＴＤＯから外部に出力させる動作を繰り返す。当該動作の繰り返しの終了は端子ＴＭＳの状態を変化させて指示する。
また、信号線８５に特定の状態を与えたい場合には、その動作に割当てられたコマンドコードが端子ＴＤＩからコマンドレジスタＳＤＩＲに入力される。コマンドデコーダ８１は入力されるコマンドを解読して、解読結果に基づいて状態遷移制御を進める。例えば、端子ＴＤＩからのシリアル入力データをレジスタＳＤＤＲ０〜ＳＤＤＲｎの中の所定のレジスタにセットし、セットされた情報を端子ＴＭＳの所定の状態変化に同期してセレクタ８３から信号線８５に出力する。
詳細な説明は省略するが、その他の信号線８６やバス２０，２６，２８に関しても端子ＴＤＯからの信号出力、端子ＴＤＩからの信号入力がコマンドに従って可能にされる。
このテストインタフェースユニット８０の信号入出力機能により、ＦＰＧＡ３６で構成されるエミュレーション用マイクロプロセッサ機能におけるエミュレーションインタフェース機能若しくはデバッグ用モニタ機能が実現される。したがて、ＣＰＵコア２１がユーザプログラムを実行することによって生ずる種々の実行結果情報を評価用コントローラ７０を介して順次蓄積し、或は、デバッグ用の制御情報を評価用コントローラ７０からＣＰＵコア２１の内部回路に直接与えて、ユーザプログラムを実行させたりすることが可能になる。
第９図にはＡＵＤ３１の一例が示される。ＡＵＤ３１もＥＩＦ８０と同じくＪＴＡＧに準拠した信号入出力機能を備えるが、データレジスタがＳＤＤＲＨ，ＳＤＤＲＬの２本に限定され、レジスタＳＤＩＲ，ＳＤＳＲ，ＳＤＤＲＨ，ＳＤＤＲＬに接続可能な信号線も周辺バス２６に限定され、これに応じてＴＡＰコントローラ８２Ａ及びデコーダ８１Ａの機能も縮小されている。
第１０図にはターゲットシステムを動作させて得られる動作結果のデータを分析・評価する処理におけるデバッグ情報の流れが示される。第７図のＣＰＵコア２１にユーザプログラムを実行させて、評価ボード６０をプロトシステムボード６３と共に動作させたとき、その動作結果情報がテストインタフェースユニット８０を介して、バス２０，２６，２８及び信号線８５，８６から評価コントローラ７０に入力され、入力された動作結果情報が評価用インタフェース回路７４からフラッシュメモリーカード６７に蓄積される。このとき、評価用コントローラ７０はＳＤＲＡＭ７１をデータバッファとして利用する。フラッシュメモリカード６７に収集されたターゲットプログラムの実行結果情報９０はホストコンピュータ６２に読み込まれる。ホストコンピュータ６２は、ターゲットプログラムの開発情報９１及びターゲットシステムの構成情報９２を図示を省略する補助記憶装置などに取得しており、それらターゲットプログラムの実行結果情報９０、ターゲットプログラムの開発情報９１及びターゲットシステムの構成情報９２に基づいて、前記ターゲットシステム及びターゲットプログラムの所要の主題について解析を行なう。
第１１図には分析・評価処理で用いられる情報が例示される。前記ターゲットプログラムの実行結果情報９０は、単なるバス情報のトレースに限定されず、分岐トレースやメモリアクセストレース、更にはＣＰＵステータスやＣＰＵコア２１内部で閉じた信号も収集対象とされる。例えば、前記ターゲットプログラムの実行結果情報９０は、ＣＰＵコア２１の動作基準クロック信号などのクロック信号の状態、バス情報（バス２０，２６，２８のアドレス、データ）、バスステート情報（リード、ライト、データストローブ、ＤＭＡサイクル等）、バス制御制御（ウェイト信号、バスリクエスト信号、バスビジー信号）、ＣＰＵステータス情報（命令フェッチ、上位／下位配置命令実行信号、割込み信号、その他のハードウェア例外処理信号等）、ブレーク状態（ハードウェアブレークの発生信号、ブレークアクノリッジ信号、ブレークトリガ信号）等を含む。
ターゲットプログラムの開発情報９１には、前記ターゲットプログラムの開発環境で取得されるシンボルテーブル、モジュールテーブル、オブジェクト情報、行情報などの情報を利用すればよい。即ち、プログラム開発を行なうホストコンピュータ６２上には、ターゲットプログラムの各種モジュールに関するソースプログラムのソースファイル、コンパイル又はアセンブルされたオブジェクトモジュールファイル、リンケージエディタの出力ファイルが存在する。それら情報から任意に選ばれた必要な情報がターゲットプログラムの開発情報９１として利用される。例えばオブジェクトに関する情報として、ヘッダ、ヘッダサブ、ユニット制御情報、セクション、シンボルテーブル、セクション要素ヘッダ、オブジェクトコード、リロケーション情報等を含む。デバッグに関する情報として、デバッグユニット、プログラム構造、シンボル、関数型、手続パラメータ、関数パラメータ等の情報が含まれる。それらに基づいて必要なオブジェクト情報やデバッグ用情報を参照することができる。
ターゲットシステムの構成情報９２としては、ＦＰＧＡ３６，３７の機能設定に用いたハードウェア記述情報等を用いればよい。
前記ターゲットプログラムの実行結果情報９０、ターゲットプログラムの開発情報９１、及びターゲットシステムの構成情報９２に基づいてシステム評価情報９３が作成される。例えばこれは、処理を時系列に把握可能にするトレースツリーテーブル、分岐を生ずる処理を命令アドレスなどで特定するための分岐トレーステーブル、システムの状態を示す情報テーブル、命令実行に係るオブジェクトモジュールやデバッグ情報を関連付ける参照出力ファイル情報などとされる。
そして、前記システム評価情報９３を利用して、以下の解析（トータルシステムアナライズ処理）が行なわれる。解析内容の一つは全体評価であり、実行プログラムモジュール系列（実行したモジュールのツリー）、キャッシュヒット率の解析、コール元の解析、分岐命令の発生元の解析（分岐命令のソーストレース解析）、各種バスサイクル解析（外部アクセス実行時間、リフレッシュサイクル、ＣＰＵのアイドル時間解析）、サブルーチン実行時における別のサブルーチンによるネスト状態の解析、同一アルゴリズムの実行時間解析、指定モジュールの動作タイムチャートなどである。命令実行時間系の評価としては、処理ルーチン毎のスループット、同一アルゴリズムの抽出、命令から計算した実行時間の解析、ソース記述上で関数がコールされる状態の解析、サブルーチンのネストとスタックポインタの最大使用量の解析、ＤＭＡやＣＰＵによるバスサイクルの分布解析、指定プログラムモジュールの実行時タイムチャート、使用命令語の分布解析、コール元プログラムモジュールの分布解析、などとされる。メモリアクセス系の評価としては、メモリアクセスのタイムチャート、メモリアクセス時間の計測、アクセス対象メモリの種別と分布の解析等とされる。
ここで、前記情報を用いる解析手法の具体例を説明する。解析結果として実行プログラムモジュール系列を表示するには、ターゲットプログラムの実行結果情報９０に含まれる命令アクセスアドレスを、ターゲットプログラム開発情報９１に含まれるオブジェクト情報から検索して、実行したプログラムモジュールを特定すればよい。分岐命令アドレストレースは、ターゲットプログラムの実行結果情報９０に含まれる分岐命令アクセスを参照すればよい。同一アルゴリズムの実行時間は、ターゲットプログラムの実行結果情報９０に含まれる実行命令コードと、ターゲットプログラム開発情報９１に含まれるオブジェクト情報との対応から実行された同一アルゴリズムを検出し、そのアルゴリズムに対し、ターゲットシステムの構成情報９２より得られる命令実行サイクル数を考慮して、その実行時間を計算すればよい。実行命令語の分布はターゲットプログラムの実行結果情報９０に含まれる命令コードの分布から取得することができる。メモリアクセスの累計時間は、ターゲットプログラムの実行結果情報９０に含まれるメモリアクセスサイクルを示すステータスの発生と、ターゲットシステムの構成情報９２より得られるメモリアクセスサイクルタイムとから演算することができる。キャッシュヒット率は、ターゲットプログラムの実行結果情報９０に含まれるメモリアクセスサイクルを示すステータスからＣＰＵによる全体のメモリアクセス回数を解析すると共に、メモリアクセスに際してＣＰＵコア２１の外部メモリに対するアクセス動作回数を解析し、更に、メモリアクセスアドレスがキャッシュ対象エリアであるかをターゲットシステム構成情報９２を参照して解析し、それらに基づいて評価することができる。キャッシュメモリは、特に制限されないが、ＣＰＵコア２１に含まれるものと理解されたい。命令実行のスループットは、着目するルーチンの実行に要するクロックサイクル数を解析することによって得られる。このとき、ＣＰＵコアがパイプライン処理を行なうなら、パイプラインストールの発生も考慮されなければならない。
解析結果（評価結果）はホストコンピュータ６２のディスプレイにビジュアル表示されてよい。トレースツリーや各種解析結果をグラフで表示してよい。
ホストコンピュータ６２にて前記システム評価情報を利用した上記解析を行なうことにより、システム開発者の技術能力に依存することなくシステム分析を行なうことができる。
第１２図にはネットワークを介して前記トータルシステムアナライズ処理を請け負う場合の情報の流れが例示される。第１２図において便宜上、前記トータルシステムアナライズ処理を要求するコンピュータ装置を端末装置１００、前記トータルシステムアナライズ処理を請け負うコンピュータ装置をホスト装置１０１と称する。端末装置１００とホスト装置１０１はインターネットなどのネットワーク１０２を介して接続可能にされる。
端末装置１００はターゲットシステムの開発者が管理する装置であり、例えば前記フラッシュメモリカード６７を介して前記ターゲットプログラムの実行結果情報９０を入力し、また、前記ターゲットプログラムの開発情報９１及びターゲットシステムの構成情報９２を有する。要するに、端末装置１００は第１０図のホストコンピュータ６２のような装置であるが、この装置１００では前記トータルシステムアナライズ処理を行なわない、或い行なうことができない。そこで、ホスト装置１０１に対して、より専門的なシステムコンサルテーションを受けることを要求する。即ち、端末装置１００は、ネットワーク１０２を介してホスト装置１０１にシステムアナライズ要求を発行し、ユーザＩＤと共に、ターゲットシステム情報として前記ターゲットシステムの構成情報９２を、そしてターゲットシステムデバッグ動作情報として前記ターゲットプログラム実行結果情報９０及びターゲットプログラム開発情報９１を、ホスト装置１０１に与える。ホスト装置１０１は、前記情報９０、９１，９２を受け取り、これに基づいてターゲットシステム及びターゲットプログラムを所要の主題について解析する。解析内容は例えば第１１図で説明した内容等であってよい。解析結果は、システムアナライズ情報としてユーザ認識ＩＤと共にホスト装置１０１から端末装置１００に返される。このとき、解析に用いたユーザシステム情報を明らかにする目的で、そのユーザシステム情報若しくはそのバージョン情報を添付してもよい。
上記ネットワーク１０２を介するシステムコンサルタントビジネスによれば、専門的なシステムコンサルテーションを必要とするユーザに対して、ターゲットプログラム実行結果情報９０、ターゲットプログラム開発情報９１、及びターゲットシステム構成情報９２をネットワーク１０２経由で受け取って、専門的なシステムアナリシスによるコンサルテーションを行なうことができる。例えば、そのコンサルテーションサービスを行なう主体が、前記ＣＰＵコア２１を開発し若しくはその設計データであるＩＰモジュールデータを提供する半導体集積回路の製造メーカであるなら、コンサルテーションの依頼主は、前記半導体集積回路の製造メーカが製造する半導体集積回路を利用しようとするユーザであったりする。
第１３図にはＩＰモジュールデータを利用してＳＯＣ・ＬＳＩを開発する処理の具体例を全体的に示す。
第１３図の例では携帯型ディジタルカメラ通信端末がユーザシステム（ターゲットシステム）とされる。このユーザシステムでは、ＣＰＵコア２１を中心としてＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）信号処理機能、ＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）、コンパクトフラッシュメモリインタフェース（ＣＦＩ／Ｆ）、ＧＳＭ通信モジュールなどなどを搭載した携帯型ディジタルカメラ通信端末用ＳＯＣ・ＬＳＩ（単にカメラ通信端末用ＳＯＣ・ＬＳＩとも称する）を用いるものとする。そのようなシステム開発においては、それらカメラ通信端末用ＳＯＣ・ＬＳＩの開発と共に、それに実行させるプログラムを開発し、システムデバッグを行なっていかなければならない。
カメラ通信端末用ＳＯＣ・ＬＳＩの開発に当たり、例えばプロセッサ部１５の開発にはプロセッサコアモジュールデータ１１１、ハイスピードモジュールとしてのＣＣＤ信号処理モジュールデータ１１２を用いる。このプロセッサ部１５に対応される評価用プロセッサ機能に搭載すべきＥＩＦモジュールデータ１１３も用意される。それらモジュールデータは、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＤＶＤ−ＲＡＭ（Ｄｉｇｉｔａｌ  Ｖｉｄｅｏ  Ｄｉｓｋ−Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）或は磁気テープ等のコンピュータ読取り可能な記録媒体１１０に記録されてホストコンピュータ６２ａに提供される。ホストコンピュータ６２ａはそれらモジュールデータ１１１，１１２，１１３に基づいて、ＦＰＧＡ３６にそれらプロセッサコア、ＣＣＤ信号処理モジュール２５、ＥＩＦ８０の機能を設定するデータを作成する。この論理機能設定データによって定義される回路がＦＰＧＡライタ６１ａを介してＦＰＧＡ３６に設定され、ＦＰＧＡ３６にはエミュレーション用マイクロプロセッサ機能が比較的簡単に実現される。このとき、評価ボード６０の基板６８に対するＦＰＧＡ３６の端子配置に対して一定のルールを定めておけば、機能設定されたＦＰＧＡ３６を回路基板６８に実装するだけで、評価ボード６０を完成できる。したがって、ＦＰＧＡ３６に設定されるプロセッサ機能やユーザロジックに拘わらず、評価ボード６０をカメラ通信端末用ＳＯＣ・ＬＳＩの開発プラットホームとして使用でき、その開発環境の統一が図られる。このようにして、携帯型ディジタルカメラ通信端末システム開発用途の評価ボード６０が完成する。
前記カメラ通信端末用ＳＯＣ・ＬＳＩに搭載すべきＪＰＥＧ、ＣＦ／Ｆ、ＧＳＭ通信モジュールを想定して、システムの開発段階ではそれらを実現するＦＰＧＡ３７の搭載ソケットを用意し、また、携帯型ディジタルカメラ通信端末のシステムで用いるユーザロジック６５を開発し、それらを搭載したプロトタイプボード６３を構成する。ユーザロジック６５にはＣＣＤや他のインタフェース群を接続すれば尚良い。プロトタイプボード６３の実装デバイスが接続される信号線若しくはバスは、コネクタ６４を介して、前記評価ボード６０のＦＰＧＡ３６から導出されているバス２６，２８に接続可能である。
カメラ通信端末用ＳＯＣ・ＬＳＩに搭載すべきＪＰＥＧ、ＣＦ／Ｆ、ＧＳＭ通信モジュールに対して機能設計が行なわれ、それら設計データに基づいてＦＰＧＡ３７にＪＰＥＧ、ＣＦ／Ｆ、ＧＳＭ通信モジュールの機能を設定するデータをホストコンピュータ６２ｂで作成する。作成された機能設定データを用いてＦＰＧＡライタ６１でＦＰＧＡ３７にＪＰＥＧ、ＣＦ／Ｆ、ＧＳＭ通信モジュールの機能が設定される。機能が設定されたＦＰＧＡ３７はプロトタイプボード６３に実装される。実装されたＦＰＧＡ３７に対して単体デバッグが行なわれる。単体デバッグには、評価用コントローラ７０のインサーキットエミュレーション機能を使用すればよい。このようにして、カメラ通信端末用ＳＯＣ・ＬＳＩで動作するハードウェア環境が完成する。
ホストコンピュータ６２ｂではＯＳ、カメラ制御、ユーザインタフェース、通信制御などのプログラムモジュールを利用してユーザプログラムの開発が行なわれる。開発には、ホストコンピュータ６２ｂ上のコンパイラ、アセンブラ、リンケージエディタなどが利用される。ユーザプログラムに対しては、評価用コントローラ７０によるインサーキットエミュレーション機能により、プログラムデバッグを行なうことができる。プログラムデバッグはターゲットシステムに対するハードウェア・リリース状況に合わせてビルディングブロック・デバッグ方式で進めて行くことができる。要するに、ハードウェア構成が明らかになった部分に関するプログラムを順次追加しながらデバッグを進めていく。
ソフトウェアデバッグやプロトタイプボード６３の個別的なデバッグが一通り完了した後に、ユーザシステム全体を連動させたシステムデバッグを実施する。前記評価ボード６０及びプロトタイプボード６３は全体としてターゲットシステムの実行環境を実現しているので、製品が市場に出た場合のマンマシンインタフェースや各パーツの結合で発生するヒューマンファクタ・インタフェースの問題点などの対策について検証を行うことにより、システムとしての完成度を高めることが可能である。
メモリカード６７に収集したターゲットプログラムの実行結果情報等を基に、ホストコンピュータ６２ｃ上で前記トータルシステムアナライズ処理が行なわれる。開発者はそのトータルシステムアナライズ処理結果を利用することにより、人手による分析・評価・編集作業から開放され、ターゲットシステムに対する全体的な評価若しくは解析結果に高い信頼性を得ることができるようになる。この解析では、実機でカメラ通信端末用ＳＯＣ・ＬＳＩの確認作業を行っているのとほぼ等価な結果を得ることができるから、この解析結果から把握された問題点を速やかにしかも適切にカメラ通信端末用ＳＯＣ・ＬＳＩの開発にフィードバックさせることができる。すなわち、開発者はその処理結果によりターゲットシステムに不都合な部分を見出したとき、それを修正するようにＦＰＧＡ３７，３７の論理機能を変更し、変更した論理機能の下で更にシステムデバッグを続けることができる。
カメラ通信端末用ＳＯＣ・ＬＳＩが完成したとき、プロトタイプボード６３を総合確認システムとして使用することを考えるならば、カメラ通信端末用ＳＯＣ・ＬＳＩも搭載可能なソケットをプロトタイプボード６３に配置しておけば、ターゲットシステムが完成する前にカメラ通信端末用ＳＯＣ・ＬＳＩの機能確認若しくは最終確認を行なうことが容易になる。
以上の説明によれば以下の作用効果を得ることができる。
〔１〕以上説明したデータ処理システムの開発方法によれば、データ処理システムに採用すべきＳＯＣ・ＬＳＩ３を、プロセッサコア１４及びこのプロセッサコア１４に接続され比較的動作速度が高速な回路モジュールを成すハイスピードモジュール２５（第１ユーザロジック）の部分と、前記プロセッサコア１４に接続され比較的動作速度が低速で済む回路モジュールを成すミドルスピードモジュール２７及びロースピードモジュール２９（第２ユーザロジック）の部分とに切り分け、夫々の部分の機能をＦＰＧＡ３６（第１可変論理デバイス）とＦＰＧＡ３７（第２可変論理デバイス）に分けて設定し、ＦＰＧＡ３６で実現されたプロセッサ機能を用いてターゲットプログラムを実行させ、実行結果の評価内容をＦＰＧＡ３６，３７やターゲットプログラムにフィードバックさせることができる。したがって、ＳＯＣ化を企図したデータ処理システムに対しソフトウェアとハードウェアの双方に着目してシステム開発を支援することが容易である。
ＦＰＧＡ３６，３７に対する機能設定はソフトウェア的に行なうことができ、プロトタイプのハードウェアシステムが完成する前にシステムの評価を行なうことができ、これにより、システム開発と評価を同一環境で行なうことが可能である。
プロトタイプのハードウェアシステムが完成する前であっても、比較的動作速度が高速な回路モジュールを成すハイスピードモジュール２５はプロセッサ機能と一緒に同じＦＰＧＡ３６によって実現することができるから、ユーザロジックをＣＰＵの高速バス２０に接続したりする場合にも、実機での確認作業に近い形態でシステム評価を行なうことが可能である。
ＳＯＣ・ＬＳＩの開発をソフトウェアシミュレータで行なって最終的に実機デバッグを行うという従来の開発手法を採用するものではなく、開発されるべき所要の論理機能が設定されるＦＰＧＡ３６，３７を搭載した評価ボード６０及びプロトタイプボード６３でユーザプログラムを実行し、これによって収集した各種情報を基に、ソフトウェア、ハードウェアのみならずシステムトータルとしての性能をデバッグすることができ、データ処理システムの開発期間を大幅に短縮することが可能になる。
〔２〕前記評価ボード６０によれば、ＳＯＣ・ＬＳＩ３の開発に当たり、前記評価ボード６０のＦＰＧＡ３６はプロセッサと当該プロセッサに接続され動作速度が比較的高速な回路モジュールとの機能を担い、プロセッサに接続され動作速度が比較的低速で済む第２ユーザロジックについては、評価ボードのユーザインタフェース回路７５に接続されることになるから、開発すべきデータ処理システムのハードウェア的な機能をＦＰＧＡ３６に設定し、このＦＰＧＡ３６で実現されたプロセッサ機能を用いてターゲットプログラムを実行させて、開発すべきデータ処理システムのデバッグを行なうことができる。従って、評価ボード６０は上記データ処理システムの開発方法に好適である。
更に、評価ボード６０の前記ＦＰＧＡ３６は特定のシステムだけに専用化されず、また、開発すべきシステムに必要なロジックを前記ＦＰＧＡ３６だけで賄うことができないときは前記ＦＰＧＡ３６にユーザインタフェース回路７５を介して外部のＦＰＧＡ３７を接続可能になっているから、種々のシステム開発に対し高い汎用性をもって利用することができる。
〔３〕ターゲットプログラムの実行結果情報９０を収集するためにＦＰＧＡ３６にＪＴＡＧユニットのようなテストインタフェースユニット８０の論理構成を設定することにより、プロセッサコア１４やハイスピードモジュール２５の論理機能部分等におけるバスや信号線を必要に応じて選択して評価用コントローラ７０に導通させることができる。したがって、評価若しくは解析に必要な動作結果情報の収集を比較的自由に行なうことができる。特に、ＪＴＡＧ準拠の信号入出力機能を採用しれば、少ないテスト専用外部端子数にてターゲットプログラム動作結果情報の収集が可能になる。
〔４〕前記トータルシステムアナライズ処理によれば、ターゲットプログラムの実行結果情報９０、ターゲットシステムの構成情報９２、及びターゲットプログラムの開発情報９１に基づいて、実行プログラムモジュール系列の表示、キャッシュヒット率、分岐命令アドレストレース、同一アルゴリズムの実行時間、命令実行のスループット、実効命令語の分布、メモリアクセスの累計時間などの、システム全体評価、命令実行時間系評価、及びメモリアクセス系評価等の解析を自動的に行なうから、システム開発者の技術能力に依存することなく高い信頼性を持ってシステム評価若しくは分析を行なうことができる。即ち、ターゲットプログラムの実行結果情報９０、ターゲットプログラムの開発情報９２及びターゲットシステムの構成情報９１に基を利用するから、ソフトウェアとハードウェアを含めたシステム全体としてシステム評価若しくは解析を行なうことが可能になる。そして、その解析には少なくとも、実行プログラムモジュール系列、分岐命令アドレストレース、命令実行のスループット、及び実行命令語の分布を解析結果として得るものであり、この解析結果は、ターゲットプログラムがどのような構造でどのようにハードウェアを使用しているかについて示すことになる。これにより、システム開発者の技術能力に依存することなく高い信頼性を持ってシステム評価若しくは分析を行なうことができる。
上記ネットワーク１０２を介するシステムコンサルタントビジネスによれば、専門的なシステムコンサルテーションを必要とするユーザに対して、ターゲットプログラム実行結果情報９０、ターゲットプログラム開発情報９１、及びターゲットシステム構成情報９２をネットワーク１０２経由で受け取って、専門的なシステムアナリシスによるコンサルテーションを行なうことができる。例えば、前記半導体集積回路の製造メーカが製造する半導体集積回路を利用しようとするユーザ自らでは専門的なシステム評価を行なうことができないような場合に、前記ＣＰＵコア２１を開発し若しくはその設計データであるＩＰモジュールデータを提供する半導体集積回路の製造メーカが、前記コンサルテーションのサービス提供主体となっていれば、半導体集積回路の製造メーカはそのユーザに対して更なる利便性を容易に提供することが可能になる。
このように、開発システムに関する専門的なシステムアナリシスを提供サービスとして与えることにより、ＳＯＣ・ＬＳＩ等に対してもそのシステム開発の容易化や、システム開発期間の短縮に寄与することができる。
〔５〕前記ＦＰＧＡ３６のような可変論理デバイスで構成される評価用マイクロプロセッサによれば、プロセッサコア１４の機能回路部分が結合するＣＰＵバス２０にハイスピードモジュール２５のような第１ユーザロジックの機能回路部分を接続し、それらを外部の評価用コントローラ等に接続する評価用インタフェースとしてのテストインタフェースユニット８０の機能と、ＣＰＵバス２０をターゲットシステムへ接続可能にするユーザインタフェース２３，２４の機能とを有するから、ユーザロジックをＣＰＵの高速バス（ＣＰＵバス）２０に接続したりするという、ＳＯＣ・ＬＳＩ固有の事情を考慮して、実ＬＳＩ若しくは実機での確認作業に近い形態でシステム評価やデバッグを行なうことが可能になる。
そのような評価用マクロプロセッサの機能をＦＰＧＡ３６のような可変論理デバイスに設定するための機能記述データがＳＤ−ＲＯＭやＤＶＤ−ＲＡＭ等の記録媒体に記録されて半導体集積回路のユーザに提供されることにより、ＦＰＧＡ３６に前記評価用マクロプロセッサの機能を容易に実現可能になり、データ処理システムの評価、更にはデータ処理システムの開発を容易化し、システム開発期間短縮にも寄与することができる。
以上本発明者によって成された発明を実施例に基づいて具体的に説明したが、本発明はそれに限定されず適宜変更可能である。
例えば、ＳＯＣ・ＬＳＩの完成後、当該ＳＯＣ・ＬＳＩを評価ボードに搭載して最終確認を行なってよい。その場合に、ＳＯＣ・ＬＳＩのピン（外部端子）配置とＦＰＧＡのピン配置の相違を、ピギーソケットのようなピン変換コネクタを利用して吸収すればよい。また、評価ボードとプロトタイプボードは分割せずに単一回路基板上に一体化して構成してよい。これにより、評価ボードとプロトタイプボードの接続不良などの外部不良要因を排除できる。このとき、プロトタイプ部分を切り離し可能にしておけば、切り離した部分を即座にデモンストレーションシステムに流用することができる。
また、可変論理デバイスはＦＰＧＡと称されるデバイスに限定されず、ＣＰＬＤ（Ｃｏｍｐｌｅｘ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）と称されるデバイスで当てもよく、広義にはＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）と称されるデバイスの範疇に入るデバイスであればよい。
また、記録媒体はＣＤ−ＲＯＭ、ＤＶＤ−ＲＡＭに限定されず、ＦＤ（Ｆｌｏｐｐｙ  Ｄｉｓｋ）、ＣＤ−Ｒ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ−Ｒｅｃｏｒｄａｂｌｅ）、ＣＲ−ＲＷ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ−Ｒｅｗｒｉｔａｂｌｅ）、ＤＶＤ−ＲＯＭ（Ｄｉｇｉｔａｌ  Ｖｉｄｅｏ  Ｄｉｓｋ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等、コンピュータ読み取り可能なその他の記録媒体であってよい。
産業上の利用可能性
本発明は、ＣＰＵとその他の機能ブロック及びミドルウェア等を統合したＳＯＣ形態のマイクロプロセッサ応用システム、例えば携帯電話機や携帯情報端末等の開発に広く適用することができる。
【図面の簡単な説明】
第１図はデータ処理システムをハードウェアとソフトウェアの両面から例示した説明図である。
第２図はＳＯＣ・ＬＳＩの具体例を示すブロック図である。
第３図はＳＯＣ・ＬＳＩを利用するデータ処理システムの開発方法を概略的に例示する説明図である。
第４図はＦＰＧＡの一例を示すブロック図である。
第５図はユーザプログラムの開発環境の概略を示す説明図である。
第６図はＳＯＣ・ＬＳＩを利用するデータ処理システムの開発方法を更に詳細に例示する説明図である。
第７図はエミュレーション用マイクロプロセッサ機能が設定されたＦＰＧＡの詳細な機能ブロックが評価ボード及びプロトタイプボードと共に例示されたブロック図である。
第８図はテストインタフェースユニットの一例を示すブロック図である。
第９図はＡＵＤの一例を示すブロック図である。
第１０図は分析・評価処理におけるデバッグ情報の流れを示す説明図である。
第１１図は分析・評価処理で用いる情報を例示する説明図である。
第１２図はネットワークを介して分析・評価処理を請け負う場合の情報の流れを例示するシステム図である。
第１３図は記録媒体に記録されたモジュールデータを利用してＳＯＣ・ＬＳＩを開発する処理の具体例を全体的に示す説明図である。
【図１】
2002063473.tif 000003
【図２】
2002063473.tif 000004
【図３】
2002063473.tif 000005
【図４】
2002063473.tif 000006
【図５】
2002063473.tif 000007
【図６】
2002063473.tif 000008
【図７】
2002063473.tif 000009
【図８】
2002063473.tif 000010
【図９】
2002063473.tif 000011
【図１０】
2002063473.tif 000012
【図１１】
2002063473.tif 000013
【図１２】
2002063473.tif 000014
【図１３】
2002063473.tif 000015
【国際調査報告】
2002063473.tif 000016
2002063473.tif 000017
2002063473.tif 000018
2002063473.tif 000019