こんにちは、私が VHDL でやろうとしているのは、8 ビットのバイナリ値を取り、それを BCD として表現することですが、この値は最大入力の 9 の一部でなければならないという問題があります。
1- 入力を整数に変換します。例: 1000 0000 -> 128
2- 整数を 255 で割ってから 90 を掛けます (1 の桁と小数点以下の最初の桁がすべて小数点以下になるように 90 を掛けます)
例: 128/255*90 = 45.17 (これを signal_in とします)
3. 20 で割って 45 の 2 桁を抽出し、それらを別の整数として保存します。たとえば、次のようなものを使用します。
LSB_int = signal_in mod 10
次に、信号を 10 で割って 4.517 に変更し、それを MSB_int に等しくします (小数点以下を切り捨てて 4 を右に格納します)。
4.LSB_intとMSB_intの両方を4桁のBCDに変換します
..そして私はそこから完璧になるでしょう...しかし悲しいことに、私は非常に多くの問題を抱えました...さまざまなデータ型(署名されていないstd_logic_vectors)と除算で.だから、私の思考プロセスの欠陥と私がすべきことについて助けが必要ですこれを行うときは注意してください..
私は実際に自分のコードをやり直して、これを保存したと思っていました..しかし、私はそうしませんでした..私はまだこの解決策がうまくいくと信じています.古いコードだと思うものを返信します...すべてを思い出すことができたらすぐに..
これが私の新しいコードに関する私の他の質問です..(私が何かをしたことを示すためだけに..) VHDLで8ビットの2進数をBCDに変換する