IPコアの埋め込みとシミュレーション

これで、IPコアを周囲のFPGAデザインに統合する準備が整いました。これは基本的に、ターゲットハードウェアのデータ通信プロトコルとIPコアインターフェイスのプロトコルとの間でコンバーターを実装し、接続することを意味します。特に、メモリコントローラー、センサーインターフェイス、データ出力などの外部インターフェイスの接続に注意する必要があります。

('IPコア用のVHDLコードの生成'のセクションで説明されているように) IPコアのブラックボックスを生成した際、IPコアのブラックボックス自体だけでなく、それ全体が生成されました。同じステップで、HDLデザインに統合する際にIPコアの個別のインターフェイスをテストできるように調整されたテストベンチ全体が生成されました。

テストベンチにより、HDL統合中のIPコアインターフェイスを通じたデータ通信のシミュレーションが可能になります。HDLシミュレーション用に生成されたツールは、インターフェイスプロトコルのテストと、トップレベルアーキテクチャ(お客様のHDLデザイン)内でコアに接続された回路への刺激の生成に焦点を当てています。

テストベンチでは、後で対応するVisualAppletsオペレータを介して接続される可能性がある各個別のインターフェイスポートが、ファイルI/Oによって駆動され、独立してシミュレートされます。シミュレーションエンティティは以下の要素で構成されています。

  • レジスタアクセス用スレーブインターフェイスのエミュレーション: ファイルによって設定されるシミュレーションモジュールは、書き込みと読み取りが可能な一連のレジスタを提供します。イネーブルおよびリセット信号に接続する専用のレジスタがあります。さまざまなプロセスを設定できます。画像処理アプリケーションの実際のプロセス数は、後で(統合後に)VisualAppletsデザイン内で定義されます。シミュレーション用に、「スレーブインターフェイスのエミュレーション」セクションで説明されているようにプロセス数を定義します。イネーブルとリセットは、シミュレーションエンティティパラメータ(下記参照)を通じて所属を指定できる他のシミュレーションモジュールに接続する唯一の信号です。レジスタインターフェイスエミュレータは、刺激ファイルに従って時間の経過とともにレジスタ値を変更するオプションを提供します。刺激ファイルでは、値を設定し、いつ値を変更すべきかを定義できます(例: 1を設定し、10,000クロックサイクル後に0を設定する)。

  • ImgOutポートに接続された画像ソースのエミュレータ。ファイルによって刺激されるこの種のモジュールは、IPコアのImgOutインターフェイスに画像データを出力します。画像出力ポートに指定した画像プロトコルに従って、画像プロトコルIDを設定できます。

  • ImgInポートに接続されたフレームシンクのエミュレータ。この種のモジュールは、IPコアのImgInインターフェイスに接続されているオペレータをエミュレートします。画像入力ポートに指定した画像プロトコルに従って、画像プロトコルIDを設定できます。モジュールは受信したデータをファイルに書き込みます。

  • RAMを使用するモジュールが接続されているかのように動作するメモリポートエミュレータ。書き込みおよび読み取りアクセスのシーケンスがファイルによって刺激され、読み取りデータがファイルに出力されます。

  • GPIOエミュレータ。出力用の各GPIO信号は、ファイルによって設定される信号ジェネレータによって駆動されます。各GPIO信号入力が監視され、信号の変化がレポートファイルに書き込まれます。

ImgInインターフェイス×1、ImgOutインターフェイス×1、Memoryインターフェイス×1、GPI×1、GPO×1、およびスレーブインターフェイスを備えたIPコアのテストベンチの例

図203. ImgInインターフェイス×1、ImgOutインターフェイス×1、Memoryインターフェイス×1、GPI×1、GPO×1、およびスレーブインターフェイスを備えたIPコアのテストベンチの例


シミュレーションフレームワーク

