Main Content

coder.HardwareImplementation

MATLAB コードから C/C++ コードを生成するためのハードウェア固有の構成パラメーター

説明

coder.HardwareImplementation オブジェクトには、スタティック ライブラリ、ダイナミック リンク ライブラリまたは実行可能プログラムを生成するために codegen が使用するハードウェア固有の構成パラメーターが含まれます。

coder.HardwareImplementation オブジェクトを使用するには、このオブジェクトを、codegen に渡す構成オブジェクト (coder.CodeConfig オブジェクトまたは coder.EmbeddedCodeConfig オブジェクト) に関連付けなければなりません。coder.HardwareImplementation オブジェクトを作成して構成オブジェクトに関連付けるには、coder.config を使用して構成オブジェクトを作成します。

次のいずれかの方法で coder.HardwareImplementation プロパティにアクセスします。

既定では、coder.HardwareImplementation プロパティで MATLAB® ホスト コンピューターの特性を指定します。別のデバイスを指定するには、ProdHWDeviceType プロパティを変更します。ハードウェア デバイスによって、他のデバイス固有のプロパティと変更できるプロパティの値が決まります。

作成

coder.HardwareImplementation オブジェクトを作成するには、coder.config を使用して、スタンドアロン コードを生成する構成オブジェクト (coder.CodeConfig オブジェクトまたは coder.EmbeddedCodeConfig オブジェクト) を作成します。coder.config は構成オブジェクトを作成するときに、coder.HardwareImplementation オブジェクトも作成します。coder.config は構成オブジェクトの HardwareImplementation プロパティを coder.HardwareImplementation オブジェクトに設定します。

プロパティ

すべて展開する

coder.HardwareImplementation オブジェクトの説明。文字ベクトルとして指定します。

オブジェクト名。文字ベクトルとして指定します。

製品ハードウェアとターゲット (テスト) ハードウェアの特性の等価性。true または false として指定します。

coder.HardwareImplementation オブジェクトには 2 組のハードウェア プロパティがあります。1 つは製品ハードウェアの特性を表し、もう 1 つはターゲット (テスト) ハードウェアの特性を表します。既定では、codegen は製品ハードウェアのプロパティを使用します。通常、ProdEqTargettrue に設定され、製品プロパティでのみ機能します。

ProdEqTargetfalse に設定するのは、ターゲット ハードウェア プロパティを有効にする高度な機能です。ProdEqTargetfalse に変更すると、codegen はターゲット ハードウェアのプロパティを使用し、ターゲット ハードウェアでの製品ハードウェアの動作をエミュレートするコードを生成します。ProdEqTarget をテスト用に false に設定する場合、生成されたコードを製品ハードウェアに展開する前に、ProdEqTargettrue に設定し、コードを再生成します。

Embedded Coder® プロセッサインザループ (PIL) の実行の開始時に、ソフトウェアは、PIL の実行が行われるターゲット ハードウェアを基準にしてハードウェア実行プロパティをチェックします。ProdEqTargettrue の場合、ソフトウェアで製品プロパティ (Prod で始まるプロパティ) がチェックされます。ProdEqTargetfalse の場合、ターゲット プロパティ (Target で始まるプロパティ) がチェックされます。Code Verification Through Software-in-the-Loop and Processor-in-the-Loop Execution (Embedded Coder)を参照してください。

製品ハードウェア プロパティ

製品ハードウェアがサポートする C の char データ型のビット長。8 ~ 32 の範囲の整数値として指定します。値は 8 の倍数でなければなりません。

このプロパティは読み取り専用です。

製品ハードウェアがサポートする C の double データ型のビット長。

このプロパティは読み取り専用です。

製品ハードウェアがサポートする C の浮動小数点データ型のビット長。

製品ハードウェアがサポートする C の int データ型のビット長。8 ~ 32 の範囲の整数値として指定します。値は 8 の倍数でなければなりません。

製品ハードウェアがサポートする C の long データ型のビット長。32 ~ 128 の範囲の整数値として指定します。値は 8 の倍数でなければなりません。

