Материал: 2617

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

6

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

Дисциплина «Алгоритмы проектирования микроэлектронных устройств» предусматривает лабораторные занятия, темы которых приведены в табл. 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.Правильно ли, что оператор выборочного назначения сигнала и оператор условного назначения сигнала предоставляют то же действие, только записанное по-разному?