For RTL level simulation, a VHDL file eVA_Design.vhdl has been created. This file contains a package with  name eVA_<PLATFORMNAME> ( <PlatformName> is the platform name you defined as described in 'Entering Platform Details'). This package contains two components:

  • eVA_Design: Visual Applets IPコアのブラックボックス

  • eVA_Design_Emulator: Visual Applets IPコアのエミュレータ: エミュレータは、シミュレーションテストベンチ用のファイルベースの刺激生成を実装します。

レジスタアクセス用のスレーブインターフェイスのみで構成される最もシンプルなVA IPコアに対して生成される、ファイルeVA_Design.vhdlのコードを以下に示します。

      
       component eVA_Design 
       generic(
  
              RegIFDataWidth : integer := 32; 
              RegIFAddrWidth : integer := 16); 
   
       port( 
    
              iDesignClk: in std_logic := '0'; 
              iDesignClk2x: in std_logic := '0'; 
       
              ivRegWrData: in std_logic_vector(RegIFDataWidth-1 downto 0) := (others=>'0'); 
              ivRegWrAddr: in std_logic_vector(RegIFAddrWidth-1 downto 0) := (others=>'0'); 
              iRegWrValid: in std_logic := '0'; 
       
              ivRegRdAddr: in std_logic_vector(RegIFAddrWidth-1 downto 0) := (others=>'0'); 
              iRegRdValid: in std_logic := '0'; 
              ovRegRdData: out std_logic_vector(RegIFDataWidth-1 downto 0) := (others=>'0'); 
              oRegRdDataValid: out std_logic := '0' 
     
       ); 
       end component; 
         
       component eVA_Design_Emulator 
       generic( 
    
              RegIFDataWidth : integer := 32; 
              RegIFAddrWidth : integer := 16; 
              NrOfProcesses: integer := 2; 
              RegisterDefinitionFile: string := "" 
     
       ); 
       port( 
    
              iDesignClk: in std_logic := '0'; 
              iDesignClk2x: in std_logic := '0'; 
       
              ivRegWrData: in std_logic_vector(RegIFDataWidth-1 downto 0) := (others=>'0'); 
              ivRegWrAddr: in std_logic_vector(RegIFAddrWidth-1 downto 0) := (others=>'0'); 
              iRegWrValid: in std_logic := '0'; 
       
              ivRegRdAddr: in std_logic_vector(RegIFAddrWidth-1 downto 0) := (others=>'0'); 
              iRegRdValid: in std_logic := '0'; 
              ovRegRdData: out std_logic_vector(RegIFDataWidth-1 downto 0) := (others=>'0'); 
              oRegRdDataValid: out std_logic := '0' 
     
       ); 
       end component; 
   
      
    

IPコアインターフェイスの個別の種類ののエミュレーションに関する詳細については、次のサブセクションを参照してください。

スレーブインターフェイスのエミュレーション

eVAデザインエミュレータには、パラメータNrOfProcessesがあります。このパラメータは、1から16の範囲の整数です。このパラメータには、デザインをリセットおよびイネーブルにするための一連の事前定義されたレジスタが作成されるという効果があります。次のアドレスが設定されます。

  • 0x00: グローバルリセット

  • 0x01: グローバルイネーブル

  • 0x02 * (i+1): Process Reset for process i (i < NrOfProcesses).

  • 0x02 * (i+1) + 0x01: Process Enable for process i (i < NrOfProcesses).

したがって、NrOfProcesses = 2の場合、スレーブインターフェイスアドレススペースの最初の6つのアドレスは、エミュレートされたデザインのリセットとイネーブルの制御に使用されます。各画像ポートは、上記のリセットおよびイネーブル信号によって制御される1つのペアの信号に所属します。統合後、VisualAppletsユーザーは、オペレータをプロセスのコンポーネントとしてインスタンス化し、このオペレータインスタンスをインターフェイスに接続するときに、インターフェイスをプロセスに所属させます。

