[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JPWO2002063473A1 - データ処理システムの開発方法及び評価ボード - Google Patents

データ処理システムの開発方法及び評価ボード Download PDF

Info

Publication number
JPWO2002063473A1
JPWO2002063473A1 JP2002563350A JP2002563350A JPWO2002063473A1 JP WO2002063473 A1 JPWO2002063473 A1 JP WO2002063473A1 JP 2002563350 A JP2002563350 A JP 2002563350A JP 2002563350 A JP2002563350 A JP 2002563350A JP WO2002063473 A1 JPWO2002063473 A1 JP WO2002063473A1
Authority
JP
Japan
Prior art keywords
evaluation
user
logic device
data
logic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2002563350A
Other languages
English (en)
Inventor
竹山 寛
寛 竹山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Technology Corp
Original Assignee
Renesas Technology Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Renesas Technology Corp filed Critical Renesas Technology Corp
Publication of JPWO2002063473A1 publication Critical patent/JPWO2002063473A1/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

データ処理システムの開発方法は、データ処理システムに採用すべきSOC・LSI(3)を、プロセッサ及びこのプロセッサに接続され比較的動作速度が高速な回路モジュールを成す第1ユーザロジックの部分と、前記プロセッサに接続され比較的動作速度が低速で済む回路モジュールを成す第2ユーザロジックの部分とに切り分け、夫々の部分の機能を第1可変論理デバイス(36)と第2可変論理デバイス(37)に分けて設定し、第1可変論理デバイスで実現されたプロセッサ機能を用いてターゲットプログラムを実行させ、実行結果の評価内容を前記可変論理デバイスやターゲットプログラムにフィードバックさせる。前記可変論理デバイスに対する機能設定はソフトウェア的に行なうことができ、実機完成する前にシステムの評価を行なうことができ、システム開発と評価を同一環境で行なうことが可能である。SOC化されるデータ処理システムの開発をソフトウェアとハードウェアの双方に着目して支援することが容易になる。

Description

技術分野
本発明は、システムオンチップ(SOC:System On a Chip)化されるデータ処理システムを開発する方法、並びにその開発時におけるシステムデバッグ若しくはプログラムデバッグの支援に利用される評価ボードに関し、例えば、携帯通信端末用のSOC化された半導体集積回路(LSI:Large Scale Integrated circuits)の開発に適用して有効な技術に関する。
背景技術
半導体集積回路は高集積化及び高機能化により、設計が複雑化し、LSIのユーザがその応用システムの開発を計画してから、そのシステムに適用されるLSIが完成するには、長期間を要するのが通例である。開発期間を短縮するという点では、FPGA(Field Programmable Gate Array)を利用して所要の論理機能を実現し、これを用いて開発すべきターゲットシステムの評価行なうことが有用である。例えば、FPGAの多数の記憶セルに論理機能定義データ(接続定義データ)をロードして圧縮或は通信プロトコルなどの所望の論理機能を実現して動作させ、その動作結果に基づいてターゲットシステムの評価を行なうことが可能になる。これにより、LSIを試作するとき早い段階で論理機能のバグを発見して除去することが可能になる。
前記FPGAを用いた論理検証技術として、ユーザロジックをプログラムしたFPGAとCPUコアなどによってエミュレーション用プロセッサとしての検証用ボードを構成するもの(特開平8−16425号)、LSIの論理未確定部分をFPGAチップに置き換え、これをそのLSIと結合させて検証に用いるようにするもの(特開2000−49287号)、FPGAなどのプログラム素子に設計した回路を展開させエミュレーションを行なうようにするもの(特開平11−265299号)等がある。
しかしながら、SOCの場合にはマルチチップのシステム構成に比べると、ユーザロジックをCPUの高速バスに接続したりする場合もあり、これをマルチチップ形態のシステムに置き換えれば、プロセッサの内外にユーザロジックを配置するようなことになり、エミュレータにユーザボード(ターゲットシステム)を接続する従来のエミュレーション方式では、そのような要求に答えるシステムのデバッグには対応が難しい。特開平11−265299号等もこれについて考慮されていない。要するに、FPGAを用いた従来の検証技術は、インサーキットエミュレータを中心にこれにターゲットシステム若しくはユーザロジックを接続してデバッグを行なうという、マルチチップによるシステム開発を主眼としたものに過ぎない。SOCによるLSIの開発を想定すると、ソフトウェアとハードウェアを含めたシステムトータルとしてのシステム開発を支援できるようにすることの有用性が本発明者によって明らかにされた。詳しくは、▲1▼SOCのLSI開発のための統一的な開発方法を実現することが望ましく、▲2▼ソフトウェアを含めたシステムトータルのデバッグを行なってバスの占有率、キャッシュメモリのヒット率、メモリアロケーションの最適化、ソフトウェアアルゴリズムの評価結果等を容易に得られるようにするとよく、▲3▼評価の信頼性を上げるために実機での確認作業に近い形態でシステム評価を行なえるようにするとよく、▲4▼開発期間の短縮、マンマシンインタフェースなどのヒューマン・ファクタの問題点をシステム開発の上流段階で検出できるためにはシステム開発とシステム評価を同一環境で行なえることが好都合である、ということが本発明者によって見出された。
本発明の目的は、SOC化されるべきデータ処理システムのためのシステム開発をソフトウェアとハードウェアを含めたシステムトータルとして支援することができるデータ処理システムの開発方法を提供することにある。
本発明の別の目的は、システム開発と評価を同一環境で行なうことが容易なデータ処理システムの開発方法を提供することにある。
本発明の更に別の目的は、ユーザロジックをCPUの高速バスに接続したりする場合にも、実機での確認作業に近い形態でシステム評価を可能とする評価ボードを提供することにある。
本発明の上記並びにその他の目的と新規な特徴は本明細書の以下の記述と添付図面から明らかにされるであろう。
発明の開示
《データ処理システムの開発方法》
本発明に係るデータ処理システムの開発方法は、特にSOC化されるべきデータ処理システムの全体的な機能、特にSOC化すべきLSIの機能に着眼し、多数の記憶セルにロードされる論理構成定義データに応じて論理機能がプログラマブルに決定される第1可変論理デバイスに第1ユーザロジック及び評価用プロセッサ機能を実現する第1処理と、多数の記憶セルにロードされる論理構成定義データに応じて論理機能がプログラマブルに決定される第2可変論理デバイスに第2ユーザロジックを実現してターゲットボードを構成する第2処理と、前記第1可変論理デバイス及び第2可変論理デバイスを評価支援システムに接続して、前記第1可変論理デバイスにターゲットプログラムを実行させ、実行結果に基づいて前記ターゲットボード及びターゲットプログラムを評価する第3処理と、前記評価結果に基づいて、前記第1可変論理デバイス、前記第2可変論理デバイス、ターゲットボード又は前記ターゲットプログラムに必要な修正を加える第4処理と、を含む。第1、第2可変論理デバイスのためのユーザロジックとしては、ユーザ自身が用意したユーザのためのロジックだけでなく、ユーザの希望を満たすように半導体集積回路メーカ或いはそれ以外から提供されるいわゆるIP(Intellectual Propaty)モジュールデータに基づくロジックも対象とされる。
上記より、データ処理システムに採用すべきSOC化LSIを、プロセッサ、プロセッサに接続され比較的動作速度が高速な回路モジュールを成す第1ユーザロジック、及びプロセッサに接続され比較的動作速度が低速で済む回路モジュールを成す第2ユーザロジックに切り分け、プロセッサ及び第1ユーザロジックの機能を第1可変論理デバイスに、前記第2ユーザロジックの機能を第2可変論理デバイスに設定し、第1可変論理デバイスで実現されたプロセッサ機能を用いてターゲットプログラムを実行させ、実行結果の評価内容を第1及び第2可変論理デバイスやターゲットプログラムにフィードバックさせることができる。したがって、SOC化を企図したデータ処理システムに対しソフトウェアとハードウェアの双方に着目してシステム開発を支援することが容易である。
第1及び第2可変論理デバイスに対する機能設定はソフトウェア的に行なうことができ、実機のようなハードウェアシステムが一応完成する前にシステムの評価を行なうことができ、これにより、システム開発と評価を同一環境で行なうことが可能である。
実機のようなハードウェアシステムが一応完成する前であっても、比較的動作速度が高速な回路モジュールを成す第1ユーザロジックはプロセッサ機能と一緒に同じ可変論理デバイスによってその機能が実現されるから、ユーザロジックをCPUの高速バスに接続したりする場合にも、実機での確認作業に近い形態でシステム評価を行なうことが可能である。
本発明に係るデータ処理システムの開発方法における具体的な態様として、前記第3処理では、前記第1可変論理デバイスが実装される評価ボードとホストシステムを前記評価支援システムとして用いてよい。前記評価ボードは、実装された前記第1可変論理デバイスに接続される評価用コントローラ及びメモリと、前記評価用コントローラ及びメモリに接続される評価用インタフェース回路と、実装された前記第1可変論理デバイスに接続されるユーザインタフェース回路とを有する。前記ユーザインタフェース回路に前記ターゲットボードの第2可変論理デバイスを接続し、前記評価用インタフェース回路に前記ホストシステムを接続すればよい。
このとき、前記第1処理では、論理構成定義データに基づいて、CPUバス及びこれに接続されるCPUを含むプロセッサコアと、前記CPUバスに接続される第1ユーザロジックと、前記プロセッサコア及び第1ユーザロジックに接続可能にされ且つ前記評価用コントローラにインタフェースされるテストインタフェースユニットとを第1可変論理デバイスに形成することになる。
前記第1処理において、前記プロセッサコアに、CPUバスに接続されるバスステートコントローラを含め、前記バスステートコントローラを第1バス(システムバス)を介して前記ユーザインタフェース回路に接続するようにしてよい。
また、前記第1処理において、前記プロセッサコアに、CPUバスに接続される周辺バスブリッジ回路を更に含め、前記周辺バスブリッジ回路を第2バス(周辺バス)を介して前記ユーザインタフェース回路に接続するようにしてよい。
前記第1可変論理デバイスによるターゲットプログラムの実行結果を得るための手段である、前記テストインタフェースユニットには、例えば、前記評価用コントローラにインタフェースされる外部端子として、クロック端子、モード端子、データ入力端子、及びデータ出力端子を設定し、前記データ入力端子から与えられるコマンドに基づいて前記データ入力端子及びデータ出力端子の接続先を決定し、前記モード端子の状態に応じて、前記データ入力端子に供給される情報を取り込み、取り込んだ情報を前記決定された接続先に送り出し、また、前記決定された接続先からの情報を取り込んで、前記データ出力端子から外部に出力する機能を設定するようにしてよい。このテストインタフェースユニットを採用することにより、プロセッサコアや第1ユーザロジックの論理機能部分等におけるバスや信号線を必要に応じて選択して、デバッグモニタ用に外部に導通させることができる。したがって、評価若しくは解析に必要な評価用マイクロプロセッサの動作結果情報等の収集を比較的自由に行なうことができる。このテストインタフェースユニットは、例えばJTAG(Joint Test Action Group IEEE標準1149.1)によるバウンダリスキャン機能を流用する回路であり、IEEE1149.1の規格に準拠した手順で信号入出力を行なう。特に、IEEE1149.1の規格に準拠した信号入出力機能を採用しれば、少ないテスト専用外部端子数にてデバッグモニタ情報の収集が可能になる。
前記評価用コントローラは、トレース制御、ブレークポイント制御、ユーザプログラムの実行制御、ホストインタフェース制御の各機能を有し、これにより、インサーキットエミュレータの機能を実現し、前記第1可変論理デバイスにターゲットプログラムを実行させ、また、その実行結果を取得するための制御を行なえばよい。
《評価ボード》
本発明に係る評価ボードは、回路基板に、評価用コントローラ、前記評価用コントローラに接続される可変論理デバイス、前記可変論理デバイスに接続されるメモリ、前記可変論理デバイスに接続されるユーザインタフェース回路、及び前記評価用コントローラに接続される評価用インタフェース回路が実装され、前記可変論理デバイスは、多数の記憶セルにロードされる論理構成定義データに応じて論理機能がプログラマブルに決定されて評価用マイクロプロセッサ機能及び第1ユーザロジックが実現される半導体デバイスである。
SOC化を目指すデータ処理システムの開発に当たり、前記評価ボードの可変論理デバイスはプロセッサと当該プロセッサに接続され動作速度が比較的高速な回路モジュールとの機能を担い、プロセッサに接続され動作速度が比較的低速で済む第2ユーザロジックについては、評価ボードのユーザインタフェース回路に接続されることになる。開発すべきデータ処理システムのハードウェア的な機能を可変論理デバイスに設定し、この可変論理デバイスで実現されたプロセッサ機能を用いてターゲットプログラムを実行させて、開発すべきシステムのデバッグを行なうことができる。この評価ボードは上記データ処理システムの開発方法に好適である。
評価ボードの前記可変論理デバイスは特定のシステムだけに専用化されず、また、開発すべきシステムに必要なロジックを前記可変論理デバイスだけで賄うことができないときは前記可変論理デバイスにユーザインタフェース回路を介して外部の第2可変論理デバイスを接続可能になっているから、種々のシステム開発に対し高い汎用性をもって利用することができる。
前記可変論理デバイスには、論理構成定義データに基づいて、CPUバス及びこれに接続されるCPUを含むプロセッサコアと、前記CPUバスに接続される第1ユーザロジックと、前記プロセッサコア及び第1ユーザロジックに接続可能にされ且つ前記評価用コントローラにインタフェースされるテストインタフェースユニットを形成してよい。
前記プロセッサコアがCPUバスに接続されるバスステートコントローラを含むとき、このバスステートコントローラが前記ユーザインタフェース回路に接続されてよい。また、前記プロセッサコアがCPUバスに接続される周辺バスを更に含むとき、この周辺バスが前記ユーザインタフェース回路に接続されてよい。
前記ユーザインタフェース回路には例えばターゲットボードが接続され、前記ターゲットボードには第2ユーザロジックを実現する前記第2可変論理デバイス等を配置しておけばよい。
前記テストインタフェースユニットはJTAGユニットのような回路で構成してよい。前記評価用コントローラは、トレース制御、ブレークポイント制御、ユーザプログラムの実行制御、ホストインタフェース制御の各機能を有し、インサーキットエミュレータと同様の機能を達成できるのが好都合である。前記評価用インタフェース回路として、ホストコンピュータに接続可能なホストインタフェース回路を有してよい。前記評価用インタフェース回路として、ファイルメモリカードを接続可能なファイルメモリインタフェース回路を備えてもよい。トレース制御で蓄積できるバス情報の記憶容量は一般的に少ないから、これを補うのに役立つ。
発明を実施するための最良の形態
第1図にはデータ処理システムをハードウェアとソフトウェアの両面から示してある。LSIのユーザが設計若しくは開発しようとするデータ処理システム(ユーザシステム又はターゲットシステムと称する)1のハードウェアは、所定の配線基板2にLSI3〜7が実装されて構成される。特定のLSI3,4にタスクを実行させるためのプログラムは、特に制限されないが、オペレーティングシステム(OS)10と、そのOS10に管理されるミドルウェア11、アプリケーションプログラム12、デバイスドライバ13などのプログラムによって構成される。プログラムはLSI3,4の記憶領域に保持される。
一つのLSI3は、SOC・LSIとされ、他のLSIに比べて大規模な論理構成を有し、また、ユーザシステムに固有のユーザロジックも内蔵する。LSI3をマルチチップで構成する場合には前記ユーザロジックはゲートアレイ若しくはASIC等の手法で別の単体LSIなどとして実現されるであろう。
第2図には前記SOC・LSI3の具体例が示される。SOC・LSI3は、特に制限されないが、半導体集積回路メーカが開発したプロセッサ若しくはマイクロコンピュータの各種ファミリーに共通使用される機能ブロックとしてプロセッサコア14を有する。このプロセッサコア14には、特に制限されないが、ユーザにより選択されたSRAM22及び第1ユーザロジックとしてのハイスピードモジュール25が接続されて、プロセッサ部15が構成される。このプロセッサ部15はユーザの要求仕様を一部満足させたユーザ仕様のマクロプロセッサ若しくはマイクロコンピュータとして位置付けることができる。プロセッサ部15の外には、ユーザにより選択された不揮発性メモリと第2ユーザロジックとしてのミドルスピードモジュール27及びロースピードモジュール29が接続される。前記SOC・LSI3は、単結晶シリコン等の半導体チップに、CMOS等の半導体集積回路製造技術によって形成されている。
前記ハイスピードモジュール25、ミドルスピードモジュール27及びロースピードモジュール29は、所謂IPモジュールとして提供されている設計データ(マスクパターンデータや論理記述データ等)に基づいて形成されている。
前記プロセッサコア14は、特に制限されないが、夫々CPUバス20を共有するCPUコア21、スタティック・ランダム・アクセス・メモリ(SRAM)22、周辺バスブリッジ回路(PPB)23、及びバスステートコントローラ(BSC)24を有し、更にユーザデバッグ回路(AUD)31を備える。ハイスピードモジュール25及びSRAM22はCPUバス20に直結される。前記周辺バスブリッジ回路(PPB)23に周辺バス(第2バス)26を介して前記ミドルスピードモジュール27が接続される。また、前記バスステートコントローラ24にシステムバス(第1バス)28を介してロースピードモジュール29及び不揮発性メモリ30が接続される。バスステートコントローラ24はCPUバス20とシステムバス28上での信号振幅、並列信号ビット数、情報転送速度等の相違に応じた入出力動作を制御する。周辺バスブリッジ回路23も同様であり、CPUバス20と周辺バス26上での信号振幅、並列信号ビット数、情報転送速度等の相違に応じた入出力動作を制御する。
前記CPUコア21は、特に制限されないが、CPU32とDSP33を備え、その動作プログラムは、例えば不揮発性メモリ30が保持する。特に図示はしないが、CPUコア21にキャッシュメモリが内蔵されてもよい。前記SRAM22は例えばDSP33のデータメモリなどに利用される。不揮発性メモリ30は例えば電気的に書き換え可能なフラッシュッメモリなどとされ、チューニングデータ若しくは制御データなどのデータテーブルが形成されていてもよい。ユーザデバッグ回路(AUD)31は例えばJTAGインタフェースを利用して周辺バス26の状態を外部から任意に参照可能にする、オンボード状態でデバッグを行なうときの内部参照機能を提供する。
ハイスピードモジュール25はCPU32に代わって所定の演算処理を負担するアクセラレータのような高速演算回路などを実現する。ミドルスピードモジュール27はシリアルインタフェースコントローラなどの周辺機能を実現する。ロースピードモジュール29はキー入力インタフェースコントローラなどの低速周辺機能を実現する。SOC・LSI3の外部にはシステムバス28を介してシンクロナス・ダイナミック・ランダム・アクセス・メモリ(SDRAM)34に代表される別の半導体デバイスが接続される。尚、SDRAM34は前記LSI4〜7の一例である。
第3図にはSOC・LSI3を利用するデータ処理システムの開発方法が概略的に例示される。SOC・LSI3の設計開発(S1)ではSOC・LSI3の機能設計、論理設計、回路設計、及びデバイス設計が行なわれ、LSIが試作され、最後に製品化される。これと共に、SOC・LSI3で所要のソフトウェア機能を実行するためのアプリケーションプログラムやミドルウェアなどのユーザプログラムを開発する(S2)。
製造されたSOC・LSI3は例えばディジタルカメラや通信装置などのシステムに実装され、開発されたユーザプログラムを実行して所要の機能を実現するようにされる。
設計開発では、試作LSI若しくは評価用LSIが製造される前に、可変論理デバイスとしてのFPGA36,37にSOC・LSI3に搭載すべき機能を実現する。例えば第2図の例に従えば、前記FPGA36には前記プロセッサ部15に応ずる機能を設定し、FPGA37には前記ミドルスピードモジュール27及びロースピードモジュール29に応ずる機能を設定する。そして、開発対象とされるターゲットシステム上でそれらFPGA36,37を開発途上のユーザプログラムで動作させて、システムデバッグ及びソフトウェアデバッグ等の検証/テストを行なう(S3)。デバッグ結果は設計開発処理S1及びプログラム開発処理S2にフィードバックされる。
第4図にはFPGA36,37の一例が示される。同図に従えば、FPGA36,37は、マトリクス配置された多数の可変論理ユニット40、可変接続ユニット41、可変外部入出力回路42A〜42D、行方向に延在された複数の信号配線43、列方向に延在された複数の信号配線44、及びプログラム制御回路45などがから成る。
前記可変論理ユニット40、可変接続ユニット41及び可変外部入出力回路42A〜42Dの夫々は、信号パス、信号パスの前記信号線43,44等への接続経路を選択する複数の可変スイッチセル、複数の可変論理セル、及びデータラッチ回路を有する。可変論理セルの論理機能、可変スイッチセルによる可変論理セルと信号パスとの接続形態、そして前記可変スイッチセルによる信号パス同志の接続形態は、前記データラッチ回路にラッチされる論理構成定義データ(論理機能定義データとも称する)によって決定される。各データラッチ回路に対する論理構成定義データの供給はプログラム制御回路45が制御する。
前記データラッチ回路はスタティックラッチ、或は不揮発性メモリセルによって構成され、全てのデータラッチ回路に論理構成定義データを初期設定することにより、FPGA36,37のハードウェア的な論理構成が決定され、その論理構成に従った動作を行なう。論理構成定義データを変更すれば、FPGA36,37の論理機能を変化させることができる。
第5図にはユーザプログラムの開発環境の概略が示される。開発環境の使用者は、各種エディタなどを用いて、C言語乃至アセンブリ言語でプログラムを作成する。これは通常、複数のモジュールに分割して作成される。Cコンパイラ50は、使用者の作成したそれぞれのC言語ソースプログラムを入力し、アセンブリ言語ソースプログラム乃至オブジェクトモジュールを出力する。アセンブラ51は、アセンブリ言語ソースプログラムを入力し、オブジェクトモジュールを出力する。リンケージエディタ52は、前記Cコンパイラ50やアセンブラ51の生成した、複数のオブジェクトモジュールを入力して、各モジュールの外部参照や相対アドレスなどの解決を行い、1つのプログラムに結合して、ロードモジュールを出力する。ロードモジュールは、前記FPGA36を有する後述の評価ボード60に供給され、インサーキットエミュレーションのように、開発対象とされるターゲットシステム上でFPGA36,37を動作させて、システムデバッグ及びソフトウェアデバッグ等の検証若しくはテストに供される。尚、前記ロードモジュールは、例えばシミュレータデバッガ53に入力され、パーソナルコンピュータなどのシステム開発装置上で、CPUの動作をシミュレーションし、実行結果を表示し、プログラムの解析や評価を行なうことも可能である。
第6図にはSOC・LSI3を用いるデータ処理システムの開発方法の詳細が例示される。FPGA開発処理GS1は、特に制限されないが、FPGA36に第1ユーザロジック及び評価用プロセッサ機能を実現し、FPGA37に第2ユーザロジックを実現することである。第2図のSOC/LSI3に即して詳しく説明すると、前記第1ユーザロジックとは、第2図に代表的に示されたハイスピードモジュール25に割当てられるデータ処理機能である。評価用プロセッサ機能とは、第2図のプロセッサコア14及びSRAM22の機能である。要するに、FPGA36にはプロセッサ部15の機能を有するマイクロプロセッサのためのエミュレーション用マイクロプロセッサ機能を実現する。このエミュレーション用マイクロプロセッサ機能については後で詳述する。
FPGA36,37の論理機能を決定する論理機能定義データはFPGAライタ61からFPGA36,37に供給される。SOC/LSI3の論路設計データは例えばRTL(Register Transfer Level)若しくはHDL(Hardware Description Language)と呼ばれる形式で論理記述されており、ホストコンピュータ62は、その論理設計データの対応回路部分の記述データ若しくはその記述データを所定のデータフォーマットに変換してFPGAライタ61に与える。FPGAライタ61はそのような論理記述データを解読して、FPGA36,37に論理機能を設定するのに必要な論理機能定義データを生成する。また、ホストコンピュータ62は、便宜上第5図で説明した開発環境を備え、SOC/LSI3のために生成したロードモジュールを有する。
プロトタイプボード開発処理GS2は、SOC・LSI3を搭載してディジタルカメラなどを構成するのに必要なターゲットボードとしてのプロトタイプボード63を構成する処理であり、実機との相違点は、SOC/LSI3が搭載されず、その代わりに、FPGA37が搭載され、また、FPGA36と接続するためのコネクタ64が設けられ、その他のユーザロジック65は実機と同じであってよい。
ターゲットプログラム実行処理GS3は、FPGA36を実装した評価ボード60に、前記FPGA37を実装したプロトタイプボード63を接続し、評価ボード60にホストコンピュータ62からターゲットプログラムとしてのロードモジュールをダウンロードし、このロードモジュールをFPGA36に実行させ、実行結果をフラッシュメモリカード67に収集する処理である。
評価ボード60は、回路基板68に、FPGA36と、前記FPGA36に接続される評価用コントローラ70及びメモリ(SDRAM)71と、前記評価用コントローラ70に接続される評価用インタフェース回路73,74と、前記FPGA36に接続されるユーザインタフェース回路75とを有する。
前記ユーザインタフェース回路75に前記ターゲットボード63のコネクタ64が結合される。前記評価用インタフェース回路73にホストシステム62が接続され、評価用インタフェース回路74にフラッシュッメモリカード67が着脱可能にされる。
分析・評価・編集処理GS4は、フラッシュメモリカード67に収集されたターゲットプログラム実行結果と、ターゲットシステムの構成情報、ターゲットプログラムの開発情報に基づいて、ターゲットシステム及びターゲットプログラムを所要の主題について解析して結果を取得する処理である。この分析・評価・編集処理GS4は前記ホストシステム62などを用いて行なえばよい。解析によりプログラムにバグが発見され、或はシステム構成に不具合が発見されたときは、その内容に応じてFPGA36、FPGA37、その他のユーザロジック65、又は前記ターゲットプログラムに必要な修正を加える。
第7図にはエミュレーション用マイクロプロセッサ機能が設定されたFPGA36の詳細が評価ボード60及びプロトタイプボード63と共に例示される。エミュレーション用マイクロプロセッサ機能が設定されたFPGA36には、第2図のプロセッサ部15の機能、即ち、CPUコア21、PPB23、BSC24及びAUD31を含むプロセッサコア14の機能と、SRAM22の機能と、ハイスピードモジュール25の機能とが実現され、その他に、プロセッサコア14及びハイスピードモジュール25に接続可能にされ且つ前記評価用コントローラ70にインタフェースされるテストインタフェースユニット(EIF)80の機能が設定される。
前記バスステートコントローラ24に接続するシステムバス28、そして前記PPB23に接続する周辺バス26は、ユーザインタフェース回路75を介してプロトタイプボード63に接続されるようになる。
第7図の評価ボード60とプロトタイプボード63が接続された状態において、第2図のSOC・LSI3の機能は、エミュレーション用マイクロプロセッサ機能が設定されたFPGA36、ミドルスピードモジュール27及びロースピードモジュール29の機能が設定されたFPGA37、その他ユーザロジック65の中に設けられた不揮発性メモリ30によって代替可能になる。
評価用コントローラ70は、インサーキットエミュレータの機能であるトレース制御、ブレークポイント制御、ユーザプログラムの実行制御、及びホストインタフェース制御の各機能を有し、FPGA36、SDRAM71、及び評価用インタフェース回路73、74に接続される。評価用コントローラ70は、特に制限されないが、FPGA36に実現されるCPUバス20及びテストインタフェースユニット80に接続される。評価用コントローラ70とFPGA36のCPUバス20との接続は、専ら、インサーキットエミュレータの機能であるトレース制御やブレークポイント制御を行なうためである。評価用コントローラ70とテストインタフェースユニット80との接続は、専ら、CPUコア21によるユーザプログラムの実行によって得られる結果を大規模に収集することを想定している。
SDRAM71は、テストインタフェースユニット80等から得られる情報のバッファメモリとしての利用、或は、ターゲットシステムのメモリを代替する貸し出しメモリとしての利用が可能にされる。ソフトウェアデバッグを行なう場合はユーザプログラムをターゲットボード63の不揮発性メモリ30に代えてSDRAM71に配置することが予想される。
第8図には前記テストインタフェースユニット80の一例が示される。このテストインタフェースユニット80は、UD31と同じく、例えばJTAG(Joint Test Action Group IEEE標準1149.1)に準拠した信号入出力機能を備える。
テストインタフェースユニット80は、FPGA36の外部と非同期でシリアルに情報の入出力を行うための外部インタフェース端子として、テストクロック端子TCK、テストモードセレクト端子TMS、テストリセット端子/TRST、テストデータ入力端子TDI、テストデータ出力端子TDOを有する。そして、それら5個の端子を用いてインタフェース制御を行なために、特に制限されないが、シフトレジスタSDSFT、コマンドレジスタSDIR、ステータスレジスタSDSR、複数個のデータレジスタSDDR0〜SDDRn、コマンドデコーダ81、TAPコントローラ82、セレクタ83を有する。
前記シフトレジスタSDSFTは、TAPコントローラ82から出力される制御信号84(特にそれに含まれるシフトクロック)に同期して、テストデータ入力端子TDIに入力されるシリアルデータをシリアル入力する。シリアル入力されたデータは、コマンドレジスタSDIR又はデータレジスタSDDR0〜SDDRnの中で選択されたレジスタにパラレルに入力される。また、前記レジスタSDIR,SDSR,SDDR0〜SDDRnはセレクタ83の一方に接続され、セレクタ83の他方には前記CPUバス20、周辺バス26、システムバス28、CPUコア21の内部で本来閉じている信号線85、ハイスピードモジュール25の内部で本来閉じている信号線86に接続される。シフトレジスタSDSFTをレジスタSDIR、SDDR0〜SDDRnの内のどのレジスタに接続するか、また、セレクタ83を介してレジスタSDIR、SDDR0〜SDDRnの内のどのレジスタをどの信号線85,86やバス20,26,28に接続するかは、TAPコントローラ82から出力される制御信号84によって決る。
コマンドレジスタSDIRに供給されたコマンドは、コマンドデコーダ81にパラレルに供給される。コマンドデコーダ81はこれに供給されたコマンドを解読して、入出力させるべきレジスタSDSR,SDDR0〜SDDRnの選択やセレクタ83の選択を制御するための入出力モードデータを生成してTAPコントローラ82に与える。
TAPコントローラ82は、前記入出力モードデータで指定されたレジスタSDSR,SDDR0〜SDDRn及びセレクタ83の選択態様を制御し、その態様での入出力動作タイミングを、端子TMSの論理値に従い、前記端子TCKからの同期クロックに同期して生成する。制御信号84はその選択態様や入出力動作タイミング等を規定する制御信号を総称する。TAPコントローラ82は前記タイミング制御を状態遷移制御で行ない、テストモードセレクト端子TMSの論理値が現在の論理値に対して“1”又は“0”の何れに変化するかによって内部制御状態を、予め決められた状態遷移モデルに従って順次遷移させていく。換言すれば、現在のステートから次のステートに進む方向はテストモードセレクト端子TMSに与えられる信号の論理値によって決定される。順次遷移された個々の制御状態に応じて複数ビットの制御信号84の状態が変化される。
例えば信号線85の状態を収集したい場合には、その動作に割当てられたコマンドコードがレジスタSDIRに入力される。TAPコントローラ82の状態遷移制御の最初の入力待ち状態では、端子TDIからの入力をシストレジスタSDSFTからコマンドレジスタSDIRに伝達するようになっている。コマンドデコーダ81は入力されるコマンドを解読して、解読結果に基づいて状態遷移制御を進める。例えば、信号線85の状態をCPUから順次レジスタSDDR0〜SDDRnにサイクリックに蓄積し、蓄積された情報をレジスタSDDR0〜SDDRnの順にサイクリックにシフトレジスタSDSRを介して端子TDOから外部に出力させる動作を繰り返す。当該動作の繰り返しの終了は端子TMSの状態を変化させて指示する。
また、信号線85に特定の状態を与えたい場合には、その動作に割当てられたコマンドコードが端子TDIからコマンドレジスタSDIRに入力される。コマンドデコーダ81は入力されるコマンドを解読して、解読結果に基づいて状態遷移制御を進める。例えば、端子TDIからのシリアル入力データをレジスタSDDR0〜SDDRnの中の所定のレジスタにセットし、セットされた情報を端子TMSの所定の状態変化に同期してセレクタ83から信号線85に出力する。
詳細な説明は省略するが、その他の信号線86やバス20,26,28に関しても端子TDOからの信号出力、端子TDIからの信号入力がコマンドに従って可能にされる。
このテストインタフェースユニット80の信号入出力機能により、FPGA36で構成されるエミュレーション用マイクロプロセッサ機能におけるエミュレーションインタフェース機能若しくはデバッグ用モニタ機能が実現される。したがて、CPUコア21がユーザプログラムを実行することによって生ずる種々の実行結果情報を評価用コントローラ70を介して順次蓄積し、或は、デバッグ用の制御情報を評価用コントローラ70からCPUコア21の内部回路に直接与えて、ユーザプログラムを実行させたりすることが可能になる。
第9図にはAUD31の一例が示される。AUD31もEIF80と同じくJTAGに準拠した信号入出力機能を備えるが、データレジスタがSDDRH,SDDRLの2本に限定され、レジスタSDIR,SDSR,SDDRH,SDDRLに接続可能な信号線も周辺バス26に限定され、これに応じてTAPコントローラ82A及びデコーダ81Aの機能も縮小されている。
第10図にはターゲットシステムを動作させて得られる動作結果のデータを分析・評価する処理におけるデバッグ情報の流れが示される。第7図のCPUコア21にユーザプログラムを実行させて、評価ボード60をプロトシステムボード63と共に動作させたとき、その動作結果情報がテストインタフェースユニット80を介して、バス20,26,28及び信号線85,86から評価コントローラ70に入力され、入力された動作結果情報が評価用インタフェース回路74からフラッシュメモリーカード67に蓄積される。このとき、評価用コントローラ70はSDRAM71をデータバッファとして利用する。フラッシュメモリカード67に収集されたターゲットプログラムの実行結果情報90はホストコンピュータ62に読み込まれる。ホストコンピュータ62は、ターゲットプログラムの開発情報91及びターゲットシステムの構成情報92を図示を省略する補助記憶装置などに取得しており、それらターゲットプログラムの実行結果情報90、ターゲットプログラムの開発情報91及びターゲットシステムの構成情報92に基づいて、前記ターゲットシステム及びターゲットプログラムの所要の主題について解析を行なう。
第11図には分析・評価処理で用いられる情報が例示される。前記ターゲットプログラムの実行結果情報90は、単なるバス情報のトレースに限定されず、分岐トレースやメモリアクセストレース、更にはCPUステータスやCPUコア21内部で閉じた信号も収集対象とされる。例えば、前記ターゲットプログラムの実行結果情報90は、CPUコア21の動作基準クロック信号などのクロック信号の状態、バス情報(バス20,26,28のアドレス、データ)、バスステート情報(リード、ライト、データストローブ、DMAサイクル等)、バス制御制御(ウェイト信号、バスリクエスト信号、バスビジー信号)、CPUステータス情報(命令フェッチ、上位/下位配置命令実行信号、割込み信号、その他のハードウェア例外処理信号等)、ブレーク状態(ハードウェアブレークの発生信号、ブレークアクノリッジ信号、ブレークトリガ信号)等を含む。
ターゲットプログラムの開発情報91には、前記ターゲットプログラムの開発環境で取得されるシンボルテーブル、モジュールテーブル、オブジェクト情報、行情報などの情報を利用すればよい。即ち、プログラム開発を行なうホストコンピュータ62上には、ターゲットプログラムの各種モジュールに関するソースプログラムのソースファイル、コンパイル又はアセンブルされたオブジェクトモジュールファイル、リンケージエディタの出力ファイルが存在する。それら情報から任意に選ばれた必要な情報がターゲットプログラムの開発情報91として利用される。例えばオブジェクトに関する情報として、ヘッダ、ヘッダサブ、ユニット制御情報、セクション、シンボルテーブル、セクション要素ヘッダ、オブジェクトコード、リロケーション情報等を含む。デバッグに関する情報として、デバッグユニット、プログラム構造、シンボル、関数型、手続パラメータ、関数パラメータ等の情報が含まれる。それらに基づいて必要なオブジェクト情報やデバッグ用情報を参照することができる。
ターゲットシステムの構成情報92としては、FPGA36,37の機能設定に用いたハードウェア記述情報等を用いればよい。
前記ターゲットプログラムの実行結果情報90、ターゲットプログラムの開発情報91、及びターゲットシステムの構成情報92に基づいてシステム評価情報93が作成される。例えばこれは、処理を時系列に把握可能にするトレースツリーテーブル、分岐を生ずる処理を命令アドレスなどで特定するための分岐トレーステーブル、システムの状態を示す情報テーブル、命令実行に係るオブジェクトモジュールやデバッグ情報を関連付ける参照出力ファイル情報などとされる。
そして、前記システム評価情報93を利用して、以下の解析(トータルシステムアナライズ処理)が行なわれる。解析内容の一つは全体評価であり、実行プログラムモジュール系列(実行したモジュールのツリー)、キャッシュヒット率の解析、コール元の解析、分岐命令の発生元の解析(分岐命令のソーストレース解析)、各種バスサイクル解析(外部アクセス実行時間、リフレッシュサイクル、CPUのアイドル時間解析)、サブルーチン実行時における別のサブルーチンによるネスト状態の解析、同一アルゴリズムの実行時間解析、指定モジュールの動作タイムチャートなどである。命令実行時間系の評価としては、処理ルーチン毎のスループット、同一アルゴリズムの抽出、命令から計算した実行時間の解析、ソース記述上で関数がコールされる状態の解析、サブルーチンのネストとスタックポインタの最大使用量の解析、DMAやCPUによるバスサイクルの分布解析、指定プログラムモジュールの実行時タイムチャート、使用命令語の分布解析、コール元プログラムモジュールの分布解析、などとされる。メモリアクセス系の評価としては、メモリアクセスのタイムチャート、メモリアクセス時間の計測、アクセス対象メモリの種別と分布の解析等とされる。
ここで、前記情報を用いる解析手法の具体例を説明する。解析結果として実行プログラムモジュール系列を表示するには、ターゲットプログラムの実行結果情報90に含まれる命令アクセスアドレスを、ターゲットプログラム開発情報91に含まれるオブジェクト情報から検索して、実行したプログラムモジュールを特定すればよい。分岐命令アドレストレースは、ターゲットプログラムの実行結果情報90に含まれる分岐命令アクセスを参照すればよい。同一アルゴリズムの実行時間は、ターゲットプログラムの実行結果情報90に含まれる実行命令コードと、ターゲットプログラム開発情報91に含まれるオブジェクト情報との対応から実行された同一アルゴリズムを検出し、そのアルゴリズムに対し、ターゲットシステムの構成情報92より得られる命令実行サイクル数を考慮して、その実行時間を計算すればよい。実行命令語の分布はターゲットプログラムの実行結果情報90に含まれる命令コードの分布から取得することができる。メモリアクセスの累計時間は、ターゲットプログラムの実行結果情報90に含まれるメモリアクセスサイクルを示すステータスの発生と、ターゲットシステムの構成情報92より得られるメモリアクセスサイクルタイムとから演算することができる。キャッシュヒット率は、ターゲットプログラムの実行結果情報90に含まれるメモリアクセスサイクルを示すステータスからCPUによる全体のメモリアクセス回数を解析すると共に、メモリアクセスに際してCPUコア21の外部メモリに対するアクセス動作回数を解析し、更に、メモリアクセスアドレスがキャッシュ対象エリアであるかをターゲットシステム構成情報92を参照して解析し、それらに基づいて評価することができる。キャッシュメモリは、特に制限されないが、CPUコア21に含まれるものと理解されたい。命令実行のスループットは、着目するルーチンの実行に要するクロックサイクル数を解析することによって得られる。このとき、CPUコアがパイプライン処理を行なうなら、パイプラインストールの発生も考慮されなければならない。
解析結果(評価結果)はホストコンピュータ62のディスプレイにビジュアル表示されてよい。トレースツリーや各種解析結果をグラフで表示してよい。
ホストコンピュータ62にて前記システム評価情報を利用した上記解析を行なうことにより、システム開発者の技術能力に依存することなくシステム分析を行なうことができる。
第12図にはネットワークを介して前記トータルシステムアナライズ処理を請け負う場合の情報の流れが例示される。第12図において便宜上、前記トータルシステムアナライズ処理を要求するコンピュータ装置を端末装置100、前記トータルシステムアナライズ処理を請け負うコンピュータ装置をホスト装置101と称する。端末装置100とホスト装置101はインターネットなどのネットワーク102を介して接続可能にされる。
端末装置100はターゲットシステムの開発者が管理する装置であり、例えば前記フラッシュメモリカード67を介して前記ターゲットプログラムの実行結果情報90を入力し、また、前記ターゲットプログラムの開発情報91及びターゲットシステムの構成情報92を有する。要するに、端末装置100は第10図のホストコンピュータ62のような装置であるが、この装置100では前記トータルシステムアナライズ処理を行なわない、或い行なうことができない。そこで、ホスト装置101に対して、より専門的なシステムコンサルテーションを受けることを要求する。即ち、端末装置100は、ネットワーク102を介してホスト装置101にシステムアナライズ要求を発行し、ユーザIDと共に、ターゲットシステム情報として前記ターゲットシステムの構成情報92を、そしてターゲットシステムデバッグ動作情報として前記ターゲットプログラム実行結果情報90及びターゲットプログラム開発情報91を、ホスト装置101に与える。ホスト装置101は、前記情報90、91,92を受け取り、これに基づいてターゲットシステム及びターゲットプログラムを所要の主題について解析する。解析内容は例えば第11図で説明した内容等であってよい。解析結果は、システムアナライズ情報としてユーザ認識IDと共にホスト装置101から端末装置100に返される。このとき、解析に用いたユーザシステム情報を明らかにする目的で、そのユーザシステム情報若しくはそのバージョン情報を添付してもよい。
上記ネットワーク102を介するシステムコンサルタントビジネスによれば、専門的なシステムコンサルテーションを必要とするユーザに対して、ターゲットプログラム実行結果情報90、ターゲットプログラム開発情報91、及びターゲットシステム構成情報92をネットワーク102経由で受け取って、専門的なシステムアナリシスによるコンサルテーションを行なうことができる。例えば、そのコンサルテーションサービスを行なう主体が、前記CPUコア21を開発し若しくはその設計データであるIPモジュールデータを提供する半導体集積回路の製造メーカであるなら、コンサルテーションの依頼主は、前記半導体集積回路の製造メーカが製造する半導体集積回路を利用しようとするユーザであったりする。
第13図にはIPモジュールデータを利用してSOC・LSIを開発する処理の具体例を全体的に示す。
第13図の例では携帯型ディジタルカメラ通信端末がユーザシステム(ターゲットシステム)とされる。このユーザシステムでは、CPUコア21を中心としてCCD(Charge Coupled Device)信号処理機能、JPEG(Joint Photographic Experts Group)、コンパクトフラッシュメモリインタフェース(CFI/F)、GSM通信モジュールなどなどを搭載した携帯型ディジタルカメラ通信端末用SOC・LSI(単にカメラ通信端末用SOC・LSIとも称する)を用いるものとする。そのようなシステム開発においては、それらカメラ通信端末用SOC・LSIの開発と共に、それに実行させるプログラムを開発し、システムデバッグを行なっていかなければならない。
カメラ通信端末用SOC・LSIの開発に当たり、例えばプロセッサ部15の開発にはプロセッサコアモジュールデータ111、ハイスピードモジュールとしてのCCD信号処理モジュールデータ112を用いる。このプロセッサ部15に対応される評価用プロセッサ機能に搭載すべきEIFモジュールデータ113も用意される。それらモジュールデータは、CD−ROM(Compact Disk−Read Only Memory)、DVD−RAM(Digital Video Disk−Random Access Memory)或は磁気テープ等のコンピュータ読取り可能な記録媒体110に記録されてホストコンピュータ62aに提供される。ホストコンピュータ62aはそれらモジュールデータ111,112,113に基づいて、FPGA36にそれらプロセッサコア、CCD信号処理モジュール25、EIF80の機能を設定するデータを作成する。この論理機能設定データによって定義される回路がFPGAライタ61aを介してFPGA36に設定され、FPGA36にはエミュレーション用マイクロプロセッサ機能が比較的簡単に実現される。このとき、評価ボード60の基板68に対するFPGA36の端子配置に対して一定のルールを定めておけば、機能設定されたFPGA36を回路基板68に実装するだけで、評価ボード60を完成できる。したがって、FPGA36に設定されるプロセッサ機能やユーザロジックに拘わらず、評価ボード60をカメラ通信端末用SOC・LSIの開発プラットホームとして使用でき、その開発環境の統一が図られる。このようにして、携帯型ディジタルカメラ通信端末システム開発用途の評価ボード60が完成する。
前記カメラ通信端末用SOC・LSIに搭載すべきJPEG、CF/F、GSM通信モジュールを想定して、システムの開発段階ではそれらを実現するFPGA37の搭載ソケットを用意し、また、携帯型ディジタルカメラ通信端末のシステムで用いるユーザロジック65を開発し、それらを搭載したプロトタイプボード63を構成する。ユーザロジック65にはCCDや他のインタフェース群を接続すれば尚良い。プロトタイプボード63の実装デバイスが接続される信号線若しくはバスは、コネクタ64を介して、前記評価ボード60のFPGA36から導出されているバス26,28に接続可能である。
カメラ通信端末用SOC・LSIに搭載すべきJPEG、CF/F、GSM通信モジュールに対して機能設計が行なわれ、それら設計データに基づいてFPGA37にJPEG、CF/F、GSM通信モジュールの機能を設定するデータをホストコンピュータ62bで作成する。作成された機能設定データを用いてFPGAライタ61でFPGA37にJPEG、CF/F、GSM通信モジュールの機能が設定される。機能が設定されたFPGA37はプロトタイプボード63に実装される。実装されたFPGA37に対して単体デバッグが行なわれる。単体デバッグには、評価用コントローラ70のインサーキットエミュレーション機能を使用すればよい。このようにして、カメラ通信端末用SOC・LSIで動作するハードウェア環境が完成する。
ホストコンピュータ62bではOS、カメラ制御、ユーザインタフェース、通信制御などのプログラムモジュールを利用してユーザプログラムの開発が行なわれる。開発には、ホストコンピュータ62b上のコンパイラ、アセンブラ、リンケージエディタなどが利用される。ユーザプログラムに対しては、評価用コントローラ70によるインサーキットエミュレーション機能により、プログラムデバッグを行なうことができる。プログラムデバッグはターゲットシステムに対するハードウェア・リリース状況に合わせてビルディングブロック・デバッグ方式で進めて行くことができる。要するに、ハードウェア構成が明らかになった部分に関するプログラムを順次追加しながらデバッグを進めていく。
ソフトウェアデバッグやプロトタイプボード63の個別的なデバッグが一通り完了した後に、ユーザシステム全体を連動させたシステムデバッグを実施する。前記評価ボード60及びプロトタイプボード63は全体としてターゲットシステムの実行環境を実現しているので、製品が市場に出た場合のマンマシンインタフェースや各パーツの結合で発生するヒューマンファクタ・インタフェースの問題点などの対策について検証を行うことにより、システムとしての完成度を高めることが可能である。
メモリカード67に収集したターゲットプログラムの実行結果情報等を基に、ホストコンピュータ62c上で前記トータルシステムアナライズ処理が行なわれる。開発者はそのトータルシステムアナライズ処理結果を利用することにより、人手による分析・評価・編集作業から開放され、ターゲットシステムに対する全体的な評価若しくは解析結果に高い信頼性を得ることができるようになる。この解析では、実機でカメラ通信端末用SOC・LSIの確認作業を行っているのとほぼ等価な結果を得ることができるから、この解析結果から把握された問題点を速やかにしかも適切にカメラ通信端末用SOC・LSIの開発にフィードバックさせることができる。すなわち、開発者はその処理結果によりターゲットシステムに不都合な部分を見出したとき、それを修正するようにFPGA37,37の論理機能を変更し、変更した論理機能の下で更にシステムデバッグを続けることができる。
カメラ通信端末用SOC・LSIが完成したとき、プロトタイプボード63を総合確認システムとして使用することを考えるならば、カメラ通信端末用SOC・LSIも搭載可能なソケットをプロトタイプボード63に配置しておけば、ターゲットシステムが完成する前にカメラ通信端末用SOC・LSIの機能確認若しくは最終確認を行なうことが容易になる。
以上の説明によれば以下の作用効果を得ることができる。
〔1〕以上説明したデータ処理システムの開発方法によれば、データ処理システムに採用すべきSOC・LSI3を、プロセッサコア14及びこのプロセッサコア14に接続され比較的動作速度が高速な回路モジュールを成すハイスピードモジュール25(第1ユーザロジック)の部分と、前記プロセッサコア14に接続され比較的動作速度が低速で済む回路モジュールを成すミドルスピードモジュール27及びロースピードモジュール29(第2ユーザロジック)の部分とに切り分け、夫々の部分の機能をFPGA36(第1可変論理デバイス)とFPGA37(第2可変論理デバイス)に分けて設定し、FPGA36で実現されたプロセッサ機能を用いてターゲットプログラムを実行させ、実行結果の評価内容をFPGA36,37やターゲットプログラムにフィードバックさせることができる。したがって、SOC化を企図したデータ処理システムに対しソフトウェアとハードウェアの双方に着目してシステム開発を支援することが容易である。
FPGA36,37に対する機能設定はソフトウェア的に行なうことができ、プロトタイプのハードウェアシステムが完成する前にシステムの評価を行なうことができ、これにより、システム開発と評価を同一環境で行なうことが可能である。
プロトタイプのハードウェアシステムが完成する前であっても、比較的動作速度が高速な回路モジュールを成すハイスピードモジュール25はプロセッサ機能と一緒に同じFPGA36によって実現することができるから、ユーザロジックをCPUの高速バス20に接続したりする場合にも、実機での確認作業に近い形態でシステム評価を行なうことが可能である。
SOC・LSIの開発をソフトウェアシミュレータで行なって最終的に実機デバッグを行うという従来の開発手法を採用するものではなく、開発されるべき所要の論理機能が設定されるFPGA36,37を搭載した評価ボード60及びプロトタイプボード63でユーザプログラムを実行し、これによって収集した各種情報を基に、ソフトウェア、ハードウェアのみならずシステムトータルとしての性能をデバッグすることができ、データ処理システムの開発期間を大幅に短縮することが可能になる。
〔2〕前記評価ボード60によれば、SOC・LSI3の開発に当たり、前記評価ボード60のFPGA36はプロセッサと当該プロセッサに接続され動作速度が比較的高速な回路モジュールとの機能を担い、プロセッサに接続され動作速度が比較的低速で済む第2ユーザロジックについては、評価ボードのユーザインタフェース回路75に接続されることになるから、開発すべきデータ処理システムのハードウェア的な機能をFPGA36に設定し、このFPGA36で実現されたプロセッサ機能を用いてターゲットプログラムを実行させて、開発すべきデータ処理システムのデバッグを行なうことができる。従って、評価ボード60は上記データ処理システムの開発方法に好適である。
更に、評価ボード60の前記FPGA36は特定のシステムだけに専用化されず、また、開発すべきシステムに必要なロジックを前記FPGA36だけで賄うことができないときは前記FPGA36にユーザインタフェース回路75を介して外部のFPGA37を接続可能になっているから、種々のシステム開発に対し高い汎用性をもって利用することができる。
〔3〕ターゲットプログラムの実行結果情報90を収集するためにFPGA36にJTAGユニットのようなテストインタフェースユニット80の論理構成を設定することにより、プロセッサコア14やハイスピードモジュール25の論理機能部分等におけるバスや信号線を必要に応じて選択して評価用コントローラ70に導通させることができる。したがって、評価若しくは解析に必要な動作結果情報の収集を比較的自由に行なうことができる。特に、JTAG準拠の信号入出力機能を採用しれば、少ないテスト専用外部端子数にてターゲットプログラム動作結果情報の収集が可能になる。
〔4〕前記トータルシステムアナライズ処理によれば、ターゲットプログラムの実行結果情報90、ターゲットシステムの構成情報92、及びターゲットプログラムの開発情報91に基づいて、実行プログラムモジュール系列の表示、キャッシュヒット率、分岐命令アドレストレース、同一アルゴリズムの実行時間、命令実行のスループット、実効命令語の分布、メモリアクセスの累計時間などの、システム全体評価、命令実行時間系評価、及びメモリアクセス系評価等の解析を自動的に行なうから、システム開発者の技術能力に依存することなく高い信頼性を持ってシステム評価若しくは分析を行なうことができる。即ち、ターゲットプログラムの実行結果情報90、ターゲットプログラムの開発情報92及びターゲットシステムの構成情報91に基を利用するから、ソフトウェアとハードウェアを含めたシステム全体としてシステム評価若しくは解析を行なうことが可能になる。そして、その解析には少なくとも、実行プログラムモジュール系列、分岐命令アドレストレース、命令実行のスループット、及び実行命令語の分布を解析結果として得るものであり、この解析結果は、ターゲットプログラムがどのような構造でどのようにハードウェアを使用しているかについて示すことになる。これにより、システム開発者の技術能力に依存することなく高い信頼性を持ってシステム評価若しくは分析を行なうことができる。
上記ネットワーク102を介するシステムコンサルタントビジネスによれば、専門的なシステムコンサルテーションを必要とするユーザに対して、ターゲットプログラム実行結果情報90、ターゲットプログラム開発情報91、及びターゲットシステム構成情報92をネットワーク102経由で受け取って、専門的なシステムアナリシスによるコンサルテーションを行なうことができる。例えば、前記半導体集積回路の製造メーカが製造する半導体集積回路を利用しようとするユーザ自らでは専門的なシステム評価を行なうことができないような場合に、前記CPUコア21を開発し若しくはその設計データであるIPモジュールデータを提供する半導体集積回路の製造メーカが、前記コンサルテーションのサービス提供主体となっていれば、半導体集積回路の製造メーカはそのユーザに対して更なる利便性を容易に提供することが可能になる。
このように、開発システムに関する専門的なシステムアナリシスを提供サービスとして与えることにより、SOC・LSI等に対してもそのシステム開発の容易化や、システム開発期間の短縮に寄与することができる。
〔5〕前記FPGA36のような可変論理デバイスで構成される評価用マイクロプロセッサによれば、プロセッサコア14の機能回路部分が結合するCPUバス20にハイスピードモジュール25のような第1ユーザロジックの機能回路部分を接続し、それらを外部の評価用コントローラ等に接続する評価用インタフェースとしてのテストインタフェースユニット80の機能と、CPUバス20をターゲットシステムへ接続可能にするユーザインタフェース23,24の機能とを有するから、ユーザロジックをCPUの高速バス(CPUバス)20に接続したりするという、SOC・LSI固有の事情を考慮して、実LSI若しくは実機での確認作業に近い形態でシステム評価やデバッグを行なうことが可能になる。
そのような評価用マクロプロセッサの機能をFPGA36のような可変論理デバイスに設定するための機能記述データがSD−ROMやDVD−RAM等の記録媒体に記録されて半導体集積回路のユーザに提供されることにより、FPGA36に前記評価用マクロプロセッサの機能を容易に実現可能になり、データ処理システムの評価、更にはデータ処理システムの開発を容易化し、システム開発期間短縮にも寄与することができる。
以上本発明者によって成された発明を実施例に基づいて具体的に説明したが、本発明はそれに限定されず適宜変更可能である。
例えば、SOC・LSIの完成後、当該SOC・LSIを評価ボードに搭載して最終確認を行なってよい。その場合に、SOC・LSIのピン(外部端子)配置とFPGAのピン配置の相違を、ピギーソケットのようなピン変換コネクタを利用して吸収すればよい。また、評価ボードとプロトタイプボードは分割せずに単一回路基板上に一体化して構成してよい。これにより、評価ボードとプロトタイプボードの接続不良などの外部不良要因を排除できる。このとき、プロトタイプ部分を切り離し可能にしておけば、切り離した部分を即座にデモンストレーションシステムに流用することができる。
また、可変論理デバイスはFPGAと称されるデバイスに限定されず、CPLD(Complex Programmable Logic Device)と称されるデバイスで当てもよく、広義にはPLD(Programmable Logic Device)と称されるデバイスの範疇に入るデバイスであればよい。
また、記録媒体はCD−ROM、DVD−RAMに限定されず、FD(Floppy Disk)、CD−R(Compact Disk−Recordable)、CR−RW(Compact Disk−Rewritable)、DVD−ROM(Digital Video Disk−Read Only Memory)等、コンピュータ読み取り可能なその他の記録媒体であってよい。
産業上の利用可能性
本発明は、CPUとその他の機能ブロック及びミドルウェア等を統合したSOC形態のマイクロプロセッサ応用システム、例えば携帯電話機や携帯情報端末等の開発に広く適用することができる。
【図面の簡単な説明】
第1図はデータ処理システムをハードウェアとソフトウェアの両面から例示した説明図である。
第2図はSOC・LSIの具体例を示すブロック図である。
第3図はSOC・LSIを利用するデータ処理システムの開発方法を概略的に例示する説明図である。
第4図はFPGAの一例を示すブロック図である。
第5図はユーザプログラムの開発環境の概略を示す説明図である。
第6図はSOC・LSIを利用するデータ処理システムの開発方法を更に詳細に例示する説明図である。
第7図はエミュレーション用マイクロプロセッサ機能が設定されたFPGAの詳細な機能ブロックが評価ボード及びプロトタイプボードと共に例示されたブロック図である。
第8図はテストインタフェースユニットの一例を示すブロック図である。
第9図はAUDの一例を示すブロック図である。
第10図は分析・評価処理におけるデバッグ情報の流れを示す説明図である。
第11図は分析・評価処理で用いる情報を例示する説明図である。
第12図はネットワークを介して分析・評価処理を請け負う場合の情報の流れを例示するシステム図である。
第13図は記録媒体に記録されたモジュールデータを利用してSOC・LSIを開発する処理の具体例を全体的に示す説明図である。

Claims (18)

  1. 多数の記憶セルにロードされる論理構成定義データに応じて論理機能がプログラマブルに決定される第1可変論理デバイスに第1ユーザロジック及び評価用プロセッサ機能を実現する第1処理と、
    多数の記憶セルにロードされる論理構成定義データに応じて論理機能がプログラマブルに決定される第2可変論理デバイスに第2ユーザロジックを実現してターゲットボードを構成する第2処理と、
    前記第1可変論理デバイス及び第2可変論理デバイスを評価支援システムに接続して、前記第1可変論理デバイスにターゲットプログラムを実行させ、実行結果に基づいて前記ターゲットボード及びターゲットプログラムを評価する第3処理と、
    前記評価結果に基づいて、前記第1可変論理デバイス、前記第2可変論理デバイス、ターゲットボード又は前記ターゲットプログラムに必要な修正を加える第4処理と、を含むことを特徴とするデータ処理システムの開発方法。
  2. 前記第3処理において、前記第1可変論理デバイスが実装される評価ボードとホストシステムを前記評価支援システムとして用い、
    前記評価ボードは、実装された前記第1可変論理デバイスに接続される評価用コントローラ及びメモリと、前記評価用コントローラ及びメモリに接続される評価用インタフェース回路と、実装された前記第1可変論理デバイスに接続されるユーザインタフェース回路とを有し、
    前記ユーザインタフェース回路に前記ターゲットボードの第2可変論理デバイスが接続され、前記評価用インタフェース回路に前記ホストシステムが接続される、ことを特徴とする請求の範囲第1項記載のデータ処理システムの開発方法。
  3. 前記第1処理は、論理構成定義データに基づいて、CPUバス及びこれに接続されるCPUを含むプロセッサコアと、前記CPUバスに接続される第1ユーザロジックと、前記プロセッサコア及び第1ユーザロジックに接続可能にされ且つ前記評価用コントローラにインタフェースされるテストインタフェースユニットとを第1可変論理デバイスに形成することを特徴とする請求の範囲第2項記載のデータ処理システムの開発方法。
  4. 前記第1処理において、前記プロセッサコアに、CPUバスに接続されるバスステートコントローラを含め、前記バスステートコントローラを前記ユーザインタフェース回路に接続することを特徴とする請求の範囲第3項記載のデータ処理システムの開発方法。
  5. 前記第1処理において、前記プロセッサコアに、CPUバスに接続される周辺バスを更に含め、前記周辺バスを前記ユーザインタフェース回路に接続することを特徴とする請求の範囲第4項記載のデータ処理システムの開発方法。
  6. 前記第1処理において、前記テストインタフェースユニットには、クロック端子、モード端子、データ入力端子、及びデータ出力端子を外部端子として設定し、前記データ入力端子から与えられるコマンドに基づいて前記データ入力端子及びデータ出力端子の接続先を決定し、前記モード端子の状態に応じて、前記データ入力端子に供給される情報を取り込み、取り込んだ情報を前記決定された接続先に送り出し、また、前記決定された接続先からの情報を取り込んで、前記データ出力端子から外部に出力する機能を設定することを特徴とする請求の範囲第3項記載のデータ処理システムの開発方法。
  7. 前記テストインタフェースユニットはIEEE1149.1の規格に準拠した手順で信号入出力を行なうものであることを特徴とする請求の範囲第6項記載のデータ処理システムの開発方法。
  8. 前記評価用コントローラは、トレース制御、ブレークポイント制御、ユーザプログラムの実行制御、ホストインタフェース制御の各機能を有して成るものであることを特徴とする請求の範囲第2項記載のデータ処理システムの開発方法。
  9. 回路基板に、評価用コントローラ、前記評価用コントローラに接続される可変論理デバイス、前記可変論理デバイスに接続されるメモリ、前記可変論理デバイスに接続されるユーザインタフェース回路、及び前記評価用コントローラに接続される評価用インタフェース回路が実装され、前記可変論理デバイスは、多数の記憶セルにロードされる論理構成定義データに応じて論理機能がプログラマブルに決定されて評価用マイクロプロセッサ機能及び第1ユーザロジックが実現される半導体デバイスであることを特徴とする評価ボード。
  10. 前記可変論理デバイスは、論理構成定義データに基づいて、CPUバス及びこれに接続されるCPUを含むプロセッサコアと、前記CPUバスに接続される第1ユーザロジックと、前記プロセッサコア及び第1ユーザロジックに接続可能にされ且つ前記評価用コントローラにインタフェースされるテストインタフェースユニットが形成されるものであることを特徴とする請求の範囲第9項記載の評価ボード。
  11. 前記プロセッサコアは、CPUバスに接続されるバスステートコントローラを含み、前記バスステートコントローラは前記ユーザインタフェース回路に接続する請求の範囲第10項記載の評価ボード。
  12. 前記プロセッサコアはCPUバスに接続される周辺バスブリッジ回路を更に含み、前記周辺バスブリッジ回路は前記ユーザインタフェース回路に接続する請求の範囲第11項記載の評価ボード。
  13. 前記ユーザインタフェース回路にターゲットボードが接続され、前記ターゲットボードは、多数の記憶セルにロードされる論理構成定義データに応じて論理機能がプログラマブルに決定されて第2ユーザロジックを実現する可変論理デバイスを有するものであることを特徴とする請求の範囲第12項記載の評価ボード。
  14. 前記テストインタフェースユニットは、クロック端子、モード端子、データ入力端子、及びデータ出力端子を外部端子として有し、前記データ入力端子から与えられるコマンドに基づいて前記データ入力端子及びデータ出力端子の接続先を決定し、前記モード端子の状態に応じて、前記データ入力端子に供給される情報を取り込み、取り込んだ情報を前記決定された接続先に送り出し、また、前記決定された接続先からの情報を取り込んで、前記データ出力端子から外部に出力するものであることを特徴とする請求の範囲第10項記載の評価ボード。
  15. 前記テストインタフェースユニットはIEEE1149.1の規格に準拠した手順で信号入出力を行なうものであることを特徴とする請求の範囲第14項記載の評価ボード。
  16. 前記評価用コントローラは、トレース制御、ブレークポイント制御、ユーザプログラムの実行制御、ホストインタフェース制御の各機能を有して成るものであることを特徴とする請求の範囲第10項記載の評価ボード。
  17. 前記評価用インタフェース回路として、ホストコンピュータに接続可能なホストインタフェース回路を有するものであることを特徴とする請求の範囲第9項記載の評価ボード。
  18. 前記評価用インタフェース回路として、ファイルメモリカードを接続可能なファイルメモリインタフェース回路を有するものであることを特徴とする請求の範囲第9項記載の評価ボード。
JP2002563350A 2001-02-02 2001-02-02 データ処理システムの開発方法及び評価ボード Withdrawn JPWO2002063473A1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2001/000754 WO2002063473A1 (fr) 2001-02-02 2001-02-02 Procede de developpement d'un systeme de traitement de donnees et tableau d'evaluation

Publications (1)

Publication Number Publication Date
JPWO2002063473A1 true JPWO2002063473A1 (ja) 2004-06-10

Family

ID=11736986

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002563350A Withdrawn JPWO2002063473A1 (ja) 2001-02-02 2001-02-02 データ処理システムの開発方法及び評価ボード

Country Status (3)

Country Link
JP (1) JPWO2002063473A1 (ja)
TW (1) TW515964B (ja)
WO (1) WO2002063473A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4264422B2 (ja) 2005-03-16 2009-05-20 富士通株式会社 負荷制御機能付き速度変換装置
JP5975811B2 (ja) 2012-09-12 2016-08-23 レノボ・エンタープライズ・ソリューションズ(シンガポール)プライベート・リミテッド 計測した信号トレースデータのインテグリティ・チェック
CN109100579B (zh) * 2018-11-07 2024-01-05 国网河南省电力公司郑州供电公司 一种三相不平衡监测装置的高速数据采集系统及方法
CN111752798B (zh) * 2020-06-23 2022-12-27 深圳市得一微电子有限责任公司 一种固态存储设备空闲时稳定性分析数据收集方法
CN112100954B (zh) * 2020-08-31 2024-07-09 北京百度网讯科技有限公司 验证芯片的方法、装置和计算机存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6293736A (ja) * 1985-10-19 1987-04-30 Ricoh Co Ltd 開発用半導体装置の製造方法
JPH01162971A (ja) * 1987-09-09 1989-06-27 Hitachi Ltd シングルチップマイクロコンピュータ
JPH0836504A (ja) * 1994-07-26 1996-02-06 Hitachi Ltd エミュレータ
JPH10320230A (ja) * 1997-05-21 1998-12-04 Fujitsu Ltd エミュレータ
US6314550B1 (en) * 1997-06-10 2001-11-06 Altera Corporation Cascaded programming with multiple-purpose pins

Also Published As

Publication number Publication date
WO2002063473A1 (fr) 2002-08-15
TW515964B (en) 2003-01-01

Similar Documents

Publication Publication Date Title
US6961872B2 (en) Microcomputer and debugging system
US7069526B2 (en) Hardware debugging in a hardware description language
US7356786B2 (en) Method and user interface for debugging an electronic system
US6931572B1 (en) Design instrumentation circuitry
US7072818B1 (en) Method and system for debugging an electronic system
US7065481B2 (en) Method and system for debugging an electronic system using instrumentation circuitry and a logic analyzer
US6823497B2 (en) Method and user interface for debugging an electronic system
US7836416B2 (en) Hardware-based HDL code coverage and design analysis
US7240303B1 (en) Hardware/software co-debugging in a hardware description language
US8997034B2 (en) Emulation-based functional qualification
US7478346B2 (en) Debugging system for gate level IC designs
JP2002526908A (ja) ブロックをベースとする設計方法
JP2007172599A (ja) プログラム実行を追跡する方法及びシステム
CN116663462B (zh) 断言验证方法、断言验证平台、电子设备及可读存储介质
Gizopoulos et al. Embedded processor-based self-test
JPWO2002063473A1 (ja) データ処理システムの開発方法及び評価ボード
JP4213306B2 (ja) 半導体試験用プログラムデバッグ装置
JP2002229814A (ja) デバッグ方法及び情報処理システム
JP2002229813A (ja) マイクロプロセッサ及びコンピュータ読み取り可能な記録媒体
Grosso et al. A software-based self-test methodology for system peripherals
Minhas et al. Coverage-Driven and Constrained-Randomized Sub-System Level Verification Methodology for RISC-V Based SoCs
Shen et al. A Universal-Verification-Methodology-Based Verification Strategy for High-Level Synthesis Design
Bertetto Extending instruction trace data flow analysis of functional test programs for multicore systems
Velguenkar The Design of a Debugger Unit for a RISC Processor Core
Jain et al. Methodological framework for automation of hardware software co-validation of an IP

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20080513