8-900-374-94-44
[email protected]
Slide Image
Меню

Vhdl язык: начало работы с VHDL для проектирования цифровых схем

Содержание

VHDL: язык программирования, его операторы, основы и функции

VHDL, как язык программирования, увидел свет в 1983 году. Его появление инициировало Министерство Обороны США. Он был разработан разработчиками компании IBM и Texas Instruments. Он используется для написания логических цепочек различных этапов производства электронных систем разного уровня: от микросхем и до объемных вычислительных систем. На сегодняшний день, VHDL является основным инструментом при программировании современных вычислительных систем.

VHDL входит в группу языков, которые используются для описания аппаратных устройств. Об этом говорят буквы HDL — Hardware Description Language. Буква «V» показывает, что язык относится к другой группе языков — VHSIC(Very-High-Speed-Integrtion-Circit).

Как и любой язык программирования, VHDL основывается на определенных понятиях. Например:

  1.  Интерфейс — это описание устройства со всеми входами, выходами и способами коммуникации с пользователями.

  2.  Архитектура — это описание внутренней структуры устройства, которая влияет на его окончательное поведение при взаимодействии с пользователями.

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

  4.  Сигнал — это то, что связывает между собой параллельные процессы в микросхемах. Сигналы  не зависят от процессов в микросхемах.

    Процессы могут только считывать сигналы и передавать в них какие-то значения. Сигналы передают значения между параллельными процессами, поэтому по сути являются средствами для коммуникации.

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

  6.  Атрибуты — это небольшие  характерные значения, которые присваивают каким-либо объектам языка.

  7.  Тип — это группа значений, которая обладает общими характеристиками. Тип объекта определяет, каким образом на него могут воздействовать сигналы и операторы VHDL, а также определяет поведение переменных заданного типа.

  8.  Библиотеки — это комплексные структуры функций, переменных, типов, объектов и др. Библиотеки подключают к проекту, когда его работу нужно направить в определенное русло.

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

Основы языка VHDL: объекты

Объект — это место, где сохраняется информация определенного типа. Чтобы создать объект в VHDL, его обязательно нужно объявить с определенным типом данных. Происходит это так:

variableCOUNT: INTEGER;

 

В этом случае будет создан объект с названием «COUNT», в котором будут храниться целые числа «INTEGER». Класс объекта — «variable». Кстати, объекты  VHDL могут быть объявлены в трех классах:

  1. Класс «constant». Этот класс присваивается объекту один раз и в процессе работы над объектом не может быть изменен. Он хранит отдельное значение одного типа данных.

  2. Класс «variable». Этот класс также хранит отдельное значение одного типа данных, но при этом в процессе работы над объектом тип сохраняемых данных может изменяться. По сути, такой класс сигнализирует, что перед нами объект-переменная.

  3. Класс «signal». Этот класс сигнализирует, что перед нами объект-сигнал, который связывает несколько параллельных процессов. Этим он и отличается от первых двух классов. Первые два класса моделируют поведение микросхем, а этот класс не моделирует поведения, а соединяет разные микросхемы.

Язык программирования VHDL: типы данных

Когда создается какой-либо объект в VHDL, тогда ему нужно определять какой-то тип данных. Каждый отдельный тип данных содержит в себе перечень определенных операций, значений и свойств, свойственных этому типу.

Все типы данных в VHDL делятся на категории:

  1.  Скалярные типы. Они, в свою очередь, делятся на другие подтипы: enumeration, integer, physical, floatingpoint. Подтип «enumeration» характеризуется перечнем значений, которые определил пользователь. В роли значений могут выступать символы, числа, слова и др. Каждому значению этого типа задан числовой идентификатор. Идентификация значений начинается с «0». Подтип «integer» задает целое число. Подтип «physical» определяет значения каких-либо физических величин, например: время, расстояние, давление, сила тока, температура и др.  Подтип «floatingpoint» определяет числовые значения с «плавающей точкой».

  2.  Композитные типы. Это типы, которые могут состоять из различных типов данных в составе одного.

  3.  Типы доступа. Эти типы открывают доступность к тем или иным данным через их указатели.

  4.  Файловые типы. Эти типы определяют доступность к объектам, которые содержат последовательность значений данного типа.

