JPWO2002063473A1 - Data processing system development method and evaluation board - Google Patents

Data processing system development method and evaluation board 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
Japanese (ja)
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/en
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化されるデータ処理システムの開発をソフトウェアとハードウェアの双方に着目して支援することが容易になる。A method of developing a data processing system includes the steps of: connecting an SOC / LSI (3) to be employed in the data processing system to a processor and a first user logic portion connected to the processor to form a circuit module having a relatively high operating speed; It is divided into a second user logic part which is connected to the processor and forms a circuit module which requires a relatively low operation speed, and the function of each part is assigned to the first variable logic device (36) and the second variable logic device (37). The target program is executed separately by using the processor function realized by the first variable logic device, and the evaluation result of the execution result is fed back to the variable logic device and the target program. The function setting for the variable logic device can be performed by software, the system can be evaluated before the actual device is completed, and the system development and the evaluation can be performed in the same environment. It becomes easy to support the development of a data processing system to be converted to SOC, focusing on both software and hardware.

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を開発する処理の具体例を全体的に示す説明図である。
Technical field
The present invention relates to a method for developing a data processing system to be a system-on-a-chip (SOC: System On a Chip), and an evaluation board used for supporting system debugging or program debugging during the development. The present invention relates to a technology which is effective when applied to the development of a large-scale integrated circuit (LSI) for a terminal.
Background art
2. Description of the Related Art A semiconductor integrated circuit has a complicated design due to high integration and high functionality, and it takes a long time to complete an LSI applied to the system after a user of the LSI plans to develop an application system. It is customary. In terms of shortening the development period, it is useful to realize a required logic function using an FPGA (Field Programmable Gate Array) and evaluate a target system to be developed using the logic function. For example, logic function definition data (connection definition data) is loaded into a large number of storage cells of an FPGA to realize and operate a desired logic function such as compression or a communication protocol, and the target system is evaluated based on the operation result. Can be performed. This makes it possible to find and remove bugs in logic functions at an early stage when an LSI is prototyped.
As a logic verification technique using the FPGA, one in which a verification board as an emulation processor is configured by an FPGA in which user logic is programmed and a CPU core (Japanese Patent Laid-Open No. 8-16425). One that replaces a chip and combines it with its LSI for use in verification (Japanese Patent Laid-Open No. 2000-49287), one that expands a designed circuit into a program element such as an FPGA and performs emulation (Japanese Patent Laid-Open No. No. 11-265299).
However, in the case of SOC, user logic may be connected to a high-speed bus of a CPU as compared with a multi-chip system configuration. If this is replaced with a multi-chip system, user logic can be stored inside and outside the processor. In the conventional emulation method in which a user board (target system) is connected to an emulator, it is difficult to debug a system that meets such a demand. Japanese Patent Application Laid-Open No. 11-265299 does not consider this. In short, the conventional verification technology using the FPGA focuses solely on system development using a multi-chip, in which a target system or user logic is connected to an in-circuit emulator for debugging. Assuming the development of an LSI by SOC, the inventor has clarified the usefulness of being able to support system development as a total system including software and hardware. Specifically, (1) it is desirable to realize a unified development method for SOC LSI development, and (2) by performing system-wide debugging including software to obtain a bus occupancy rate, a cache memory hit rate, It is desirable to optimize the memory allocation and to easily obtain the evaluation results of the software algorithm. (3) To improve the reliability of the evaluation, the system evaluation should be performed in a form close to the confirmation operation on the actual machine. (4) In order to shorten the development period and detect problems of human factors such as man-machine interface at an upstream stage of system development, it is advantageous to be able to perform system development and system evaluation in the same environment. That has been found by the present inventors.
An object of the present invention is to provide a method for developing a data processing system capable of supporting system development for a data processing system to be made into an SOC as a total system including software and hardware.
Another object of the present invention is to provide a method for developing a data processing system in which system development and evaluation can be easily performed in the same environment.
Still another object of the present invention is to provide an evaluation board that enables system evaluation in a form close to a confirmation operation on an actual device even when user logic is connected to a high-speed bus of a CPU.
The above and other objects and novel features of the present invention will become apparent from the following description of the present specification and the accompanying drawings.
Disclosure of the invention
《Development method of data processing system》
A data processing system development method according to the present invention focuses on the overall function of a data processing system to be SOCized, particularly the function of an LSI to be SOCized, and loads logical configuration definition data loaded into a large number of storage cells. A first process for realizing a first user logic and an evaluation processor function in a first variable logic device whose logic function is programmably determined in accordance with the logic function, and a logic in accordance with logic configuration data loaded in a large number of storage cells A second process for implementing a second user logic on a second variable logic device whose function is determined programmably and configuring a target board; and connecting the first variable logic device and the second variable logic device to an evaluation support system. And causing the first variable logic device to execute a target program, and executing the target board based on the execution result. And a third process of evaluating the first variable logic device, the second variable logic device, the target board, or the target program based on the evaluation result. Including. The user logic for the first and second variable logic devices includes not only the logic for the user prepared by the user himself, but also the so-called IP provided by the semiconductor integrated circuit maker or other sources to satisfy the user's desire. Logic based on (Intellectual Property) module data is also targeted.
As described above, the SOC LSI to be adopted in the data processing system can be connected to the processor, the first user logic which is connected to the processor to form a circuit module having a relatively high operating speed, and connected to the processor, and has a relatively low operating speed. The function is divided into a second user logic which forms a circuit module, and the functions of the processor and the first user logic are set in a first variable logic device, and the functions of the second user logic are set in a second variable logic device. The target program is executed using the realized processor function, and the evaluation result of the execution result can be fed back to the first and second variable logic devices and the target program. Therefore, it is easy to focus on both software and hardware for a data processing system intended for SOC and to support system development.
The function setting for the first and second variable logic devices can be performed by software, and the system can be evaluated before a hardware system such as an actual machine is completed, so that system development and evaluation can be performed. It can be performed in the same environment.
Even before a hardware system such as an actual machine is completed, the first user logic which forms a circuit module having a relatively high operation speed is realized by the same variable logic device together with the processor function. Also, when the user logic is connected to the high-speed bus of the CPU, the system evaluation can be performed in a form similar to the confirmation operation in the actual machine.
As a specific aspect of the data processing system development method according to the present invention, in the third processing, an evaluation board on which the first variable logic device is mounted and a host system may be used as the evaluation support system. The evaluation board includes an evaluation controller and a memory connected to the mounted first variable logic device, an evaluation interface circuit connected to the evaluation controller and the memory, and the mounted first variable logic device. Connected to the user interface circuit. The second variable logic device of the target board may be connected to the user interface circuit, and the host system may be connected to the evaluation interface circuit.
At this time, in the first processing, based on logical configuration definition data, a processor core including a CPU bus and a CPU connected thereto, a first user logic connected to the CPU bus, A test interface unit connectable to one user logic and interfaced with the evaluation controller is formed in the first variable logic device.
In the first processing, the processor core may include a bus state controller connected to a CPU bus, and the bus state controller may be connected to the user interface circuit via a first bus (system bus).
In the first processing, the processor core further includes a peripheral bus bridge circuit connected to a CPU bus, and the peripheral bus bridge circuit is connected to the user interface circuit via a second bus (peripheral bus). You may do so.
The test interface unit, which is means for obtaining a result of executing the target program by the first variable logic device, includes, for example, a clock terminal, a mode terminal, and a data input terminal as external terminals interfaced with the evaluation controller. And setting a data output terminal, determining a connection destination of the data input terminal and the data output terminal based on a command given from the data input terminal, and supplying the data input terminal according to a state of the mode terminal. Fetched information, send out the fetched information to the determined connection destination, and fetch the information from the determined connection destination, so as to set a function to output from the data output terminal to the outside. Good. By employing this test interface unit, it is possible to select a bus or a signal line in the processor core or the logic function part of the first user logic as required, and to conduct externally for debug monitoring. Therefore, it is possible to relatively freely collect the operation result information of the evaluation microprocessor required for the evaluation or the analysis. This test interface unit is a circuit that uses a boundary scan function based on, for example, JTAG (Joint Test Action Group IEEE standard 1149.1), and performs signal input / output according to a procedure compliant with the IEEE 1149.1 standard. In particular, if a signal input / output function conforming to the IEEE1149.1 standard is adopted, debug monitor information can be collected with a small number of test-dedicated external terminals.
The evaluation controller has functions of a trace control, a breakpoint control, a user program execution control, and a host interface control, thereby realizing a function of an in-circuit emulator, and a target program stored in the first variable logic device. May be executed, and control for acquiring the execution result may be performed.
"Evaluation Board"
An evaluation board according to the present invention includes, on a circuit board, an evaluation controller, a variable logic device connected to the evaluation controller, a memory connected to the variable logic device, a user interface circuit connected to the variable logic device, And an evaluation interface circuit connected to the evaluation controller, wherein the variable logic device has an evaluation microprocessor whose logic function is programmably determined in accordance with logic configuration data loaded into a large number of storage cells. This is a semiconductor device that realizes a function and a first user logic.
In developing a data processing system aiming at SOC, the variable logic device of the evaluation board has a function of a processor and a circuit module connected to the processor and having a relatively high operation speed, and is connected to the processor and has a relatively high operation speed. The second user logic that requires only a low speed is connected to the user interface circuit of the evaluation board. It is possible to set the hardware functions of the data processing system to be developed in a variable logic device and execute the target program using the processor function realized by this variable logic device to debug the system to be developed. it can. This evaluation board is suitable for the development method of the data processing system.
The variable logic device of the evaluation board is not dedicated to a specific system, and if the logic required for the system to be developed cannot be covered only by the variable logic device, a user interface circuit is provided for the variable logic device. Since an external second variable logic device can be connected via this, it can be used with high versatility for various system development.
The variable logic device includes a CPU bus and a processor core including a CPU connected thereto, a first user logic connected to the CPU bus, a processor core and a first user based on logical configuration data. A test interface unit connectable to logic and interfaced to the evaluation controller may be formed.
When the processor core includes a bus state controller connected to a CPU bus, the bus state controller may be connected to the user interface circuit. When the processor core further includes a peripheral bus connected to a CPU bus, the peripheral bus may be connected to the user interface circuit.
For example, a target board may be connected to the user interface circuit, and the target board may be provided with the second variable logic device for realizing a second user logic.
The test interface unit may be constituted by a circuit such as a JTAG unit. The evaluation controller has the functions of trace control, breakpoint control, user program execution control, and host interface control, and can advantageously achieve the same functions as an in-circuit emulator. The evaluation interface circuit may include a host interface circuit connectable to a host computer. A file memory interface circuit to which a file memory card can be connected may be provided as the evaluation interface circuit. Since the storage capacity of the bus information that can be accumulated by the trace control is generally small, it is useful to compensate for this.
BEST MODE FOR CARRYING OUT THE INVENTION
FIG. 1 shows the data processing system in terms of both hardware and software. The hardware of a data processing system (referred to as a user system or a target system) 1 to be designed or developed by a user of the LSI is configured by mounting LSIs 3 to 7 on a predetermined wiring board 2. A program for causing specific LSIs 3 and 4 to execute a task is not particularly limited, but is configured by an operating system (OS) 10 and programs such as middleware 11, application programs 12, and device drivers 13 managed by the OS 10. You. The programs are stored in the storage areas of the LSIs 3 and 4.
One LSI 3 is an SOC LSI, has a larger logical configuration than other LSIs, and also incorporates user logic unique to the user system. When the LSI 3 is configured by a multi-chip, the user logic will be realized as another single LSI by a method such as a gate array or an ASIC.
FIG. 2 shows a specific example of the SOC LSI 3. Although not particularly limited, the SOC / LSI 3 has a processor core 14 as a functional block commonly used in various families of processors or microcomputers developed by a semiconductor integrated circuit maker. Although not particularly limited, an SRAM 22 selected by a user and a high-speed module 25 as a first user logic are connected to the processor core 14 to form a processor unit 15. The processor section 15 can be positioned as a user-specified macro processor or microcomputer that partially meets the user's required specifications. Outside the processor unit 15, a nonvolatile memory selected by a user and a middle speed module 27 and a low speed module 29 as second user logic are connected. The SOC / LSI 3 is formed on a semiconductor chip such as single crystal silicon by a semiconductor integrated circuit manufacturing technique such as CMOS.
The high-speed module 25, the middle-speed module 27, and the low-speed module 29 are formed based on design data (such as mask pattern data and logical description data) provided as so-called IP modules.
Although not particularly limited, the processor cores 14 share a CPU bus 20, a CPU core 21, a static random access memory (SRAM) 22, a peripheral bus bridge circuit (PPB) 23, and a bus state controller (BSC). 24, and further includes a user debug circuit (AUD) 31. The high-speed module 25 and the SRAM 22 are directly connected to the CPU bus 20. The middle speed module 27 is connected to the peripheral bus bridge circuit (PPB) 23 via a peripheral bus (second bus) 26. A low-speed module 29 and a nonvolatile memory 30 are connected to the bus state controller 24 via a system bus (first bus) 28. The bus state controller 24 controls input / output operations according to differences in signal amplitude, parallel signal bit number, information transfer speed, and the like on the CPU bus 20 and the system bus 28. Similarly, the peripheral bus bridge circuit 23 controls input / output operations according to differences in signal amplitude, parallel signal bit number, information transfer speed, and the like on the CPU bus 20 and the peripheral bus 26.
The CPU core 21 includes, but is not limited to, a CPU 32 and a DSP 33, and an operation program thereof is held in, for example, the nonvolatile memory 30. Although not particularly shown, a cache memory may be built in the CPU core 21. The SRAM 22 is used as, for example, a data memory of the DSP 33. The nonvolatile memory 30 is, for example, an electrically rewritable flash memory or the like, and a data table such as tuning data or control data may be formed. The user debug circuit (AUD) 31 provides an internal reference function for performing debugging in an on-board state, for example, making it possible to externally refer to the state of the peripheral bus 26 using a JTAG interface.
The high-speed module 25 realizes a high-speed operation circuit such as an accelerator that performs a predetermined operation process instead of the CPU 32. The middle speed module 27 realizes peripheral functions such as a serial interface controller. The low-speed module 29 implements low-speed peripheral functions such as a key input interface controller. Outside the SOC LSI 3, another semiconductor device typified by a synchronous dynamic random access memory (SDRAM) 34 is connected via a system bus 28. The SDRAM 34 is an example of the LSIs 4 to 7.
FIG. 3 schematically illustrates a method of developing a data processing system using the SOC LSI 3. In the design and development (S1) of the SOC / LSI 3, the functional design, logic design, circuit design, and device design of the SOC / LSI 3 are performed, and the LSI is prototyped and finally commercialized. At the same time, a user program such as an application program or middleware for executing a required software function on the SOC / LSI 3 is developed (S2).
The manufactured SOC / LSI 3 is mounted on a system such as a digital camera or a communication device, and executes a developed user program to realize required functions.
In the design and development, functions to be mounted on the SOC / LSI 3 are realized in the FPGAs 36 and 37 as variable logic devices before the prototype LSI or the evaluation LSI is manufactured. For example, according to the example of FIG. 2, a function corresponding to the processor unit 15 is set in the FPGA 36, and a function corresponding to the middle speed module 27 and the low speed module 29 is set in the FPGA 37. Then, the FPGAs 36 and 37 are operated by the developing user program on the target system to be developed, and verification / test such as system debugging and software debugging is performed (S3). The debugging result is fed back to the design development process S1 and the program development process S2.
FIG. 4 shows an example of the FPGAs 36 and 37. According to the figure, the FPGAs 36 and 37 include a number of variable logic units 40, variable connection units 41, variable external input / output circuits 42A to 42D arranged in a matrix, a plurality of signal wirings 43 extending in the row direction, and columns. It comprises a plurality of signal wirings 44 extending in the direction, a program control circuit 45 and the like.
Each of the variable logic unit 40, the variable connection unit 41, and the variable external input / output circuits 42A to 42D includes a plurality of variable switch cells for selecting a signal path, a connection path of the signal path to the signal lines 43, 44, etc. And a data latch circuit. The logic function of the variable logic cell, the connection between the variable logic cell and the signal path by the variable switch cell, and the connection between the signal paths by the variable switch cell are defined by the logic configuration definition data (logic Function definition data). The supply of the logical configuration definition data to each data latch circuit is controlled by the program control circuit 45.
The data latch circuit is constituted by a static latch or a non-volatile memory cell, and the logic configuration definition of the FPGAs 36 and 37 is determined by initializing the logic configuration definition data in all the data latch circuits. The operation according to the logical configuration is performed. By changing the logical configuration definition data, the logical functions of the FPGAs 36 and 37 can be changed.
FIG. 5 shows an outline of a user program development environment. A user of the development environment creates a program in C language or assembly language using various editors or the like. This is usually created by dividing into a plurality of modules. The C compiler 50 inputs each C language source program created by the user and outputs an assembly language source program or an object module. The assembler 51 inputs an assembly language source program and outputs an object module. The linkage editor 52 inputs a plurality of object modules generated by the C compiler 50 and the assembler 51, resolves external references and relative addresses of each module, combines them into one program, and loads the load module. Output. The load module is supplied to an evaluation board 60 described later having the FPGA 36, and operates the FPGAs 36 and 37 on a target system to be developed, such as in-circuit emulation, to verify system debug and software debug or the like. Tested. The load module is input to the simulator debugger 53, for example, and simulates the operation of the CPU on a system development device such as a personal computer, displays the execution result, and analyzes and evaluates the program. .
FIG. 6 illustrates the details of a method for developing a data processing system using the SOC / LSI3. The FPGA development processing GS1 is to realize the first user logic and the evaluation processor function on the FPGA 36 and realize the second user logic on the FPGA 37, although not particularly limited. Explaining in detail with reference to the SOC / LSI 3 of FIG. 2, the first user logic is a data processing function assigned to the high-speed module 25 typically shown in FIG. The evaluation processor function is a function of the processor core 14 and the SRAM 22 shown in FIG. In short, the FPGA 36 implements an emulation microprocessor function for a microprocessor having the function of the processor unit 15. This emulation microprocessor function will be described later in detail.
The logic function definition data for determining the logic functions of the FPGAs 36 and 37 is supplied from the FPGA writer 61 to the FPGAs 36 and 37. The logic design data of the SOC / LSI3 is logically described in a format called, for example, RTL (Register Transfer Level) or HDL (Hardware Description Language), and the host computer 62 writes the description data of the circuit corresponding to the logical design data. The description data is converted into a predetermined data format and given to the FPGA writer 61. The FPGA writer 61 decodes such logic description data and generates logic function definition data necessary for setting logic functions in the FPGAs 36 and 37. The host computer 62 includes the development environment described with reference to FIG. 5 for convenience, and has a load module generated for the SOC / LSI 3.
The prototype board development process GS2 is a process of configuring a prototype board 63 as a target board necessary for configuring a digital camera or the like by mounting the SOC / LSI3. The difference from the actual machine is that the SOC / LSI3 is mounted. Instead, the FPGA 37 is mounted, a connector 64 for connecting to the FPGA 36 is provided, and the other user logic 65 may be the same as the actual device.
The target program execution process GS3 connects the prototype board 63 on which the FPGA 37 is mounted to the evaluation board 60 on which the FPGA 36 is mounted, downloads a load module as a target program from the host computer 62 to the evaluation board 60, and loads this load module. This is a process of causing the FPGA 36 to execute and collecting the execution result in the flash memory card 67.
The evaluation board 60 includes, on a circuit board 68, an FPGA 36, an evaluation controller 70 and a memory (SDRAM) 71 connected to the FPGA 36, evaluation interface circuits 73 and 74 connected to the evaluation controller 70, A user interface circuit 75 connected to the FPGA 36.
The connector 64 of the target board 63 is connected to the user interface circuit 75. The host system 62 is connected to the evaluation interface circuit 73, and the flash memory card 67 is detachably attached to the evaluation interface circuit 74.
The analysis / evaluation / edit processing GS4 analyzes the target system and the target program for a required subject based on the target program execution result collected in the flash memory card 67, configuration information of the target system, and development information of the target program. This is the process of acquiring the result. This analysis / evaluation / editing process GS4 may be performed using the host system 62 or the like. If a bug is found in the program by analysis or a bug is found in the system configuration, necessary modifications are made to the FPGA 36, FPGA 37, other user logic 65, or the target program according to the content.
FIG. 7 illustrates details of the FPGA 36 in which the microprocessor function for emulation is set, together with the evaluation board 60 and the prototype board 63. The FPGA 36 in which the emulation microprocessor function is set has the functions of the processor unit 15 shown in FIG. 2, that is, the functions of the processor core 14 including the CPU core 21, the PPB 23, the BSC 24, and the AUD 31, the functions of the SRAM 22, the high-speed The functions of the module 25 are realized, and in addition, the functions of a test interface unit (EIF) 80 which can be connected to the processor core 14 and the high-speed module 25 and are interfaced with the evaluation controller 70 are set.
A system bus 28 connected to the bus state controller 24 and a peripheral bus 26 connected to the PPB 23 are connected to a prototype board 63 via a user interface circuit 75.
When the evaluation board 60 and the prototype board 63 in FIG. 7 are connected, the functions of the SOC / LSI 3 in FIG. 2 are the functions of the FPGA 36, the middle speed module 27, and the low speed module 29 in which the microprocessor function for emulation is set. The FPGA 37 in which functions are set and the non-volatile memory 30 provided in the user logic 65 can be replaced.
The evaluation controller 70 has trace control, breakpoint control, user program execution control, and host interface control functions, which are functions of the in-circuit emulator, and is provided for the FPGA 36, the SDRAM 71, and the evaluation interface circuits 73 and 74. Connected. Although not particularly limited, the evaluation controller 70 is connected to the CPU bus 20 and the test interface unit 80 implemented in the FPGA 36. The connection between the evaluation controller 70 and the CPU bus 20 of the FPGA 36 is exclusively for performing trace control and breakpoint control, which are functions of the in-circuit emulator. The connection between the evaluation controller 70 and the test interface unit 80 is intended to collect the results obtained by executing the user program by the CPU core 21 on a large scale.
The SDRAM 71 can be used as a buffer memory of information obtained from the test interface unit 80 or the like, or can be used as a rental memory to replace a memory of the target system. When performing software debugging, it is expected that the user program will be placed in the SDRAM 71 instead of the nonvolatile memory 30 of the target board 63.
FIG. 8 shows an example of the test interface unit 80. The test interface unit 80 has a signal input / output function conforming to, for example, JTAG (Joint Test Action Group IEEE standard 1149.1), like the UD31.
The test interface unit 80 includes a test clock terminal TCK, a test mode select terminal TMS, a test reset terminal / TRST, a test data input terminal TDI, and external interface terminals for asynchronously inputting and outputting information asynchronously with the outside of the FPGA 36. It has a test data output terminal TDO. Although the interface control is performed using these five terminals, the shift register SDSFT, the command register SDIR, the status register SDSR, the plurality of data registers SDDR0 to SDDRn, the command decoder 81, and the TAP controller are not particularly limited. 82, and a selector 83.
The shift register SDSFT serially inputs serial data input to the test data input terminal TDI in synchronization with a control signal 84 (especially a shift clock included therein) output from the TAP controller 82. The serially input data is input in parallel to a command register SDIR or a register selected from among the data registers SDDR0 to SDDRn. The registers SDIR, SDSR, and SDDR0 to SDDRn are connected to one of the selectors 83, and the other of the selectors 83 has signals which are originally closed inside the CPU bus 20, the peripheral bus 26, the system bus 28, and the CPU core 21. The line 85 is connected to the signal line 86 which is originally closed inside the high-speed module 25. Which one of the registers SDIR, SDDR0 to SDDRn is connected to the shift register SDSFT, and which one of the registers SDIR, SDDR0 to SDDRn is connected to which one of the signal lines 85 and 86 and the buses 20 and 26 via the selector 83 , 28 is determined by a control signal 84 output from the TAP controller 82.
The command supplied to the command register SDIR is supplied to the command decoder 81 in parallel. The command decoder 81 decodes the command supplied thereto, generates input / output mode data for controlling selection of the registers SDSR, SDDR0 to SDDRn to be input / output, and selection of the selector 83, and supplies the input / output mode data to the TAP controller 82. .
The TAP controller 82 controls the selection mode of the registers SDSR, SDDR0 to SDDRn and the selector 83 specified by the input / output mode data, and adjusts the input / output operation timing in that mode according to the logical value of the terminal TMS. Generated in synchronization with the synchronization clock from. The control signal 84 is a general term for control signals that define the selection mode, input / output operation timing, and the like. The TAP controller 82 performs the timing control by state transition control, and determines the internal control state in advance according to whether the logical value of the test mode select terminal TMS changes to “1” or “0” with respect to the current logical value. The transition is performed sequentially according to the determined state transition model. In other words, the direction from the current state to the next state is determined by the logical value of the signal applied to the test mode select terminal TMS. The state of the control signal 84 of a plurality of bits is changed in accordance with the individual control states sequentially transitioned.
For example, when it is desired to collect the state of the signal line 85, a command code assigned to the operation is input to the register SDIR. In the initial input wait state of the state transition control of the TAP controller 82, the input from the terminal TDI is transmitted from the cyst register SDSFT to the command register SDIR. The command decoder 81 decodes the input command and proceeds with state transition control based on the decoding result. For example, an operation of sequentially accumulating the state of the signal line 85 in the registers SDDR0 to SDDRn sequentially from the CPU and outputting the accumulated information to the outside from the terminal TDO via the shift register SDSR cyclically in the order of the registers SDDR0 to SDDRn. repeat. The end of the operation is instructed by changing the state of the terminal TMS.
When it is desired to give a specific state to the signal line 85, a command code assigned to the operation is input from the terminal TDI to the command register SDIR. The command decoder 81 decodes the input command and proceeds with state transition control based on the decoding result. For example, serial input data from the terminal TDI is set in a predetermined register among the registers SDDR0 to SDDRn, and the set information is output from the selector 83 to the signal line 85 in synchronization with a predetermined state change of the terminal TMS.
Although a detailed description is omitted, the signal output from the terminal TDO and the signal input from the terminal TDI can be made in accordance with the command for the other signal lines 86 and the buses 20, 26, and 28.
The signal input / output function of the test interface unit 80 realizes an emulation interface function or a debug monitor function in the emulation microprocessor function configured by the FPGA 36. Therefore, various kinds of execution result information generated by the CPU core 21 executing the user program are sequentially accumulated via the evaluation controller 70, or control information for debugging is transferred from the evaluation controller 70 to the CPU core 21. , Can be directly applied to the internal circuit to execute a user program.
FIG. 9 shows an example of the AUD 31. The AUD 31 also has a signal input / output function conforming to JTAG similarly to the EIF 80, but the data register is limited to two, SDDRH and SDDRL, and the signal lines connectable to the registers SDIR, SDSR, SDDRH, and SDDRL are also limited to the peripheral bus 26. Accordingly, the functions of the TAP controller 82A and the decoder 81A are also reduced.
FIG. 10 shows a flow of debug information in a process of analyzing and evaluating data of an operation result obtained by operating the target system. When the CPU core 21 shown in FIG. 7 executes a user program to operate the evaluation board 60 together with the proto system board 63, the operation result information is transmitted via the test interface unit 80 to the buses 20, 26, 28 and the signal. The operation result information input from the lines 85 and 86 to the evaluation controller 70 is stored in the flash memory card 67 from the evaluation interface circuit 74. At this time, the evaluation controller 70 uses the SDRAM 71 as a data buffer. The execution result information 90 of the target program collected in the flash memory card 67 is read into the host computer 62. The host computer 62 acquires the target program development information 91 and the target system configuration information 92 in an auxiliary storage device (not shown) or the like, and executes the target program execution result information 90, the target program development information 91, and the target program. Based on the system configuration information 92, analysis is performed on required subjects of the target system and the target program.
FIG. 11 exemplifies information used in the analysis / evaluation processing. The execution result information 90 of the target program is not limited to the tracing of simple bus information, but may be a branch trace, a memory access trace, a CPU status, or a signal closed inside the CPU core 21. For example, the execution result information 90 of the target program includes a state of a clock signal such as an operation reference clock signal of the CPU core 21, bus information (addresses and data of the buses 20, 26, and 28), and bus state information (read, write, Data strobe, DMA cycle, etc.), bus control control (wait signal, bus request signal, bus busy signal), CPU status information (instruction fetch, upper / lower order instruction execution signal, interrupt signal, other hardware exception processing signal, etc.) , Break state (hardware break occurrence signal, break acknowledge signal, break trigger signal), and the like.
As the development information 91 of the target program, information such as a symbol table, a module table, object information, and line information acquired in the development environment of the target program may be used. That is, on the host computer 62 for developing programs, there are source files of source programs relating to various modules of the target program, compiled or assembled object module files, and output files of the linkage editor. Necessary information arbitrarily selected from the information is used as the development information 91 of the target program. For example, information on an object includes a header, a header sub, unit control information, a section, a symbol table, a section element header, an object code, relocation information, and the like. The information on debugging includes information on a debugging unit, a program structure, a symbol, a function type, a procedure parameter, a function parameter, and the like. Based on them, necessary object information and debugging information can be referred to.
As the configuration information 92 of the target system, hardware description information or the like used for setting the functions of the FPGAs 36 and 37 may be used.
System evaluation information 93 is created based on the execution result information 90 of the target program, development information 91 of the target program, and configuration information 92 of the target system. For example, this includes a trace tree table that enables the process to be grasped in chronological order, a branch trace table for specifying a process that causes a branch by an instruction address, an information table indicating a system state, an object module related to instruction execution and debugging. Reference output file information to be associated with the information.
Then, using the system evaluation information 93, the following analysis (total system analysis processing) is performed. One of the analysis contents is the overall evaluation, including the execution program module series (the tree of executed modules), the analysis of the cache hit rate, the analysis of the call source, the analysis of the source of the branch instruction (source trace analysis of the branch instruction), Various bus cycle analysis (external access execution time, refresh cycle, CPU idle time analysis), analysis of nest state by another subroutine during subroutine execution, execution time analysis of the same algorithm, operation time chart of designated module, etc. The evaluation of the instruction execution time system includes the throughput for each processing routine, extraction of the same algorithm, analysis of the execution time calculated from the instruction, analysis of the state in which the function is called on the source description, nesting of subroutines and maximization of the stack pointer. The analysis includes usage amount analysis, bus cycle distribution analysis by DMA and CPU, execution time chart of a designated program module, distribution analysis of used command words, distribution analysis of a call source program module, and the like. The evaluation of the memory access system includes a time chart of memory access, measurement of memory access time, analysis of the type and distribution of the memory to be accessed, and the like.
Here, a specific example of an analysis method using the information will be described. To display the execution program module series as the analysis result, the instruction access address included in the execution result information 90 of the target program is searched from the object information included in the target program development information 91, and the executed program module is specified. Just fine. The branch instruction address trace may refer to the branch instruction access included in the execution result information 90 of the target program. The execution time of the same algorithm is determined by detecting the same algorithm executed from the correspondence between the execution instruction code included in the execution result information 90 of the target program and the object information included in the target program development information 91. The execution time may be calculated in consideration of the number of instruction execution cycles obtained from the configuration information 92 of the target system. The distribution of the execution instruction word can be obtained from the distribution of the instruction code included in the execution result information 90 of the target program. The total memory access time can be calculated from the occurrence of a status indicating a memory access cycle included in the execution result information 90 of the target program and the memory access cycle time obtained from the configuration information 92 of the target system. The cache hit ratio is obtained by analyzing the total number of memory accesses by the CPU from the status indicating the memory access cycle included in the execution result information 90 of the target program, and analyzing the number of times the CPU core 21 accesses the external memory at the time of memory access. Further, it is possible to analyze whether the memory access address is the cache target area with reference to the target system configuration information 92 and evaluate based on the analyzed result. It should be understood that the cache memory is not particularly limited, but is included in the CPU core 21. The throughput of instruction execution can be obtained by analyzing the number of clock cycles required to execute a routine of interest. At this time, if the CPU core performs pipeline processing, the occurrence of pipeline stall must also be considered.
The analysis result (evaluation result) may be visually displayed on the display of the host computer 62. The trace tree and various analysis results may be displayed in a graph.
By performing the analysis using the system evaluation information in the host computer 62, the system analysis can be performed without depending on the technical ability of the system developer.
FIG. 12 exemplifies a flow of information when the total system analysis process is undertaken via a network. In FIG. 12, for convenience, a computer device requesting the total system analysis process is referred to as a terminal device 100, and a computer device performing the total system analysis process is referred to as a host device 101. The terminal device 100 and the host device 101 can be connected via a network 102 such as the Internet.
The terminal device 100 is a device managed by the developer of the target system. For example, the terminal device 100 inputs the execution result information 90 of the target program via the flash memory card 67, and also inputs the development information 91 of the target program and the target system development information 91. It has configuration information 92. In short, the terminal device 100 is a device such as the host computer 62 shown in FIG. 10, but this device 100 does not perform or cannot perform the total system analysis processing. Therefore, the host device 101 is requested to receive a more specialized system consultation. That is, the terminal device 100 issues a system analysis request to the host device 101 via the network 102, the target system configuration information 92 as target system information together with the user ID, and the target program as target system debug operation information. The execution result information 90 and the target program development information 91 are provided to the host device 101. The host device 101 receives the information 90, 91, and 92 and analyzes the target system and the target program on a required subject based on the information. The analysis content may be, for example, the content described in FIG. The analysis result is returned from the host device 101 to the terminal device 100 together with the user recognition ID as system analysis information. At this time, the user system information or its version information may be attached for the purpose of clarifying the user system information used for the analysis.
According to the system consulting business via the network 102, the target program execution result information 90, the target program development information 91, and the target system configuration information 92 are provided via the network 102 to a user who needs specialized system consultation. Receiving and performing consultation by specialized system analysis. For example, if the entity performing the consultation service is a manufacturer of a semiconductor integrated circuit that develops the CPU core 21 or provides IP module data that is design data of the CPU core 21, the consultation requester may request the consultation of the semiconductor integrated circuit. A user may want to use a semiconductor integrated circuit manufactured by a manufacturer.
FIG. 13 shows an overall example of a process for developing an SOC / LSI using IP module data.
In the example of FIG. 13, the portable digital camera communication terminal is a user system (target system). In this user system, a portable digital device equipped with a CPU (Charge Coupled Device) signal processing function, a JPEG (Joint Photographic Experts Group), a compact flash memory interface (CFI / F), a GSM communication module, and the like centering on a CPU core 21. It is assumed that a camera communication terminal SOC / LSI (also simply referred to as a camera communication terminal SOC / LSI) is used. In such a system development, it is necessary to develop a program to be executed by the SOC / LSI for the camera communication terminal and to perform a system debug.
When developing the SOC / LSI for the camera communication terminal, for example, the processor unit module data 111 and the CCD signal processing module data 112 as a high-speed module are used for the development of the processor unit 15. EIF module data 113 to be mounted on the evaluation processor function corresponding to the processor unit 15 is also prepared. The module data is recorded on a computer-readable recording medium 110 such as a CD-ROM (Compact Disk-Read Only Memory), a DVD-RAM (Digital Video Disk-Random Access Memory) or a magnetic tape, and is stored in the host computer 62a. Provided. The host computer 62a creates data for setting the functions of the processor core, the CCD signal processing module 25, and the EIF 80 in the FPGA 36 based on the module data 111, 112, and 113. The circuit defined by the logical function setting data is set in the FPGA 36 via the FPGA writer 61a, and the FPGA 36 implements an emulation microprocessor function relatively easily. At this time, if a certain rule is defined for the terminal arrangement of the FPGA 36 with respect to the board 68 of the evaluation board 60, the evaluation board 60 can be completed only by mounting the function-set FPGA 36 on the circuit board 68. Therefore, regardless of the processor function and user logic set in the FPGA 36, the evaluation board 60 can be used as a development platform for the SOC / LSI for camera communication terminals, and the development environment is unified. Thus, the evaluation board 60 for portable digital camera communication terminal system development use is completed.
Assuming JPEG, CF / F, and GSM communication modules to be mounted on the SOC / LSI for the camera communication terminal, a mounting socket of an FPGA 37 for realizing them is prepared in a system development stage. The user logic 65 used in the terminal system is developed, and the prototype board 63 on which the user logic 65 is mounted is configured. It is more preferable to connect a CCD or another interface group to the user logic 65. A signal line or a bus to which a device mounted on the prototype board 63 is connected can be connected to the buses 26 and 28 derived from the FPGA 36 of the evaluation board 60 via a connector 64.
Functional design is performed for the JPEG, CF / F, and GSM communication modules to be mounted on the SOC / LSI for camera communication terminals, and the functions of the JPEG, CF / F, and GSM communication modules are set in the FPGA 37 based on the design data. The data to be created is created by the host computer 62b. The functions of the JPEG, CF / F, and GSM communication modules are set in the FPGA 37 by the FPGA writer 61 using the created function setting data. The FPGA 37 in which the functions are set is mounted on the prototype board 63. Single debugging is performed on the mounted FPGA 37. The single-circuit debugging may use the in-circuit emulation function of the evaluation controller 70. In this way, a hardware environment operating on the SOC / LSI for the camera communication terminal is completed.
In the host computer 62b, a user program is developed using program modules such as an OS, a camera control, a user interface, and a communication control. For development, a compiler, an assembler, a linkage editor, and the like on the host computer 62b are used. The user program can be debugged by the in-circuit emulation function of the evaluation controller 70. Program debugging can proceed in a building block debugging manner according to the hardware release status of the target system. In short, the debugging is advanced while sequentially adding the programs related to the portions where the hardware configuration is clarified.
After the software debugging and the individual debugging of the prototype board 63 have been completed, the system debugging is performed in conjunction with the entire user system. Since the evaluation board 60 and the prototype board 63 realize the execution environment of the target system as a whole, there are problems such as a man-machine interface when a product is put on the market and a human factor interface generated by combining various parts. By verifying the countermeasures described above, it is possible to enhance the completeness of the system.
The total system analysis process is performed on the host computer 62c based on the execution result information of the target program collected in the memory card 67 and the like. By using the result of the total system analysis processing, the developer is released from manual analysis, evaluation and editing work, and can obtain high reliability in the overall evaluation or analysis result of the target system. In this analysis, it is possible to obtain a result substantially equivalent to checking the SOC / LSI for the camera communication terminal with the actual device, so that the problems identified from the analysis result can be quickly and appropriately determined by the camera communication. Feedback can be given to the development of SOC / LSI for terminals. That is, when the developer finds an inconvenient part in the target system based on the processing result, the developer may change the logic functions of the FPGAs 37, 37 so as to correct the inconvenience, and further continue system debugging under the changed logic function. it can.
When the SOC / LSI for camera communication terminal is completed, if the prototype board 63 is to be used as a comprehensive confirmation system, a socket on which the SOC / LSI for camera communication terminal can be mounted should be arranged on the prototype board 63. Before the target system is completed, it becomes easy to confirm the function or the final confirmation of the SOC / LSI for the camera communication terminal.
According to the above description, the following functions and effects can be obtained.
[1] According to the data processing system development method described above, the SOC / LSI 3 to be employed in the data processing system is connected to the processor core 14 and the processor core 14 to form a circuit module having a relatively high operating speed. A part of the high-speed module 25 (first user logic) and a part of the middle-speed module 27 and the low-speed module 29 (second user logic) which are connected to the processor core 14 and constitute a circuit module having a relatively low operating speed. The functions of the respective parts are set separately for the FPGA 36 (first variable logic device) and the FPGA 37 (second variable logic device), and the target program is executed and executed using the processor function realized by the FPGA 36. The evaluation contents of the results are It can be fed back to the target program. Therefore, it is easy to focus on both software and hardware for a data processing system intended for SOC and to support system development.
The function setting for the FPGAs 36 and 37 can be performed by software, and the system can be evaluated before the prototype hardware system is completed. This allows the system development and the evaluation to be performed in the same environment. is there.
Even before the prototype hardware system is completed, the high-speed module 25, which is a circuit module having a relatively high operation speed, can be realized by the same FPGA 36 together with the processor function, so that the user logic is stored in the CPU. Even when the system is connected to the high-speed bus 20, it is possible to perform system evaluation in a form similar to a confirmation operation on an actual machine.
An evaluation board equipped with FPGAs 36 and 37 in which required logic functions to be developed are set, instead of adopting the conventional development method of performing SOC / LSI development with a software simulator and finally debugging the actual device. 60 and the prototype board 63, the user program is executed, and based on the various information collected, the performance of not only software and hardware but also the system as a whole can be debugged. It becomes possible to shorten.
[2] According to the evaluation board 60, when the SOC / LSI 3 is developed, the FPGA 36 of the evaluation board 60 is connected to the processor and a circuit module having a relatively high operating speed connected to the processor and connected to the processor. The second user logic, which requires a relatively low operation speed, is connected to the user interface circuit 75 of the evaluation board. Therefore, the hardware function of the data processing system to be developed is set in the FPGA 36, The data processing system to be developed can be debugged by executing the target program using the processor function realized by the FPGA 36. Therefore, the evaluation board 60 is suitable for the method of developing the data processing system.
Further, the FPGA 36 of the evaluation board 60 is not dedicated to a specific system, and when the logic required for the system to be developed cannot be covered by the FPGA 36 alone, the FPGA 36 is connected to the FPGA 36 via the user interface circuit 75. Since the external FPGA 37 can be connected, it can be used with high versatility for various system development.
[3] By setting the logic configuration of the test interface unit 80 such as a JTAG unit in the FPGA 36 in order to collect the execution result information 90 of the target program, the bus in the logic function part of the processor core 14 and the high-speed module 25 is set. In addition, a signal line or a signal line can be selected as necessary and made conductive to the evaluation controller 70. Therefore, it is possible to relatively freely collect operation result information required for evaluation or analysis. In particular, if a signal input / output function conforming to JTAG is adopted, it becomes possible to collect target program operation result information with a small number of test-dedicated external terminals.
[4] According to the total system analysis processing, based on the execution result information 90 of the target program, the configuration information 92 of the target system, and the development information 91 of the target program, display of the execution program module series, cache hit ratio, branching Automatic analysis of the entire system evaluation, instruction execution time system evaluation, memory access system evaluation, etc., such as instruction address trace, execution time of the same algorithm, instruction execution throughput, effective instruction word distribution, and total memory access time The system evaluation or analysis can be performed with high reliability without depending on the technical ability of the system developer. That is, since the base is used based on the execution result information 90 of the target program, the development information 92 of the target program, and the configuration information 91 of the target system, it is possible to perform system evaluation or analysis as a whole system including software and hardware. Become. In the analysis, at least an execution program module series, a branch instruction address trace, an instruction execution throughput, and a distribution of an execution instruction word are obtained as analysis results. Will show how the hardware is used. As a result, system evaluation or analysis can be performed with high reliability without depending on the technical ability of the system developer.
According to the system consulting business via the network 102, the target program execution result information 90, the target program development information 91, and the target system configuration information 92 are provided via the network 102 to a user who needs specialized system consultation. Receiving and performing consultation by specialized system analysis. For example, in a case where a user who intends to use a semiconductor integrated circuit manufactured by a manufacturer of the semiconductor integrated circuit cannot perform a professional system evaluation by himself, the CPU core 21 is developed or its design data is used. If a semiconductor integrated circuit maker that provides certain IP module data is the service provider of the consultation, the semiconductor integrated circuit maker can easily provide the user with further convenience. Will be possible.
In this way, by providing a specialized system analysis relating to the development system as a provision service, it is possible to contribute to facilitation of system development and shortening of the system development period even for SOC / LSI and the like.
[5] According to the evaluation microprocessor constituted by the variable logic device such as the FPGA 36, the function of the first user logic such as the high-speed module 25 is connected to the CPU bus 20 to which the functional circuit portion of the processor core 14 is coupled. The function of a test interface unit 80 as an evaluation interface for connecting circuit parts and connecting them to an external evaluation controller and the like, and the functions of user interfaces 23 and 24 for connecting the CPU bus 20 to a target system. In consideration of the unique situation of SOC / LSI, such as connecting the user logic to the high-speed bus (CPU bus) 20 of the CPU, the system evaluation and debugging are performed in a form close to the confirmation work in the actual LSI or the actual machine. It is possible to do.
Function description data for setting the function of such an evaluation macro processor in a variable logic device such as the FPGA 36 is recorded on a recording medium such as an SD-ROM or a DVD-RAM and provided to a user of the semiconductor integrated circuit. Thus, the function of the evaluation macroprocessor can be easily realized in the FPGA 36, and the evaluation of the data processing system, the development of the data processing system can be facilitated, and the system development period can be reduced.
The invention made by the present inventor has been specifically described based on the embodiments, but the present invention is not limited thereto and can be appropriately changed.
For example, after completion of the SOC / LSI, the SOC / LSI may be mounted on an evaluation board for final confirmation. In this case, the difference between the pin arrangement of the SOC / LSI (external terminal) and the pin arrangement of the FPGA may be absorbed by using a pin conversion connector such as a piggy socket. Further, the evaluation board and the prototype board may be integrated on a single circuit board without being divided. As a result, external failure factors such as a poor connection between the evaluation board and the prototype board can be eliminated. At this time, if the prototype part is made detachable, the detached part can be immediately diverted to the demonstration system.
In addition, the variable logic device is not limited to a device called an FPGA, and may be a device called a CPLD (Complex Programmable Logic Device), and in a broad sense, a category of a device called a PLD (Programmable Logic Device). Any device can be used.
Further, the recording medium is not limited to a CD-ROM or DVD-RAM, but may be a floppy disk (FD), a compact disk-recordable (CD-R), a compact disk-rewritable (CR-RW), or a digital video disk (DVD-ROM). -Read Only Memory) and other computer-readable recording media.
Industrial applicability
INDUSTRIAL APPLICABILITY The present invention can be widely applied to the development of an SOC-type microprocessor application system in which a CPU and other functional blocks, middleware, and the like are integrated, such as a mobile phone and a portable information terminal.
[Brief description of the drawings]
FIG. 1 is an explanatory diagram exemplifying a data processing system in terms of both hardware and software.
FIG. 2 is a block diagram showing a specific example of the SOC / LSI.
FIG. 3 is an explanatory view schematically illustrating a method of developing a data processing system using an SOC / LSI.
FIG. 4 is a block diagram showing an example of the FPGA.
FIG. 5 is an explanatory diagram showing an outline of a user program development environment.
FIG. 6 is an explanatory diagram illustrating in more detail a method of developing a data processing system using an SOC / LSI.
FIG. 7 is a block diagram illustrating detailed functional blocks of an FPGA in which a microprocessor function for emulation is set, together with an evaluation board and a prototype board.
FIG. 8 is a block diagram showing an example of the test interface unit.
FIG. 9 is a block diagram showing an example of the AUD.
FIG. 10 is an explanatory diagram showing the flow of debug information in the analysis / evaluation processing.
FIG. 11 is an explanatory diagram illustrating information used in the analysis / evaluation processing.
FIG. 12 is a system diagram exemplifying a flow of information when an analysis / evaluation process is undertaken via a network.
FIG. 13 is an explanatory diagram generally showing a specific example of a process of developing an SOC / LSI using module data recorded on a recording medium.

