Перейти к содержанию
    

Потерянный ModelSim-ом сигнал: просьба помочь найти или пояснить.

15 minutes ago, MaratZuev said:

SIGNAL    SYNTHESIZED_WIRE_10 :  STD_LOGIC:= '0';

Этот сигнал асинхронно присваивается к NOT(FBCS5) посиму нужно смотреть где начинается FBCS5. И в любом месте инициализировать его тоже. Остановится можно только на синхронных процессах. (я проверил у Вас сингналы инициализированы и начинаются в тестбенче - с этой стороны всё ок)

А вот второй момент интереснее: варнинги выскакивают на компонент lpm_decode_component : lpm_decode который является мегафункцией Квартуса (насколько я понял), соответственно нужно инициализировать именно её внутри, что невозможно ;)

Посиму заигнорьте данные типы варнингов и живите спокойно. Анализировать их (варнинги) полезно только на самых поздних этапах разработки и то не варнинги МоделСима, а синтезатора/имплементатора. До этого можно обойтись критическими ошибками и эррорами.

P.S. Кстати внутри модуля lpm_decode0 инициализировать все сигналы тоже было бы неплохо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

11 minutes ago, Nick_K said:

где начинается FBCS5

Он тоже начинается в тестбенче и там же инициализирован
signal FBCS5 : STD_LOGIC:='1';

18 minutes ago, Nick_K said:

lpm_decode который является мегафункцией Квартуса

Вообще, ModelSim даёт заглянуть внутрь этой мегафункции, и показывает, что там:

-- ENTITY DECLARATION
entity LPM_DECODE is
    generic (
        -- Width of the data[] port, or the input value to be decoded. (Required)
        lpm_width    : natural;
        -- Number of explicit decoder outputs. (Required)
        lpm_decodes  : natural;
        -- Number of Clock cycles of latency 
        lpm_pipeline : natural := 0;
        lpm_type     : string  := "LPM_DECODE";
        lpm_hint     : string  := "UNUSED"
    );
    
    port (
        -- Data input. Treated as an unsigned binary encoded number. (Required)
        data : in std_logic_vector(lpm_width-1 downto 0);
        -- Enable. All outputs low when not active.
        enable : in std_logic := '1';
        -- Clock for pipelined usage.
        clock : in std_logic := '0';
        -- Asynchronous clear for pipelined usage.
        aclr : in std_logic := '0';
        -- Clock enable for pipelined usage.
        clken : in std_logic := '1';
        -- Decoded output. (Required)
        eq : out std_logic_vector(lpm_decodes-1 downto 0)
    );
end LPM_DECODE;
-- END OF ENTITY

тоже всё инициализировано.

24 minutes ago, Nick_K said:

Кстати внутри модуля lpm_decode0 инициализировать все сигналы тоже было бы неплохо.

ARCHITECTURE SYN OF lpm_decode0 IS

	SIGNAL sub_wire0	: STD_LOGIC_VECTOR (3 DOWNTO 0):=(others=>'0');
	SIGNAL sub_wire1	: STD_LOGIC := '0';
	SIGNAL sub_wire2	: STD_LOGIC := '0';
	SIGNAL sub_wire3	: STD_LOGIC := '0';
	SIGNAL sub_wire4	: STD_LOGIC := '0';

не помогло

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

29 minutes ago, MaratZuev said:

eq : out std_logic_vector(lpm_decodes-1 downto 0)

Вход не важно. его инициализация не влияет ни ан что, главное выходы должны быть инициализированы и вот в этт должен иметь вид:

 eq : out std_logic_vector(lpm_decodes-1 downto 0) := (others => '0');

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

28 minutes ago, Nick_K said:

главное выходы должны быть инициализированы

Век живи: всю жизнь считал, что именно входы надо инициализировать!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

15 minutes ago, MaratZuev said:

Век живи: всю жизнь считал, что именно входы надо инициализировать!

Может в Верилоге так и есть, но вот в VHDL как раз нужно (а иногда и только их можно) инициализировать выходы. Ибо входы всегда должны быть подключены (нельзя оставить висящий вход), а вот выходы можно не подключать. Соответственно один раз неподключённый выход ничего не сделает, а когда подключить через пол года, и вылазит варнинг

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

11 hours ago, MaratZuev said:

Начинаю смотреть по проекту и вижу, что один сигнал интересующего меня модуля отсутствует как класс: нет, он есть в файле (библиотечном, который сам ModelSim сгенерировал из Quartus-овских исходников или как там это правильно называть?), но, вот, в списке сигналов ModelSim-а этот сигнал отсутствует! Почему и куда он делся?!

 

vsim -novopt
VSIM#> log -r /*

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

15 hours ago, Nick_K said:

входы всегда должны быть подключены (нельзя оставить висящий вход)

разве в этом случае на вход не будет подано значение по умолчанию?

15 hours ago, Nick_K said:

неподключённый выход ничего не сделает

разве выход однозначно не определятся входами?

10 hours ago, Джеймс said:

vsim -novopt

Да, спасибо, до этого уже добрался

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

13 minutes ago, MaratZuev said:

разве выход однозначно не определятся входами?

Только если это чистая комбинаторика (что очень редко выносится в отдельный модуль). А если есть флопы, ДСП , память и т.д., тогда состоянием этих компонентов, которые до клока в симуляторе находятся в неопределённом состоянии

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 minutes ago, Nick_K said:

Только если это чистая комбинаторика (что очень редко выносится в отдельный модуль). А если есть флопы, ДСП , память и т.д., тогда состоянием этих компонентов, которые до клока в симуляторе находятся в неопределённом состоянии

Понял, спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...