Введение в стандарт IEEE. Справочное руководство по языку VHDL (Пересмотр стандарта IEEE. 1076-1987), страница 25

VHDL не допускает множественные драйверы в сигналах неопределенного типа. Для сигналов определенных типов, VHDL допускает (определяемую пользователем) функцию разрешающей способности определяющую куда будет поступать значение сигнала в операторе выбора (case), если в сигнале имеется множественный драйвер (одновременные назначения).

Функция разрешающей способности с мета - логическими значениями ('Z', 'X', и т.д.) вообще приводит к поведению, которое  не синтезируемо (так как логические схемы не могут производить мета - логические значения). Поэтому, в общем случае,  инструментальные средства синтеза VHDL не разрешают множественные драйверы в сигнале. Однако, если функция разрешающей способности определяет поведение множественных драйверов с тремя состояниями на шине, множественные драйверы сигнала могут представлять синтезируемое поведение.

Значение 'Z', обычно идентифицируется как поведение с тремя состояниями. Функция разрешающей способности с типом IEEE std_logic (разрешенный) написана так, чтобы множественные драйверы на сигнале std_logic походили на множественные драйверы на шине с тремя состояниями. Поэтому, инструментальные средства синтеза принимают множественные назначения на тот же самый сигнал, пока каждое присвоение условно установлено в значение 'Z'. Инструментальные средства синтеза разрешают свободное использование 'Z' назначений (или от инструкций потока данных,  или от операторов процесса внутри процедур). Инструментальные средства синтеза поддерживают драйверы с тремя состояниями, чтобы подражать поведению с тремя состояниями.

Важно обратить внимание на то, что инструментальные средства синтеза не проверяют, имеется ли конфликт шины на управляемой шине. В этом случае, моделирование может снова вызвать функцию разрешающей способности, чтобы определить значение (обычно производится мета - логическое значение), но поведение для синтеза не определяется. Уход от конфликтов шин - ответственность пользователя.

Синтаксические и семантические ограничения.

VHDL в стандарте IEEE 1076 это расширенный язык со многими конструкциями, которые являются полезными для моделирования. Однако, в течение начального развития языка, логический синтез не принимался во внимание. Поэтому, множество конструкций или комбинации конструкций не может быть осуществлено в фактических схемах. VHDL 1076  полностью моделируемо, но не полностью синтезируемо.

Ограничения инструмента синтеза

·  Не поддерживаются операции над файлами. Файлы в VHDL могли бы вести себя подобно ROM или оперативной памяти, но инструментальные средства синтеза не поддерживают использование файла (тип). Инструментальные средства синтеза игнорируют только объявление типа файл.

·  Не поддерживаются операции над объектами вещественного типа. Объекты вещественного типа не имеют  определенного размера. Инструментальные средства синтеза игнорируют только объявления объектов вещественного типа.

·  Не поддерживаются операции над объектами с типом доступ, так как они ведут к несинтезируемому поведению. Инструментальные средства синтеза игнорируют только объявление объектов с  типом доступ.

·  Не поддерживаются BEHAVIOR, STRUCTURE, LAST_EVENT, LAST_ACTIVE, и TRANSACTION.

·  Конфигурации игнорируют; заданный по умолчанию компонент.

·  Не поддерживаются глобальная переменная, непостоянные сигналы - то есть сигналы, объявленные в пакете.

·  Не поддерживаются программы распределения, потому что они выполняют динамическое распределение ресурсов, которое не синтезируемо.

·  Игнорируются объявления конфигурации. Инструментальные средства синтеза разрешают только объекты или компоненты как основные стандартные блоки проекта. Спецификации конфигурации поддерживаются.

·  Не поддерживаются программы распределения, потому что они исполняют динамическое распределение ресурсов, которое не синтезируемо. Объявления сигнала регистра и шины не поддерживаются. Это позволяют сделать только функции разрешающей способности с директивой синтеза.