Основы языка VHDL: операции

Язык программирования VHDL несет в себе множество различных операций, которые можно провести с информацией. Несколько основных операций:

  1.  Логические операции. Такие операции проводят 6 операторов: and, or, nand, nor, xor и not.

  2.  Операции отношений. Такие операции проводят следующими операторами: «=», «/=», «<», «< =», «>», «>=». Результат такой операции будет «false» или «true».

  3.  Математические операции. Доступны следующие математических операторы: «*», «/», «+», «-», «&», то есть доступны: умножение, деление, сложение, вычитание и конкатенация(объединение). Разница между сложением и конкатенацией следующая: «1+2» даст результат «3», а «1&2» даст результат «12».

На этом операции в языке VHDL не заканчиваются, так как их очень много, но основные из них мы перечислили.

Язык программирования VHDL: последовательные операторы

Последовательные операторы VHDL — это:

  1.  Последовательные операторы. Эти операторы бывают двух видов: который используется для присваивания переменной — он обозначается «:=», и который используется для присваивания сигнала — он обозначается «< =».

  2.  Условные операторы «if» и «case». Оператор «if» перечисляет условия, которые проверяются на «false» и «true», когда условие соответствует необходимому, тогда запускается какой-то определенный код, связанный с этим необходимым условием. Оператор «case» определяет несколько каких-то значений, где каждому значению задана ветвь исполнения кода. Потом условие(переменная) проверяется со значениями «case». Если будет найдено совпадение с каким-то «case», тогда запустится его ветвь кода.

  3.  Операторы цикла. Такие операторы нужны, чтобы запускать итерации последовательных команд.

Язык программирования VHDL: параллельные операторы

Такие операторы нужны для того, чтобы запускать параллельное исполнение команд в микросхемах. К таким операторам относят:

  1.  Оператор «process».

  2.  Операторы параллельного исполнения команд.

  3.  Оператор конкретизации элементов.

  4.  Оператор генерации.

  5.  И др.

Основы языка VHDL: архитектура

Архитектура характеризует вид устройства изнутри. То есть в зависимости от архитектуры устройства оно будет выглядеть по-разному. Например, устройство может быть:

  •  представлено в виде композиции нескольких стандартных модулей;

  •  представлено в  виде  нескольких алгоритмов, которые будут работать параллельно;

  •  представлено в виде нескольких алгоритмов, которые будут работать последовательно;

  •  и др.

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

Моделирование и верификация цифровых систем на языке VHDL

Буду ждать

Цена на сайте может отличаться от цены в магазинах сети. Внешний вид книги может отличаться от изображения на сайте.

Нет в наличии в магазинах сети

Цена на сайте может отличаться от цены в магазинах сети. Внешний вид книги может отличаться от изображения на сайте.

В настоящем издании рассматриваются подготовка тестирующих программ, моделирование и верификация VHDL-описаний проектов цифровых систем, реализуемых на элементной базе сверхбольших интегральных схем и систем на кристалле. Приводятся пошаговые маршруты выполнения различных видов моделирования в системе Questa Sim. Описываются стандарт VHDL’2008 языка VHDL и ориентированный на верификацию язык PSL (язык ассертов) для записи утверждений о свойствах поведения проектируемых цифровых систем. В книгу включено большое число примеров, которые могут быть использованы для совершенствования навыков практической работы в системе Questa Sim при промышленном проектировании. .Для студентов, магистрантов и аспирантов, изучающих языки VHDL и PSL и их применение в системах автоматизированного проектирования, а также для специалистов, занимающихся проектированием цифровых систем.

Описание

Характеристики

