我正在从文本文件中读取两个十六进制数字,我希望能够减去这两个数字,并将结果放入另一个变量中,我将如何进行此操作?是否可以创建一个函数来将其放入包文件和引用中,以便我的代码更具可读性和更简洁?
非常感谢,答案 0 :(得分:0)
为了将Function
转换为line
,VHDL-2008在unsigned
包中提供了hread
过程。需要numeric_bit
并返回string
的函数可能如下所示:
natural
如果从文件中读取的文本已经是library ieee;
use ieee.numeric_bit.all;
library std;
use std.textio.all;
...
function hex_to_nat(s : string) return natural is
variable line_v : line;
variable value_v : unsigned(4 * s'length - 1 downto 0); -- Bits to match value in hex
begin
line_v := new string'(s);
hread(line_v, value_v); -- Assertion in case of conversion error
deallocate(line_v); -- Avoid memory leak
return to_integer(value_v); -- Assertion in case of conversion error
end function;
类型,则只需直接使用line
程序。