レジスタアクセス用スレーブインターフェイスのエミュレータは、上記のVHDLコードで提供されているエンティティパラメータRegisterDefinitionFileによって設定されるテキストファイルによってさらに設定されます。「IPコア用のVHDLコードの生成」セクションで説明されているように、パラメータはブラックボックスおよびテストベンチの生成中に自動的に設定されます。

レジスタ定義ファイルには、次のコマンドが存在する場合があります。

コマンド

説明

REM

行の残りの部分はコメントです

DEF

レジスタを定義します。このコマンドには次の構文があります。

DEF <addr> <width> <write_read> <init_value>

以下のパラメータを使用します:

<init_value>: hexadecimal initial value

<addr>: hexadecimal value of register address

<width>: bit width of register

<write_read>: 1 for write register, 0 for read register

CON

書き込みレジスタを読み取りレジスタに接続します。このコマンドの構文は以下のとおりです:

CON <wrRegAddr> <rdRegAddr>

以下のパラメータを使用します:

<wrRegAddr>: address of write register (hex)

<rdRegAddr>: address of read register (hex)

WCK

指定したクロックサイクル数だけ待機します。構文は以下のとおりです:

WCK <clock_ticks>

with <clock_ticks> giving the number of clock ticks in hexadecimal format.

SET

読み取りレジスタの値を設定します

SET <rdRegAddr> <value>

以下のパラメータを使用します:

<rdRegAddr>: address of read register (hex)

<value>: hexadecimal register value

任意のコマンドの最後のパラメータの後には、「#」を先頭に付けたコメントを追加できます。

次のコードは、2つの書き込みレジスタと2つの読み取りレジスタを設定するレジスタ定義ファイルの例です。1つの読み取りレジスタは16クロックサイクル後にプリセットされ(アドレス 0x7)、もう1つの読み取りレジスタ(アドレス 0x6)はアドレス 0x6 の書き込みレジスタによって駆動されます:

        
      REM ************************************************************ 
      REM Command formats: DEF <addr> <width> <write_read> <init_value> 
      REM                  CON <wrRegAddr> <rdRegAddr>
      REM                  WCK <clock_ticks>
      REM                  SET <rdRegAddr> <value>
      REM ************************************************************ 
      DEF 0006 10 1 00000000 #define write reg with width 0x10 at address 0x6 
      CON 0006 0006          #create read reg with addr 0x6 connected to 
      REM                     write register with address 0x6 
      DEF 0007 20 1 00000000 #define write reg with width 0x20 at address 0x7 
      DEF 0007 10 0 00000000 #define read register at address 0x7 
      WCK 0010               #wait for 16 clock cycles 
      SET 0007 0000000C      #set read register value 
        
      

ImgOutインターフェースのエミュレーション

ImgOut タイプの画像通信インターフェースのエミュレーションは、データ出力のシーケンスに関する情報を提供するスティミュラスファイルによって駆動されます。

For any present ImgOut port, the eVA_Design_Emulator entity has a generic <PORTIDX>_StimuliFileName where <PORTIDX> is the name of the corresponding image output port class followed by the port number. Each line within the given file must follow the syntax

<Command> <Data> <EndOfLine> <EndOfFrame> <DataValid>

where <Command> is a three letter command, <Data> provides an hexadecimal data word, and the three remaining parameters correspond to the image protocol flags.

次の表に、利用可能なコマンドを示します:

コマンド

説明

DAT

データコマンド。このコマンドは、ポートで出力されるデータを提供します。 ovPORTIDXData および関連する画像プロトコル フラグ ポート。

WCK

ウェイトコマンド。パラメータ <Data> は、コマンドインタプリタが一時停止するクロックティック数を提供します。

FID

FID出力を設定します。パラメータ <Data> は、ポートが設定される値を提供します。 ovPORTIDX_FID_D

PDX

X番目のポートパラメータ出力を、次の値に設定します。 <Data>ここで、Xは0から9までの数値です。例えば、ImgOutポートの最初のパラメータ出力が ovPORTIDX_D

どのコマンドラインにも、「#」を先頭に付けたコメントを追加できます。

