Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методичка по VHDL_2012 весна.doc
Скачиваний:
14
Добавлен:
11.09.2019
Размер:
8.84 Mб
Скачать

Содержание отчёта

Отчёт должен содержать:

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

  • таблицу истинности в соответствии с вариантом задания;

  • таблицы минимизации функций по любому выбранному методу и сами функции, записанные в СДНФ или СКНФ;

  • текст основной программы на языке VHDL;

  • текст тестирующей программы на языке VHDL;

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

Работа №2. Описание и моделирование нерегулярных логических схем. Задание

Для заданной нерегулярной логической схемы:

  • составить структурное VHDL-описание;

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

  • построить таблицу истинности системы логических функций, реализуемых схемой;

  • найти критический путь (или пути) схемы и определить соответствующее(-ие) ему (им) время задержки.

Ход выполнения

  1. Составить VHDL-модель каждого из типов элементов, входящих в схему. Если в схеме есть элементы одинакового типа, то составляется одна модель для всех элементов данного типа. Модель элемента должна соответствовать задержке, указанной в таблице (см. пример выполнения работы).

  2. Составить VHDL-модель схемы в целом.

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

  4. Провести моделирование и получить временную диаграмму.

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

  6. Для каждого тестирующего набора определить задержку схемы.

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

Тестовая программа

Основная программа

Компонент N

Компонент 2

Компонент 1

  

Рис. 3. Иерархическая модель проекта в работе №2.

Пример выполнения

Иерархическая модель проекта представлена на рис. 3.

Рассмотрим особенности описания логических блоков на примере блока EX2. Вот как будет выглядеть его описание на языке VHDL:

entity ex2 is

port (a1,a2: in bit;

f_ex2: out bit);

end ex2;

architecture fun_ex2 of ex2 is

begin

f_ex2 <= ((a1 and (not a2)) or ((not a1) and a2)) after 5 ns;

end fun_ex2;

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

Остальные логические блоки описываются аналогичным образом в соответствии с временной задержкой, указанной в таблице. Для каждого логического блока создаётся отдельный файл!

Теперь рассмотрим особенности основной программы. Далее приведён сокращённый фрагмент основной программы, соответствующей варианту №30:

entity lab2var30 is

port(x1, x2, x3, x4: in bit;

y1, y2, y3, y4: out bit);

end lab2var30;

architecture func of lab2var30 is

component neg

port (a1: in bit; имена сигналов соответствуют описанию

q1: out bit); логического блока

end component;

component na2

port (a11, b11: in bit; имена сигналов соответствуют описанию

q2: out bit); логического блока

end component;

Описание других компонент

component nao3

port (a19, b19, c19, d19: in bit;

q10: out bit);

end component;

signal g1,g2,g3,g4,g5,g6,g7,g8,g9,g10,g11,g12,g13,g14,g15,g16:bit;

begin Начало описания работы схемы

l1: neg port map (x1,g1); Описание последовательности

l2: neg port map (x3,g2); работы элементов схемы

l3: na2 port map (x4,g1,g3);

l4: na3o2 port map (g3,x3,x4,g1,g4);

l5: neg port map (g4,g5);

l6: noa2 port map (x2,g2,x1,g6);

l7: nao22 port map (x3,x1,x2,g5,g7);

y1 <= g7; Присвоение значения выходному сигналу

l8: neg port map (g7,g8);

l9: neg port map (g8,g9);

l10: nao2 port map (g9,x3,x2,g10);

l11: na3 port map (g10,x4,g1,g11);

l12: nao3 port map (g11,g6,x4,g8,g12);

y2 <= g12;

l13: neg port map (g12,g13);

l14: noa22 port map (g1,x2,g9,g13,g14);

l15: a3 port map (g13,g1,x2,g15);

y3 <= g15;

l16: neg port map (g15,g16);

l17: nao2 port map (g16,x4,g14,y4);

