(57)【要約】【課題】ＦＰＧＡ及びプロセッサが実行中にＩ／Ｏチャネルと通信することができ、且つ、ハードウェアコンポーネントの利用可能なＩ／ＯチャネルをＦＰＧＡ及びプロセッサに自由に分配することができる、ハードウェアコンポーネントのフレキシブルな使用を実現する方法を提供する。【解決手段】ＦＰＧＡ（３）による操作のための、Ｉ／Ｏチャネル（２）の第１のサブセット（９）を選択するステップと、ＦＰＧＡにおいて実行するための第１のアプリケーションを作成するステップと、プロセッサ（４）による操作のための、Ｉ／Ｏチャネルの第２のサブセット（１０）を選択するステップと、プロセッサにおいて実行するための第２のアプリケーションを作成するステップとを備えており、第１のアプリケーションを作成するステップは、Ｉ／Ｏチャネルの第２のサブセットを通信インタフェース（５）に接続するためのコードの作成を含む。【選択図】図２
2014216031.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサ（４）と、該プロセッサ（４）と通信インタフェース（５）を介して接続されているＦＰＧＡ（３）と、該ＦＰＧＡ（３）に接続されている複数のＩ／Ｏチャネル（２）とを備えている、測定システム、開ループ制御システム又は閉ループ制御システムのハードウェアコンポーネント（１）のためのソフトウェアを作成するための方法において、
前記ＦＰＧＡ（３）による操作のための、前記Ｉ／Ｏチャネル（２）の第１のサブセット（９）を選択するステップと、
前記ＦＰＧＡ（３）において実行するための第１のアプリケーションを作成するステップと、
前記プロセッサ（４）による操作のための、前記Ｉ／Ｏチャネルの第２のサブセット（１０）を選択するステップと、
前記プロセッサ（４）において実行するための第２のアプリケーションを作成するステップとを備えており、
前記第１のアプリケーションを作成するステップは、前記Ｉ／Ｏチャネル（２）の前記第２のサブセット（１０）を前記通信インタフェース（５）に接続するためのコードの作成を含む、
ことを特徴とする、方法。
【請求項２】
前記Ｉ／Ｏチャネル（２）の前記第２のサブセット（１０）を前記通信インタフェース（５）に接続するためのコードを作成するステップは、前記第２のサブセット（１０）の複数のＩ／Ｏチャネル（２）の内の少なくとも一つのＩ／Ｏチャネルと前記通信インタフェース（５）との間において信号処理を実施するためのコードの作成を含む、請求項１に記載の方法。
【請求項３】
更に、アプリケーションモデルを作成するステップを備えており、
前記第１のアプリケーションを作成するステップは、コードのモデルベースの自動的な作成を含む、請求項１又は２に記載の方法。
【請求項４】
前記Ｉ／Ｏチャネル（２）の前記第２のサブセット（１０）を前記通信インタフェース（５）に接続するためのコードを作成するステップは、複数のＩ／Ｏチャネル（２）の内の前記第２のサブセット（１０）の一部であるＩ／Ｏチャネル（２）を接続するためのコードの自動的な作成を含む、請求項３に記載の方法。
【請求項５】
前記Ｉ／Ｏチャネル（２）の前記第２のサブセット（１０）を前記通信インタフェース（５）に接続するためのコードを作成するステップは、複数のＩ／Ｏチャネル（２）の内の前記第２のサブセット（１０）の一部であるＩ／Ｏチャネル（２）を接続するための、事前に合成されたコードの提供を含む、請求項３又は４に記載の方法。
【請求項６】
前記第１のアプリケーションを作成するステップは、前記第１のサブセット（９）のＩ／Ｏチャネル（２）の識別情報の提供を含む、請求項３乃至５のいずれか一項に記載の方法。
【請求項７】
前記第１のアプリケーションを作成するステップは、前記第２のサブセット（１０）のＩ／Ｏチャネル（２）の識別情報の受信を含む、請求項３乃至６のいずれか一項に記載の方法。
【請求項８】
更に、アプリケーションモデルを作成するステップを備えており、
前記第２のアプリケーションを作成するステップは、コードのモデルベースの自動的な作成を含む、請求項１乃至７のいずれか一項に記載の方法。
【請求項９】
前記第２のアプリケーションを作成するステップは、前記第２のサブセット（１０）のＩ／Ｏチャネル（２）の識別情報の提供を含む、請求項８に記載の方法。
【請求項１０】
前記第２のアプリケーションを作成するステップは、前記第１のサブセット（９）のＩ／Ｏチャネル（２）の識別情報の受信を含む、請求項８又は９に記載の方法。
【請求項１１】
プロセッサ（４）と、該プロセッサ（４）と通信インタフェース（５）を介して接続されているＦＰＧＡ（３）と、該ＦＰＧＡ（３）に接続されている複数のＩ／Ｏチャネル（２）とを備えている、測定システム、開ループ制御システム又は閉ループ制御システムのハードウェアコンポーネント（１）を運転するための方法において、
請求項１乃至１０のいずれか一項に記載の方法に従い作成されたソフトウェアをロードするステップと、
前記ソフトウェアを実行するステップとを備えており、
前記ソフトウェアのロードは、前記第１のアプリケーションの前記ＦＰＧＡ（３）へのロードと、前記第２のアプリケーションの前記プロセッサ（４）へのロードとを含む、
ことを特徴とする、方法。
【請求項１２】
更に、前記ＦＰＧＡ（３）を部分的にリコンフィギュレーションするステップを備えている、請求項１１に記載の方法。
【請求項１３】
プロセッサ（４）と、該プロセッサ（４）と通信インタフェース（５）を介して接続されているＦＰＧＡ（３）と、該ＦＰＧＡ（３）に接続されている複数のＩ／Ｏチャネル（２）とを備えている、測定システム、開ループ制御システム又は閉ループ制御システムのハードウェアコンポーネント（１）において、
前記ハードウェアコンポーネント（１）は、請求項１１又は請求項１２に記載の方法を実行するように構成されていることを特徴とする、ハードウェアコンポーネント（１）。
【請求項１４】
適切なデータ処理装置（６）にロード及び実行された後に、請求項１乃至１０のいずれか一項に記載の方法を実施する、コンピュータ実行可能な命令を備えているコンピュータプログラム。
【請求項１５】
プログラミング可能なデータ処理装置（６）において請求項１乃至１０のいずれか一項に記載の方法が実行されるように、前記データ処理装置（６）と協働することができる、電子的に読み出し可能な制御信号を有しているディジタル記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサと、そのプロセッサと通信インタフェースを介して接続されているＦＰＧＡと、そのＦＰＧＡに接続されている複数のＩ／Ｏ（入出力）チャネルとを備えている、測定システム、開ループ制御システム又は閉ループ制御システムのハードウェアコンポーネントのためのソフトウェアの作成方法に関する。同様に、本発明は、適切なデータ処理装置にロード及び実行された後に、上記の方法のステップを実施する、コンピュータ実行可能な命令を備えているコンピュータプログラム製品、並びに、上記の方法をプログラミング可能なデータ処理装置において実行できるように、データ処理装置と協働することができる、電子的に読み出し可能な制御信号を有しているディジタル記憶媒体に関する。更に本発明は、その種のハードウェアコンポーネントの運転方法並びに本方法を実行するためのハードウェアコンポーネントに関する。
【背景技術】
【０００２】
複雑で動的モデルのリアルタイムシミュレーションは、時間的な基本条件自体が厳格であることに基づき、現代の計算ノードに高い要求を課している。その種のモデルは例えば自動車のハードウェア・イン・ザ・ループ（ＨｉＬ）において使用され、そこには高速の制御回路が接続されなければならない。これは例えば、燃料消費量又は排ガスの低減において一層重要な役割を担うシリンダ内圧センサをシミュレーションする場合である。しかしながら、高いダイナミクスを有しいている制御区間においても、例えば電気モータにおいても、短い周期時間及び僅かな待ち時間が不可欠である。それらをＣＰＵベースのシミュレーションで実現することは実際のところほぼ不可能である。
【０００３】
フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ：Field Programmable Gate Array）は、モデルの動的な部分の計算を担うことによって、リアルタイムシミュレーションにおいてハードウェアコンポーネントを支援することができる。高いフレキシビリティまた複数の信号の並列処理を実現できることから、ＦＰＧＡの使用によって、厳格なリアルタイム要求も容易に満たすことができる。ＦＰＧＡは一般的に、ＣＰＵのためのハードウェアアクセラレータとして使用することができる。
【０００４】
上述のハードウェアコンポーネントは、従来技術においては、二つの運転モードで使用される。第１の運転モードにおいては、ＦＰＧＡに固定の機能がロードされ、それによってＦＰＧＡがコンフィギュレートされる。その固定の機能を介して、通信インタフェースにおける固定の機能環境がＩ／Ｏチャネルに提供され、それによって、Ｉ／Ｏチャネルをプロセッサにおけるアプリケーションにおいて使用することができる。ユーザはこの第１の運転モードにおいては専ら、モデルベースで作成されたプロセッサアプリケーション、例えばＲＴＩブロックセットを用いて作業する。アプリケーションは完全にプロセッサにおいて実行され、また固定のＦＰＧＡ機能を介してＩ／Ｏチャネルにアクセスする。
【０００５】
第２の運転モードにおいては、ユーザによってモデルベースで作成されたＦＰＧＡコードがＦＰＧＡにロードされ、このＦＰＧＡコードがＦＰＧＡにおいてＩ／Ｏチャネルを使用する。このＦＰＧＡコードは例えば、ＦＰＧＡにおける制御モデルであるか、又はＦＰＧＡにおけるＩ／Ｏチャネルの前処理を表す。この運転モードにおいては、プロセッサはＩ／Ｏチャネルにアクセスしない。ユーザはこの運転モードにおいて、モデルベースで作成されたＦＰＧＡアプリケーション、例えばＲＴＩ  ＦＰＧＡプログラミング・ブロックセットを用いて作業する。プロセッサにおいては更に、ＦＰＧＡアプリケーションと通信することができるプロセッサアプリケーションを実行することができる。もっとも、プロセッサアプリケーションは、固定の機能環境及び所定のインタフェースを有するＩ／Ｏチャネルを使用することはできない。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従って、上述の従来技術を基礎とする本発明の課題は、ＦＰＧＡ及びプロセッサが実行中にＩ／Ｏチャネルと通信することができ、且つ、ハードウェアコンポーネントの利用可能なＩ／ＯチャネルをＦＰＧＡ及びプロセッサに自由に分配することができる、ハードウェアコンポーネントのフレキシブルな使用を実現する、冒頭で述べたような方法を提供することである。
【課題を解決するための手段】
【０００７】
本発明によれば、この課題は、独立請求項の特徴部分に記載されている構成によって解決される。本発明の有利な実施の形態は、従属請求項に記載されている。
【０００８】
従って、本発明によれば、プロセッサと、そのプロセッサと通信インタフェースを介して接続されているＦＰＧＡと、そのＦＰＧＡに接続されている複数のＩ／Ｏチャネルとを備えている、測定システム、開ループ制御システム又は閉ループ制御システムのハードウェアコンポーネントのためのソフトウェアの作成方法が提供され、この作成方法は、ＦＰＧＡによる操作のためのＩ／Ｏチャネルの第１のサブセットを選択するステップと、ＦＰＧＡにおいて実行するための第１のアプリケーションを作成するステップと、プロセッサによる操作のためのＩ／Ｏチャネルの第２のサブセットを選択するステップと、プロセッサにおいて実行するための第２のアプリケーションを作成するステップとを備えており、第１のアプリケーションを作成するステップは、Ｉ／Ｏチャネルの第２のサブセットを通信インタフェースに接続するためのコードの作成を含んでいる。
【０００９】
即ち、本発明の基本的な着想は、二つのアプリケーション、つまりプロセッサにおいて実行されるアプリケーション並びにＦＰＧＡにおいて実行されるアプリケーションを作成し、用途に応じてＩ／Ｏチャネルを任意にそれら二つのアプリケーションに分配することである。従って、ＦＰＧＡにおける第１のアプリケーション（以下ではＦＰＧＡアプリケーションとも称する）は、そのタスクを実施するために必要とされるＩ／Ｏチャネルにのみアクセスする。残りのＩ／Ｏチャネルは通信インタフェースを介して、プロセッサにおける第２のアプリケーション（以下ではプロセッサアプリケーションとも称する）に提供される。これによって、古典的なモデルベースで作成された開ループ制御モデル、閉ループ制御モデル又は測定モデルを、モデルベースで作成されたＦＰＧＡモデルと組み合わさることができ、そのようなＦＰＧＡモデルは、ＦＰＧＡ技術に基づき、制御モデルのためのサブマイクロ秒の範囲の短いサイクル時間、又は、ハードウェアコンポーネントにおける測定用途のための非常に高性能の信号処理を実現する。
【００１０】
本方法においては、第１のサブセット及び第２のサブセットをそれぞれ必要に応じて選択することができる。択一的に、第１のサブセット及び第２のサブセットの内の一方のみが選択され、その都度の他方のサブセットが残存するＩ／Ｏチャネルのセットを形成することによって、第１のサブセット又は第２のサブセットの暗示的な選択を行うこともできる。
【００１１】
第１のサブセット又は第２のサブセットへのＩ／Ｏチャネルの選択を原則として任意の時点に行うことができる。例えば、最初にＩ／Ｏチャネルの第１のサブセットも第２のサブセットも選択することができ、それに続いて、第１のアプリケーション及び第２のアプリケーションを作成することができる。また、第１のサブセット又は第２のサブセットへのＩ／Ｏチャネルの選択を、対応する第１のアプリケーション又は第２のアプリケーションが実際に作成される前に行うことができるか、又は、第１のサブセット又は第２のサブセットへのＩ／Ｏチャネルの選択は、第１のアプリケーション又は第２のアプリケーションを作成するための各ステップのサブステップであっても良い。第１のアプリケーション及び第２のアプリケーションの作成の順序も基本的には任意である。Ｉ／Ｏチャネルはアナログ式のＩ／Ｏチャネルであるか、又はディジタル式のＩ／Ｏチャネルである。
【００１２】
本発明の有利な構成においては、Ｉ／Ｏチャネルの第２のサブセットを通信インタフェースに接続するためのコードを作成するステップは、第２のサブセットの複数のＩ／Ｏチャネルの内の少なくとも一つのＩ／Ｏチャネルと通信インタフェースとの間において信号処理を実施するためのコードの作成を含む。従って、例えば、一つのＩ／Ｏチャネルにおいて受信された入力値の前処理を、ＦＰＧＡにおける高速処理によって実施することができ、その一方で別の評価ステップをフレキシブルにプロセッサにおいて実施することができる。
【００１３】
本発明の有利な構成においては、本方法はアプリケーションモデルの作成を含み、その場合、第１のアプリケーションを作成するステップはコードのモデルベースの自動的な作成を含む。モデリングは簡単なコード生成を実現し、それによって短時間の開発サイクルが実現される。有利には、ＦＰＧＡにおける所望の機能をモデルベースでＭａｔｌａｂ又はＳｉｍｕｌｉｎｋにおいて作成するために、複数の機能ブロックが使用される。更に有利には、必要な数のＩ／Ｏチャネルがアプリケーションモデルに引き込まれ、事前に作成された機能に接続される。
【００１４】
本発明の有利な構成においては、Ｉ／Ｏチャネルの第２のサブセットを通信インタフェースに接続するためのコードを作成するステップは、複数のＩ／Ｏチャネルの内の第２のサブセットの一部であるＩ／Ｏチャネルを接続するためのコードの自動的な作成を含む。従って、ユーザは第２のサブセットのＩ／Ｏチャネルを、ＦＰＧＡアプリケーションのモデリングの際に考慮しなくて良く、それらのＩ／Ｏチャネルは例えば事前設定に応じて通信インタフェースに自動的に接続される。
【００１５】
本発明の有利な構成においては、Ｉ／Ｏチャネルの第２のサブセットを通信インタフェースに接続するためのコードを作成するステップは、複数のＩ／Ｏチャネルの内の第２のサブセットの一部であるＩ／Ｏチャネルを接続するための、事前に合成されたコードの提供を含む。事前に合成されたコードは更に、第１のアプリケーションを作成するための時間を短縮することができる。事前に合成されたコードは、ＦＰＧＡアプリケーションの一部となり、その際に、それらのコードをコンパイルする必要はない。事前に合成されたコードを別のコード要素と簡単に組み合わせることができ、このことはＦＰＧＡの種々の提供者のもとでフィット（Fitting）又は配置配線（Place & Route）と称される。続いて、コード全体をＦＰＧＡにロードすることができる。事前に合成されたコードは有利には既存のライブラリから取得される。
【００１６】
本発明の有利な構成においては、第１のアプリケーションを作成するステップは、第１のサブセットのＩ／Ｏチャネルの識別情報の提供を含む。第２のアプリケーションの作成時に、Ｉ／Ｏチャネルの選択を依然として使用可能なチャネルに制限するために、第１のサブセットの識別情報を使用することができ、このことは第２のアプリケーションの作成を簡単且つ確実に実現する。有利には、モデルベースのＦＰＧＡアプリケーション作成のためのモデリング環境が、アプリケーションモデルのためのハードウェアコンポーネントの全てのＩ／Ｏチャネルを提供する。ＦＰＧＡアプリケーションのモデリングの後に、ＦＰＧＡアプリケーションにおいては必要ないＩ／Ｏチャネルに関して、第２のアプリケーションに識別情報が提供され、これによって、第２のアプリケーションは、ＦＰＧＡアプリケーションにおいては必要ない未使用のＩ／Ｏチャネルを所期のように使用することができる。
【００１７】
本発明の有利な構成においては、第１のアプリケーションを作成するステップは、第２のサブセットのＩ／Ｏチャネルの識別情報の受信を含む。第１のアプリケーションの作成時に、Ｉ／Ｏチャネルの選択を依然として使用可能なチャネルに制限するために、第２のサブセットの識別情報を使用することができ、このことは第１のアプリケーションの作成を簡単且つ確実に実現する。第２のアプリケーションにおいて必要ないＩ／Ｏチャネルに関して、第１のアプリケーションに識別情報を提供することができ、これによって、第１のアプリケーションは、プロセッサアプリケーションにおいては必要ない未使用のＩ／Ｏチャネルを所期のように使用することができる。
【００１８】
本発明の有利な構成においては、本方法は更にアプリケーションモデルを作成するステップを含み、その場合、第２のアプリケーションを作成するステップはコードのモデルベースの自動的な作成を含む。モデリングは簡単なコード生成を実現し、それによって短時間の開発サイクルが実現される。有利には、プロセッサにおける所望の機能をモデルベースでＭａｔｌａｂ又はＳｉｍｕｌｉｎｋにおいて作成するために、複数の機能ブロックが使用される。更に有利には、必要な数のＩ／Ｏチャネルがアプリケーションモデルに引き込まれ、事前に作成された機能に接続される。
【００１９】
有利には、アプリケーションモデルは第１のアプリケーション及び第２のアプリケーションを作成するための統一的なモデルである。しかしながら択一的に、第１のアプリケーションの作成と、第２のアプリケーションの作成とで異なるモデルを使用することもできる。
【００２０】
本発明の有利な構成においては、第２のアプリケーションを作成するステップは、第２のサブセットの識別情報の提供を含む。第１のアプリケーションの作成時に、Ｉ／Ｏチャネルの選択を依然として使用可能なチャネルに制限するために、第２のサブセットの識別情報を使用することができ、このことは第１のアプリケーションの作成を簡単且つ確実に実現する。有利には、モデルベースのプロセッサアプリケーション作成のためのモデリング環境が、アプリケーションモデルのためのハードウェアコンポーネントの全てのＩ／Ｏチャネルを提供する。プロセッサアプリケーションのモデリングの後に、プロセッサアプリケーションにおいては必要ないＩ／Ｏチャネルに関して、第１のアプリケーションに識別情報が提供され、これによって、第１のアプリケーションは、プロセッサアプリケーションにおいては必要ない未使用のＩ／Ｏチャネルを所期のように使用することができる。
【００２１】
本発明の有利な構成においては、第２のアプリケーションを作成するステップは、第１のサブセットの識別情報の受信を含む。第２のアプリケーションの作成時に、Ｉ／Ｏチャネルの選択を依然として使用可能なチャネルに制限するために、第１のサブセットの識別情報を使用することができ、このことは第２のアプリケーションの作成を簡単且つ確実に実現する。第１のアプリケーションにおいて必要ないＩ／Ｏチャネルに関して、第２のアプリケーションに識別情報を提供することができ、これによって、第２のアプリケーションは、ＦＰＧＡアプリケーションにおいては必要ない未使用のＩ／Ｏチャネルを所期のように使用することができる。
【００２２】
更に本発明は、プロセッサと、そのプロセッサと通信インタフェースを介して接続されているＦＰＧＡと、そのＦＰＧＡに接続されている複数のＩ／Ｏチャネルとを備えている、測定システム、開ループ制御システム又は閉ループ制御システムのハードウェアコンポーネントの運転方法に関し、この運転方法は、上述の方法に従い作成されたソフトウェアをロードするステップと、ソフトウェアを実行するステップとを含み、ソフトウェアのロードは第１のアプリケーションのＦＰＧＡへのロードと、第２のアプリケーションのプロセッサへのロードとを含む。従って、二つのアプリケーション、つまりプロセッサにおいて実行されるアプリケーション並びにＦＰＧＡにおいて実行されるアプリケーションを処理し、用途に応じてＩ／Ｏチャネルを任意にそれら二つのアプリケーションに分配することができる。これによって、古典的な開ループ制御モデル、閉ループ制御モデル又は測定モデルと、モデルベースで作成されたＦＰＧＡモデルとの組み合わせを提供することができ、そのようなＦＰＧＡモデルは、ＦＰＧＡ技術に基づき、制御モデルのためのサブマイクロ秒の範囲の短いサイクル時間、又は、ハードウェアコンポーネントにおける測定用途のための非常に高性能の信号処理を実現する。
【００２３】
本発明の有利な構成においては、本方法は、ＦＰＧＡを部分的にリコンフィギュレーションするステップを含む。特にアプリケーションを変更する場合には、ＦＰＧＡに存在するコードに基づき一部だけ置換すれば良く、従ってＦＰＧＡを変更されたコードを用いて迅速に使用することができる。またそれによって、第１のアプリケーションが作成されるまでのアプリケーションモデルの時間が短縮される。何故ならば、相応にＦＰＧＡコードの一部だけが実行されれば良いからである。原則として、リコンフィギュレーションはＦＰＧＡコードの任意の部分に関連すると考えられ、従って事前に合成されたコードも含む。相応に、個々の要素を事前に実施してＦＰＧＡに書き込むことができるか、又は、先行して使用した後にそこに残すことができる。
【００２４】
更に本発明は、プロセッサと、そのプロセッサと通信インタフェースを介して接続されているＦＰＧＡと、そのＦＰＧＡに接続されている複数のＩ／Ｏチャネルとを備えている、測定システム、開ループ制御システム又は閉ループ制御システムのハードウェアコンポーネントに関し、このハードウェアコンポーネントは上記の方法を実行するために構成されている。
【００２５】
同様に本発明は、適切なデータ処理装置にロード及び実行された後に上述の方法を実施する、コンピュータ実行可能な命令を備えているコンピュータプログラム製品に関する。
【００２６】
更に本発明は、プログラミング可能なデータ処理装置において上述の方法が実行されるように、データ処理装置と協働することができる、電子的に読み出し可能な制御信号を有しているディジタル記憶媒体に関する。
【００２７】
以下では、添付の図面を参照しながら、有利な実施の形態に基づき本発明を詳細に説明する。
【図面の簡単な説明】
【００２８】
【図１】本発明の一つの実施の形態によるハードウェアコンポーネントを概略的に示す。
【図２】図１によるハードウェアコンポーネントと共に、本発明の一つの実施の形態による方法を実施するためのデータ処理装置を概略的に示す。
【図３】本発明の一つの実施の形態による方法のフローチャートを示す。
【図４】図３によるステップＳ２の詳細なフローチャートを示す。
【図５】図４によるステップＳ２３の詳細なフローチャートを示す。
【図６】図３によるステップＳ３の詳細なフローチャートを示す。
【図７】図３によるステップＳ４の詳細なフローチャートを示す。
【発明を実施するための形態】
【００２９】
図１には、第１の実施の形態による、測定システム、開ループ制御システム又は閉ループ制御システムのハードウェアコンポーネント１が示されている。ハードウェアコンポーネント１はここでは例示的に、ラピッド・コントロール・プロトタイピング（ＲＣＰ：Rapid Control Prototyping）用のデバイスであり、また複数のＩ／Ｏチャネル２、ＦＰＧＡ３及びプロセッサ４を含んでいる。Ｉ／Ｏチャネル２はＦＰＧＡ３に接続されており、またＦＰＧＡ３は通信インタフェース５を介してプロセッサ４と接続されている。この実施例において、ハードウェアコンポーネント１はＩ／Ｏチャネル２として全部で２４個のＡＤＣと、１６個のＤＡＣと、４８ｘＤＩＯとを有しており、図１においてはそれらの内の一部のみが示されている。
【００３０】
図２には、ハードウェアコンポーネント１の他に、高性能のコンピュータであるデータ処理装置６も示されている。データ処理装置６においては、第１のソフトウェアブロック７として、ＦＰＧＡ３をプログラミングするためのＳｉｍｕｌｉｎｋブロックセットと、ＦＰＧＡ３において実行するための第１のアプリケーションを作成するためのＸｉｌｉｎｘツール（ＩＳＥ，ＸＳＧ）とを備えているＦＰＧＡプログラミング・ブロックセットが実装されており、また、第２のソフトウェアブロック８として、プロセッサ４において実行するための第２のアプリケーションを作成するためのＲＴＩブロックセット又はＳｉｍｕｌｉｎｋブロックセットが実装されている。
【００３１】
図３には、全体として、ハードウェアコンポーネント１のためのソフトウェアを作成し、また、ハードウェアコンポーネント１を運転させるための方法が示されている。この方法はステップＳ１から始まり、このステップＳ１においては、ユーザがアプリケーション、即ちハードウェアコンポーネント１のためのソフトウェアのモデリングを開始する。
【００３２】
ステップＳ２においては、ＦＰＧＡ３において実行するための第１のアプリケーションが作成される。このために先ず、図４に詳細に示されているように、ステップＳ２１においてＦＰＧＡモデルが作成される。ＦＰＧＡ３における所望の機能をモデルベースでＭａｔｌａｂ／Ｓｉｍｕｌｉｎｋにおいて作成するために、ＸＳＧの機能ブロックが使用される。これに関して、ＦＰＧＡプログラミング・ブロックセットはユーザにハードウェアコンポーネント１の全てのＩ／Ｏチャネル２を自由に使用させることができる。
【００３３】
ステップＳ２２においては、ユーザによって、ＦＰＧＡ３による操作のためのＩ／Ｏチャネル２の第１のサブセット９、即ち、第１のアプリケーションと接続されているＩ／Ｏチャネル２が選択される。このためにユーザは、必要なＩ／Ｏチャネル２をＦＰＧＡプログラミング・ブロックセットからユーザのＦＰＧＡモデルに引き込み、それらのＩ／Ｏチャネル２をユーザが事前に作成した機能に接続する。例えばここでは、第１のサブセット９を形成する、８個のＡＤＣ及び８個のＤＡＣがＦＰＧＡモデルにおいて使用されるが、図２においてはそれらの内の一部しか示していない。この実施例においては、プロセッサ４による操作のために、第１のサブセット９に属していないＩ／Ｏチャネル２のセットとして、Ｉ／Ｏチャネル２の第２のサブセット１０が自動的に選択される。
【００３４】
ステップＳ２３においては、ＦＰＧＡモデルがコンパイルされる。これに関して、図５に示されているように、ステップＳ２３１においては、ＦＰＧＡモデルによって使用されないＩ／Ｏチャネル２、この実施例においては１６個のＡＤＣ、８個のＤＡＣ及び２４個のＤＩＯには、ＦＰＧＡプログラミング・ブロックセットによって、標準機能で自動的に割り当てられ、それにより、それらのＩ／Ｏチャネル２を後にＲＴＩブロックセットによって、第２のアプリケーションを作成するために使用することができる。これについては下記において更に詳細に説明する。
【００３５】
ステップＳ２３２においては、ＦＰＧＡコードが生成される。このＦＰＧＡコードの生成には、ユーザによって作成されたＦＰＧＡモデルについてのモデルベースの自動的なコードの形成、並びに、Ｉ／Ｏチャネル２の第２のサブセット１０を通信インタフェース５に接続するためのコードの形成が含まれる。Ｉ／Ｏチャネル２の第２のサブセット１０を通信インタフェース５に接続するためのコードは、Ｉ／Ｏチャネル２の第２のサブセット１０のＩ／Ｏチャネル２を接続するための事前に合成されたコードを含み、このコードはライブラリから別の合成コードに付加される。 全てのコードの種々の構成要素の結合を、例えばＡｌｔｅｒａのＦＰＧＡにおいては「フィット（Fit）」と称され、ＸｉｌｉｎｘのＦＰＧＡでは「マップ及び配置配線（MAP+Place&Route）」と称される。
【００３６】
ステップＳ２３３においては、第１のサブセット９の識別情報が提供される。それらの識別情報は、どのＩ／Ｏチャネル２に標準機能が提供されるかの情報を含む。
【００３７】
ステップＳ３においては、プロセッサ４において実行するための第２のアプリケーションが作成される。これに関して、図６に詳細に示されているように、ステップＳ３１においてＲＴＩブロックセットがＦＰＧＡブロックセットから、どのＩ／Ｏチャネル２に標準機能が提供されるかの識別情報を得る。それらのＩ／ＯチャネルはステップＳ３２において使用するために提供される。
【００３８】
ステップＳ３３においては、アプリケーションモデルが作成される。このことは、ＲＴＩブロックセットにおいて、ステップＳ３２において使用するために提供されたＩ／Ｏチャネル２を用いて行われる。第２のアプリケーションのモデルはＭａｔｌａｂ／Ｓｉｍｕｌｉｎｋにおいて作成される。
【００３９】
ステップＳ３４においては、第２のアプリケーションの、モデリングが完成したモデルが通常通りにコンパイルされる。即ち、ビルド（Build）が実施され、それによって第２のアプリケーションが自動的にモデルに基づいて作成される。このために、第１のサブセット９の識別情報が受信される。
【００４０】
ステップＳ３５においては、事前に作成された第１のアプリケーション、即ちＦＰＧＡアプリケーションが第２のアプリケーション、即ちプロセッサアプリケーションに組み込まれる。
【００４１】
ステップＳ４においては、作成されたソフトウェア、即ち第１のアプリケーション及び第２のアプリケーションがハードウェアコンポーネントにロードされる。これに関して、図７に詳細に示されているように、先ずステップＳ４１において第２のアプリケーションが、組み込まれた第１のアプリケーションと共にプロセッサ４にロードされ、第２のアプリケーションはプロセッサ４に配属されているメモリに格納される。
【００４２】
ステップＳ４２においては、第２のアプリケーションが、組み込まれた第１のアプリケーションと共に、プロセッサ４における実行のためにメモリから起動される。
【００４３】
第２のアプリケーションが、組み込まれた第１のアプリケーションと共に実行されることによって、ステップＳ４３においては第１のアプリケーションがＦＰＧＡに伝送される。
【００４４】
続いて、ハードウェアコンポーネント１は、ロードされた第１のアプリケーション及び第２のアプリケーションに従い運転することができる。
【符号の説明】
【００４５】
１  ハードウェアコンポーネント、  ２  Ｉ／Ｏチャネル、  ３  ＦＰＧＡ、  ４  プロセッサ、  ５  通信インタフェース、  ６  データ処理装置、  ７  第１のソフトウェアブロック、  ８  第２のソフトウェアブロック、  ９  第１のサブセット、  １０  第２のサブセット
【図１】
2014216031.tif 000003
【図２】
2014216031.tif 000004
【図３】
2014216031.tif 000005
【図４】
2014216031.tif 000006
【図５】
2014216031.tif 000007
【図６】
2014216031.tif 000008
【図７】
2014216031.tif 000009