VHDL std_logic_vector用numeric_std转换为有符号和无符号



我对使用从std_logic_vectorsigned/unsigned的转换有一些疑问。我总是使用转换signed(...), unsigned(...),但是当我尝试使用库numeric_std (to_signed, to unsigned)中定义的转换时,它不起作用。有人能给我解释一下为什么会这样吗?为什么转换unsigned()signed()有效?

因为std_logic_vectorsigned/unsigned类型是密切相关的,所以您可以使用类型转换的方式进行转换。所以signed(a_std_logic_vector)unsigned(a_std_logic_vector)是可以的。但是,要转换的函数也在标准中定义。

查看VHDL FAQ。这是一个新闻组还很流行的老网站,但它仍然有很多关于VHDL的好信息。

查看numeric_std的包规范。您将发现to_signed转换为signed…从整数。

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

相关内容

  • 没有找到相关文章

最新更新