В настоящем издании рассматриваются подготовка тестирующих программ, моделирование и верификация VHDL-описаний проектов цифровых систем, реализуемых на элементной базе сверхбольших интегральных схем и систем на кристалле. Приводятся пошаговые маршруты выполнения различных видов моделирования в системе Questa Sim. Описываются стандарт VHDL’2008 языка VHDL и ориентированный на верификацию язык PSL (язык ассертов) для записи утверждений о свойствах поведения проектируемых цифровых систем. В книгу включено большое число примеров, которые могут быть использованы для совершенствования навыков практической работы в системе Questa Sim при промышленном проектировании. .Для студентов, магистрантов и аспирантов, изучающих языки VHDL и PSL и их применение в системах автоматизированного проектирования, а также для специалистов, занимающихся проектированием цифровых систем.

Либроком

На товар пока нет отзывов

Поделитесь своим мнением раньше всех

Как получить бонусы за отзыв о товаре

1

Сделайте заказ в интернет-магазине

2

Напишите развёрнутый отзыв от 300 символов только на то, что вы купили

3

Дождитесь, пока отзыв опубликуют.

Если он окажется среди первых десяти, вы получите 30 бонусов на Карту Любимого Покупателя. Можно писать неограниченное количество отзывов к разным покупкам – мы начислим бонусы за каждый, опубликованный в первой десятке.

Правила начисления бонусов

Если он окажется среди первых десяти, вы получите 30 бонусов на Карту Любимого Покупателя. Можно писать неограниченное количество отзывов к разным покупкам – мы начислим бонусы за каждый, опубликованный в первой десятке.

Правила начисления бонусов

Книга «Моделирование и верификация цифровых систем на языке VHDL» есть в наличии в интернет-магазине «Читай-город» по привлекательной цене. Если вы находитесь в Москве, Санкт-Петербурге, Нижнем Новгороде, Казани, Екатеринбурге, Ростове-на-Дону или любом другом регионе России, вы можете оформить заказ на книгу «Моделирование и верификация цифровых систем на языке VHDL» и выбрать удобный способ его получения: самовывоз, доставка курьером или отправка почтой. Чтобы покупать книги вам было ещё приятнее, мы регулярно проводим акции и конкурсы.

Expert VHDL

Это курс углубленного изучения языка и методологии. Требуется предварительное посещение класса Doulos Comprehensive VHDL (или эквивалентного), и настоятельно рекомендуется не менее 6 месяцев «живого» опыта работы над проектами с использованием VHDL. Делегаты, посещающие модуль Expert Design, должны иметь знания и опыт кодирования и синтеза на уровне передачи регистров с использованием VHDL.

Учебные материалы Doulos известны как наиболее полные и удобные в использовании. Их стиль, содержание и охват уникальны в мире HDL-тренировок и сделали их сами по себе востребованными ресурсами. Стоимость занятий включает:

  • Полностью проиндексированные заметки о занятиях, создающие полное справочное руководство
  • Рабочая тетрадь, полная практических примеров, которые помогут вам применить свои знания
  • Электронная книга Doulos Golden Reference Guide по языку, синтаксису, семантике и советам
  • Путеводители (для поддержки выбранных вами инструментов и технологий)

Если вы предпочитаете справочное руководство Doulos Golden в мягкой обложке, его можно приобрести в интернет-магазине Doulos .


Экспертное проектирование VHDL (дни 1-2)

 

RTL-синтез и синхронизация


Синтез комбинационной логики • Синтез последовательной логики • Комбинация и последовательная вместе • Переменные в тактовых процессах • Сколько регистров? • Функции разрешения и драйверы • Неразрешенные типы • Синхронное проектирование • Синхронные правила проектирования • Несинхронные функции • Насколько умен ваш инструмент синтеза? • Совместное использование ресурсов • Синтез арифметики — WYSIWYG • Устранение мультиплексора • Сдвиг влево/вправо • Принудительная реализация • Атрибуты синтеза • Вывод или конкретизация? • Статический анализ синхронизации • Исключения анализа синхронизации • Повторная синхронизация и конвейеризация • Исключения анализа синхронизации • Иерархия и оптимизация • Зарегистрированные порты • Асинхронные входы • Опасность ввода • • Метастабильность • Синхронизатор в VHDL • Несколько доменов синхронизации • Передача данных между доменами синхронизации • Использование FIFO для синхронизации • Сброс синхронизации

