Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

2629

.pdf
Скачиваний:
3
Добавлен:
08.01.2021
Размер:
411.41 Кб
Скачать

Министерство науки и высшего образования Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования

«Воронежский государственный лесотехнический университет имени Г.Ф. Морозова»

ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ VHDL И ПРОЕКТИРОВАНИЕ МИКРОЭЛЕКТРОННЫХ УСТРОЙСТВ

Методические указания для самостоятельной работы студентов по специальности

09.05.01 Применение и эксплуатация автоматизированных систем специального назначения

Воронеж 2018

УДК 004

Зольников, К. В. Программирование на языке VHDL и проектирование микроэлектронных устройств Электронный ресурс : методические указания для самостоятельной работы студентов по специальности 09.05.01 Применение и эксплуатация автоматизированных систем специального назначения / К. В. Зольников, С. А. Евдокимова, Т.В. Скворцова ; М-во науки и высшего образования РФ, ФГБОУ ВО «ВГЛТУ». – Воронеж, 2018. – 17 с.

Печатается по решению учебно-методического совета ФГБОУ ВО «ВГЛТУ» (протокол № __ от _______ 2018 г.)

Рецензент начальник лаборатории АО «НИИЭТ», к.т.н. Яньков А.И.

3

 

ОГЛАВЛЕНИЕ

 

Введение...................................................................................................................

3

Содержание дисциплины .......................................................................................

4

Содержание лабораторного практикума...............................................................

6

Вопросы к зачету...................................................................................................

12

Вопросы к экзамену ..............................................................................................

13

Библиографический список..................................................................................

16

ВВЕДЕНИЕ

Методические указания подготовлены в соответствии с рабочей программой дисциплины «Программирование на языке VHDL и проектирование микроэлектронных устройств» для студентов специальности 09.05.01 Применение и эксплуатация автоматизированных систем специального назначения. Целью изучения данной дисциплины является формирование у студентов теоретических и практических знаний об основных методах программирования на специализированном языке VHDL и этапах проектирования микроэлектронных устройств.

В результате освоения дисциплины студент должен:

-знать: назначение и основные характеристики языка VHDL; операторы языка VHDL; принципы организации проекта на языке VHDL; назначение и возможности библиотек языка VHDL;

-уметь: применять операторы языка VHDL при проектировании микроэлектронных устройств и программировании цифровых систем;

-владеть: технологией программирования на языке VHDL и проектирования микроэлектронных устройств.

.

4

СОДЕРЖАНИЕ ДИСЦИПЛИНЫ

Тема 1. ОСНОВНЫЕ ЭЛЕМЕНТЫ ЯЗЫКА VHDL

Назначение и характеристика языка VHDL. Язык VHDL – язык проектирования цифровых систем. Стандарты VHDL. Открытое аппаратное обеспечение, использующее VHDL. Верификация в VHDL. Языки программирования

VHDL и SystemVerilog.

Структурное и поведенческое описание цифровой системы на языке VHDL. Система и ее интерфейс. Структура цифровой системы. Иерархия структурного описания системы. Описание системы на функциональном уровне. Высокоуровневый и логический синтез.

Логические элементы и типы данных. Лексические элементы, разделители, операторы. Идентификаторы. Ключевые слова. Литералы. Пакеты. Типы данных.

Декларация объектов языка VHDL. Декларация константы. Декларация переменной. Декларация сигнала. Декларация компонента.

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

Операторы языка VHDL. Арифметические операторы. Логические операторы. Операторы сдвига. Оператор конкатенации.

Тема 2. ПОСЛЕДОВАТЕЛЬНЫЕ И ПАРАЛЛЕЛЬНЫЕ ОПЕРАТОРЫ ЯЗЫКА

VHDL

Последовательные операторы: оператор присвоения значения переменной; оператор присвоения значения сигналу; оператор if (если); оператор case (выбор); оператор loop (цикл); оператор next (следующий); оператор exit (выход); оператор null (нуль, пустой); оператор вызова процедуры; оператор return (возврат); оператор assert (сообщение); оператор wait (ожидать).

Параллельные операторы: оператор process (процесс); оператор параллельного сообщения; оператор параллельного вызова процедуры; оператор условного назначения сигнала; оператор select выборочного назначения; оператор конкретизации (создания экземпляра) компонента; оператор generate (генерации); оператор block (блок).

5

Тема 3. ОРГАНИЗАЦИЯ ПРОЕКТА НА ЯЗЫКЕ VHDL

Подпрограммы. Функции. Процедуры. Разрешающие функции. Архитектура. Декларация интерфейса объекта. Карта портов и карта настройки. Конфигурация. Блоки проекта и VHDL-библиотеки.

