![]() |
Звоните! (926)274-88-54 Бесплатная доставка. Бесплатная сборка. |
Ассортимент тканей График работы: Ежедневно. С 8-00 до 20-00. Почта: soft_hous@mail.ru |
![]() ![]() ![]() |
Читальный зал --> Программные средства foundation Табл. 4.27. Синтаксис объявления объекта на **У entity-name is , . , языке VHDL (stgnal-names : mode signal-type; signal-names : mode signal-type; signal-names : mode signal-type); end entity-name; Порты объекта, a также направление передачи и типы сигналов - это все, что видят другие модули, использующие данный модуль. Внутренняя работа объекта задается его определением архитектуры (architecture definition), синтаксис которого в общем случае имеет вид, указанный в табл. 4.28. Имя объекта (entity-name) в этом определении должно быть таким же, какое раньше было присвоено объекту в объявлении объекта. Имя архитектуры (architecture-name) - это выбираемый пользователем идентификатор, обычно так или иначе связанный с именем объекта; при желании имя архитектуры может быть тем же самым, что и имя объекта. В табл. 4.27 представлен синтаксис объявления объекта. Целью объявления объекта, помимо присвоения объекту имени, является определение сигналов внешнего интерфейса или портов (ports) в части объявления объекта, которая называется объявлением портов (port declaration). Кроме ключевых слов entity, is, port и end, объявление объекта содержит следующие элементы: entity-name выбираемое пользователем имя объекта; signal-names список выбираемых пользователем имен сигналов внешнего интерфейса, состоящий из одного имени или из большего числа имен, разделенных запятой; mode одно из четырех зарезервированных слов, определяющих направ- ление передачи сигнала: in сигнал на входе объекта; out сигнал на выходе объекта; заметьте, что значение такого сигнала нельзя прочитать внутри структуры объекта; он доступен только объектам, использующим данный объект; buffer сигнал на выходе объекта, такой что его значение можно читать также внутри структуры данного объекта; incut сигнал, который может быть входным или выходным для данного объекта; обычно этот режим используется применительно к входам/выходам ПЛУ с тремя состояниями; signal-type встроенный или определенный пользователем тип сигнала; в следующих разделах мы будем много говорить об этом. Обратите внимание, что после заключительного signal-type нет точки с запятой; изменение порядка следования закрывающей скобки и точки с запятой после нее - типичная синтаксическая ошибка профаммиста, начинающего писать на языке VHDL. Табл. 4.28. Синтаксис определения архитектуры на языке VHDL architecture architecture-name of entity-name is type declarations signal declarations constant declarations function definitions procedure definitions component declarations begin concurrent-statement concurrent-statement end architecture-name; Сигналы внешнего интерфейса архитектуры (порты) наследуются от той части объявления соответствующего объекта, где объявляются порты. У архитектуры могут быть также сигналы и другие объявления, являющиеся для нее локальными, подобно тому как это имеет место в других языках высокого уровня. В отдельном пакете , используемом несколькими объектами, можно сделать объявления, общие для этих объектов, о чем будет сказано позднее. Объявления в табл. 4.28 могут располагаться в произвольном порядке. В свое время мы рассмотрим много различных способов записи объявлений и операторов в определении архитектуры. Начать легче всего с объявления сигнта {signal declaration), которое сообщает ту же самую информацию о сигнале, какую содержит объявление порта, за исключением того, что вид сигнала не задается: signal signal-names : signal-type; В архитектуре может быть объявлено любое число сигналов, начиная с нуля, и они приблизительно соответствуют поименованным соединениям в принципиальной схеме. Их можно считывать и записывать внутри определения архитектуры и, подобно другим локальным элементам, на них можно ссылаться только в пределах данного определении архитектуры. Переменные {variables) в языке VHDL похожи на сигналы, за исключением того, что, как правило, они не имеют никакого физического смысла в схеме. Действительно, обратите внимание, что, согласно табл. 4.28, в определении архитектуры не предусмотрено объявление переменных . Переменные используются в функциях, процедурах и процессах языка VHDL. Каждый из этих элементов программы мы рассмотрим позднее. Вот у них внутри имеются объявления переменных {variable definitions), и эти объявления в точности подобны объявлениям сигналов, за исключением того, что употребляется ключевое слово variable: variable variable-names : variable-type; 4.7.3. Типы и константы Каждому сигналу, переменной и константе в профамме на языке VHDL необходимо поставить в соответствие тип {type). Типом определяется множество или диа- bit vector boolean character integer real severity level string time Типом integer определяется диапазон значений целых чисел, который, как минимум, простирается от-2147483647 до+2147483647 (от-2 + 1 до +2- -1); в некоторых реализациях языка VHDL этот диапазон может быть и шире. Типом boolean предусматриваются два значения: true и false. Тип character содержит все символы 8-битового набора ISO, из которых первые 128 являются символами стандарта ASCII. Встроенные операторы для типов integer и boolean приведены в табл. 4.30. Табл. 4.30. Предопределенные операторы для типов integer и boolean в языке VHDL Операторы для типа integer Операторы для типа boolean
Чаще всего в типичных программах на языке VHDL используются определяемые пользователем типы (user-defined types), а из них самыми употребительными являются перечислимые типы (enumerated types), которые определяются путем перечисления их значений. Предопределяемые типы boolean и character - это перечислимые типы. Формат объявления типа в случае перечислимого типа указан в первой строке табл. 4.31. Здесь value-list представляет собой список (перечисление) всех возможных значений этого типа, разделяемых запятыми. Значе- пазон значений, которые может принимать данный элемент, и обычно имеется набор операторов (таких как сложение, логическое И и тд.), связываемых с данным типом. В языке VHDL есть всего лишь несколько предопределенных типов (predefined types); они перечислены в табл. 4.29. В дальнейшем в этой книге будут использованы только следующие предопределенные типы: integer, character и boolean. Вы можете подумать, что при цифровом проектировании большую роль должны играть имена bit и bitvector , но оказывается, что более полезны определяемые пользователем варианты этих типов, как это вскоре будет объяснено. Табл. 4.29. Предопределенные типы языка VHDL ООО «Мягкий Дом» - это Отечественный производитель мебели. Наша профильная продукция - это диваны еврокнижка. Каждый диван можем изготовить в соответствии с Вашими пожеланияи (размер, ткань и материал). Осуществляем бесплатную доставку и сборку. Звоните! Ежедневно! (926)274-88-54 Продажа и изготовление мебели. Копирование контента сайта запрещено. Авторские права защищаются адвокатской коллегией г. Москвы. |