製品ハードウェアがサポートする C の long long データ型のビット長。64 ~ 128 の範囲の整数値として指定します。値は 8 の倍数でなければなりません。

C の long long データ型は、ご使用の C コンパイラが long long をサポートしている場合にのみ使用してください。

依存関係:

  • ProdLongLongMode では、ProdBitPerLongLong プロパティを使用できます。

製品ハードウェアがサポートするポインター データのビット長。8 ~ 64 の範囲の整数値として指定します。値は 8 の倍数でなければなりません。

製品ハードウェアがサポートする ptrdiff_t データのビット長。8、16、24、32、40、64 または 128 として指定します。値は ProdBitPerInt の値以上でなければなりません。

製品ハードウェアがサポートする C の short データ型のビット長。8 ~ 32 の範囲の 8 の倍数として指定します。

製品ハードウェアがサポートする size_t データのビット長。8、16、24、32、40、64 または 128 として指定します。値は ProdBitPerInt の値以上でなければなりません。

製品ハードウェアのデータ ワードの最初のバイトの意味。この表のいずれかの値として指定します。

説明
'LittleEndian'

この値が既定値です。

最下位バイトがバイト順で最初に表示されます。

'BigEndian'最上位バイトがバイト順で最初に表示されます。
'Unspecified'コードによってハードウェアのバイト順 (エンディアン) が決定されます。この値を指定すると効率がよくないコードが生成されます。

製品ハードウェア ボードのメーカーと種類。文字ベクトルとして指定します。

ProdHWDeviceType プロパティを指定すると、製品ハードウェアのデバイス固有のプロパティが設定されます。デバイス固有のプロパティは、指定されたハードウェアに対して有効な場合にのみ変更できます。

codegen は ASIC または FPGA のコードを生成できません。ProdHWDeviceType'ASIC/FPGA->ASIC/FPGA' に設定すると、ProdEqTargetfalse になり、コード ジェネレーターはターゲット (テスト) デバイスのプロパティを使用します。'ASIC/FPGA->ASIC/FPGA'TargetHWDeviceType に対して有効な値ではありません。

2 つの符号付き整数の除算結果の製品ハードウェア用コンパイラによる丸め。次の表のいずれかの値として指定します。

説明
'Zero'

この値が既定値です。

商が 2 つの整数の間にある場合、コンパイラは 0 に近い方の整数に丸めます。

'Floor'商が 2 つの整数の間にある場合、コンパイラは負の無限値に近い方の整数に丸めます。
'Undefined'コンパイラは 0 または負の無限値方向に丸めません。つまりコンパイラの丸め動作は未定義です。

C コンパイラの long long データ型のサポート。次の表のいずれかの値として指定します。

説明
true

この値が既定値です。

コード ジェネレーターは生成されたコードで C の long long データ型を使用します。

false

コード ジェネレーターは生成されたコードで C の long long データ型を使用しません。

ほとんどの C99 コンパイラは long long をサポートします。

ヒント:

  • ProdLongLongMode は、指定された製品ハードウェアが C の long long データ型をサポートする場合にのみ有効になります。

  • コンパイラで C の long long がサポートされていない場合、このパラメーターは選択しないでください。

依存関係:

  • ProdLongLongMode では、ProdBitPerLongLong プロパティを使用できます。

製品ハードウェア用 C コンパイラによる、算術右シフトとしての符号付き整数の右シフトの実装。次の表のいずれかの値として指定します。

説明
true

この値が既定値です。

C コンパイラが符号付き整数の右シフトを算術右シフトとして実装することを示します。算術右シフトは、右シフトによって空いたビットを最上位ビットの値で埋めます。最上位ビットは数値の符号を示します。

false

C コンパイラが符号付き整数の右シフトを算術右シフトとして実装しないことを示します。

製品ハードウェアに対するマイクロプロセッサのネイティブ ワード サイズ。8 ~ 64 範囲の整数値として指定します。値は 8 の倍数でなければなりません。