Тема 4. ПРИМЕРЫ ПРОЕКТИРОВАНИЯ НА VHDL

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

Тема 5. МОДЕЛИРОВАНИЕ И СИНТЕЗ ЦИФРОВЫХ СИСТЕМ С ИСПОЛЬЗОВАНИЕМ ЯЗЫКА VHDL

Моделирование логических схем с использованием пакетов библиотеки VITAL. Назначение пакетов библиотеки VITAL. Создание VITAL-библиотеки синтеза. Синтез логической схемы. Моделирование логической схемы.

Пакеты TEXTIO, STD_LOGIC_TEXTIO. Назначение пакетов. Типы и процедуры пакетов. Использование средств пакетов при моделировании.

Использование VHDL-пакетов в маршруте проектирования БМК. Проектирование арифметико-логического устройства. Комбинированные маршруты проектирования. Результаты экспериментов.

Тема 6. ПРОЕКТИРОВАНИЕ СБИС СРЕДСТВАМИ CADENCE

Системное и аппаратное проектирование СБИС. Физическое прототипирование СБИС. Верификация топологии СБИС.

Моделирование конвейерного процессора. Пример SISCпроцессора. Модель системы команд. Инициализация системы. Отладка. Моделирование управления конвейером.

Моделирование кэш-памяти. Моделирование асинхронного интерфейса.

6

СОДЕРЖАНИЕ ЛАБОРАТОРНОГО ПРАКТИКУМА

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

Таблица 1

 

Темы лабораторных работ

 

 

№ п/п

Наименование лабораторных работ

 

 

1

2

 

 

1

Начало работы с VHDL (4 часа)

 

 

2

Логические элементы и типы данных языка VHDL (4 часа)

 

 

3

Знакомство с основными операторами языка VHDL (6 часов)

 

 

4

Понятие сигнала в языке VHDL (4 часа)

 

 

5

Последовательные операторы языка VHDL (8 часов)

 

 

6

Параллельные операторы языка VHDL (8 часов)

 

 

7

Организация проекта на языке VHDL (2 часа)

 

 

8

Основы проектирования на языке VHDL (4 часа)

 

 

9

Описание и моделирование нерегулярных логических схем (8 часов)

 

 

10

Описание и моделирование регулярных (систолических) схем (8 ча-

 

сов)

11

Описание и моделирование триггеров (8 часов)

 

 

12

Описание и моделирование конечных автоматов(8 часов)

 

 

Вопросы к лабораторной работе № 1

1.Для чего предназначен язык VHDL?

2.Что такое VHDL-описание?

3.Что такое VHDL-код?

4.Что такое проект, лист проекта, примитив проекта?

5.Что такое иерархия проекта?

6.Дайте определение высокоуровневому и логическому синтезу.

7.Что такое структура схемы, функция схемы, поведение схемы?

8.Что такое VHDL-компилятор, VHDL-анализатор, система моделирования VHDL-кода?

9.Опишите технологию проектирования цифровых систем с использова-

нием VHDL.

7

Вопросы к лабораторной работе № 2

1. Какие из следующих операторов являются неправильными:

А_А, А_, 9U, A%B, P8_3, c4, wait, in, OU_T?

Почему?

2. Какие из следующих литералов являются неправильными?

12_ _000, 1E-0, 2#1101#, 5#44#, #3#, 16# F#E3?

Почему?

3.Какие из следующих литералов с плавающей точкой являются неправильными:

1_ 0.00, 100_.0, 1.1E-2, 2H#10.11#, 16 #F #E2, 1_0.0&

Почему?

4.Какие из следующих литералов типа «строка бит» являются неправильными:

2”110”, B”1101”, O”047”, H”ABcd”, 10”99”, “0101”?

Почему?

5.Расскажите правила построения идентификаторов на языке VHDL.

6.Каким образом указываются комментарии на языке VHDL?

7.Какие типы данных существуют в языке VHDL? Каким образом они представляются?

Вопросы к лабораторной работе № 3

1.Какой тип данных возвращают операторы сравнения?

2.Правильно ли, что в языке VHDL разрешено умножение вещественного числа на целое? А если один из операндов имеет тип time?

3.Какой из трех операторов отличается от двух других:

а) Z<=not X and not Y б) Z<=not (X and Y) в) Z<=not X and Y

4. Правильно ли утверждение: «Константе может быть присвоено новое значение, если оно эквивалентно предыдущему значению»?

