我对使用从std_logic_vector
到signed
/unsigned
的转换有一些疑问。我总是使用转换signed(...)
, unsigned(...)
,但是当我尝试使用库numeric_std
(to_signed
, to unsigned
)中定义的转换时,它不起作用。有人能给我解释一下为什么会这样吗?为什么转换unsigned()
和signed()
有效?
因为std_logic_vector
和signed
/unsigned
类型是密切相关的,所以您可以使用类型转换的方式进行转换。所以signed(a_std_logic_vector)
和unsigned(a_std_logic_vector)
是可以的。但是,要转换的函数也在标准中定义。
查看VHDL FAQ。这是一个新闻组还很流行的老网站,但它仍然有很多关于VHDL的好信息。
查看numeric_std的包规范。您将发现to_signed转换为signed…从整数。
正如"vermaete"所说,signed是与std_logic_vector密切相关的类型,因此您不需要在那里使用转换函数。