ザイリンクス Gateway In ブロックは、 Simulink® デザインの HDL 部分への入力です。このブロックは、 Simulink® の整数型、倍精度浮動小数点型、および固定小数点型を Model Composer の固定小数点型に変換します。各ブロックは、Model Composer で生成された HDL デザインの最上位入力ポートまたはインターフェイスを定義します。
Simulink データから Model Composer データへの変換
Gateway In の入力には、さまざまな Simulink データ型がサポートされています。サポートされているデータ型は、int8、uint8、int16、uint16、in32、uint32、single、double、Simulink 固定小数点型 (Simulink 固定小数点型ライセンスが使用可能な場合) です。すべての場合において、入力データはゲートウェイ内で double 型に変換され、Gateway In ブロックで指定されたターゲット データ型 (固定小数点、浮動小数点、またはブール値) に変換されます。内部で double 型から固定小数点型に変換する際、ブロックの GUI での設定に従って、量子化およびオーバーフローが処理されます。シミュレーションでのオーバーフローのオプションは、[Saturate] (最大の正の値/最小の負の値に飽和)、[Wrap] (例: 表現可能な最上位ビットの左側のビットを破棄)、または [Flag] (Simulink エラーとしてフラグ) です。量子化のオプションは、[Round] (最も近い表現可能な値または最も近い表現可能な値が 2 つある場合は 0 から遠い方の値に丸め)、または [Truncate] (表現可能な最下位ビットの右側のビットを破棄するなど) です。変換、オーバーフロー、量子化はハードウェアでは実行されず、ブロックのシミュレーション モデルでのみ実行される点に注意してください。
Gateway ブロック
ザイリンクス Gateway In ブロックは、次の多くの機能を提供するために使用されます。
- Simulink でのシミュレーション中に、データを Simulink の整数型、double 型、固定小数点型から Model Composer の固定小数点型に変換します。
- Model Composer で生成された HDL デザインの最上位入力ポートまたはインターフェイスを定義します。
- System Generator トークンで Create Testbench をオンにしている場合にテストベンチ スティミュラスを定義します。この場合、HDL コード生成時に、Simulink シミュレーションで発生したブロックへの入力が、データ ファイルのロジック ベクターとして記録されます。HDL シミュレーションでは、最上位テストベンチに挿入されたエンティティで、このベクターと Gateway Out ブロックで生成される対応するベクターを、予測される結果と比較してチェックします。
- 最上位 HDL エンティティの対応するポートに名前を付けます。
ブロック パラメーター
Simulink モデルでブロックのアイコンをダブルクリックすると、Block Parameters ダイアログ ボックスが開きます。
- Basic タブ
-
Basic タブには、次のパラメーターがあります。
- Output Type
-
出力のデータ型を指定します。Boolean、Fixed-point、または Floating-point に設定可能です。
- Arithmetic Type
- [Output Type] を [Fixed-point] に設定した場合、Arithmetic Type はSigned (2’s comp) または Unsigned に設定できます。
- Fixed-point Precision
-
- Number of bits
- 2 進小数点ビット幅を含む合計ビット数を指定します。
- Binary point
- 2 進小数点のビット位置を指定します (ビット 0 が最下位ビット)。
- Floating-point Precision
-
- Single
- 単精度 (32 ビット) を指定します。
- Double
- 倍精度 (64 ビット) を指定します。
- Custom
- [Exponent width] および [Fraction width] を有効にし、指数部の幅と仮数部の幅を指定できるようにします。
- Exponent width
- 指数部のビット幅を指定します。
- Fraction width
- 仮数部の幅を指定します。
- Quantization
-
量子化エラーは、小数部のビット数が値の小数部を表すのに十分でない場合に発生します。オプションは、Truncate (例: 表現可能な最上位ビットの右側のビットを破棄)、Round(unbiased: +/- inf)、または Round (unbiased: even values). です。
- Round(unbiased: +/- inf)
-
「対称丸め (+/- 無限大の方向)」または「対称丸め (0 から遠い方向)」とも呼ばれます。これは、 MATLAB®
round()
関数と似ています。この方法では、値が 0 から遠い方向の最も近いビットに丸められます。値が 2 つの可能な丸め値の中間値である場合は、大きい方が選択されます。たとえば、01.0110 を Fix_4_2 に丸めると、01.0110 は 01.01 と 01.10 のちょうど中間であるので、0 から遠い方の 01.10 となります。
- Overflow
-
オーバーフロー エラーは、値が表現可能な範囲外である場合に発生します。シミュレーションでのオーバーフローのオプションは、Saturate (最大の正の値/最小の負の値に飽和)、Wrap (例: 表現可能な最上位ビットの左側のビットを破棄)、または Flag as error ( Simulink® エラーとしてフラグ) です。Flag as error は、シミュレーションのみのオプションです。生成されるハードウェアは、Wrap を選択した場合と同じになります。
- Implementation タブ
-
Implementation タブには、次のパラメーターがあります。
- Interface Options
-
- Interface
-
- None
- HDL ネットリスト生成時に、この Gateway In は最上位の入力ポートとして変換されます。
- AXI4-Lite
- HDL ネットリスト生成時に、AXI4-Lite インターフェイスが作成され、Gateway In がその AXI4-Lite のインターフェイス内のレジスタの 1 つにマップされます。
- Auto assign address offset
-
Gateway In が AXI4-Lite インターフェイスとして設定されている場合、このオプションにより、Gateway In がマップされている AXI4-Lite インターフェイス内のレジスタにアドレス オフセットが自動的に割り当てられます。
- Address offset
- [Auto assign address offset] がオフの場合に、使用するアドレス オフセットを明示的に指定します。値は 4 の倍数である必要があります。
- Interface Name
- Gateway In が AX4-Lite インターフェイスとして設定されている場合、このインターフェイスにほかと重複しない名前を割り当てます。デザインに複数の AXI4-Lite インターフェイスがある場合、インターフェイスはこの名前で識別されます。IP カタログ フローを使用する場合、IP には Model Composer で作成される <design_name>_<interface_name>_s_axi という名前のインターフェイスが含まれます。重要: Interface Name には、英数文字 (アルファベットは小文字)、またはアンダースコア (_) のみを使用でき、名前の最初の文字は小文字のアルファベットにする必要があります。たとえば、「axi4_lite1」という名前は使用できますが、「1Axi4-Lite」は使用できません。
- Description
- この Gateway In に関する設計者の追加コメントで、インターフェイスの資料に記載されています。
- Constraints
-
- IOB Timing Constraint
- ハードウェアでは、Gateway In は入出力バッファー (IOB) のセットとして実現されます。制約には、None と Data
Rate の 2 つのオプションがあります。
[None] を選択すると、Model Composer で作成されるユーザー制約ファイルには、IOB のタイミング制約は書き込まれません。つまり、IOB から同期エレメントへのパスは制約されません。
[Data Rate] を選択すると、IOB が動作するデータ レートに制約されます。このレートは、System Generator トークンのシステム クロック周期と、デザイン内のその他のサンプル周期に対する Gateway ブロックのサンプル レートによって決まります。
- Specify IOB location constraints
- このオプションを選択すると、IOB のロケーション制約と I/O 規格を指定できます。
- IOB pad locations, e.g. {'MSB', ..., 'LSB'}
- IOB ピンの位置は、この編集ボックスで文字列のセル配列として指定できます。位置はパッケージごとに異なります。
- IO Standards, e.g. {'MSB', ..., 'LSB'}
- I/O 規格を文字列のセル アレイとして指定します。位置はパッケージごとに異なります。