std_logic_vector与Xilinx vhdl中的整数综合

时间:2013-02-06 05:04:56

标签: vhdl vhd

我正在使用8位像素值...为了便于编码我想使用conv_integer转换这个8位std_logic_vector.is它会导致任何合成问题吗?它是否会降低硬件的速度......

2 个答案:

答案 0 :(得分:2)

不,整数合成得很好。 Don't use conv_integer though - 来自旧的非标准库。

您希望use ieee.numeric_std;然后to_integer(unsigned(some_vector));

如果您仍想访问这些位,并将向量视为数字,则使用有符号或无符号类型 - 它们定义位向量(仍可以有-Z等。)表现为数字,所以你可以写unsigned_vector <= unsigned_vector + 1

答案 1 :(得分:1)

您将失去标准逻辑向量带来的许多功能,例如值为“Z”或“X”。如果您需要访问这些位,请将其保留为std_logic_vector,或将其强制转换为numeric_std。如果你不这样做,你需要做一些花哨的算术,也许最好有一个int。在一天结束时它的所有位。通常最好保持顶层的矢量类型(std_logic_vector,unsigned,signed etc),这样你就可以将每个位映射到特定的引脚,但除此之外,你可以使用你想要的任何类型。不要忘记你现在正在设计硬件,而不是软件,并且存在差异。