5. Правильно ли утверждение: «Когда константа декларируется, то достаточно специфицировать ее значение, потому что константы косвенным образом определяются через ее значение»?

8

6.Правильно ли, что логические операторы могут употребляться только для типа bit?

7.Как определяются арифметические операции для типа bit? Правильно ли, что операторы всегда определяются для отдельных (конкретных) типов данных языка VHDL?

8.Можно ли в языке VHDL узнать (проверить) предыдущее значение сигнала? А предыдущее значение переменной? Если да, то как это делается.

Вопросы к лабораторной работе № 4

1.Что такое сигнал в языке VHDL? Чему соответствует сигнал в логической схеме?

2.Чем сигнал отличается от переменной? Как записывается оператор присвоения значения переменной?

3.Что такое параллельный процесс?

4.В каких состояниях бывают параллельные процессы?

5.Что такое дельта-задержка?

6.В каких разделах VHDL-кода может встречаться оператор назначения сигнала?

7.В какой части VHDL-кода необходимо указывать тип сигнала, который декларируется?

8.Когда (с точки зрения взаимодействия процессов) сигнал корректируется, т.е. получает то новое значение, которое приобретет в результате операции назначения сигнала, находящейся внутри процесса?

9.Промоделируйте «вручную» параллельные процессы

A<=X*Y

B<=A+Z

используя понятие дельта-задержки. Запишите VHDL-код и промоделируйте его с помощью системы моделирования.

Вопросы к лабораторной работе № 5

1.Перечислите последовательные операторы языка VHDL.

2.Какой порядок выполнения последовательных операторов?

3.Правильно ли утверждение: «Булево условие в цикле типа while проверяется в начале каждой итерации»?

9

4.Правильно ли утверждение: «Счетчик в цикле типа for есть переменная, которую нужно декларировать в начале процесса, в котором цикл употребляется»?

5.Какой будет дельта-задержка после выполнения операторов в случаях:

X:=A+B+C+D

Y:=A+B+C

Z:=A+B

W:=A

6.Где в VHDL-коде может быть декларирована локальная переменная?

7.Где в VHDL-коде может быть декларирован сигнал?

8.Перечислите различия между локальными переменными и сигналами в

языке VHDL.

9.Какие из последовательных операторов могут быть помечены? Являются ли метки обязательными?

10.Может ли процесс иметь список сигналов запуска и оператор wait внутри оператора процесса?

11.Может ли процесс иметь:

-несколько списков сигналов запуска;

-несколько операторов wait внутри оператора процесса;

-несколько списков сигналов запуска и несколько операторов wait внутри оператора процесса?

12. Правильно ли, что знак оператора назначения сигнала может быть ориентирован как в левую сторону (<=), так и в правую сторону (>=) по желанию проектировщика, пользующегося языком VHDL?

13. Объясните, как вы понимаете запись на языке VHDL

x <= y <= z

Является ли она корректной? Почему?

14.Какая часть VHDL-кода содержит последовательные операторы?

15.В какой части VHDL-кода можно употреблять операторы if, case, for ..

loop?

16. Что такое транспортная и инерционная задержка сигнала? Какой тип задержки (транспортная или инерционная) принят по умолчанию в языке

VHDL?

10

17. В каком случае модель инерционной задержки сигнала и модель транспортной задержки сигнала дают тот же результат?

Вопросы к лабораторной работе № 6

1.Перечислите параллельные операторы языка VHDL.

2.Какая часть VHDL-кода содержит параллельные операторы назначения сигнала?

3.Какой параллельный оператор требуется внутри параллельных опера-

торов?

4.Может ли локальная переменная употребляться как фактический параметр оператора параллельного вызова процедуры? Составьте соответствующий VHDL-код, проверьте его с помощью VHDL-анализатора.

5.Каким параллельным операторам требуются метки?

6.Для каких параллельных операторов метки необязательны?

7.Что такое компонент в языке VHDL? Чему соответствует компонент в логической схеме? Какие средства языка VHDL употребляются для соединения компонент?

8.Могут ли декларироваться компоненты внутри раздела декларации процесса?

9.Требуется ли декларировать сигналы внутри процесса?

10.Допустимо ли декларировать любые объекты внутри процесса?

11.Правильно ли, что все операторы внутри процесса выполняются один за другим?

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

13.Должен ли каждый процесс иметь имя (метку)? Рекомендуется ли именовать процессы? Если да, то почему?

14.Правильно ли, что имя процесса специфицируется после ключевого слова process?

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

16.Правильно ли, что оператор выборочного назначения сигнала и оператор условного назначения сигнала предоставляют то же действие, только записанное по-разному?

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]