Инструменты синтезатора фокусируются на логическом дизайне (FPGA, ASIC) и игнорируют списки чувствительности, поскольку существует только три основных типа логики: комбинационная логика, чувствительная к краям память (триггеры и некоторая оперативная память) и чувствительная к уровню память (защелки) и некоторое ОЗУ).
Комбинационная логика требует, чтобы все входные сигналы находились в списке чувствительности. С точки зрения синтезатора, если он отсутствует, они могут либо игнорировать список чувствительности, либо обрабатывать его так, как если бы все входы находились в списке чувствительности или создавали сложную комбинацию триггеров и комбинационной логики, которые, вероятно, не будут делать то, что пользователь хотел все равно. У обоих из них есть стоимость реализации поставщику, следовательно, зачем вкладывать деньги (время разработки) для создания чего-то, что не полезно. В результате единственная хорошая инвестиция - это упрощение и игнорирование списка чувствительности.
Симуляторы, с другой стороны, имеют большую перспективу, чем просто логический дизайн. Язык определяет списки чувствительности, чтобы указать, когда код должен работать. Таким образом, симуляторы реализуют эту семантику с высокой точностью.
Долгий срок может вас радовать, что VHDL-2008 позволяет использовать ключевое слово «все» в списке чувствительности для замены входных сигналов. Это предназначено для упрощения моделирования комбинационной логики. Синтаксис выглядит следующим образом:
MyStateMachine : process(all)
begin
-- my statemachine logic
end process MyStateMachine ;
Включите VHDL-2008 переключатель и это в ваш инструмент синтеза. Если он не работает, обязательно сообщите об ошибке в отношении инструмента.
см. Http: // stackoverflow.com/questions/8991223/when-a-signal-must-be-insert-in-the-sensitive-list-of-the-process – Bull
@David Kester: вы должны показать соответствующий код, чтобы получить точный и конкретный ответ. –