如何在报告语句中将字符串与整数连接起来?
How to concatenate strings with integer in report statement?
我在使用以下报告语句时遇到问题:
report "ERROR: instruction address '" & CONV_INTEGER(a(7 downto 2)) & "' out of memory range." severity failure;
其中 a
的类型为 in std_logic_vector(31 downto 0)
。
我得到的错误是:
No feasible entries for infix operator "&".
我想打印出一个字符串,连接整数值,然后连接另一个字符串。
我做错了什么?
使用'IMAGE的例子:
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
entity foo is
end entity;
architecture fum of foo is
signal a: std_logic_vector (31 downto 0) := x"deadbeef";
begin
process (a)
begin
report "ERROR: instruction address '" &
-- CONV_INTEGER(a(7 downto 2)) &
INTEGER'IMAGE(to_integer(unsigned (a(7 downto 2)))) &
"' out of memory range." ;-- severity failure;
end process;
end architecture;
我使用了包 numeric_std。原理是一样的,转换例程的名字不一样
'IMAGE 是一个预定义的属性,returns 一个类型值的字符串表示形式(在本例中为 INTEGER)。
您的失败消息是因为没有可用的“&”连接运算符知道如何将整数连接到字符串,因此您改为提供整数的字符串图像。
当运行:
ghdl -r foo
foo.vhdl:13:9:@0ms:(report note): ERROR: instruction address '59' out of memory range.
第 7 位到第 2 位是位串初始化的“111011”,当表示为整数时恰好等于 59。
我在使用以下报告语句时遇到问题:
report "ERROR: instruction address '" & CONV_INTEGER(a(7 downto 2)) & "' out of memory range." severity failure;
其中 a
的类型为 in std_logic_vector(31 downto 0)
。
我得到的错误是:
No feasible entries for infix operator "&".
我想打印出一个字符串,连接整数值,然后连接另一个字符串。
我做错了什么?
使用'IMAGE的例子:
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
entity foo is
end entity;
architecture fum of foo is
signal a: std_logic_vector (31 downto 0) := x"deadbeef";
begin
process (a)
begin
report "ERROR: instruction address '" &
-- CONV_INTEGER(a(7 downto 2)) &
INTEGER'IMAGE(to_integer(unsigned (a(7 downto 2)))) &
"' out of memory range." ;-- severity failure;
end process;
end architecture;
我使用了包 numeric_std。原理是一样的,转换例程的名字不一样
'IMAGE 是一个预定义的属性,returns 一个类型值的字符串表示形式(在本例中为 INTEGER)。
您的失败消息是因为没有可用的“&”连接运算符知道如何将整数连接到字符串,因此您改为提供整数的字符串图像。
当运行:
ghdl -r foo
foo.vhdl:13:9:@0ms:(report note): ERROR: instruction address '59' out of memory range.
第 7 位到第 2 位是位串初始化的“111011”,当表示为整数时恰好等于 59。