logo
mat_mod

42. Синтезируемое подмножество языка vhdl.

Как известно, изначально язык описания аппаратуры VHDL создавался как средство моделирования цифровых систем. Однако, его популярность и определенные удобства, каковые появляются у разработчика, привели к тому, что модели на языке VHDL стали средством описания алгоритмов, синтезируемых специальными программными средствами в файлы прошивки (межсоединений) ПЛИС. В то же время для каждого програмного продукта набор поддерживаемых конструкций языка различается и порой довольно существенно. В настоящее время сделана попытка в стандарте IEEE P1076.6 определить синтезируемое подмножество языка VHDL. В этом стандарте определяются те элементы языка, которые могли бы быть синтезированы средствами синтеза (компиляторами) на уровне регистровых передач (register transfer level). В этом случае средства синтеза (synthesis tools), удовлетворяющие стандарту IEEE P1076.6, могли бы обеспечить подлинную переносимость проекта и возможность единообразного описания. Рассмотрим элементы синтезируемого подмножества языка VHDL.

Средства синтеза, которые соответствуют стангдарту IEEE P1076.6 должны поддерживать следующие переопределенные типы:

BIT, BOOLEAN и BIT_VECTOR в соответствии со стандартом IEEE Std 1076-1993

INTEGER в соответствии со стандартом IEEE Std 1076-1993

STD_ULOGIC, STD_ULOGIC_VECTOR, STD_LOGIC and STD_LOGIC_ в соответствии со пакетом (ackage) STD_LOGIC_1164 (стандарт IEEE Std 1164-1993)

SIGNED and UNSIGNED в соответствии с пакетом NUMERIC_BIT, являющегося частью стандарта IEEE Std 1076.3-1997

SIGNED and UNSIGNED в соответствии с пакетом (package) NUMERIC_STD, являющегося частью стандарта IEEE Std 1076.3-1997 

Кроме того, должна быть обеспечена поддержка средствами синтеза типов, определенных пользователем (user-defined types).

Синтаксиссинтезируемогоподмножества VHDL

entity_declaration ::=

entity identifier is

entity_header

entity_declarative_part

begin

entity_statement_part ]

end entity ] [ entity_simple_name ] ;

Поддерживаемые средствами синтеза конструкции

• entity_declaration

Игнорируемые при синтезе конструкции

• entity_statement_part

Не поддерживаемые средствами синтеза конструкции

• entity_declarative_part

• Зарезервированное слово entity после end