end func; Конец описания работы схемы

Главными особенностями основной программы являются:

  • имена сигналов в операторах конкретизации компонент должны обязательно совпадать с именами сигналов в файлах описания соответствующих логических блоков;

  • имена компонент в операторах конкретизации компонент и в основной программе также обязательно должны совпадать с именами соответствующих объектов (entity) в файлах описания логических блоков;

  • имя и входные и выходные сигналы основной программы также должны совпадать с именем и сигналами компонента в тестирующей программе;

  • если согласно схеме значение одной или нескольких функций yi используется в качестве входного значения одного или нескольких блоков, то для описания этого используются внутренние переменные основной программы (в примере это переменные g7, g12, g15).

Тестирующая программа имеет такую же структуру, как и в работе №1.

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

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

На рис. 4 изображено окно Wave с результатами моделирования логической схемы из варианта №30. Правильность результата моделирования можно проверить вручную, составив полную таблицу переключений логических блоков (выполнять необязательно).

Рис. 4. Временные диаграммы входных и выходных сигналов схемы

По временным диаграммам из окна Wave, наводя курсор (вертикальная желтая линия) на каждую нужную точку переключения значения функции, либо по таблице значений из окна List (без учёта столбца delta) определяем время задержки для каждого набора аргументов и составляем таблицу:

x1

x2

x3

x4

y1

tзад.1

y2

tзад.2

y3

tзад.3

у4

tзад.4

tзад.max

0

0

0

0

1

3 ns

0

0 ns

0

0 ns

1

3 ns

3 ns

0

0

0

1

1

0 ns

1

8 ns

0

0 ns

0

3 ns

8 ns

0

0

1

0

0

11 ns

0

8 ns

0

0 ns

0

20 ns

20 ns

0

0

1

1

1

11 ns

0

24 ns

0

0 ns

0

0 ns

24 ns

0

1

0

0

1

0 ns

1

8 ns

0

13 ns

1

3 ns

13 ns

0

1

0

1

1

0 ns

0

5 ns

1

9 ns

1

13 ns

13 ns

0

1

1

0

0

3 ns

0

0 ns

1

0 ns

1

0 ns

3 ns

0

1

1

1

0

0 ns

1

8 ns

0

12 ns

0

16 ns

16 ns

1

0

0

0

1

3 ns

1

0 ns

0

0 ns

0

7 ns

7 ns

1

0

0

1

1

0 ns

0

5 ns

0

0 ns

0

0 ns

5 ns

1

0

1

0

1

0 ns

0

0 ns

0

0 ns

1

3 ns

3 ns

1

0

1

1

0

9 ns

0

0 ns

0

0 ns

0

3 ns

9 ns

1

1

0

0

0

0 ns

0

0 ns

0

0 ns

0

0 ns

0 ns

1

1

0

1

0

0 ns

0

0 ns

0

0 ns

0

0 ns

0 ns

1

1

1

0

0

0 ns

0

0 ns

0

0 ns

0

0 ns

0 ns

1

1

1

1

0

0 ns

0

0 ns

0

0 ns

0

0 ns

0 ns

Время задержки определяется для каждого набора входных значений от момента переключения одного или нескольких входных сигналов до последнего переключения выходных сигналов. Например, в момент времени 400 нс переключились все входные сигналы, а выходной сигнал у1 переключился из 0 в 1 через 3 нс. А сигнал у4 сначала переключился из 0 в 1 за 3 нс, а затем ещё через 4 нс из 1 в 0. В этом случае получаем, что сигнал у4 переключился из 0 в 0 за 3+4=7 нс!

По таблице видно, что фактическое максимальное время задержки схемы tзад.сх.max равно 24 нс при генерации значения функции у2 на наборе входных значений {0,0,1,1} после переключения входного сигнала х4. Определим по схеме критический путь:

X4NA2NA3O2NNAO22NNNAO2NA3NAO3Y2