Составители:
12
Каждой сущности сопоставляется одно или несколько архитектурных тел. Несколько
вторичных модулей, соответствующих одному первичному, составляют набор возможных
альтернативных реализаций объекта, представленного первичным модулем. Например, од-
ной сущности может соответствовать несколько архитектурных тел, отличающихся степе-
нью детализации описания и даже алгоритмом преобразования данных.
Первичные и соответствующие им вторичные модули могут сохраняться в различных
файлах или записываться в одном файле. Важно лишь, чтобы они были скомпилированы в
общую проектную библиотеку, причём первичный модуль компилируется раньше подчи-
нённого ему вторичного. При записи первичного и вторичного модулей в одном файле пер-
вичный модуль записывается ранее соответствующего ему вторичного.
Типовой текст программы на VHDL имеет следующую структуру:
<VHDL-программа>::=
{
{<объявление библиотеки>}
{<объявление использования>}
<первичный модуль>
}
{<вторичный модуль>}
<объявление библиотеки>::= library <имя библиотеки>;
<объявление использования>::=
use <имя библиотеки>.<имя пакета>.<имя модуля>;
Иными словами, текст представляет собой произвольный набор первичных и вторич-
ных модулей, причём каждому первичному модулю может предшествовать указание на биб-
лиотеки и пакеты, информация из которых требуется для построения этого модуля. После
этого необходимо указать, что они будут использованы при помощи соответствующего объ-
явления. В качестве имени модуля часто употребляют
all — в этом случае будут использо-
ваны все имеющиеся модули. Отметим, что даже если несколько первичных модулей ссыла-
ются на одни и те же библиотеки и модули, декларация использования должна предшество-
вать каждому первичному модулю в отдельности.
4.2. Сущности и архитектурные тела
Синтаксис декларации сущности имеет вид:
<Декларация сущности>::=
entity <имя проекта> is
[<объявление параметров настройки>]
[<объявление портов>]
[<раздел деклараций>]
[begin <раздел опреаторов>]
end [entity] <имя проекта>;
<объявление параметров настройки>::=
generic (<имя>:<тип> [:=<выражение>]
{;<имя>:<тип> [:=<выражение>]});
<объявление портов>::=
port (<имя>:<режим> <тип> [:=<выражение>]
{;<имя>:<режим> <тип> [:=<выражение>]};
<режим>::= in | out | inout
Каждой сущности сопоставляется одно или несколько архитектурных тел. Несколько вторичных модулей, соответствующих одному первичному, составляют набор возможных альтернативных реализаций объекта, представленного первичным модулем. Например, од- ной сущности может соответствовать несколько архитектурных тел, отличающихся степе- нью детализации описания и даже алгоритмом преобразования данных. Первичные и соответствующие им вторичные модули могут сохраняться в различных файлах или записываться в одном файле. Важно лишь, чтобы они были скомпилированы в общую проектную библиотеку, причём первичный модуль компилируется раньше подчи- нённого ему вторичного. При записи первичного и вторичного модулей в одном файле пер- вичный модуль записывается ранее соответствующего ему вторичного. Типовой текст программы на VHDL имеет следующую структуру:::= { {<объявление библиотеки>} {<объявление использования>} <первичный модуль> } {<вторичный модуль>} <объявление библиотеки>::= library <имя библиотеки>; <объявление использования>::= use <имя библиотеки>.<имя пакета>.<имя модуля>; Иными словами, текст представляет собой произвольный набор первичных и вторич- ных модулей, причём каждому первичному модулю может предшествовать указание на биб- лиотеки и пакеты, информация из которых требуется для построения этого модуля. После этого необходимо указать, что они будут использованы при помощи соответствующего объ- явления. В качестве имени модуля часто употребляют all — в этом случае будут использо- ваны все имеющиеся модули. Отметим, что даже если несколько первичных модулей ссыла- ются на одни и те же библиотеки и модули, декларация использования должна предшество- вать каждому первичному модулю в отдельности. 4.2. Сущности и архитектурные тела Синтаксис декларации сущности имеет вид: <Декларация сущности>::= entity <имя проекта> is [<объявление параметров настройки>] [<объявление портов>] [<раздел деклараций>] [begin <раздел опреаторов>] end [entity] <имя проекта>; <объявление параметров настройки>::= generic (<имя>:<тип> [:=<выражение>] {;<имя>:<тип> [:=<выражение>]}); <объявление портов>::= port (<имя>:<режим> <тип> [:=<выражение>] {;<имя>:<режим> <тип> [:=<выражение>]}; <режим>::= in | out | inout 12
Страницы
- « первая
- ‹ предыдущая
- …
- 10
- 11
- 12
- 13
- 14
- …
- следующая ›
- последняя »