Написание читаемых проектов


Возможности VHDL для абстракции • Типы записей • Использование полей записи • Агрегаты • Использование записей для проводки • Соединение записей • Внутри периферийного устройства • Структура мультиплексной шины • Мультиплексирование записей • Представление карт регистров • Доступ к отдельным регистрам • Доступ регистр состояния • Объединение регистров вместе • Псевдоним • Использование псевдонима с векторами • Использование псевдонима с шиной • Другие варианты использования псевдонима • Именованные диапазоны • Использование именованных диапазонов • Резюме

Написание для повторного использования


Повторное использование на уровне языка • Повторное использование фрагментов кода • Повторное использование стандартных компонентов • Приобретение IP • Написание многоразового IP RTL • Повторное использование компромиссов • Пример регулярной структуры • Массивы массивов • Универсальные шаблоны • Универсальные шаблоны типов • Массив Атрибуты • Генерировать оператор • Подробнее о генерации операторов • VHDL-2008 Генерировать операторы • Реализация поведения • Неограниченные порты массива • Параметризация ширины данных • Массивы VHDL-2008 • Многомерные массивы • Сглаживающие матрицы • Многомерные массивы портов • Получение и установка строк • Архитектура с использованием 2D-массивов • Создание экземпляра проекта • Дополнительные порты • По умолчанию для компонента

Расширенные стили кодирования


Подпрограммы • Процедуры • Класс, режим и тип параметров • Перегрузка подпрограммы • Параметры сигнала • Синтезирующие процедуры • Деструктивное чтение регистра • Процедура чтения • Процедура в FSM • Функции • Рекурсия • Пример рекурсивной функции • Создание Общий счетчик • Создание схемы log2 • Рекурсивная реализация • Объявление рекурсивного компонента • Решение проблемы • Решение проблемы (VHDL-2008) • Результаты синтеза

Синтез конечного автомата


Диаграммы переходов состояний • Конечные автоматы • Простой стиль с двумя процессами • Еще ​​один стиль с двумя процессами • Стиль с одним процессом • Архитектура конечного автомата • Сравнение стилей кодирования • Более простые зарегистрированные выходные данные • Зарегистрированные выходные данные с использованием локальных переменных • Кодирование состояния • Без декодирования вывода • Недостижимые состояния • Управление недостижимыми состояниями • Явный один горячий стиль • Оптимизированный вручную один горячий стиль • Сигнал столкновения • Слишком много состояний? • Резюме конечного автомата

Пакеты и конфигурации


Пакеты • Подпрограммы в пакетах • Отложенные константы • Пакеты VHDL-2008 • Обобщения в пакете • Пакет с плавающей запятой • Фиксированный пакет • Пример с фиксированной точкой • Область действия предложения • Объявление и создание экземпляров компонента • Объявления компонентов в Пакет • Конфигурация • Правила привязки по умолчанию • Иерархические конфигурации • Вложенные конфигурации • Изменения имени порта • Преобразования типов • Универсальные настройки • Конфигурации с операторами генерации

Свойства и утверждения


Свойство против утверждения • Применение свойств • Кто пишет свойства? • Наблюдаемость • Простое утверждение • Средство проверки или монитор моделирования • Свойства и спецификация • История до сих пор… • OVL • Использование OVL с VHDL • Пакеты OVL • Конфигурация OVL • Создание экземпляра утверждения • Утверждения OVL VHDL • Примеры утверждений • PSL • Элементы свойства • Основы PSL • Структура PSL • Логический уровень • Часы и часы по умолчанию • Задержки и последствия • next • Временной уровень • Уровень проверки • Единицы проверки • Уровень моделирования • Использование PSL с HDL • Моделирование временных свойств • Обзор преимуществ

