Надежны ли назначения по умолчанию в HDL? - PullRequest
2 голосов
/ 26 апреля 2019

Я всегда строю свой дизайн с заданиями по умолчанию, потому что это делает мой код меньше строк, и я думаю, что более читабельным. Однако я узнал, что задания по умолчанию могут иногда вызывать проблемы. Если для проектирования недостаточно места, инструмент (Vivado, ISE) можно удалить из этой части. То, что я имел в виду, - это задания по умолчанию, которые заполняют неписанные операторы else. Ниже приведен пример кода.

Я уже много раз проверял, что я видел мультиплеты для этих операторов в схеме, но я никогда не пробовал это с дизайном, который полностью потребляет свои ресурсы.

t_next <= t_reg;
if(start_i = '1') then
    t_next <= (others => '0');
end if;

Кто-нибудь может сказать, что есть проблема в назначении по умолчанию? Должен ли я писать все остальное или достаточно написать задание по умолчанию для оператора else?

1 Ответ

3 голосов
/ 26 апреля 2019

Насколько я знаю, он совершенно надежен и никогда не слышал об обратном за 18 лет.Это также то, чем я пользуюсь большую часть времени, в том числе в FPGA, заполненной выше 80 или 90%.
Если бы инструмент должен был удалить назначение по умолчанию, это было бы ошибкой инструмента, поскольку он изменял синтезированную логику!VHDL стандартизирован, это не так, как если бы у Xilinx был выбор ...
У вас есть какой-либо источник / ссылка на это утверждение!?

Единственное, что я добавлю, это то, что код может быть немногоТруднее читать, если у вас долгий процесс, по умолчанию несколько строк раньше.Но это не должно случаться часто.
И что для инициализированных сигналов (при определении, для начального значения) это другая история (я никогда не использую это в синтезированной логике)

...