如何在VHDL中减去两个十六进制数?

时间:2015-09-02 12:25:20

标签: vhdl

我正在从文本文件中读取两个十六进制数字,我希望能够减去这两个数字,并将结果放入另一个变量中,我将如何进行此操作?是否可以创建一个函数来将其放入包文件和引用中,以便我的代码更具可读性和更简洁?

非常感谢,

1 个答案:

答案 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程序。