Экспертная проверка VHDL (дни 3–5)

 

Методология функциональной проверки


Что такое проверка? • Подходы к проверке • Стратегия проверки • Что проверять? • На пути к плану проверки • Не планируйте все • Определите тестовые случаи • Метрики проверки • Покрытие • Включение функционального покрытия • Проверка, основанная на покрытии • От функций к тестам • Проверка • Пересмотр планирования проверки • Базовый тестовый стенд • Среда проверки • Методологии проверки • VHDL Методология • Дизайн для проверки • Тестирование «стеклянного ящика» • Анализ для выбора тестов • Граничные условия и угловые случаи • Тестирование «черного ящика» • Регрессионное тестирование • Стресс-тестирование • Различные виды стимулов

Подпрограммы и защищенные типы


Использование абстракции в тестовом стенде • Подпрограммы • Процедуры • Класс, режим и тип параметров • Перегрузка подпрограммы • Параметры сигнала • Функции • Подпрограммы в пакетах • Нечистые функции • Защищенные типы • Тело защищенного типа • Объявление a Общая переменная

Подробнее о файловом вводе-выводе


Базовый тестовый стенд • Вывод TEXTIO • Процедура ЧТЕНИЕ • Когда ЧТЕНИЕ идет неправильно • Преобразование значений в текстовые строки • Открытие и закрытие файлов • Проверка статуса открытия файла • Управление текстовыми файлами • Пакет STD_LOGIC_TEXTIO • Использование встроенных файлов • Чтение данных переменной длины • Файлы без текста • Двоичные файлы • VHDL-2008 File IO

Проверка на уровне транзакций


Структурирование тестовых стендов • Построение полного тестового стенда • Монолитные тестовые стенды негибки • Скрытие интерфейса DUT от тестового набора • Многоуровневая архитектура • Тестовый набор на уровне транзакций • Выполнение транзакции в VHDL • Доступ к полям • Обмен транзакциями • Простой пример • Что такое (VHDL) транзакция? • Взаимодействие без событий • Генерация транзакций • Использование процедур с сигналами • Системный подход • Неблокирующие процедуры • Функциональное моделирование шины • Функциональная модель шины • Функциональная модель шины с использованием Get • Синхронизация • Канал синхронизации • Резюме

Подробнее о BFM — Время в испытательных стендах


Функциональное моделирование шины • Операторы ожидания • Операторы ожидания и время • Проверка очереди событий • Пример синхронизации SRAM • Проверка времени настройки • Проверка времени удержания • Проверка комбинированного времени настройки/удержания • Ширина импульса Проверка • Объявления сущностей • Пассивные процессы • Использование пакетов Vital • Настройка/удержание проверки с помощью Vital • Что насчет транзакций? • Параллельные назначения сигналов • Драйверы • Как «видеть» драйверы • Проблемы с несколькими драйверами • Самый длинный статический префикс • Последовательные назначения сигналов • Инерционная задержка • Идентичные последовательные назначения • Инерционные задержки • Инерционные и транспортные задержки • Данные выборки — RTL • Отложенные процессы

Моделирование поведения и средства проверки


Проверка результатов • Переменная задержка • Массивы записей • Очереди • Реализация очереди VHDL • Использование очередей • Работа с неупорядоченным завершением • Подсчет результатов • Динамическое выделение памяти • Типы доступа • Распределители • Освобождение памяти • Запись в FIFO • Чтение из FIFO • Проблемы с указателем • Пример моделирования поведения • Моделирование 2-проводной шины • Двухпроводная подчиненная модель • Реализация протокола • Генерация данных • Ведомая процедура • Состояние моделирования

