VHDL中使用numeric_std将std_logic_vector转换为有符号和无符号数据类型

4
我对从std_logic_vectorsigned/unsigned的转换存在一些疑惑。我经常使用signed(...)unsigned(...)进行转换,但是当我尝试使用库numeric_std中定义的转换(to_signedto_unsigned)时,它不起作用。有人能解释一下为什么会出现这种情况吗?以及为什么unsigned()signed()的转换有效?
2个回答

7
因为 std_logic_vector, signed/unsigned 类型密切相关,你可以使用类型转换的方式进行转换。所以 signed(a_std_logic_vector)unsigned(a_std_logic_vector) 都可以。然而,转换函数也在标准中定义了。
请查看 VHDL FAQ 。这是一个老网站,是关于 VHDL 的信息。

2

查看numeric_std的软件包规范。您会发现to_signed将整数转换为有符号数...

如“vermaete”所说,signed是与std_logic_vector密切相关的类型,因此您不需要在那里使用转换函数。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接