VHDL, как язык программирования, увидел свет в 1983 году. Его появление инициировало Министерство Обороны США. Он был разработан разработчиками компании IBM и Texas Instruments. Он используется для написания логических цепочек различных этапов производства электронных систем разного уровня: от микросхем и до объемных вычислительных систем. На сегодняшний день, VHDL является основным инструментом при программировании современных вычислительных систем.
VHDL входит в группу языков, которые используются для описания аппаратных устройств. Об этом говорят буквы HDL — Hardware Description Language. Буква «V» показывает, что язык относится к другой группе языков — VHSIC(Very-High-Speed-Integrtion-Circit).
Как и любой язык программирования, VHDL основывается на определенных понятиях. Например:
Интерфейс — это описание устройства со всеми входами, выходами и способами коммуникации с пользователями.
Архитектура — это описание внутренней структуры устройства, которая влияет на его окончательное поведение при взаимодействии с пользователями.
Синтаксис и операторы VHDL. Каждый язык программирования обладает определенным набором операторов, VHDL в том числе. Однако операторы VHDL особенные. Они бывают параллельными и последовательными. Параллельные операторы используют в тех случаях, когда в аппаратном устройстве необходимо отразить параллельные процессы. То есть такие операторы описывают каким образом должны вести себя микросхемы при их одновременной работе, когда каждой отдельной микросхеме определяют отдельный процесс для обработки. Последовательные операторы определяют последовательную работу микросхем.
Сигнал — это то, что связывает между собой параллельные процессы в микросхемах. Сигналы не зависят от процессов в микросхемах.
Процессы могут только считывать сигналы и передавать в них какие-то значения. Сигналы передают значения между параллельными процессами, поэтому по сути являются средствами для коммуникации.Переменные — это инструменты, которые используются внутри отдельного процесса для временного хранения какой-либо информации. Они не транслируются между параллельными процессами — это нужно брать во внимание при работе с параллельными операторами в VHDL.
Атрибуты — это небольшие характерные значения, которые присваивают каким-либо объектам языка.
Тип — это группа значений, которая обладает общими характеристиками. Тип объекта определяет, каким образом на него могут воздействовать сигналы и операторы VHDL, а также определяет поведение переменных заданного типа.
Библиотеки — это комплексные структуры функций, переменных, типов, объектов и др. Библиотеки подключают к проекту, когда его работу нужно направить в определенное русло.
Идентификаторы — это слова, которые зарезервированы самим языком и используются внутри него в качестве ключевых слов, определяющих какое-то действие. Они представляют собой последовательность символов английского алфавита и цифр.
Основы языка VHDL: объекты
Объект — это место, где сохраняется информация определенного типа. Чтобы создать объект в VHDL, его обязательно нужно объявить с определенным типом данных. Происходит это так:
variableCOUNT: INTEGER;
В этом случае будет создан объект с названием «COUNT», в котором будут храниться целые числа «INTEGER». Класс объекта — «variable». Кстати, объекты VHDL могут быть объявлены в трех классах:
Класс «constant». Этот класс присваивается объекту один раз и в процессе работы над объектом не может быть изменен. Он хранит отдельное значение одного типа данных.
Класс «variable». Этот класс также хранит отдельное значение одного типа данных, но при этом в процессе работы над объектом тип сохраняемых данных может изменяться. По сути, такой класс сигнализирует, что перед нами объект-переменная.
Класс «signal». Этот класс сигнализирует, что перед нами объект-сигнал, который связывает несколько параллельных процессов. Этим он и отличается от первых двух классов. Первые два класса моделируют поведение микросхем, а этот класс не моделирует поведения, а соединяет разные микросхемы.
Язык программирования VHDL: типы данных
Когда создается какой-либо объект в VHDL, тогда ему нужно определять какой-то тип данных. Каждый отдельный тип данных содержит в себе перечень определенных операций, значений и свойств, свойственных этому типу.
Все типы данных в VHDL делятся на категории:
Скалярные типы. Они, в свою очередь, делятся на другие подтипы: enumeration, integer, physical, floatingpoint. Подтип «enumeration» характеризуется перечнем значений, которые определил пользователь. В роли значений могут выступать символы, числа, слова и др. Каждому значению этого типа задан числовой идентификатор. Идентификация значений начинается с «0». Подтип «integer» задает целое число. Подтип «physical» определяет значения каких-либо физических величин, например: время, расстояние, давление, сила тока, температура и др. Подтип «floatingpoint» определяет числовые значения с «плавающей точкой».
Композитные типы. Это типы, которые могут состоять из различных типов данных в составе одного.
Типы доступа. Эти типы открывают доступность к тем или иным данным через их указатели.
Файловые типы. Эти типы определяют доступность к объектам, которые содержат последовательность значений данного типа.
Основы языка VHDL: операции
Язык программирования VHDL несет в себе множество различных операций, которые можно провести с информацией. Несколько основных операций:
Логические операции. Такие операции проводят 6 операторов: and, or, nand, nor, xor и not.
Операции отношений. Такие операции проводят следующими операторами: «=», «/=», «<», «< =», «>», «>=». Результат такой операции будет «false» или «true».
Математические операции. Доступны следующие математических операторы: «*», «/», «+», «-», «&», то есть доступны: умножение, деление, сложение, вычитание и конкатенация(объединение). Разница между сложением и конкатенацией следующая: «1+2» даст результат «3», а «1&2» даст результат «12».
На этом операции в языке VHDL не заканчиваются, так как их очень много, но основные из них мы перечислили.
Язык программирования VHDL: последовательные операторы
Последовательные операторы VHDL — это:
Последовательные операторы. Эти операторы бывают двух видов: который используется для присваивания переменной — он обозначается «:=», и который используется для присваивания сигнала — он обозначается «< =».
Условные операторы «if» и «case». Оператор «if» перечисляет условия, которые проверяются на «false» и «true», когда условие соответствует необходимому, тогда запускается какой-то определенный код, связанный с этим необходимым условием. Оператор «case» определяет несколько каких-то значений, где каждому значению задана ветвь исполнения кода. Потом условие(переменная) проверяется со значениями «case». Если будет найдено совпадение с каким-то «case», тогда запустится его ветвь кода.
Операторы цикла. Такие операторы нужны, чтобы запускать итерации последовательных команд.
Язык программирования VHDL: параллельные операторы
Такие операторы нужны для того, чтобы запускать параллельное исполнение команд в микросхемах. К таким операторам относят:
Оператор «process».
Операторы параллельного исполнения команд.
Оператор конкретизации элементов.
Оператор генерации.
И др.
Основы языка 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» и выбрать удобный способ его получения: самовывоз, доставка курьером или отправка почтой. Чтобы покупать книги вам было ещё приятнее, мы регулярно проводим акции и конкурсы.
Это курс углубленного изучения языка и методологии. Требуется предварительное посещение класса Doulos Comprehensive VHDL (или эквивалентного), и настоятельно рекомендуется не менее 6 месяцев «живого» опыта работы над проектами с использованием VHDL. Делегаты, посещающие модуль Expert Design, должны иметь знания и опыт кодирования и синтеза на уровне передачи регистров с использованием VHDL.
Учебные материалы Doulos известны как наиболее полные и удобные в использовании. Их стиль, содержание и охват уникальны в мире HDL-тренировок и сделали их сами по себе востребованными ресурсами. Стоимость занятий включает:
Если вы предпочитаете справочное руководство Doulos Golden в мягкой обложке, его можно приобрести в интернет-магазине Doulos .
Синтез комбинационной логики • Синтез последовательной логики • Комбинация и последовательная вместе • Переменные в тактовых процессах • Сколько регистров? • Функции разрешения и драйверы • Неразрешенные типы • Синхронное проектирование • Синхронные правила проектирования • Несинхронные функции • Насколько умен ваш инструмент синтеза? • Совместное использование ресурсов • Синтез арифметики — 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 Методология • Дизайн для проверки • Тестирование «стеклянного ящика» • Анализ для выбора тестов • Граничные условия и угловые случаи • Тестирование «черного ящика» • Регрессионное тестирование • Стресс-тестирование • Различные виды стимулов
Использование абстракции в тестовом стенде • Подпрограммы • Процедуры • Класс, режим и тип параметров • Перегрузка подпрограммы • Параметры сигнала • Функции • Подпрограммы в пакетах • Нечистые функции • Защищенные типы • Тело защищенного типа • Объявление a Общая переменная
Базовый тестовый стенд • Вывод TEXTIO • Процедура ЧТЕНИЕ • Когда ЧТЕНИЕ идет неправильно • Преобразование значений в текстовые строки • Открытие и закрытие файлов • Проверка статуса открытия файла • Управление текстовыми файлами • Пакет STD_LOGIC_TEXTIO • Использование встроенных файлов • Чтение данных переменной длины • Файлы без текста • Двоичные файлы • VHDL-2008 File IO
Структурирование тестовых стендов • Построение полного тестового стенда • Монолитные тестовые стенды негибки • Скрытие интерфейса DUT от тестового набора • Многоуровневая архитектура • Тестовый набор на уровне транзакций • Выполнение транзакции в VHDL • Доступ к полям • Обмен транзакциями • Простой пример • Что такое (VHDL) транзакция? • Взаимодействие без событий • Генерация транзакций • Использование процедур с сигналами • Системный подход • Неблокирующие процедуры • Функциональное моделирование шины • Функциональная модель шины • Функциональная модель шины с использованием Get • Синхронизация • Канал синхронизации • Резюме
Функциональное моделирование шины • Операторы ожидания • Операторы ожидания и время • Проверка очереди событий • Пример синхронизации SRAM • Проверка времени настройки • Проверка времени удержания • Проверка комбинированного времени настройки/удержания • Ширина импульса Проверка • Объявления сущностей • Пассивные процессы • Использование пакетов Vital • Настройка/удержание проверки с помощью Vital • Что насчет транзакций? • Параллельные назначения сигналов • Драйверы • Как «видеть» драйверы • Проблемы с несколькими драйверами • Самый длинный статический префикс • Последовательные назначения сигналов • Инерционная задержка • Идентичные последовательные назначения • Инерционные задержки • Инерционные и транспортные задержки • Данные выборки — RTL • Отложенные процессы
Проверка результатов • Переменная задержка • Массивы записей • Очереди • Реализация очереди VHDL • Использование очередей • Работа с неупорядоченным завершением • Подсчет результатов • Динамическое выделение памяти • Типы доступа • Распределители • Освобождение памяти • Запись в FIFO • Чтение из FIFO • Проблемы с указателем • Пример моделирования поведения • Моделирование 2-проводной шины • Двухпроводная подчиненная модель • Реализация протокола • Генерация данных • Ведомая процедура • Состояние моделирования
Проверка — напоминание • Случайный стимул • Ограничение случайного стимула • Случайная последовательность допустимых действий • Функциональный охват • Где я? • Параллельные процедуры • Процедура покрытия • Вызов процедур покрытия • Зачем использовать параметр пути?
Завершение нашей методологии • Мониторинг внутренних сигналов • Мониторинг внутренних сигналов — VHDL-2002 • Внешние имена • Мониторинг внутренних сигналов — VHDL-2008 • Принудительное и освобождение • Механизм возражения • Реализация возражения • Функции разрешения • Реализация Пользовательские возражения • Процедуры остановки и завершения • Конфигурация во время выполнения • Реализация конфигурации во время выполнения
Что такое OSSVVM? • Рандомизация • Управление начальным числом • Функциональное покрытие • Выборка • Указание бинов • Указание минимального количества совпадений для каждого бина • Указание перекрестных бинов • Указание игнорируемых бинов • Отображение покрытия • Неповторяющаяся рандомизация • Определение явных весов • Вес по дефициту охвата • Регистрация • Перенаправление в файл журнала • Оповещения • Остановка счета • Отключение оповещений • Условные оповещения • Иерархические оповещения • Другие пакеты
Что такое УВВМ? • Библиотека служебных программ • Ведение журнала и управление подробностями • Вывод сообщений журнала • Управление сообщениями журнала • Идентификаторы сообщений • Перенаправление сообщений журнала • Предупреждения • Управление предупреждениями • Отчеты о предупреждениях • Проверки • Ожидания • Обработка строк • Рандомизация • Генераторы сигналов • Синхронизация • Общий пакет BFM • Предупреждения • Структура UVVM VVC • Структура UVVM • Тестовая схема UVVM • Тестовый стенд UVVM • Тестовый секвенсор • Распределение команд UVVM • Примеры методов распределения команд • Сетевая модель UVVM VHDL • VIP • Сравнение функций