Claims (18)

多数の記憶セルにロードされる論理構成定義データに応じて論理機能がプログラマブルに決定される第1可変論理デバイスに第1ユーザロジック及び評価用プロセッサ機能を実現する第1処理と、
多数の記憶セルにロードされる論理構成定義データに応じて論理機能がプログラマブルに決定される第2可変論理デバイスに第2ユーザロジックを実現してターゲットボードを構成する第2処理と、
前記第1可変論理デバイス及び第2可変論理デバイスを評価支援システムに接続して、前記第1可変論理デバイスにターゲットプログラムを実行させ、実行結果に基づいて前記ターゲットボード及びターゲットプログラムを評価する第3処理と、
前記評価結果に基づいて、前記第1可変論理デバイス、前記第2可変論理デバイス、ターゲットボード又は前記ターゲットプログラムに必要な修正を加える第4処理と、を含むことを特徴とするデータ処理システムの開発方法。
A first process for implementing a first user logic and an evaluation processor function on a first variable logic device whose logic function is programmably determined according to logic configuration data loaded into a number of storage cells;
A second process of configuring a target board by implementing a second user logic on a second variable logic device whose logic function is programmably determined according to logic configuration data loaded into a number of storage cells;
Connecting the first variable logic device and the second variable logic device to an evaluation support system, causing the first variable logic device to execute a target program, and evaluating the target board and the target program based on the execution result; Processing,
A fourth processing for making necessary corrections to the first variable logic device, the second variable logic device, the target board, or the target program based on the evaluation result. Method.
前記第3処理において、前記第1可変論理デバイスが実装される評価ボードとホストシステムを前記評価支援システムとして用い、
前記評価ボードは、実装された前記第1可変論理デバイスに接続される評価用コントローラ及びメモリと、前記評価用コントローラ及びメモリに接続される評価用インタフェース回路と、実装された前記第1可変論理デバイスに接続されるユーザインタフェース回路とを有し、
前記ユーザインタフェース回路に前記ターゲットボードの第2可変論理デバイスが接続され、前記評価用インタフェース回路に前記ホストシステムが接続される、ことを特徴とする請求の範囲第1項記載のデータ処理システムの開発方法。
In the third processing, an evaluation board on which the first variable logic device is mounted and a host system are used as the evaluation support system,
The evaluation board includes an evaluation controller and a memory connected to the mounted first variable logic device, an evaluation interface circuit connected to the evaluation controller and the memory, and the mounted first variable logic device. A user interface circuit connected to the
2. The data processing system according to claim 1, wherein a second variable logic device of the target board is connected to the user interface circuit, and the host system is connected to the evaluation interface circuit. Method.
前記第1処理は、論理構成定義データに基づいて、CPUバス及びこれに接続されるCPUを含むプロセッサコアと、前記CPUバスに接続される第1ユーザロジックと、前記プロセッサコア及び第1ユーザロジックに接続可能にされ且つ前記評価用コントローラにインタフェースされるテストインタフェースユニットとを第1可変論理デバイスに形成することを特徴とする請求の範囲第2項記載のデータ処理システムの開発方法。The first processing includes, based on logical configuration definition data, a CPU bus and a processor core including a CPU connected thereto, a first user logic connected to the CPU bus, the processor core and a first user logic. 3. The method according to claim 2, wherein a test interface unit that can be connected to the test controller and is interfaced to the evaluation controller is formed in the first variable logic device. 前記第1処理において、前記プロセッサコアに、CPUバスに接続されるバスステートコントローラを含め、前記バスステートコントローラを前記ユーザインタフェース回路に接続することを特徴とする請求の範囲第3項記載のデータ処理システムの開発方法。4. The data processing according to claim 3, wherein in the first processing, the processor core includes a bus state controller connected to a CPU bus, and the bus state controller is connected to the user interface circuit. How to develop the system. 前記第1処理において、前記プロセッサコアに、CPUバスに接続される周辺バスを更に含め、前記周辺バスを前記ユーザインタフェース回路に接続することを特徴とする請求の範囲第4項記載のデータ処理システムの開発方法。5. The data processing system according to claim 4, wherein in the first processing, the processor core further includes a peripheral bus connected to a CPU bus, and the peripheral bus is connected to the user interface circuit. Development method. 前記第1処理において、前記テストインタフェースユニットには、クロック端子、モード端子、データ入力端子、及びデータ出力端子を外部端子として設定し、前記データ入力端子から与えられるコマンドに基づいて前記データ入力端子及びデータ出力端子の接続先を決定し、前記モード端子の状態に応じて、前記データ入力端子に供給される情報を取り込み、取り込んだ情報を前記決定された接続先に送り出し、また、前記決定された接続先からの情報を取り込んで、前記データ出力端子から外部に出力する機能を設定することを特徴とする請求の範囲第3項記載のデータ処理システムの開発方法。In the first process, a clock terminal, a mode terminal, a data input terminal, and a data output terminal are set as external terminals in the test interface unit, and the data input terminal and the data input terminal are set based on a command given from the data input terminal. Determine the connection destination of the data output terminal, according to the state of the mode terminal, capture the information supplied to the data input terminal, send out the captured information to the determined connection destination, and the determined 4. The data processing system development method according to claim 3, wherein a function of receiving information from a connection destination and outputting the information to the outside from the data output terminal is set. 前記テストインタフェースユニットはIEEE1149.1の規格に準拠した手順で信号入出力を行なうものであることを特徴とする請求の範囲第6項記載のデータ処理システムの開発方法。7. The data processing system development method according to claim 6, wherein said test interface unit performs signal input / output according to a procedure compliant with the IEEE 1149.1 standard. 前記評価用コントローラは、トレース制御、ブレークポイント制御、ユーザプログラムの実行制御、ホストインタフェース制御の各機能を有して成るものであることを特徴とする請求の範囲第2項記載のデータ処理システムの開発方法。3. The data processing system according to claim 2, wherein the evaluation controller has functions of a trace control, a breakpoint control, a user program execution control, and a host interface control. Development method. 回路基板に、評価用コントローラ、前記評価用コントローラに接続される可変論理デバイス、前記可変論理デバイスに接続されるメモリ、前記可変論理デバイスに接続されるユーザインタフェース回路、及び前記評価用コントローラに接続される評価用インタフェース回路が実装され、前記可変論理デバイスは、多数の記憶セルにロードされる論理構成定義データに応じて論理機能がプログラマブルに決定されて評価用マイクロプロセッサ機能及び第1ユーザロジックが実現される半導体デバイスであることを特徴とする評価ボード。A circuit board, an evaluation controller, a variable logic device connected to the evaluation controller, a memory connected to the variable logic device, a user interface circuit connected to the variable logic device, and a connection to the evaluation controller In the variable logic device, a logic function is programmably determined according to logic configuration data loaded into a large number of storage cells to realize an evaluation microprocessor function and a first user logic. An evaluation board characterized by being a semiconductor device to be manufactured. 前記可変論理デバイスは、論理構成定義データに基づいて、CPUバス及びこれに接続されるCPUを含むプロセッサコアと、前記CPUバスに接続される第1ユーザロジックと、前記プロセッサコア及び第1ユーザロジックに接続可能にされ且つ前記評価用コントローラにインタフェースされるテストインタフェースユニットが形成されるものであることを特徴とする請求の範囲第9項記載の評価ボード。The variable logic device includes a processor bus including a CPU bus and a CPU connected thereto, a first user logic connected to the CPU bus, the processor core and the first user logic, based on logical configuration definition data. 10. The evaluation board according to claim 9, wherein a test interface unit is formed so as to be connectable to the evaluation controller and to be interfaced with the evaluation controller. 前記プロセッサコアは、CPUバスに接続されるバスステートコントローラを含み、前記バスステートコントローラは前記ユーザインタフェース回路に接続する請求の範囲第10項記載の評価ボード。The evaluation board according to claim 10, wherein the processor core includes a bus state controller connected to a CPU bus, and the bus state controller is connected to the user interface circuit. 前記プロセッサコアはCPUバスに接続される周辺バスブリッジ回路を更に含み、前記周辺バスブリッジ回路は前記ユーザインタフェース回路に接続する請求の範囲第11項記載の評価ボード。The evaluation board according to claim 11, wherein the processor core further includes a peripheral bus bridge circuit connected to a CPU bus, and the peripheral bus bridge circuit is connected to the user interface circuit. 前記ユーザインタフェース回路にターゲットボードが接続され、前記ターゲットボードは、多数の記憶セルにロードされる論理構成定義データに応じて論理機能がプログラマブルに決定されて第2ユーザロジックを実現する可変論理デバイスを有するものであることを特徴とする請求の範囲第12項記載の評価ボード。A target board is connected to the user interface circuit, and the target board is a variable logic device that implements a second user logic having a logic function programmable according to logic configuration data loaded into a large number of storage cells. 13. The evaluation board according to claim 12, wherein the evaluation board has: 前記テストインタフェースユニットは、クロック端子、モード端子、データ入力端子、及びデータ出力端子を外部端子として有し、前記データ入力端子から与えられるコマンドに基づいて前記データ入力端子及びデータ出力端子の接続先を決定し、前記モード端子の状態に応じて、前記データ入力端子に供給される情報を取り込み、取り込んだ情報を前記決定された接続先に送り出し、また、前記決定された接続先からの情報を取り込んで、前記データ出力端子から外部に出力するものであることを特徴とする請求の範囲第10項記載の評価ボード。The test interface unit has a clock terminal, a mode terminal, a data input terminal, and a data output terminal as external terminals, and determines a connection destination of the data input terminal and the data output terminal based on a command given from the data input terminal. Determine, according to the state of the mode terminal, capture the information supplied to the data input terminal, send out the captured information to the determined connection destination, also capture information from the determined connection destination 11. The evaluation board according to claim 10, wherein the data is output from the data output terminal to the outside. 前記テストインタフェースユニットはIEEE1149.1の規格に準拠した手順で信号入出力を行なうものであることを特徴とする請求の範囲第14項記載の評価ボード。15. The evaluation board according to claim 14, wherein the test interface unit performs signal input / output according to a procedure compliant with the IEEE1149.1 standard. 前記評価用コントローラは、トレース制御、ブレークポイント制御、ユーザプログラムの実行制御、ホストインタフェース制御の各機能を有して成るものであることを特徴とする請求の範囲第10項記載の評価ボード。11. The evaluation board according to claim 10, wherein the evaluation controller has functions of trace control, breakpoint control, execution control of a user program, and host interface control. 前記評価用インタフェース回路として、ホストコンピュータに接続可能なホストインタフェース回路を有するものであることを特徴とする請求の範囲第9項記載の評価ボード。10. The evaluation board according to claim 9, wherein the evaluation interface circuit includes a host interface circuit connectable to a host computer. 前記評価用インタフェース回路として、ファイルメモリカードを接続可能なファイルメモリインタフェース回路を有するものであることを特徴とする請求の範囲第9項記載の評価ボード。10. The evaluation board according to claim 9, wherein the evaluation interface circuit includes a file memory interface circuit to which a file memory card can be connected.
JP2002563350A 2001-02-02 2001-02-02 Data processing system development method and evaluation board Withdrawn JPWO2002063473A1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2001/000754 WO2002063473A1 (en) 2001-02-02 2001-02-02 Method for developing data processing system and evaluation board

