Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
мпс.DOC
Скачиваний:
25
Добавлен:
16.04.2019
Размер:
1.48 Mб
Скачать

8.10. Базовые сведения о языке vhdl

8.10.1. Исторический обзор и проблемная ориентация языка

Остановимся на отдельных вопросах, относящихся к наиболее известному языку про- ектирования аппаратных средств VHDL.Изложенный ниже материал не претендует на роль учебника по программированию на языке VHDL.Задача состоит скорее в ознакомлении со специфическими особенностями языка, позволяющими создавать описания проектов, отвечающих заданной структуре или поведению и синтезируемых в состав аппаратуры. Некоторые конструкции языка будут использованы далее при рассмотрении примера проектирования подсистемы МПС на основе БИС/СБИС средствами САПР.

Язык VHDL. появился в начале 1980-х гг. по запросам организаций Министерства обороны США. Первая его версия, предназначенная в основном для унификации описаний проектов в различных ведомствах, была принята в 1985 г. В 1987 г. язык VHDL был принят международным институтом IЕЕЕ как стандарт ANSI/IEEE Std 1076-1987, обычно называемый стандартом VHDL-87. Он использовался главным образом для описания уже спроектированных систем. Работа с компиляторами (т.е. использование для задач синтеза устройств) началась с 1991 г. В 1993 г.IЕЕЕ принимает новый расширенный стандарт ANSI/IЕЕЕ Std 1076-1993 VHDL-93 (синтаксис языка приведен в приложении). В книге "VHDL’92. Новые свойства языка описания аппаратуры VHDL" — М.: Радио и связь, 1995, можно найти подробное описание нового стандарта и его основных отличий от стандарта VHDL-87.

Язык может быть использован для проектирования цифровых систем разных иерархических уровней — от вентильного уровня представления схем до уровня системы в целом. В настоящее время он является, видимо, самым популярным среди проектировщиков циф ровой аппаратуры. Как отмечалось выше, сравнимым по возможностям и по популярности является язык Verilog, и практически любая современная САПР средств ВТ или цифровых устройств имеет в своем составе компиляторы для этих языков.

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

8.10.2. Базовые понятия языка и архитектура программ

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

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

С точки зрения структурной организации программы, на языке VHDL используют следу- ющие основные термины и понятия. Любой проект образуется из одного или нескольких объектов — Entity. Каждый объект проекта имеет объявление интерфейса объекта — Entity Declaration и описание архитектурного тела объекта —Architecture body. Entity Declaration содержит имя объекта и его интерфейс (входы и выходы). Architecture body содержит опи- сание структуры или поведения объекта. Верхний уровень проекта описывается через объекты верхнего уровня; если устройство иерархично, то описания объектов верхнего уровня содержат в себе обращения к компонентам более низкого уровня, которые описы- ваются как самостоятельные объекты нижнего уровня. В свою очередь, объекты нижнего уровня могут связываться с объектами еще более низкого уровня.Для определенности функционирования системы независимо от числа уровней иерархии все объекты нижних уровней иерархии должны иметь описание, определяющее их функционирование. Один и тот же объект может иметь несколько архитекгурных тел (естественно, что при моделировании поведения системы или при ее синтезе специальные средства конфигурирования обеспечивают выбор единственного варианта поведения).Для часто используемых описаний, констант,типов данных используется понятие объявления пакета,при создании собственных (пользовательских) процедур или функций необходимо их интерфейс привести в объявлении пакета, а их содержательную часть (описание) включить в состав тела пакета. Механизм пакетов исключительно важен для создания типов данных, одинаково воспринимаемых и понимаемых различными объектами программы, гiоскольку в языке VHDL используется очень строгая типизация данных и смешение различных данных в одном выражении является ошибкой.

Проблемно-орпентированными и поэтому наиболее важными средствами и понятия ми языка VHDL являются:

• средства описания иерархии проекта для описания структуры и/или поведения отдельных объектов проекта;

• средства задания и описания параллелизма для выполняемых действий и операторов;

• понятие сигнала для физических объектов, имеющих временное измерение для своих значений и средства для работы с ними.

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

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

Третьей важнейшей особенностью языка VHDL является введение физического типа данных. Понятие сигнала отражает основные свойства реальных входных и выходных данных проекта. Среди различных свойств сигналов важнейшими представляются временные характеристики таких данных и, прежде всего, наличие у них прошлого, настоящего и будущего состояний. Специфические свойства сигналов потребовали введения понятия "назначение значения спгнала" (<=), основное отличие которого от понятия ("присвоение значения переменной"(:=) состоит в задержке изменения состояния сигнала до тех пор,пока не будут подготовлены результаты преобразования во всех одновременно иницииро ванных процессах, и лишь после этого допустимо изменение значений сигналов с учетом временных требований к их формированию.