2

私は8ビットのピクセル値で作業しています..コーディングを簡単にするために、conv_integerを使用してこの8ビットのstd_logic_vectorを変換したいと思います。合成の問題が発生しますか?ハードウェアの速度が低下します...

4

2 に答える 2

2

いいえ、整数は問題なく合成されます。 ただし、conv_integerは使用しないでください。これは古い非標準ライブラリからのものです。

use ieee.numeric_std;あなたがしたいto_integer(unsigned(some_vector));

それでもビットにアクセスし、ベクトルを数値として扱いたい場合は、符号付きまたは符号なしの型を使用します。これらは、数値として動作するビットのベクトル(まだ持つことができるなど)を定義する-ためZ、を書くことができますunsigned_vector <= unsigned_vector + 1

于 2013-02-06T13:15:50.067 に答える
1

値「Z」または「X」を持つなど、標準の論理ベクトルに付属する多くの機能が失われます。ビットにアクセスする必要がある場合は、 std_logic_vector のままにするか、numeric_stdにキャストしてください。そうでなく、凝った算術演算を行う必要がある場合は、int として使用する方がよいでしょう。一日の終わりに、そのすべてのビット。通常は、各ビットを特定のピンにマップできるように最上位のベクター型 (std_logic_vector、unsigned、signed など) を保持するのが最善ですが、それ以外の場合は、必要な型を使用できます。現在、ソフトウェアではなくハードウェアを設計していることを忘れないでください。違いがあります。

于 2013-02-06T05:49:36.123 に答える