JP2000284945A - デジタル機器及びその開発方法 - Google Patents
デジタル機器及びその開発方法Info
- Publication number
- JP2000284945A JP2000284945A JP11086484A JP8648499A JP2000284945A JP 2000284945 A JP2000284945 A JP 2000284945A JP 11086484 A JP11086484 A JP 11086484A JP 8648499 A JP8648499 A JP 8648499A JP 2000284945 A JP2000284945 A JP 2000284945A
- Authority
- JP
- Japan
- Prior art keywords
- code
- hardware
- fpga
- software
- cpu
- 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.)
- Pending
Links
Abstract
能なハードウェアを同時に備えたデジタル機器におい
て、部品点数を少なくし、製造コストを低くする。ま
た、開発に際し、設計情報の管理を容易にし、開発環境
の統合化を図る。 【構成】 CPU及び、FPGA等のプログラミング可
能なハードウェアが動作の際に必要とするソフトウェア
・コード、及びハードウェア(FPGA)・コードは、
機器内部の同一のメモリ領域上に共存して保存する。こ
のデジタル機器の開発には、トップダウン設計法を採用
し、開発の初期段階(上流)において決定されたデジタ
ル機器の機能を、上流でソフトウェア、ハードウェアの
区別なく設計を行い、下流において最終的にCPU用の
ソフトウェア・コードとFPGA用のハードウェア・コ
ードとを融合した(一体化した)形で生成する。
Description
GA(Field Programmable Gate Array)、PLD(Pro
grammable Logic Device)等のプログラミング可能なハ
ードウェアを同時に搭載し、これらによって内部動作の
コントロールを行うデジタル機器、及び、これを開発す
るための開発方法に関し、特に開発段階において、CP
Uが動作するのに必要とするソフトウェア・コードと、
プログラミング可能なハードウェアが動作するのに必要
とするハードウェア・コードとを融合した(一体化し
た)形で生成するようにした開発方法に関する。
D等のプログラミング可能なハードウェア6を同時に搭
載し、これらによって内部動作のコントロールを行うデ
ジタル機器3の従来例について、その内部構成を示す図
である。この従来例においては、CPU4と、プログラ
ミング可能なハードウェア6として、FPGAが搭載さ
れている。ソフトウェア・コード1は、CPU4がどの
ように動作するかが決められた命令やそれに伴うデータ
の集合であり、これは当該デジタル機器3のソフトウェ
ア用メモリ5の中に保存されている。CPU4は、ソフ
トウェア用メモリ5からソフトウェア・コード1を逐次
読み出して、その読み出した内容に従って動作するか、
もしくは、別のメモリにソフトウェア・コード1を置き
直して、そこから逐次実行していく場合もある。ハード
ウェア・コード(FPGAコード)2は、FPGA、P
LD等のプログラミング可能なハードウェア6がどのよ
うな回路になるか(すなわちどのように動作するか)が
決められた設計図であり、これは当該デジタル機器3の
プログラミング可能なハードウェア用メモリ(FPGA
用メモリ)7の中に保存されている。リセット直後に一
度だけ、FPGA6は、このFPGA用メモリ7からこ
のFPGAコード2を読み出して、内部の回路を、その
読み出した内容に従って構成する。以降は、この構成の
回路で動作を開始する。
機器を開発する様子を示す図であり、開発者の指定した
機能を、計算機がハードウェアとソフトウェアに自動的
に振り分け、それぞれのソース・コードを生成している
様子を示している。このような構成の製品を開発する場
合、図9のような、従来の開発方法においても、トップ
ダウン設計法の一種として、開発段階の初期(上流)で
特にソフトウェア・ハードウェアの区別なく機能の設計
を行い9、下流においては計算機がその割り当てを最適
に決定し10,11,12,13、ソフトウェア・ソー
ス・コード14、ハードウェア・ソース・コード15を
それぞれ自動生成する手法が提案されている。しかしな
がらこの手法においては、ハードウェアとソフトウェア
が平行して開発できるのはこの段階までであって、ここ
から先は、次のように別々の開発過程を経る。
は、コンパイラを使って生成されたソースコード16を
コンパイルし、CPU18が実行可能なソフトウェア・
オブジェクト・コード17を得る。以降、「オブジェク
ト・コード」という言葉は、説明のため、ソースコード
と区別する意味で使用する。この明細書で使用している
「ハードウェア・コード」、「ソフトウェア・コード」
とは、このオブジェクト・コードのことを指している。
ハードウェアに関しては、ソフトウェアとは別に、コン
パイラを使って、ハードウェア(FPGA)ソース・コ
ード19をコンパイルし、FPGA21がサポートする
ハードウェア・オブジェクト・コード20を生成する。
(以下、テストという)、及び問題が生じた場合の原因
の究明と修正(以下、デバッグという)を行う場合に
も、ソフトウェアとハードウェアでは、別々に行い、同
時には行うことができない。ソフトウェアは、ハードウ
ェアが完成するまではテスト及びデバッグは実行できな
いし、ハードウェアは、実際の動作を想定してシミュレ
ーションを行うが、実際にソフトウェアと連携して動作
をしているときのような厳密な条件でテスト及びデバッ
グはしない。
方式において、このような製品を構成する場合には、ソ
フトウェア・コード用には、ソフトウェア・コード用メ
モリ(CPUによる読み出し用)、ハードウェア・コー
ド用にはハードウェア・コード用メモリ(FPGAによ
る読み出し用)を用意する必要があり、部品点数も増
え、製造コストが高くなる。また、FPGA自身に、汎
用のメモリからデータを読み出したり、汎用のメモリに
データを書き込んだりする機能がなく、FPGA用のデ
ータを保存しておくメモリを、汎用品のものにすること
ができなかったため、専用のメモリを用意する必要があ
り、部品単体としてのコストが高かった。
ードウェア・コードとソフトウェア・コードを同一の汎
用メモリに保存することができたとしても、読み出しの
際にハードウェア・コードとソフトウェア・コードを切
り分ける方法をどうするのかが課題であった。このよう
な構成の製品を開発する場合においても、従来において
は、最終的に生成されるハードウェア・コードとソフト
ウェア・コードは別々であるので、コードを間違って使
ってしまうこともあり、その管理も別々に行われなけれ
ばならなかった。
(テスト)、及び、問題が生じた場合の原因の究明と修
正(デバッグ)を行う場合にも、ソフトウェアとハード
ウェアは、別々にこれを行う。ソフトウェアは、ハード
ウェアが完成するまではテスト及びデバッグは実行でき
ず、ハードウェアは、実際の動作を想定してシミュレー
ションを行うが、実際にソフトウェアと連携して動作を
しているときのような厳密な条件でテスト及びデバッグ
はできないので、実際にソフトウェアとハードウェアを
組み合わせて動作させたときに初めて、問題が生じるこ
とが少なくなかった。
は、CPU及びFPGA等のプログラミング可能なハー
ドウェアを備え、これらによって内部動作のコントロー
ルを行うデジタル機器において、前記CPUが動作する
際に必要とするソフトウェア・コードと、前記FPGA
等のプログラミング可能なハードウェアが動作する際に
必要とするハードウェア・コードが、機器内部の、同一
のメモリ領域上に共存して保存されていることを特徴と
する。
のデジタル機器において、前記FPGA等のプログラミ
ング可能なハードウェア自身には、初めからDMA(ダ
イレクト・メモリ・アクセス)機能を有していることを
特徴とする。
2に記載のデジタル機器において、前記同一のメモリ領
域内に前記ソフトウェア・コードとハードウェア・コー
ドの2つのコードを保存する際、一方のコードを先頭番
地からアドレスの大きくなる方向へ書き込み、他方のコ
ードを逆に最終番地からアドレスの小さくなる方向へ書
き込むことを特徴とする。
のいずれかに記載のデジタル機器において、前記CPU
及び前記FPGA等のプログラミング可能なハードウェ
アのそれぞれが、前記ソフトウェア・コードとハードウ
ェア・コードを振り分ける際に、前記CPU及び前記F
PGA等のプログラミング可能なハードウェアが直接関
与せず、コード分離器が前記振り分けを行うことを特徴
とする。
のいずれかに記載のデジタル機器装置において、前記C
PUが初めにソフトウェア・コードを前記メモリ領域か
ら読み出し、その後CPUがハードウェア・コードを読
み出し、前記FPGA等のプログラミング可能なハード
ウェアに対し出力することを特徴とする。
のデジタル機器において、前記FPGA等のプログラミ
ング可能なハードウェアは、デバッグ用の機能を有して
いることを特徴とする。
のデジタル機器において、前記デバッグ機能を有するF
PGA等のプログラミング可能なハードウェアから出力
される信号を参照したり、逆に信号を入力したりするた
めのインタフェースを備えていることを特徴とする。
GA等のプログラミング可能なハードウェアを備え、こ
れらによって内部動作のコントロールを行うデジタル機
器の開発方法において、ソフトウェア・ツール等からな
る開発システムが、前記CPUが動作の際に必要とする
ソフトウェア・コードと、前記FPGA等のプログラミ
ング可能なハードウェアが動作の際に必要とするハード
ウェア・コードとを一体で生成することを特徴とする。
の開発方法において、前記一体で生成されるソフトウェ
ア・コードとハードウェア・コードには、デジタル機器
が動作をするために必要な情報だけでなく、テスト及び
デバッグ用のコードを付加して生成することを特徴とす
る。
載の開発方法において、開発したデジタル機器の動作検
証や動作に問題が生じた場合の原因を究明するに際し、
開発対象の実機を実際に動作させるのではなく、実機の
動作を計算機上等でシミュレーションすることができる
機能を有することを特徴とする。
記載の開発方法において、開発段階の上流でソフトウェ
ア,ハードウェアの区別なく機能の設計を行い、下流で
計算機がその割り当てを最適に決定するトップダウン設
計法を採用した開発方法において、実機の動作を計算機
上でシミュレーションし、該シミュレーション結果に基
づきソフトウェア部分によって実現する機能と、ハード
ウェア部分によって実現する機能の切り分けを、自動的
に行うことを特徴とする。
記載の開発方法において、上記シミュレーション結果に
基づくハードウェア部分、ソフトウェア部分の切り分け
を、実機のシミュレーション結果から得られた、実機の
処理能力を基準に行うことを特徴とする。
記載の開発方法において、上記シミュレーション結果に
基づくハードウェア部分、ソフトウェア部分の切り分け
を、実機のシミュレーション結果から得られた、各部分
のコードサイズを基準に行うことを特徴とする。
施例に基づいて説明する。図1は、本発明の第1の実施
例によるデジタル機器25のブロック図を示す。この構
造においては、CPU26、共有メモリ27、プログラ
ミング可能なハードウェアとしてFPGA28が、同一
のバス29の上で接続されている。CPU26が使用す
るソフトウェア・コード23と、プログラミング可能な
ハードウェア(FPGA)28が使用するハードウェア
(FPGA)コード24が、複合コード22として、1
つの共有メモリ27の中に保存されている(インストー
ルされている)。
トウェア・コード23は上から(この共有メモリ27の
アドレスの小さい方から大きい方へと)、FPGAコー
ド24は下から(この共有メモリ27のアドレスの大き
い方から小さい方へと)、書き込まれている。もちろ
ん、このような各コードの保存位置のレイアウトは一例
であって、他のレイアウトを採用しても、それは本発明
の実施例の範囲内のものである。
ある。図1において、いま電源が入ると、初めにFPG
A28は共有メモリ27から自分のFPGAコード24
を読み込む。読み込みは、図2において、共有メモリ2
7の、FPGAコード24を、一番下の方から、上の方
に(アドレスが最終番地からだんだん小さくなる方向
に)読み込んでいく。なお、FPGAは、はじめからD
MA(ダイレクト・メモリ・アクセス)機能を有してい
るようにすれば、CPUの介在なしに直接共有メモリか
らFPGAコード24を高速に読み込むことができる。
読み込みを完了したら、FPGA28は読み込んだFP
GAコード24をもとに自分の回路状況を設定し、論理
回路として動作する。以降は、また改めて電源を入れ直
したりするまで、このFPGAコード24を読み直した
りすることはない。次に、CPU26が動作を開始する
と、CPU26は、同じ共有メモリ27から、今度は逆
に、一番上の方から、下の方に向かって(アドレスが先
頭番地からだんだん大きくなる方向に)読み込んでい
く。
ず、同じ構造のままで、次のような方法を取ることもで
きる。この場合の動作を図1に基づいて説明する。電源
が入ると、今度は先にCPU26が動作を開始する。C
PU26は、共有メモリ27からソフトウェア・コード
23を読み出して、逐次実行していく。図3のように、
そのソフトウェア・コード23の中には、図1のFPG
A28に対して、FPGAコード24を入力するという
プログラムと、入力をする対象のFPGAコード24の
データまでが含まれている。CPU26から見る限り、
実際にはすべてがソフトウェア・コードであることに注
意されたい。いま、CPU26がこの手順を実行する
と、CPU26は、ソフトウェア・コード23の中に含
まれているFPGAコード24のデータを読み出し、こ
れをFPGA28に対して出力する。FPGA28に対
するFPGAコード24のデータの書き込みが終了する
と、FPGA28はそのFPGAコード24に基づく論
理回路として動作を開始する。
タル機器30のブロック図を示す。この構造において
も、CPU31が使用するソフトウェア・コード36
と、FPGA34が使用するFPGAコード37が、複
合コードとして、1つの共有メモリ33の中に保存され
ている点と、CPU31と、FPGA34が同一のバス
35の上に接続されている点は、図1に示した第1の実
施例と同様である。ただし、この構造においては、図5
に示すように、共有メモリ33とバス35との間に、コ
ード分離器32が追加されている点が異なる。このコー
ド分離器32は、バス35に接続されていて、ソフトウ
ェア・コード36とFPGAコード37を分離する役割
を持っている。従って、CPU31がソフトウェア・コ
ード36にアクセスしたり、FPGA34がFPGAコ
ード37にアクセスするには、まずこの分離器32にア
クセスする必要がある。
作は次の通りである。図5は、コード分離器32と共有
メモリ33との間の情報のやり取りの様子を示す。い
ま、電源が入ると、FPGA34は、あたかも通常のメ
モリにアクセスしているかのように、このコード分離器
32に対して、FPGAコード37の読み出しを行う。
このコード分離器32は、読み出しの要求がFPGA3
4からあったことを確認して、FPGA用のコード37
を共有メモリ33から読み出し、FPGA34に対して
出力する。FPGAコード37がすべて、FPGA34
に読み込まれたら、FPGA34は動作を開始する。C
PU31も同様に、このコード分離器32に対して、ソ
フトウェア・コード36の読み出しを行う。ここでも、
読み出しの要求がCPU31からあったことを確認し
て、CPU用のコードを共有メモリ33から読み出し、
CPU31に対して出力する。CPU31は読み出した
ソフトウェア・コード36からの命令に基づいて、動作
を継続する。
機器の開発方法を示す概念図である。開発の対象は、C
PU43及び、FPGA等のプログラミング可能なハー
ドウェア44を同時に搭載し、これらによって内部動作
のコントロールを行っているデジタル機器における、こ
のCPUが動作の際に必要とするソフトウェア・コード
と、このプログラミング可能なハードウェアが動作の際
に必要とするハードウェア・コードである。ここでは、
開発の初期段階である上流では特にソフトウェア・ハー
ドウェアの区別なく設計を行い、初期段階に続く下流に
おいては計算機がその割り当てを最適に決定しソフトウ
ェア・コード、ハードウェア・コードをそれぞれ自動生
成する手法を採用する。
機能を決定する。次に、開発システムが、自動的に、ユ
ーザが決定した機能をソフトウェアの役割38とハード
ウェアの役割39への振り分けを行う。また、それぞ
れ、原始コードとして、ソフトウェアのソースコード4
0、ハードウェアのソースコード41が生成される。こ
こまでは、図9と同じく、従来通りの手法である。特別
な場合として、ソフトウェアとハードウェアを同時に記
述できる言語を使用するなどして、この時点でもソフト
ウェアとハードウェアは同一のソースコードなどの設計
資源であっても良い。いうまでもなく、この場合も、本
発明の実施例の範囲内である。
ソースコード40、ハードウェアのソースコード41の
両方に対応しており、ソフトウェアのソースコード4
0、ハードウェアのソースコード41はそれぞれ、同時
にコンパイルすることができる。ソフトウェアのオブジ
ェクト・コードとハードウェアのオブジェクト・コード
は、別々に生成されるのではなく、一体のオブジェクト
・コード42となって生成される。言いかえれば、本発
明の開発方法によると、ユーザが開発対象の機能を決定
すれば、その後は機械的に処理され、ソフトウェア・ハ
ードウェアの情報が一体となった、ただ1つのオブジェ
クト・コードが生成される。この自動的な過程において
は、ユーザから見ればブラックボックスとして機能して
おり、ユーザは何もすることなく、ユーザの指定した機
能のうち、どの部分がソフトウェアで実現するのか、逆
に、どの部分がハードウェアで実現するのかをまったく
気にすることなく、開発が進んでいくことになる。
ソフトウェア・ツール等からなる開発システムは、図3
に示すようなソフトウェア・コード23とハードウェア
・コード24とが同一のメモリ領域上に共存して保存さ
れている一体化コードを生成するものとする。この開発
システムは、次のツール群によって構成される。すべ
て、ソフトウェアによって実現されていて、パソコンの
ようなホスト上で実行することができる。この場合も、
これらのツールは、ソフトウェアによって実現されてい
るものとする。
ドウェア,ソフトウェアに振り分ける最適化ツールAで
ある。これにより生成されるものは、最適な記述方法に
よって、データの形式は変わってくることが予想される
が、例としては、フローチャート等が挙げることができ
る。次に、それぞれに振り分けられた機能(フローチャ
ート)からソースコードを生成するソースコード生成ツ
ールBである。これにより生成されるものはソースコー
ドである。このソースコードを記述している言語も、タ
ーゲットによって最適なものが選択されるが、具体的に
は、C言語及び、HDLを挙げることができる。次に、
ソースコードをコンパイルしてそれぞれのオブジェクト
・コードを生成するコンパイラ・ツールCがある。これ
らのオブジェクト・コードは、対象となるFPGA,C
PUが直接実行するもので、この形式は、これらの種別
に依存する。
るツールDがある。ここでは、図3に示す形でハードウ
ェア・コードとソフトウェア・コードを一体化させよう
としている。ソフトウェアのデータの一部として、ハー
ドウェア・コードを内包し、CPUがFPGAにこのハ
ードウェア・コードを入力する手法である。
よって生成されたハードウェア・オブジェクト・コード
を、データとして用意しておく。次に、ソフトウェア部
分に関して、この時点ではコンパイラにかけられていな
いものとする。ここで、CPUがこのデータをFPGA
に入力するソフトウェア・モジュールが必要になるが、
これをこの開発システムが作成し、このデジタル機器の
初期化を行うソフトウェアの一部として、付け加える。
データは、このソフトウェアの一部として決まった位置
(アドレス)に添付されるものとする。このようにソフ
トウェアの中にあるハードウェア・コードデータの位置
(アドレス)は明らかであるので、CPUは初期化の際
に、開発システムが付け加えたFPGAデータ入力モジ
ュールを用いて、このデータをFPGAに入力すること
ができる。以上のようにして、ハードウェア・コード
と、ソフトウェア・コードを、一体化して生成すること
ができる。
の動作のシミュレーションを行う。これは、開発システ
ム上で(主に計算機上などで)、計算によって実機の動
作の様子を求めるものであって、実機を用意して、実際
にコードを組み込んで動作させるのではない。動作をシ
ミュレーションすることによって、まず、実際の動作状
態の確認を、実機を組み立てることなく、従って開発の
初期段階で行うことができ、設計上の問題点を比較的早
期に発見することができる。また、動作状態をこの段階
で確認し、その際得られた、実機の処理能力(実機の動
作スピード)や、コスト(コードの大きさ)等の情報
を、今後に反映にすることができる。
の要求仕様に対して、実機の動作スピードに不安がある
ことと、FPGAコードの大きさにまだ余裕があること
がわかったとする。一般に、ソフトウェアによる処理
と、ハードウェアによる処理は、スピードとコストにお
いてトレードオフの関係にある。ソフトウェアは、ハー
ドウェアよりも部品点数を必要としない分、コストがか
からないが、処理が遅くなる傾向がある。また逆に、ハ
ードウェアは、処理が速いが、その部品点数分、コスト
が高くなる。この場合、FPGAコードのサイズがあま
り大きくなりすぎると、FPGAをより大規模なものに
交換する必要が生じる。先程のシミュレーションの結果
明らかになった上記の問題点を解決するために、ソフト
ウェア・ハードウェアの振り分けを再度行う。問題点
は、実機の処理能力が十分でないことであって、FPG
Aコードの大きさにまだ余裕があることがわかっている
ので、振り分けは、ソフトウェアの負担を減らし、逆に
ハードウェアの負担を増やす方向で行う。これは、ソフ
トウェア・ハードウェアの振り分けを、処理能力を基準
に行っているものである。逆の場合もあって、処理能力
は要求に対して十分でありながら、今後の拡張を考える
と、FPGAコードのサイズが大きすぎるという場合に
は、ハードウェアの負担を減らし、ソフトウェアの負担
を増やすことになる。この場合には、ソフトウェア・ハ
ードウェアの振り分けを、コードサイズを基準に行って
いるものである。
動作検証(テスト)や、動作に問題が出た場合の原因究
明(デバッグ)の様子を示す概念図である。図7による
と、説明のためにハードウェア・コード45とソフトウ
ェア・コード48はまったくの別々のように示されてい
るが、言うまでもなく、これは、図6における一体のオ
ブジェクト・コード42として、一体で生成されるもの
である。
条件の入力があった場合に、そのFPGA51の機能を
停止させて、同時に、その入力があったことと、そのと
きのFPGA51内部の状態を外部に通知させ、また、
その時点での、CPU56が使用しているメモリ上のデ
ータを参照したい、と考えているものとする。
条件で停止するのか、通知する必要がある。本発明の開
発方法で生成されたハードウェア・コード45には、動
作に必要なもの以外にも、この動作検証の際に必要な情
報が含まれている。以降、この明細書の中では、説明の
ために、この情報のことをハードウェア・デバッグ・コ
ード47と呼ぶことにする。また、このハードウェア・
デバッグ・コード47でない、本来動作のために必要な
ハードウェア・コードを、ハードウェア・動作コード4
6と呼ぶことにする。ここでは、その停止させたい入力
条件を、ハードウェア・デバッグ・コード47として、
ハードウェア・コード45の中に含ませている。いま、
この両方が含まれたハードウェア・コード45が、FP
GA51に入力されたとすると、FPGA51は、どの
ような条件で停止するべきであるのか、この時点で知る
ことになる。ここで、動作の検証のために、ユーザがこ
の製品の動作を開始させる。
ければならない。このFPGA51には、実際の動作に
必要な通常論理部分52だけでなく、デバッグ用の機能
53も搭載されている。この場合には、常にFPGA自
身の入力を監視して、ある条件の場合に通常論理部分5
2に対して停止を指令し、また、外部にもこれを通知す
る機能を持っている。注意されたいのは、この機能は、
FPGA自身のプログラミング機能よってユーザが設計
することで実現したものでもよく、また、逆に、ユーザ
が設計できない部分、すなわち、初めから備わっている
機能によって実現したものであってもよい点である。後
者の場合においては、FPGA51の一部の端子は、初
めから機能が固定であることになる。
うになる。このデバッグ用の機能53が、いま、停止条
件の入力があったことを検知したとすると、この機能は
直ちにFPGA自身の通常論理部分52に停止を指令
し、また、FPGAの外部に対して、停止条件が発生し
たことを通知する。この回路においては、FPGA51
のデバッグ機能出力端子のうちの1つの端子54が、C
PU56のインタラプト入力端子55に接続されてい
る。停止条件が発生した場合、CPU56は、このイン
タラプト入力端子55から入力を受ける。ソフトウェア
・コード48においても、同様に、基本動作に必要な部
分と、動作検証の際に必要な情報が含まれている。この
ソフトウェア・デバッグ・コード50の情報から、上記
インタラプト入力は、停止条件が発生したことを示すこ
とを知る。CPU56は続けてこのソフトウェア・デバ
ッグ・コード50によって、メモリからデータを読み出
す。
証時に使用する、CPU58の情報や、FPGA51の
情報を読み取るツール58が装備されている。以降はこ
れをデバッグ・ツールと呼ぶことにする。CPUは、読
み出したデータを、このデバッグ・ツール58を通じて
ユーザに通知する。上記の停止条件が発生したら、FP
GA51のデバッグ機能53によりデバッグ用の出力端
子59から、内部状態を示す情報を出力する。例えば、
FPGA内部のレジスタの値や、内部論理回路でどんな
信号がやり取りされているか等の情報を出力する。
れており、このコネクタ57からこのデバッグ情報を取
り込むことができる。デバッグ・ツール58側で、この
コネクタ57からの出力を監視している。このデバッグ
・ツール58は、このコネクタ57から出力されるデバ
ッグ情報の形式に対応しており、この開発システムを用
いるユーザは、この停止条件が発生したとき、このFP
GAの内部状態がどうなっているのかを確認、分析し
て、動作の検証を行うことができる。
1の発明においては、ハードウェア・コードとソフトウ
ェア・コードとを同じメモリ領域を共有することによっ
て、それぞれのコード別にメモリを用意する必要がな
く、デジタル機器を製造する上で部品点数を減らすこと
ができ、コストダウン、生産性や信頼性等の向上につな
がる。
プログラミング可能なハードウェアが初めからDMA
(ダイレクト・メモリ・アクセス)機能を備えているの
でFPGA等が初めから汎用のメモリに対する読み出し
・書き込みが可能となり、また、使用するハードウェア
・コードの保存に汎用のメモリを使用することが可能と
なるので、デジタル機器を製造する上で、価格の低い部
品を使用でき、コストダウンになる。
領域内でハードウェア・コードとソフトウェア・コード
の2つのコードを保存する際、一方のコードを先頭番地
からアドレスの大きくなる方向へ書き、また他方のコー
ドを逆に最終番地からアドレスの小さくなる方向へ書き
込むことによって、両方のコードがメモリ領域を有効活
用することができ、また、両方のコードの開始番地がど
こにあるのかわからないということがなく、一意に求め
ることができる。
領域上の保存されているコードをCPU及びFPGA等
のプログラミング可能なハードウェアFPGAに振り分
ける際に、CPU及びFPGA等のプログラミング可能
なハードウェアが直接関与せず、別のコード分離器がこ
の振り分けを行うことによって、CPU及びFPGA等
のプログラミング可能なハードウェアは、それぞれ、自
分用のコードがどこにあるのか、また、どういう構造に
なっているのか関係がなく、このコードの配置を変更し
た場合に、影響がCPU及びFPGA等のプログラミン
グ可能なハードウェアに及ばないので、設計者はこれら
のことに関係なく設計ができる。
領域上にそれぞれの動作コードが保存されているデジタ
ル機器において、CPUが初めにソフトウェア・コード
をそのメモリ領域から読み出し、その後にハードウェア
・コードを、CPU自身が読み出して、FPGA等のプ
ログラミング可能なハードウェアに対し入力すること
で、CPU自身がソフトウェア・コードを読み出すだけ
でなく、ハードウェア・コードも読み出す管理をするこ
とで、FPGAが読み出すハードウェア・コード専用の
メモリがそもそも必要でなくなり、このような製品を構
成する上で、部品点数を減らすことができ、コストダウ
ン、生産性や信頼性等の向上につながる。
プログラミング可能なハードウェア自身に、デバッグ用
の機能が装備されていることで、自分自身の動作を常に
監視することができ、このハードウェアが、想定されて
いない動作をした場合などでも、これを直ちに検知する
ことができ、問題の特定を早めることができる。
ジタル機器で、デバッグ機能を持つFPGA等のプログ
ラミング可能なハードウェアから出力される信号を参照
したり、逆に信号を入力したりするためのコネクタを装
備していることで、この開発システムを用いるユーザー
は、このFPGAの内部状態がどうなっているのかを直
接確認、分析できるので、動作の検証をより厳密に行う
ことができる。
ジタル機器を開発する際、トップダウン設計の一種とし
て、開発段階の初期(上流)では特にソフトウェア・ハ
ードウェアの区別なく設計を行い、下流においては計算
機がその割り当てを最適に決定しソフトウェア・コー
ド、ハードウェア・コードをそれぞれ自動生成する手法
を取る場合、ソフトウェア・ツール等からなる開発シス
テムが、ソフトウェア・コード、ハードウェア・コード
を一体で生成することで、ユーザが開発対象の機能を決
定すれば、その後は機械的に処理され、ソフトウェア、
ハードウェアの情報が一体となった、ただ1つのオブジ
ェクト・コードが生成され、従って、この自動的な過程
においては、ユーザから見ればブラックボックスとして
機能しており、ユーザは何もすることなく、ユーザの指
定した機能のうち、どの部分がソフトウェアで実現する
のか、逆に、どの部分がハードウェアで実現するのかを
まったく気にすることなく、開発を進めることができ
る。また、別々に生成する場合より、そのコードの管理
が容易になり、コードの使い方を間違ってしまうことも
なく、開発時の信頼性が向上する。
ジタル機器を開発するための、ソフトウェア・ツール等
の開発システムが生成する、ソフトウェア・コード及び
ハードウェア・コードが一体になったコードに、その機
器が動作をするために必要な情報だけでなく、テスト及
びデバッグ用のコードを付加して生成することにより、
FPGA等のプログラミング可能なハードウェアに対し
て、どのようなテストをするのか動作検証などの設定が
できるようになる。
開発システムにおいて、開発対象の実機を実際に動作さ
せるのではなく、実機の動作を計算機上等でシミュレー
ションすることができる機能を有することで、実機を組
み立てて、実際に動作させることなく、計算によっての
み動作の様子を確認することができるので、開発のコス
トを下げることができ、また、問題点を開発の早期に発
見することができる。
の開発システムにおいて、トップダウン設計法の一種と
して、開発段階の初期(上流)で特にソフトウェア・ハ
ードウェアの区別なく機能の設計を行い、下流において
は計算機がその割り当てを最適に決定する手法を取る開
発システムが、上記動作シミュレーション結果に基づ
き、ソフトウェア部分によって実現する機能と、ハード
ウェア部分によって実現する機能の切り分けを、自動で
行うことで、機能の振り分けの際に、ユーザがその判断
に必要な知識及び経験が必要でなくなり、誤りや漏れが
なくなる。
の開発システムにおいて、上記シミュレーション結果に
基づくハードウェア部分、ソフトウェア部分の切り分け
を実機のシミュレーション結果から得られた、実機の処
理能力を基準に行うことで、実機に対して十分な処理速
度を確保することができる。
の開発システムにおいて、上記シミュレーションに基づ
くハードウェア部分、ソフトウェア部分の切り分けを実
機のシミュレーション結果から得られた、各部分のコー
ドサイズを基準に行うことから、実機に対して十分なコ
ードサイズの余裕を確保しておくことができ、今後の拡
張などにその分の余裕を回すことができる。
示す図である。
る。
示す図である。
示す図である。
成された各ソースコードを、一体のオブジェクト・コー
ドとして出力する様子を示す図である。
スト及びデバッグの様子を示す図である。
るデジタル機器の構成を示す図である。
て、開発者が指定した機能をハードウェアとソフトウェ
アに自動的に振り分け、それぞれのソースコードを生成
する様子を示す図である。
て、これまで生成されたハードウェアとソフトウェアの
それぞれのソースコードを、別々に処理している様子を
表す図である。
4,37,45…ハードウェア(FPGA)・コード、
3,25,30…デジタル機器、4,18,26,3
6,31,43,56…CPU、5…ソフト用メモリ、
6,21,28,34,44,51…FPGA、7…F
PGA用メモリ、8,29,35…バス、9…機能イメ
ージ、10,11…大まかに分割された機能、12,3
8…ソフトウェアによって実現する機能、13,39…
ハードウェアによって実現する機能、14,16…ソフ
トのソースコード、15,19…ハードのソースコー
ド、20…ハードウェア・オブジェクト・コード、17
…ソフトウェア・オブジェクト・コード、22,42…
一体化されたコード、27,33…共有メモリ、32…
コード分離器、40…ソフトウェア・ソース・コード、
41…ハードウェア・ソース・コード、46…ハードウ
ェア・動作・コード、47…ハードウェア・デバッグ・
コード、49…ソフトウェア・動作・コード、50…ソ
フトウェア・デバッグ・コード、52…FPGA通常論
理機能、53…FPGAデバッグ機能、54,59…デ
バッグ情報出力端子、55…外部インタラプト入力端
子、57…コネクタ、58…デバッグ・ツール。
Claims (13)
- 【請求項1】 CPU及びFPGA等のプログラミング
可能なハードウェアを備え、これらによって内部動作の
コントロールを行うデジタル機器において、前記CPU
が動作する際に必要とするソフトウェア・コードと、前
記FPGA等のプログラミング可能なハードウェアが動
作する際に必要とするハードウェア・コードが、機器内
部の、同一のメモリ領域上に共存して保存されているこ
とを特徴とするデジタル機器。 - 【請求項2】 前記FPGA等のプログラミング可能な
ハードウェア自身には、初めからDMA(ダイレクト・
メモリ・アクセス)機能を有していることを特徴とする
請求項1に記載のデジタル機器。 - 【請求項3】 前記同一のメモリ領域内に前記ソフトウ
ェア・コードとハードウェア・コードの2つのコードを
保存する際、一方のコードを先頭番地からアドレスの大
きくなる方向へ書き込み、他方のコードを逆に最終番地
からアドレスの小さくなる方向へ書き込むことを特徴と
する請求項1または2に記載のデジタル機器。 - 【請求項4】 前記CPU及び前記FPGA等のプログ
ラミング可能なハードウェアのそれぞれが、前記ソフト
ウェア・コードとハードウェア・コードを振り分ける際
に、前記CPU及び前記FPGA等のプログラミング可
能なハードウェアが直接関与せず、コード分離器が前記
振り分けを行うことを特徴とする請求項1乃至3のいず
れかに記載のデジタル機器。 - 【請求項5】 前記CPUが初めにソフトウェア・コー
ドを前記メモリ領域から読み出し、その後CPUがハー
ドウェア・コードを読み出し、前記FPGA等のプログ
ラミング可能なハードウェアに対し出力することを特徴
とする請求項1乃至4のいずれかに記載のデジタル機
器。 - 【請求項6】 前記FPGA等のプログラミング可能な
ハードウェアは、デバッグ用の機能を有していることを
特徴とする請求項1に記載のデジタル機器。 - 【請求項7】 前記デバッグ機能を有するFPGA等の
プログラミング可能なハードウェアから出力される信号
を参照したり、逆に信号を入力したりするためのインタ
フェースを備えていることを特徴とする請求項6に記載
のデジタル機器。 - 【請求項8】 CPU及びFPGA等のプログラミング
可能なハードウェアを備え、これらによって内部動作の
コントロールを行うデジタル機器の開発方法において、
ソフトウェア・ツール等からなる開発システムが、前記
CPUが動作の際に必要とするソフトウェア・コード
と、前記FPGA等のプログラミング可能なハードウェ
アが動作の際に必要とするハードウェア・コードとを一
体で生成することを特徴とする開発方法。 - 【請求項9】 前記一体で生成されるソフトウェア・コ
ードとハードウェア・コードには、デジタル機器が動作
をするために必要な情報だけでなく、テスト及びデバッ
グ用のコードを付加して生成することを特徴とする請求
項8に記載の開発方法。 - 【請求項10】 開発したデジタル機器の動作検証や動
作に問題が生じた場合の原因を究明するに際し、開発対
象の実機を実際に動作させるのではなく、実機の動作を
計算機上等でシミュレーションすることができる機能を
有することを特徴とする請求項9に記載の開発方法。 - 【請求項11】 開発段階の上流でソフトウェア、ハー
ドウェアの区別なく機能の設計を行い、下流で計算機が
その割り当てを最適に決定するトップダウン設計法を採
用した開発方法において、実機の動作を計算機上でシミ
ュレーションし、該シミュレーション結果に基づきソフ
トウェア部分によって実現する機能と、ハードウェア部
分によって実現する機能の切り分けを、自動的に行うこ
とを特徴とする請求項10に記載の開発方法。 - 【請求項12】 上記シミュレーション結果に基づくハ
ードウェア部分、ソフトウェア部分の切り分けを、実機
のシミュレーション結果から得られた、実機の処理能力
を基準に行うことを特徴とする請求項11に記載の開発
方法。 - 【請求項13】 上記シミュレーション結果に基づくハ
ードウェア部分、ソフトウェア部分の切り分けを、実機
のシミュレーション結果から得られた、各部分のコード
サイズを基準に行うことを特徴とする請求項11に記載
の開発方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11086484A JP2000284945A (ja) | 1999-03-29 | 1999-03-29 | デジタル機器及びその開発方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11086484A JP2000284945A (ja) | 1999-03-29 | 1999-03-29 | デジタル機器及びその開発方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2000284945A true JP2000284945A (ja) | 2000-10-13 |
Family
ID=13888263
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP11086484A Pending JP2000284945A (ja) | 1999-03-29 | 1999-03-29 | デジタル機器及びその開発方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2000284945A (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006011840A (ja) * | 2004-06-25 | 2006-01-12 | Mitsubishi Electric Corp | 組み込みシステム |
US7200735B2 (en) | 2002-04-10 | 2007-04-03 | Tensilica, Inc. | High-performance hybrid processor with configurable execution units |
JP2012133756A (ja) * | 2010-11-10 | 2012-07-12 | Src Computers Inc | ヘテロジニアス黙示的及び明示的プロセッシング要素の計算の一体化のためのシステム及び方法 |
JP2020074192A (ja) * | 2012-11-09 | 2020-05-14 | コーヒレント・ロジックス・インコーポレーテッド | 多重プロセッサシステムのためのリアルタイム分析及び制御 |
JP7064060B1 (ja) | 2019-04-23 | 2022-05-09 | アーバー・カンパニー・エルエルエルピイ | 二重機能セルアレイを再構成するためのシステムおよび方法 |
US11435800B2 (en) | 2019-04-23 | 2022-09-06 | Arbor Company, Lllp | Systems and methods for reconfiguring dual-function cell arrays |
US11463524B2 (en) | 2020-06-29 | 2022-10-04 | Arbor Company, Lllp | Mobile IoT edge device using 3D-die stacking re-configurable processor module with 5G processor-independent modem |
-
1999
- 1999-03-29 JP JP11086484A patent/JP2000284945A/ja active Pending
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7200735B2 (en) | 2002-04-10 | 2007-04-03 | Tensilica, Inc. | High-performance hybrid processor with configurable execution units |
JP2006011840A (ja) * | 2004-06-25 | 2006-01-12 | Mitsubishi Electric Corp | 組み込みシステム |
JP2012133756A (ja) * | 2010-11-10 | 2012-07-12 | Src Computers Inc | ヘテロジニアス黙示的及び明示的プロセッシング要素の計算の一体化のためのシステム及び方法 |
US8930892B2 (en) | 2010-11-10 | 2015-01-06 | SRC Computers, LLC | System and method for computational unification of heterogeneous implicit and explicit processing elements |
US11720479B2 (en) | 2012-11-09 | 2023-08-08 | Coherent Logix, Incorporated | Real time analysis and control for a multiprocessor system |
JP2020074192A (ja) * | 2012-11-09 | 2020-05-14 | コーヒレント・ロジックス・インコーポレーテッド | 多重プロセッサシステムのためのリアルタイム分析及び制御 |
JP7053691B2 (ja) | 2012-11-09 | 2022-04-12 | コーヒレント・ロジックス・インコーポレーテッド | 多重プロセッサシステムのためのリアルタイム分析及び制御 |
JP7064060B1 (ja) | 2019-04-23 | 2022-05-09 | アーバー・カンパニー・エルエルエルピイ | 二重機能セルアレイを再構成するためのシステムおよび方法 |
US11435800B2 (en) | 2019-04-23 | 2022-09-06 | Arbor Company, Lllp | Systems and methods for reconfiguring dual-function cell arrays |
JP2022525557A (ja) * | 2019-04-23 | 2022-05-17 | アーバー・カンパニー・エルエルエルピイ | 二重機能セルアレイを再構成するためのシステムおよび方法 |
US11797067B2 (en) | 2019-04-23 | 2023-10-24 | Arbor Company, Lllp | Systems and methods for reconfiguring dual-function cell arrays |
US11463524B2 (en) | 2020-06-29 | 2022-10-04 | Arbor Company, Lllp | Mobile IoT edge device using 3D-die stacking re-configurable processor module with 5G processor-independent modem |
US11895191B2 (en) | 2020-06-29 | 2024-02-06 | Arbor Company, Lllp | Mobile IoT edge device using 3D-die stacking re-configurable processor module with 5G processor-independent modem |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0814404B1 (en) | Debugging apparatus for debugging a program | |
US5838948A (en) | System and method for simulation of computer systems combining hardware and software interaction | |
CN112580295B (zh) | 多核SoC芯片的自动化验证方法、系统及装置 | |
US9141747B1 (en) | System level tools to support FPGA partial reconfiguration | |
US8412918B1 (en) | Booting mechanism for FPGA-based embedded system | |
US7584456B1 (en) | Method and apparatus for debugging embedded systems having read only memory | |
JPH0769853B2 (ja) | 回路内エミュレータ | |
EP1172730A2 (en) | One-chip system large-scale integrated circuit including processor circuit and its pheripheral circuits | |
US5832251A (en) | Emulation device | |
JPH11513512A (ja) | ディジタル信号プロセッサの製造方法 | |
CN106909362A (zh) | Bmc固件生成的方法和装置、bmc系统启动的方法和装置 | |
US7308631B2 (en) | Wrapper serial scan chain functional segmentation | |
CN112286750A (zh) | 一种gpio验证方法、装置、电子设备和介质 | |
JP2000284945A (ja) | デジタル機器及びその開発方法 | |
CN114138360B (zh) | DSP在Flash上的多核烧写启动方法及系统 | |
US9805152B1 (en) | Compilation of system designs | |
CN107607853B (zh) | 芯片的调试方法、装置、存储介质和处理器 | |
CN114546746A (zh) | 一种芯片调试的方法、装置、电子设备及存储介质 | |
US7565632B2 (en) | Behavioral synthesizer system, operation synthesizing method and program | |
US6446251B1 (en) | Method and apparatus for socket-based design with reusable-IP | |
CN113868046A (zh) | 一种pad控制单元的功能验证方法、系统及相关组件 | |
US20070101220A1 (en) | Systems and methods for accessing input/output devices | |
US20230289500A1 (en) | Method and system for building hardware images from heterogeneous designs for eletronic systems | |
JPH08272770A (ja) | マイクロコントローラディベロップメントシステム | |
US20210173994A1 (en) | Method and system for viewing simulation signals of a digital product |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20041029 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041214 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050207 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050322 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20050712 |