Сообщаете std_logic_vector как целое число без знака в ISim?

Вот библиотеки, которые я использую:

library IEEE;
use IEEE.STD_LOGIC_1164.all;
use IEEE.NUMERIC_STD.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

сигнал:

signal CountTemp : std_logic_vector(15 downto 0);

и отчет отчета:

report "Actual CountTemp: " & integer'image(to_integer(unsigned(CountTemp)));

Я получаю эту ошибку:

 at 30 ns, Instance /TESTFILE_tb/ : Warning: NUMERIC_STD.TO_INTEGER: metavalue detected, returning 0

1 ответ

Ошибки, содержащие metavalue detected означает, что вы передали параметр (в данном случае unsigned(CountTemp)) которые содержат биты с состояниями, отличными от 0 или же 1,

Попробуйте инициализировать ваш счетчик:

signal CountTemp : std_logic_vector(15 downto 0) := (others => '0');

Поскольку без этого значение CountTemp будет "UUUUUUUUUUUUUUUU"т. е. метазначение.

В качестве альтернативы, убедитесь, что вы присвоили что-то своему сигналу, прежде чем передать его to_integer,

Другие вопросы по тегам