次のコードは、3x2画像の出力、それに続くパラメータの変更(FIDを含む)、および3x1の寸法を持つ2番目の画像の出力を引き起こすスティミュラスファイルの例です:

     
      DAT 00000000 0 0 0 #Format: Cmd Data(hex) EndOfLine EndOfFrame DataValid 
      DAT 0000001a 0 0 1 
      DAT 0000001b 0 0 1 
      DAT 0000001c 0 0 1 
      DAT 00000000 1 0 1 
      DAT 0000002a 0 0 1 
      DAT 0000002b 0 0 1 
      DAT 0000002c 0 0 1 
      DAT 00000000 1 1 1 
      WCK 00000004 0 0 0 
      FID 00000001 0 0 0 
      PD0 00000011 0 0 0 
      PD1 00000022 0 0 0 
      PD2 00000033 0 0 0 
      WCK 00000001 0 0 0 
      DAT 0000003a 0 0 1 
      DAT 0000003b 0 0 1 
      DAT 0000003c 1 1 1 
      DAT 00000000 0 0 0 
      DAT 00000000 0 0 0 
      DAT 00000000 0 0 0 
     
   

The reset and enable ports of the concerning image communication interface are connected to dedicated registers of the slave interface where the affiliation to a process is done according to a parameter <PORTIDX>_ProcessID.

ImgInインターフェースのエミュレーション

ImgInタイプの画像通信インターフェースのエミュレーションは、パラメータ状態のシーケンスに関する情報を提供するスティミュラスファイルによって駆動されます。

For any present ImgIn port, the eVA_Design_Emulator entity has a generic <PORTIDX>_StimuliFileName where <PORTIDX> is the name of the corresponding image input port class followed by the port number. The syntax is exactly the same as in the case of the stimuli for ImgOut interfaces except that no DAT command is available. A simple stimuli file may look like,

        
      WCK 00000010 0 0 0    #Format: Command Data(hex) EndOfLine EndOfFrame DataValid
      FID 00000001 0 0 0
      PD0 00000111 0 0 0
      PD1 00000222 0 0 0
      PD2 00000333 0 0 0
      WCK 00000001 0 0 0
        
      

where the parameters <EndOfLine>,<EndOfFrame> and <DataValid> are actually meaningless.

The ImgIn interface emulator writes the received data to file. For that purpose the eVA_Design_Emulator entity has a generic <PORTIDX>_DumpFileName. During simulation, a file with the given name is created and the data is written using DAT and WCK commands in a format which exactly corresponds to the stimuli file format for an ImgOut interface emulator.

The reset and enable ports of the concerning image communication interface are connected to dedicated registers of the slave interface where the affiliation to a process is done according to a parameter <PORTIDX>_ProcessID.

メモリ通信のエミュレーション

メモリ通信のエミュレーションは、アクセスシーケンスに関する情報を提供するスティミュラスファイルによって駆動されます。

For any present memory port, the eVA_Design_Emulator entity has a generic Mem<X>_StimuliFileName where <X> is the port number. The stimuli file consists of lines with following syntax,

<WrData> <WrAddr> <WrFlag> <WrReq> <RdAddr> <RdFlag> <RdReq>

各要素の意味は次のとおりです:

<WrData>: hexadecimal data word intended for port ovMemWrDataX

<WrAddr>: hexadecimal write address (for ovMemWrAddrX)

<WrFlag>: hexadecimal write flag (for ovMemWrFlagX)

<WrReq>: write request (oMemWrReqX)

<RdAddr>: hexadecimal read address (for ovMemRdAddrX)

<RdFlag>: hexadecimal read flag (for ovMemRdFlagX)

<RdReq>: read request (oMemRdReqX)

どのコマンドラインにも、「#」で始まるコメントを追加できます。

