グレイコーダー
入力信号の符号なし整数値をグレイ コードに変換する、回路図エディターのグレイ コーダ コンポーネントの説明。
コンポーネントアイコン
説明
Gray Coder コンポーネントは、入力信号の符号なし整数値をグレイ コードに変換します。
グレイ コードは、連続する 2 つの値が 1 ビットだけ異なるような 2 進数値システムの順序です。
出力値は、入力値と 1 ビット右にシフトした入力値との排他的論理和演算を実行して計算されます。
出力値 =入力値b ⊕ (入力値b >> 1)
小数点 | バイナリ | グレー |
---|---|---|
0 | 0000 | 0000 |
1 | 0001 | 0001 |
2 | 0010 | 0011 |
3 | 0011 | 0010 |
4 | 0100 | 0110 |
5 | 0101 | 0111 |
6 | 0110 | 0101 |
7 | 0111 | 0100 |
8 | 1000 | 1100 |
9 | 1001 | 1101 |
10 | 1010 | 1111 |
11 | 1011 | 1110 |
12 | 1100 | 1010 |
13 | 1101 | 1011 |
14 | 1110 | 1001 |
15 | 1111 | 1000 |
グレイコードの長さは、ビット幅プロパティの値によって定義されます。この値によって、入力信号値を制限するかどうかが決まります。
制限のルールは次のとおりです。
- 入力信号の値は、グレイコードへの変換が行われる前に、必ず符号なし整数値に変換されます。入力信号が負の場合、値は0に制限されます。値が実数の場合、数値の小数部は無視されます(例:5.75は5に切り捨てられます)。
- グレイコードに変換できる入力信号の最大値は、2ビット幅- 1 の値によって決まります (ビット幅が 4 の場合、最大入力値は 15 です)。
- 入力信号の値が(2ビット幅- 1)より大きい場合、その値は式で表現できる最大値に制限されます。例えば、ビット幅が4で入力値が20の場合、値は15に制限されます。
出力信号はビット幅の長さのベクトルになります。ここで、 out [0] はグレイコードの最下位ビット (LSB) で、 out [ビット幅 - 1] はグレイコードの最上位ビット (MSB) です。
例:グレイコードのビット幅が4で、入力値が35の場合を考えてみましょう。4ビットで表現できる最大の数値は15なので、入力値は15に制限され、変換されます。変換は次のようになります。
出力値 = 1111 b ⊕ (1111 b >> 1) = 1111 b ⊕ 0111 b = 1000 b
Gray Coder コンポーネントの出力ベクトルは次のようになります。
出力[0] = 0
出力[1] = 0
アウト[2] = 0
アウト[3] = 1
ポート
- 入力(入力)
- サポートされる型: real、int、uint。
- ベクターサポート: いいえ。
- 出力(アウト)
- サポートされる型: real、int、uint。
- タイプは入力信号タイプから継承されます。
- ベクターサポート: いいえ。
- ベクトルの長さはビット幅プロパティ値によって決まります。
- サポートされる型: real、int、uint。
プロパティ
- ビット幅
- グレイコードの長さをビット単位で入力します。
- 実行率
- 希望する信号処理実行速度を入力してください。この値は、同じ回路内の他の信号処理コンポーネントと互換性がある必要があります。つまり、回路内で最も速い実行速度の倍数である必要があります。実行速度は最大4つまで指定できます。実行速度の指定には、小数(例:0.001)または指数値(例:1e-3)(秒単位)を使用できます。または、「inherit」と入力すると、入力を受け取るコンポーネントの実行速度に基づいて、コンポーネントに実行速度が割り当てられます。