Использую PicoBlaze на VHDL; при симуляции в ModelSim на мультиплексировании входов ро номеру порта (port_id) выдаётся предупреждение:
Код
# ** Warning: There is an 'U'|'X'|'W'|'Z'|'-' in an arithmetic operand, the result will be 'X'(es).
# Time: 0 ps Iteration: 0 Instance: /pb_warings
# ** Warning: There is an 'U'|'X'|'W'|'Z'|'-' in an arithmetic operand, the result will be 'X'(es).
# Time: 0 ps Iteration: 2 Instance: /pb_warings
Закомментированный вариант выдаёт то же самое, плюс предупреждения от функции конвертации.
Можно ли как-то переписать код, чтоб избавиться от этих предупреждений? Слабо верится, чтоб такое популярное и отлаженное ядро никак нельзя было бы заставить работать "красиво".
Какой опцией vsim отключить их вообще - где-то на форуме находил, но не хочется лишаться этой проверки и во всём остальном проекте.
Проект для демонстрации прилагаю, симуляция - файл pb_warings.do, тестбенч не посчитал нужным делать, так как предупреждения выдаются независимо даже от подачи тактового. Для себя тест сделать пробовал - ситуация та же.
P. S. Если это ближе к SoC - перенесите, но, по-моему, вопрос скорее про "пряморукий" VHDL.
P. P. S. Пока писал - пришла мысль посмотреть код и симуляцию подобного в примерах, идущих у Xilinx в комплекте с самим ядром... Найду таким образом ответ - сюда напишу

.
...а Сила, Брат - она - в несиловых решениях.