Случайное тестирование и охват


Проверка — напоминание • Случайный стимул • Ограничение случайного стимула • Случайная последовательность допустимых действий • Функциональный охват • Где я? • Параллельные процедуры • Процедура покрытия • Вызов процедур покрытия • Зачем использовать параметр пути?

Другие функции Testbench


Завершение нашей методологии • Мониторинг внутренних сигналов • Мониторинг внутренних сигналов — VHDL-2002 • Внешние имена • Мониторинг внутренних сигналов — VHDL-2008 • Принудительное и освобождение • Механизм возражения • Реализация возражения • Функции разрешения • Реализация Пользовательские возражения • Процедуры остановки и завершения • Конфигурация во время выполнения • Реализация конфигурации во время выполнения

Введение в OSVVM


Что такое OSSVVM? • Рандомизация • Управление начальным числом • Функциональное покрытие • Выборка • Указание бинов • Указание минимального количества совпадений для каждого бина • Указание перекрестных бинов • Указание игнорируемых бинов • Отображение покрытия • Неповторяющаяся рандомизация • Определение явных весов • Вес по дефициту охвата • Регистрация • Перенаправление в файл журнала • Оповещения • Остановка счета • Отключение оповещений • Условные оповещения • Иерархические оповещения • Другие пакеты

Введение в UVVM


Что такое УВВМ? • Библиотека служебных программ • Ведение журнала и управление подробностями • Вывод сообщений журнала • Управление сообщениями журнала • Идентификаторы сообщений • Перенаправление сообщений журнала • Предупреждения • Управление предупреждениями • Отчеты о предупреждениях • Проверки • Ожидания • Обработка строк • Рандомизация • Генераторы сигналов • Синхронизация • Общий пакет BFM • Предупреждения • Структура UVVM VVC • Структура UVVM • Тестовая схема UVVM • Тестовый стенд UVVM • Тестовый секвенсор • Распределение команд UVVM • Примеры методов распределения команд • Сетевая модель UVVM VHDL • VIP • Сравнение функций

Введение в VHDL

