BitBasher - 2022.1 日本語

Vitis Model Composer ユーザー ガイド (UG1483)

Document ID
UG1483
Release Date
2022-05-26
Version
2022.1 日本語

ザイリンクス 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 の結果が格納されます。

連結

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}

スライス

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}}

上記の式は、スライス構文と連結構文を組み合わせて使用しています。入力 b のビット 7 ~ 5、入力 c のビット 3 ~ 9、de のすべてのビットが連結されます。

繰り返し

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} と等価です。

定数

2 進定数: N'bbin_const

8 進定数: N'ooctal_const

10 進定数: N'doctal_const

16 進定数: 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 つの入力ポートを含める必要があります。定数のみを含む式は使用できません。