ザイリンクス BitBasher ブロックは、ブロックに接続された入力のスライシング、連結、および拡張を実行します。
実行する演算は、この資料で説明されている Verilog 構文を使用して記述します。ブロックには、最大 4 つの出力ポートを使用できます。出力ポートの数は、論理式の数と同じになります。このブロックは、ハードウェア リソースを消費しません。
ブロック パラメーター
Simulink® モデルでブロックのアイコンをダブルクリックすると、[Block Parameters] ダイアログ ボックスが開きます。
- Basic タブ
-
Basic タブには、次のパラメーターがあります。
- BitBasher Expression
- Verilog 構文に基づくビット単位の演算式。式の間を改行で区切り、4 つのまでの式を指定できます。
- Output Type タブ
-
- [Output]
- データ型を指定するポート。
- Output type
- 対応する出力に適用する演算型。
- Binary Point
- 対応する出力に適用する 2 進小数点の位置。
このブロックで使用されるその他のパラメーターについては、[Block Parameters] ダイアログ ボックスの共通オプション を参照してください。
サポートされる Verilog 構文
BitBasher ブロックは、スライス、連結、繰り返し演算子など、ビット単位の演算を実行する Verilog 式構文のサブセットのみをサポートしています。指定されたすべての式は、次のテンプレート式に従っている必要があります。
output_var = {bitbasher_expr}
bitbasher_expr
: Verilog 構文に基づくスライス、連結、繰り返し式、または入力ポート識別子。
output_var
: 出力ポート識別子。ブロックに output_var という名前の出力ポートが表示され、ワイヤ式 bitbasher_expr の結果が格納されます。
Concat
output_var = {bitbasher_expr1, bitbasher_expr2, bitbasher_expr3}
連結構文は、上記のようにサポートされます。各 bitbasher_exprN
には、式または入力ポート識別子を指定します。
次に、この構文の例を示します。
a1 = {b,c,d,e,f,g}
a2 = {e}
a3 = {b,{f,c,d},e}
Slice
output_var = {port_identifier[bound1:bound2]}
(1)
output_var = {port_identifier[bitN]}
(2)
port_identifier
: ビットを抽出する入力ポート。
bound1
、bound2
: 0 ~ (port_identifier のビット幅 - 1) の負でない整数。
bitN
: 0 ~ (port_identifier のビット幅 - 1) の負でない整数。
上記に示すように、入力ポートからビットを抽出する方法は 2 つあります。連続する複数のビットを抽出する場合は、次の形式を使用する必要があります。
output_var = {port_identifier[bound1:bound2]}
(1)
1 ビットのみを抽出する場合は、次の形式を使用します。
output_var = {port_identifier[bitN]}
(2)
次に、この構文の例を示します。
a1 = {b[7:3]}
a1
は、入力 b
のビット 7 ~ 3 を、ビット b
に現れるのと同じ順序で保持します (例: b
が 110110110 の場合、a1
は 10110)。
a2 = {b[3:7]}
a2
は、入力のビット b
のビット 7 ~ 3 を、ビット b
に現れるのと逆順で保持します (例: b
が 110100110 の場合、a2
は 00101)。
a3 = {b[5]}
a3
は、入力 b
のビット 5 を保持します。
a4 = {b[7:5],c[3:9],{d,e}}
上記の式は、slice と concat コンストラクトを組み合わせています。入力 b
のビット 7 から 5、入力 c
のビット 3 から 9、および d
と e
の全ビットが連結されます。
Repeat
output_var = {N{bitbasher_expr}}
N
: 式の繰り返し係数を表す正の整数。
次に、この構文の例を示します。
a1 = {4{b[7:3]}}
上記の式は、a1 =
{b[7:3], b[7:3], b[7:3], b[7:3]}
と等価です。
a2 = {b[7:3],2{c,d}}
上記の式は、a2 =
{b[7:3],c,d,c,d}
と等価です。
Constants
Binary Constant: N'bbin_const
Octal Constant: N'ooctal_const
Decimal Constant: N'doctal_const
Hexadecimal Constant: N'hoctal_const
N: 定数を表すのに使用するビット数を表す正の整数
bin_const: 0 と 1 で構成される有効な 2 進数文字列
octal_const: 0、1、2、3、4、5、6、および 7 で構成される有効な 8 進数文字列
decimal_const: 0、1、2、3、4、5、6、7、8、および 9 で構成される有効な 10 進数文字列
hexadecimal_const: 0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、および f で構成される有効な 2 進数文字列
定数は、入力ポートから導出された式を補足するためにのみ使用できます。つまり、BitBasher ブロックは、Constant ブロックのように、単に定数をソースとするためには使用できません。
次の例は、この構文を使用します。
a1 = {4'b1100, e}
e
が 110110110 の場合、a1
は 1100110110110 になります。
a1 = {4'hb, e}
e
が 110110110 の場合、a1
は 1101110110110 になります。
a1 = {4'o10, e}
e
が 110110110 の場合、a1
は 1000110110110 になります。
制限
- bitbasher 式では、マスクされたパラメーター指定はサポートされません。
- 各式には、少なくとも 1 つの入力ポートを含める必要があります。定数のみを含む式は使用できません。