【发布时间】:2019-10-09 01:15:08
【问题描述】:
我正在做一堆 DSP 验证并在断言失败时进行打印,我为有符号和无符号类型编写了这些函数:
function to_string(arg : integer) return string is
begin
return integer'image(arg);
end function;
function to_string(arg : signed) return string is
begin
return to_string(to_integer(arg));
end function;
function to_string(arg : unsigned) return string is
begin
return to_string(to_integer(arg));
end function;
但是,由于我的一些结果大于 32 位宽,所以它们就坏了。当有符号和无符号类型大于 32 位宽时,VHDL 中有没有办法提供整数字符串表示?如果没有,有人可以提供一个函数来提供这些数字的十六进制表示,以减少打印到控制台的大小吗?
【问题讨论】:
-
也许你可以从
real类型中受益,因为它总是double precision,因此有更多位来表示整数部分。 -
@MortenZilmer 那会很好,但是在处理有符号/无符号类型时,这是不可能的,因为我必须先转换为整数。我的用例是我正在验证宽度 > 31 位的有符号/无符号结果。检查值时我没问题,因为我使用相同的数据类型。但是,我想以可读的方式将预期/观察到的打印到屏幕上,以便用户查看差异。
标签: vhdl