2

Verilog コードで有理数を使用する必要があります。リソースを探しましたが、この問題について何も見つかりませんでした。Verilog で有理数を定義するにはどうすればよいですか。

4

2 に答える 2

2

Verilog には、real実数 (浮動小数点数) に使用されるデータ型があります。

real data;
initial data = 1.55;
于 2011-05-16T15:55:51.590 に答える
1

HDL で有理数を実装するには、主に次の 2 つの方法があります。

1) 常に 2 の累乗である固定の分母が必要な場合は、通常の 2 の補数表現を持つ固定小数点数を使用できますが、インデックスが 0 未満のビットを持つため、a と同じように、a[3:0] "0111"になります0*2**3 + 1*2**2 + 1*2**1 + 1*2**0 = 7[1:-2] "0111"でしょう0*2**1 + 1*2**0 + 1*2**-1 + 1*2**-2 = 1.75。通常の Verilog では、このような負のインデックスを使用できますが、操作を手動で行う場合は、シフトとスケーリングを処理する必要があります (たとえば、各操作を独自の関数またはモジュールに配置します)。SystemVerilog または VHDL を使用すると、これをデータ型で自動的に処理する固定小数点パッケージを作成 (または既存のものを使用) できます。

2) 任意の分母が必要な場合は、単純に 2 つの reg を使用して各値を表すことができます。1 つは分子、もう 1 つは分母です。ここでも、数学演算の実装を手動で処理する必要があります。繰り返しになりますが、SystemVerilog または VHDL を使用すると、この動作をデータ型にまとめることができます。

幸運を!

于 2011-06-30T16:10:30.157 に答える