library ieee;
use ieee.std_logic_1164.all;
package ieee_to_string is
function to_string(constant value: in std_ulogic;
constant as_char_lit: in boolean := true)
return string;
function to_string(constant value: in std_ulogic_vector;
constant as_string_lit: in boolean := true)
return string;
function to_string(constant value: in std_logic_vector;
constant as_string_lit: in boolean := true)
return string;
end;
package body ieee_to_string is
type val_list is array (std_ulogic) of character;
constant char_val : val_list := "UX01ZWLH-";
function to_string(constant value: in std_ulogic;
constant as_char_lit: in boolean := true)
return string
is
begin
if as_char_lit then
return string'("'" & char_val(value) & "'");
end if;
return string'("" & char_val(value));
end;
function to_string(constant value: in std_ulogic_vector;
constant as_string_lit: in boolean := true)
return string
is
variable str: string(1 to value'length) := (others => ' ');
variable idx: natural := 1;
begin
for i in value'range loop
str(idx to idx) := to_string(value(i), false);
idx := idx + 1;
end loop;
if as_string_lit then
return string'('"' & str & '"');
end if;
return str;
end;
function to_string(constant value: in std_logic_vector;
constant as_string_lit: in boolean := true)
return string
is
begin
return to_string(std_ulogic_vector(value), as_string_lit);
end;
end;