Введение в VHDL
  • Язык описания структурных, физических и поведенческих характеристик цифровых систем.

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

  • VHDL поддерживает как структурный и поведенческий описания системы на нескольких уровнях абстракции.

  • Структура и поведение являются взаимодополняющими способами описания систем.
    • Описание поведение системы ничего не говорит о структура или компоненты, из которых состоит система.
    • Существует много способов построить систему, обеспечивающую такое же поведение.

  • Ссылка: «Руководство для начинающих по VHDL», Судхакар Яламанчили, Prentice Hall .
  • VHDL позволяет указать:
  • Компоненты цепи.
  • тип=диск>
  • Их взаимосвязь.
  • тип=диск>
  • Поведение компонентов с точки зрения их входных и выходных сигналов.
  • тип=диск>

  • Каковы поведенческие свойства схемы полусумматора?
  • событие на , от 1 до 0, изменяет выходы после 5 нс распространение задерживать.
  • И ворота (и провода) обладают инерцией или естественным сопротивлением изменениям.
  • Третье свойство этой схемы — параллелизм.
    • Оба сор и и ворота вычисляют новые выходные значения одновременно, когда вход изменяет состояние.
  • Эти новые события могут продолжаться, чтобы инициировать вычисление других событий в других частях схемы, например. с1 и с3 .

  • Система, управляемая данными : События для сигналов приводят к вычислениям, которые могут генерировать события для других сигналов.
  • Мы можем рассматривать VHDL как язык программирования для описания генерации событий в цифровых системах, поддерживаемых имитатор дискретных событий .

  • А имитатор дискретных событий выполняет код VHDL, моделируя течение времени и возникновение событий в различные моменты времени.

  • Он поддерживает структуру данных списка событий, чтобы отслеживать порядок всех будущих событий в цепи.
  • Переведите часы симуляции на время следующего события, обновите значения принимаемых сигналов.
  • Оцените все компоненты, затронутые обновлениями сигнала, и запланируйте новые события.
  • Сигналы : Подобно переменным в таких языках программирования, как C, сигналам могут быть присвоены значения, например, 0, 1, Z.

  • Тем не менее, сигналы также имеют связанные значение времени .
    • Сигнал получает значение в определенный момент времени и сохраняет это значение до тех пор, пока не получит новое значение в будущем моменте времени.

  • Последовательность значений, присваиваемых сигналу во времени, равна . сигнал сигнала.

  • Переменная всегда имеет одно текущее значение.
  • В любой момент времени сигнал может быть связан с несколькими значение времени пары.
  • Объект проектирования: компонент системы, поведение которого должно быть описано и смоделировано.

  • Два компонента к описанию:
    • Интерфейс к оформлению: сущность декларация.
    • Внутреннее поведение конструкции: архитектура построить.

  • Пример сущности для полусумматора:
  • половинка_гадюка имя, данное объекту проекта.

  • Входные и выходные сигналы; , б , сумма и нести , обозначаются как порты .
  • Каждый порт имеет тип . бит и бит_вектор может принимать значения 0 и 1.
  • У каждого порта есть режим; в , из или вход (двунаправленные сигналы).

  • Битовые векторы задаются как:
  • А и Б имеют длину 32 бита со старшим битом 31.

  • Более общее определение бит и бит_вектор std_logic и std_logic_vector , который может принимать больше, чем просто 0 и 1.
  • Архитектура конструкция:

  • Параллельные операторы :
    • Операторы присваивания сигнала определяют новое значение и время, в которое сигнал должен получить это значение.
    • Текстовый порядок операторов параллельного назначения сигналов (CSA) НЕ влияет на результаты.
  • Мы также можем использовать (локальные) сигналы, внутренние для архитектуры, например, . с1 , с2 и с3 в полной схеме сумматора.
  • Следующие операторы также допустимы:

  • А список драйверов который определяет форму волны.

  • Этот оператор генерирует набор из транзакции (пары время-значение), которые будут выполняться в разное время в будущем.
  • Заявление о назначении условного сигнала :
  • Первое истинное условие определяет значение, передаваемое на выход.
  • Заявление о назначении выбранного сигнала ведет себя аналогично.
  • Используются процессы:
  • Для описания поведения компонентов, когда их нельзя просто смоделировать как элементы задержки.
  • тип=диск>
  • Для моделирования систем на высоких уровнях абстракции.
  • тип=диск>

  • Процесс включает обычные конструкции языка программирования.

  • Процесс последовательно исполняемый блок кода, который содержит.
  • массивы и очереди.
  • тип=диск>
  • Переменные присвоения, например, х := г , которые, в отличие от сигналов, вступают в силу немедленно.
  • тип=диск>
  • если-то-иначе и операторы цикла для управления потоком.
  • тип=диск>
  • Присвоение сигналов внешним сигналам.
  • тип=диск>

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

  • В качестве альтернативы;
  • Процессы выполняются один раз при инициализации.

  • После этого они выполняются на основе данных либо:
  • событие на одном или нескольких сигналах в список чувствительности .
  • тип=диск>
  • ожидание возникновения определенного события с использованием подожди заявление.
  • тип=диск>

  • подожди оператор определяет условия, при которых процесс может возобновить выполнение после приостановки, например,

    • ждать выражение времени ; — ждать указанный интервал времени.
    • ждите сигнал ; — ждать сигнала(ов).
    • подождите до состояние ; — ждать до состояние становится правдой;

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

  • D-триггер с асинхронными входами сброса (R) и установки (S), указанный в ссылке.
  • Конечный автомат (машина Мили):

  • Комбинационная часть реализована в одном процессе, чувствительном к событиям на входных сигналах или переменных состояния.

  • Последовательная часть реализована во втором процессе, чувствительном к переднему фронту тактового сигнала.