次のコードは、それぞれ4つのデータワードで構成される2つの画像の出力を引き起こすスティミュラスファイルの例です:

  
      0000000000000000 000000 0 0 000000 00 0 
      0000000000000000 000000 0 0 000000 00 0 
      0000000000000000 000000 0 0 000000 00 0 
      0000000000000000 000000 0 0 000000 00 0 
      000000000000000a 000000 0 1 000000 00 0 #Write 0xa to address 0x0 
      000000000000000b 000001 0 1 000000 00 0 #Write 0xb to address 0x1 
      000000000000000c 000002 0 1 000000 00 0 #Write 0xc to address 0x2 
      000000000000000d 000003 1 1 000000 00 0 #Write 0xd to address 0x3 
      0000000000000000 000000 0 0 000000 00 0 
      0000000000000000 000000 0 0 000000 00 0 
      0000000000000000 000000 0 0 000000 00 0 
      0000000000000000 000000 0 0 000000 00 0 
      0000000000000000 000000 0 0 000000 00 0 
      0000000000000000 000000 0 0 000000 00 0 
      000000000000000e 000104 1 1 000000 00 0 #Write 0xe to address 0x10a
      00000000000000bb 000001 0 1 000000 00 0 #Write 0xbb to address 0x1
      0000000000000000 000000 0 0 000000 00 1 #Read from address 0x0
      0000000000000000 000000 0 0 000001 00 1 #Read from address 0x1
      0000000000000000 000000 0 0 000002 00 1 #Read from address 0x2
      0000000000000000 000000 0 0 000003 01 1 #Read from address 0x3
      000000000000000e 000000 0 0 000104 00 1 #Read from address 0x104
      0000000000000000 000000 0 0 000000 00 0
      0000000000000000 000000 0 0 000000 00 0
      0000000000000000 000000 0 0 000000 00 0
  

Read data returned from the memory to the emulator is written to a file. For providing the file name the eVA_Design_Emulator entity has a generic Mem<X>_DumpFileName. The dump lines have the following format,

<RdData> <RdFlag>

各要素の意味は次のとおりです:

<RdData>: hexadecimal data word according to port ivMemRdDataX

<RdFlag>: hexadecimal value of read flag according to port ivMemRdFlagX

GPIOエミュレーション

専用出力信号のエミュレーションは、スティミュラスファイルによって駆動され、各信号に対して個別に実行されます。ここでは、信号状態のシーケンスに関する情報が提供されます。

The stimuli file may consist of a number of commands which are described below. For any present output signal port the eVA_Design_Emulator entity has a generic oSig_<NAME>_StimuliFileName where <NAME> is the concerning port name.

次の表に、利用可能なコマンドを示します:

コマンド

説明

SET

信号を設定します。このコマンドは、ポートoSig_NAMEでの出力が設定される信号状態を提供します。次のコマンドは、1クロックティック後に実行されます。構文は以下のとおりです

SET <value>

where <value> may be 0 or 1.

WCK

待機コマンド。構文は以下のとおりです

WCK <ticks

where the parameter <ticks> provides the number of clock ticks for which the signal will be held constant.

RST

最初から再起動します。コマンドインタプリタは、スティミュラスファイルの最初の行から再度開始します。このコマンドにはパラメータはありません。このコマンドは、ファイル内の最初のコマンドを同じクロックティックで実行するため、ギャップのないループの構築が可能になります。

STP

現在の状態で停止します。コマンドインタプリタは停止し、シミュレーションが終了するまで現在の信号状態が一定に保持されます。このコマンドにはパラメータはありません。

どのコマンドラインにも、「#」で始まるコメントを追加できます。

次のコードは、出力信号のトグルを引き起こし、5クロックサイクルの間Low、7クロックサイクルの間Highになる(iDesignClkと同期)スティミュラスファイルの例です:

      
      SET 0              # deassert output 
      WCK 0004           # wait for 4 clock cycles 
      SET 1              # assert output 
      WCK 0006           # wait for 6 clock cycles 
      RST                # restart from begin 
      
    

