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、无符号、有符号等),这样您就可以将每个位映射到特定的引脚,否则,您可以使用您想要的任何类型。不要忘记您现在是在设计硬件,而不是软件,这是有区别的。

于 2013-02-06T05:49:36.123 回答