Main Content

Bit Concat

最大 128 の入力語を単一の出力に連結

  • Bit Concat block

ライブラリ:
HDL Coder / Logic and Bit Operations

説明

Bit Concat ブロックは、最大 128 の入力語を単一の出力に連結します。L というラベルの付いた入力端子は最低次数の入力語を指定します。H というラベルの付いた入力端子は最高次数の入力語を指定します。スカラー入力の場合、2 つ以上の入力信号をブロックに接続する必要があります。ベクトル入力の場合、少なくとも 1 つの入力をブロックに接続する必要があります。このブロックでは、出力における語の順序が入力信号の下位から上位の順に従って右から左の順になるように関数 bitconcat を使用します。ブロックの動作の詳細については、アルゴリズムを参照してください。

端子

入力

すべて展開する

ブロックが連結する最高次数の入力語で、連結された出力信号の左端の値となります。

データ型: int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point

ブロックが連結する最低次数の入力語で、連結された出力信号の右端の値となります。

データ型: int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point

出力

すべて展開する

出力は、入力語を低い次数から高い次数の順に連結した語です。連結された出力の最大ワード サイズは 128 ビットです。

データ型: int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point

パラメーター

すべて展開する

入力信号の数を指定する整数を入力します。ブロックの入力端子の数は [入力数] を変更すると更新されます。

  • 既定の設定: 2

  • 最小: 1

  • 最大: 128

注意

[入力数] がブロックに接続する信号の数と等しいことを確認してください。ブロックに未接続の入力があると、コード生成中にエラーが発生します。

プログラムでの使用

ブロック パラメーター: numInputs
型: string スカラー | 文字ベクトル
値: 128 以下の正の整数値
既定の設定: '2'

アルゴリズム

このブロックでは、関数 bitconcat を使用して結果を計算します。ブロックの動作は、入力の数と次元によって次のように異なります。

  • 1 つの入力: 入力は、スカラーかベクトルのいずれかです。入力がベクトルの場合、コード ジェネレーターは個々のベクトル要素を連結します。たとえば、入力ベクトルが [1 2] でデータ型が ufix4 の場合、出力では1 が MSB (最上位ビット) になるように要素 12 を 連結します。出力は次のとおりです。

    y = dec2bin('00010010') = 18

  • 2 つの入力: 入力は、スカラーとベクトルの任意の組み合わせです。

    • 一方の入力がスカラーでもう一方がベクトルの場合、コード ジェネレーターはスカラー拡張を実行します。それぞれのベクトル要素がスカラーと連結され、出力はベクトルと同じ次元になります。たとえば、端子 H への入力がベクトル [1 2] で、端子 L への入力がスカラー値 3 であるとします。どちらの入力もデータ型は ufix4 です。出力は、MSB が要素 13 の連結で、LSB が要素 23 の連結になるように連結されたベクトルになります。

      y = [dec2bin('00010011') dec2bin('00100100')] = [19 35]

    • 両方の入力がベクトルの場合、同じサイズでなければなりません。この場合、最後の要素が最低次数の語で、最初の要素が最高次数の語です。たとえば、入力が [1 2][3 4] の 2 つのベクトルで、データ型はどちらも ufix4 であるとします。出力は、MSB が要素 13 の連結で、LSB が要素 24 の連結になるように連結されたベクトルになります。

      y = [dec2bin('00010011') dec2bin('00100100')] = [19 36]

  • 3 つ以上の入力 (最大 128): 入力は、すべてスカラーかすべてベクトルのいずれかです。ベクトル入力については、すべて同じサイズでなければなりません。たとえば、入力が [1 2][3 4]、および [5 6] の 3 つのベクトルで、ベクトル [1 2] が端子 H への入力、[5 6] が端子 L への入力であるとします。この場合、出力はベクトルであり、最初に [1 2][3 4] を連結します。

    temp = [dec2bin('00010011') dec2bin('00100100')] = [19 36]

    その後、この計算の結果がベクトル [5 6] と連結されて出力が生成されます。

    y = [dec2bin('000100110101') dec2bin('001001000110')] = [309 582]

拡張機能

C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。

バージョン履歴

R2014a で導入