我对使用std_logic_vector
到signed
/ unsigned
的转化产生了疑问。我总是使用转化signed(...)
,unsigned(...)
,但当我尝试使用库numeric_std
(to_signed
,to unsigned
)中定义的转化时,它不会不行。有人可以向我解释为什么会这样吗?转化为unsigned()
和signed()
的原因是什么?
答案 0 :(得分:5)
由于std_logic_vector
和signed
/ unsigned
类型密切相关,因此您可以使用类型转换方式进行转换。因此signed(a_std_logic_vector)
和unsigned(a_std_logic_vector)
没问题。但是,要转换的函数也在标准中定义。
看看VHDL FAQ。 这是一个旧网站,从新闻组仍然很热的时候开始,但它仍然有很多关于VHDL的好信息。
答案 1 :(得分:1)
查看numeric_std的软件包规范。你会发现to_signed从整数转换为signed ...
正如“vermaete”所说,signed是与std_logic_vector密切相关的类型,所以你不需要那里的转换函数。