ターゲット ハードウェアのプロパティ

ターゲット ハードウェアがサポートする C char データ型のビット長。8 ~ 32 の範囲の整数値として指定します。値は 8 の倍数でなければなりません。

このプロパティは読み取り専用です。

ターゲット ハードウェアがサポートする C の double データ型のビット長。

このプロパティは読み取り専用です。

ターゲット ハードウェアがサポートする C の浮動小数点データ型のビット長。

ターゲット ハードウェアがサポートする C の int データ型のビット長。8 ~ 32 の範囲の整数値として指定します。値は 8 の倍数でなければなりません。

ターゲット ハードウェアがサポートする C の long データ型のビット長。32 ~ 128 の範囲の整数値として指定します。値は 8 の倍数でなければなりません。

ターゲット ハードウェアがサポートする C の long long データ型のビット長。64 ~ 128 の範囲の整数値として指定します。値は 8 の倍数でなければなりません。

C の long long データ型は、ご使用の C コンパイラが long long をサポートしている場合にのみ使用してください。

依存関係:

  • TargetLongLongMode では、TargetBitPerLongLong プロパティを使用できます。

ターゲット ハードウェアがサポートするポインター データのビット長。8 ~ 64 の範囲の整数値として指定します。値は 8 の倍数でなければなりません。

ptrdiff_t データのビット長。8、16、24、32、40、64 または 128 として指定します。値は ProdBitPerInt の値以上でなければなりません。

ターゲット ハードウェアがサポートする C の short データ型のビット長。8 ~ 32 の範囲の 8 の倍数として指定します。

ターゲット ハードウェアがサポートする size_t データのビット長。8、16、24、32、40、64 または 128 として指定します。値は ProdBitPerInt の値以上でなければなりません。

ターゲット ハードウェアのデータ ワードの最初のバイトの意味。この表のいずれかの値として指定します。

説明
'LittleEndian'

この値が既定値です。

最下位バイトがバイト順で最初に表示されます。

'BigEndian'最上位バイトがバイト順で最初に表示されます。
'Unspecified'コードによってハードウェアのバイト順 (エンディアン) が決定されます。この値を指定すると効率がよくないコードが生成されます。

ターゲット (テスト) ハードウェア ボードのメーカーと種類。文字ベクトルとして指定します。

TargetHWDeviceType プロパティを指定すると、ターゲット ハードウェアにデバイス固有のプロパティの値が設定されます。デバイス固有のプロパティは、指定されたハードウェアに対して有効な場合にのみ変更できます。

codegen は ASIC または FPGA のコードを生成できません。ProdHWDeviceType'ASIC/FPGA->ASIC/FPGA' に設定すると、ProdEqTargetfalse になり、コード ジェネレーターはターゲット (テスト) デバイスのプロパティを使用します。'ASIC/FPGA->ASIC/FPGA'TargetHWDeviceType に対して有効な値ではありません。

2 つの符号付き整数の除算結果のテスト ハードウェア用コンパイラによる丸め。次の表のいずれかの値として指定します。

説明
'Zero'

この値が既定値です。

商が 2 つの整数の間にある場合、コンパイラは 0 に近い方の整数に丸めます。

'Floor'商が 2 つの整数の間にある場合、コンパイラは負の無限値に近い方の整数に丸めます。
'Undefined'コンパイラは 0 または負の無限値方向に丸めません。つまりコンパイラの丸め動作は未定義です。

C コンパイラの long long データ型のサポート。次の表のいずれかの値として指定します。

説明
true

この値が既定値です。

コード ジェネレーターは生成されたコードで C の long long データ型を使用します。

false

コード ジェネレーターは生成されたコードで C の long long データ型を使用しません。

GPU Coder™ を使用する場合、コード ジェネレーターは生成されたコードで常に C の long long データ型を使用します。

ほとんどの C99 コンパイラは long long をサポートします。

ヒント:

  • TargetLongLongMode は、指定された製品ハードウェアが C の long long データ型をサポートする場合にのみ有効になります。

  • コンパイラで C の long long がサポートされていない場合、このパラメーターは選択しないでください。