Publications (1)

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

Family

ID=11736986

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002563350A Withdrawn JPWO2002063473A1 (en) 2001-02-02 2001-02-02 Data processing system development method and evaluation board

Country Status (3)

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

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4264422B2 (en) 2005-03-16 2009-05-20 富士通株式会社 Speed converter with load control function
JP5975811B2 (en) 2012-09-12 2016-08-23 レノボ・エンタープライズ・ソリューションズ(シンガポール)プライベート・リミテッド Integrity check of measured signal trace data
CN109100579B (en) * 2018-11-07 2024-01-05 国网河南省电力公司郑州供电公司 High-speed data acquisition system and method of three-phase unbalance monitoring device
CN111752798B (en) * 2020-06-23 2022-12-27 深圳市得一微电子有限责任公司 Method for collecting stability analysis data of solid-state storage device during idle
CN112100954A (en) * 2020-08-31 2020-12-18 北京百度网讯科技有限公司 Method and device for verifying chip and computer storage medium

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6293736A (en) * 1985-10-19 1987-04-30 Ricoh Co Ltd Manufacture of semiconductor device for development
JPH01162971A (en) * 1987-09-09 1989-06-27 Hitachi Ltd Single-chip microcomputer
JPH0836504A (en) * 1994-07-26 1996-02-06 Hitachi Ltd Emulator
JPH10320230A (en) * 1997-05-21 1998-12-04 Fujitsu Ltd Emulator
US6314550B1 (en) * 1997-06-10 2001-11-06 Altera Corporation Cascaded programming with multiple-purpose pins

Also Published As

Publication number Publication date
WO2002063473A1 (en) 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
US7827510B1 (en) Enhanced hardware debugging with embedded FPGAS in a hardware description language
US7478346B2 (en) Debugging system for gate level IC designs
US20150040096A1 (en) Emulation-based functional qualification
JP2002526908A (en) Block-based design method
JP2007172599A (en) Method and system for tracing program execution
Gizopoulos et al. Embedded processor-based self-test
CN116663462A (en) Assertion verification method, assertion verification platform, electronic device and readable storage medium
JPWO2002063473A1 (en) Data processing system development method and evaluation board
JP4213306B2 (en) Program debugging device for semiconductor testing
JP2002229814A (en) Debugging method and information processing system
JP2002229813A (en) Microprocessor and recording medium readable by computer
Grosso et al. A software-based self-test methodology for system peripherals
Shen et al. A Universal-Verification-Methodology-Based Verification Strategy for High-Level Synthesis Design
KUMAR AUTOMATED TOOL TO MEASURE BANDWIDTH AND LATENCTY OF SoC DURING PRE AND POST DEBUGGING.
Jain et al. Methodological framework for automation of hardware software co-validation of an IP
Lien et al. Test program synthesis for modules and chips having boundary scan

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