Dedicated input signals are monitored writing a dump file iSig_<NAME>_DumpFileName where <NAME> is the concerning port name. The file is composed of SET and WCK commands exactly corresponding to the commands of the stimuli file for a dedicated output signal.

IPコアの埋め込み

IPコアを埋め込むには:

  1. IPコアのすべてのインターフェースのブラックボックスをトップレベルのHDLデザインに統合します。実装に合わせてインターフェースを段階的にテストするには、ブラックボックスと一緒に生成されたテストベンチを使用します('Simulation Framework'のセクションで説明されています)。

  2. すべてのブラックボックスインターフェースをHDLデザインに完全に統合したら、デザインのネットリストを生成します。

  3. 制約ファイルを作成します。

ビルドフローの詳細の入力

ハードウェア固有のIPコアとそのすべてのインターフェース仕様をVisualAppletsに導入するeVA Pluginを実際に生成する前に、ハードウェア記述ファイル(*.xml または *.eva)にいくつかの詳細を追加する必要があります( eVA Designer:

  1. VisualAppletsを起動し、eVA Designerを開きます。

  2. Build Flowタブに移動します。

  3. Top Level FPGA Design Filesの下で、作成したファイルへのパスを入力します:

    Top level netlist: トップレベルネットリストへのパスを指定します(ラップされたVisualAppletsコアのブラックボックスを含む、FPGAデザイン全体のネットリスト)。

    Top level constraints: トップレベルネットリスト(ラップされたVisualAppletsコアブラックボックスを含む全体的なFPGA設計のネットリスト)のユーザー制約ファイルのパスを指定します。Xilinx ISEツールチェーンを使用する場合、これは *.ucf ファイルであり、Xilinx Vivadoツールチェーンを使用する場合は、 *.xdc ファイル。

  4. Additional FPGA Design Filesの下で、必要に応じてこれらのファイルのパスを指定します。このようなファイルには、制約ファイルを持つ追加のIPコアの追加ネットリストなどが含まれる場合があります。

    Xilinx Build Settingsの下で、使用するツールチェーンを指定する必要があります。ビットストリームの合成にはサードパーティ製ソフトウェアが必要です。使用するFPGAに応じて、これはXilinx Vivado WebPACK(無料)、Xilinx Vivado Design Suite、Xilinx ISE WebPACK(無料)、またはXilinx ISE Design Suite(Xilinx Corp.の登録商標)のいずれかになります。

  5. FPGAビットストリームの合成に使用するXilinxツールチェーンに従って、VivadoまたはISEタブを選択します。

  6. ツールチェーンの詳細を入力します。

    Vivado:

    Xilinx Vivadoを使用する場合は、次の詳細を提供します。

    Translate Cmd: Vivado実装フローの link_design ステップのコマンドライン。

    Optimize Cmd: Vivado実装フローの opt_design ステップのコマンドライン。

    Place Cmd: Vivado実装フローの place_design ステップのコマンドライン。

    Route Cmd: Vivado実装フローの route_design ステップのコマンドライン。

    Bitgen Cmd: Vivado実装フローの write_bitstream ステップのコマンドライン。

    ISE:

    Xilinx ISEを使用する場合は、次の詳細を提供します。

    Translate command: ISE実装フローの translate ステップのコマンドライン。

    Map command: ISE実装フローの map ステップのコマンドライン。

    Par command: ISE実装フローの配置配線ステップのコマンドライン。

    Bitgen command: ISE実装フローの構成ビットストリーム生成ステップのコマンドライン。

  7. Supplementary Filesの下で、必要に応じてVisualAppletsのハードウェア固有ディレクトリで利用できるようにしたい追加ファイルを入力します。このようなファイルには、ユーザーマニュアル、ビルドフロープラグイン、スクリプト、ドキュメント、ヘルプツールなどが含まれます。

ビルドフローに関するすべての詳細を入力したら、ターゲットハードウェア用のeVAプラグインインストーラーを生成する準備が整います。

eVAプラグインの作成

VisualApplets用のハードウェア固有のeVAプラグインは、次のファイルから作成されます。

  • 必須:

    • ハードウェア記述ファイル(*.xml)。オペレーター定義を含みます(次を参照: 「ハードウェア固有のオペレーターの定義」)

    • トップレベルネットリスト(ラップされたIPコアブラックボックスを含む) (*.ngc / *.edn)(下のボックスを参照)

    • 制約ファイル(*.ucf フォーマット(Xilinx ISEを使用する場合)、 *.xdc フォーマット(Xilinx Vivadoを使用する場合)(下のボックスを参照)

  • オプション:

    • ハードウェアデバイス用のアイコンファイル(*.png)(VisualApplets GUIでのハードウェアのグラフィカル表現用)

    • 個別のハードウェア固有オペレーター用のアイコンファイル (*.png)(VisualApplets GUIでのオペレーターのグラフィカル表現用)

    • プラットフォーム固有オペレーター用のヘルプファイル(*.html)

これらのファイルはすべて、「IPコアプロパティの定義」および「ビルドフローの詳細の入力」の各セクションで説明されている手順を進めながら、すでにeVA Designerに入力しています。

[注] VisualApplets IPコアネットリストの生成

トップレベルネットリストと制約ファイルを含めずにプラグインインストーラーを作成することもできます。 インストール後、VisualAppletsでの統合がどのように表示されるかを確認できます (利用可能なハードウェア固有オペレーターなど)。

ただし、トップレベルネットリストと制約ファイルが含まれていないプラグインでは、 ハードウェアプラットフォーム上で実行できるアプレットをビルドすることはできません。

VisualApplets用の実際のeVA Pluginをビルドするには、2つの方法があります。どちらの方法も選択できます:

  • eVA Pluginをビルドし、お使いのマシンのVisualAppletsインストール環境に即座にインストールします。

  • 同僚や顧客に提供できる、実行可能なeVAプラグインインストーラーをビルドします。

プラグインの直接インストール

開発を行ってきたマシン上で直接プラグインをテストまたは使用する場合:

  1. eVA Designerで、Buildメニューを開きます。

  2. メニュー項目Install Plug-in ...を選択します。

  3. VisualAppletsのインストールディレクトリのパスを入力するか、提案されたインストールディレクトリを確認します。

    インストールが成功したことが通知されます:

    プラグインのファイルは、VisualAppletsのインストールディレクトリの サブディレクトリにあります eVA/platforms/<devicename>:

eVAプラグインストーラーのビルド

ハードウェア向け画像処理アプリケーションを設計するVisualApplets開発者に転送できる実行ファイルを作成するには:

  1. eVA Designerで、Buildメニューを開きます。

  2. メニュー項目Generate Plug-in ...を選択します。

  3. プラグインの保存先となるターゲットフォルダーを選択します。

ターゲットフォルダーを選択するとすぐにeVAプラグインが作成されます。ビルドの成功を知らせるメッセージが表示されます:

プラグインは指定したフォルダーに保存されます:

これでプラグインを配布できるようになります。

eVAプラグインストーラーの実行

既存のVisualApplets環境にeVAプラグインをインストールするには:

  1. VisualAppletsを終了します。

  2. ファイルシステム上でプラグインの *.exe ファイルをダブルクリックします。

  3. インストーラーの指示に従います。インストーラーにより、VisualAppletsのインストールディレクトリが自動的に提案されます:

  4. Finishをクリックしてインストールプロセスを完了します。

インストール済みのeVAプラグインの使用

インストール後、VisualAppletsでプラットフォーム向けの新しい画像処理アプリケーションの設計を開始できます:

  1. VisualAppletsを開きます。

  2. [File]メニューからNewを選択します。

これで、ハードウェアプラットフォームを選択してVisualAppletsでの設計を開始できます:

VisualAppletsでの画像取得および処理アプリケーションの設計方法については、Getting Startedにある詳細なVisualAppletsオンラインマニュアルを参照してください。