依存関係:

  • TargetLongLongMode では、TargetBitPerLongLong プロパティを使用できます。

製品ハードウェア用 C コンパイラによる、算術右シフトとしての符号付き整数の右シフトの実装。次の表のいずれかの値として指定します。

説明
true

この値が既定値です。

C コンパイラが符号付き整数の右シフトを算術右シフトとして実装することを示します。算術右シフトは、右シフトによって空いたビットを最上位ビットの値で埋めます。最上位ビットは数値の符号を示します。

false

C コンパイラが符号付き整数の右シフトを算術右シフトとして実装しないことを示します。

製品ハードウェアに対するマイクロプロセッサのネイティブ ワード サイズ。8 ~ 64 範囲の整数値として指定します。値は 8 の倍数でなければなりません。

すべて折りたたむ

スタンドアロン コード生成用の構成オブジェクトを作成します。たとえば、スタティック ライブラリ生成用の構成オブジェクトを作成します。

cfg = coder.config('lib');

coder.config は、構成オブジェクトの HardwareImplementation プロパティを、MATLAB ホスト コンピューターの既定のパラメーター値をもつ coder.HardwareImplementation オブジェクトに設定します。

別のハードウェア デバイスを指定して、デバイス固有のプロパティをカスタマイズするには、coder.HardwareImplementation オブジェクトの ProdHWDeviceType プロパティを使用可能なデバイスのいずれかに設定します。次に例を示します。

cfg.HardwareImplementation.ProdHWDeviceType = 'AMD->Athlon 64'

コード生成に coder.HardwareImplementation オブジェクトを使用するには、-config オプションを使用して coder.HardwareImplementation オブジェクトに関連付けられたコード生成構成オブジェクトを指定します。

codegen -config cfg myFunction

coder.HardwareImplementation オブジェクトを参照する構成オブジェクトのダイアログ ボックスを開きます。次に例を示します。

cfg = coder.config('lib');
open('cfg');

ダイアログ ボックスで、[ハードウェア] タブをクリックします。

ハードウェア ボードのサポート パッケージをインストールしている場合 (Embedded Coder が必要)、[ハードウェア ボード] のオプションからボードを選択します。インストールしていない場合は、[ハードウェア ボード][なし - 以下のデバイスを選択] に設定します。次に、[デバイス ベンダー][デバイス タイプ] を設定します。

ハードウェア実行設定には、指定されたデバイスの値があります。これらの設定を表示または変更するには、[ハードウェア実行のカスタマイズ] リンクをクリックします。指定されたデバイスに対して有効にした場合のみ設定を変更できます。

コマンド ライン ワークフローで対話的に構成パラメーターを指定を参照してください。

ヒント

ProdHWDeviceType プロパティを設定するには、coder.HardwareImplementation オブジェクトを参照する構成オブジェクトのダイアログ ボックスを開いて使用可能なオプションからデバイスを選択します。ダイアログ ボックスによるハードウェア実行プロパティへのアクセスを参照してください。

代替機能

  • coder.HardwareImplementation オブジェクトを直接作成し、それを coder.CodeConfig オブジェクトまたは coder.EmbeddedCodeConfig オブジェクトに割り当てることができます。

    hw_cfg = coder.HardwareImplementation;
    hw_cfg.ProdHWDeviceType = 'AMD->Athlon 64';
    cfg = coder.config('lib');
    cfg.HardwareImplementation = hw_cfg;

  • ハードウェアにサポート パッケージをインストールしている場合、coder.EmbeddedCodeConfig オブジェクトの Hardware プロパティを coder.Hardware オブジェクトに設定してハードウェア固有のコード生成パラメーターをカスタマイズできます。coder.Hardware オブジェクトを作成するには、coder.hardware を使用します。次に例を示します。

    cfg = coder.config('lib');
    hw = coder.hardware('Raspberry Pi');
    cfg.Hardware = hw;

バージョン履歴

R2011a で導入