«Случай — это псевдоним Бога, когда Он не хочет подписываться своим собственным именем.» А. Франс

ПЦУСБ/Лабораторная работа 2

Материал из Wiki
< ПЦУСБ
Версия от 12:18, 11 октября 2013; ANA (обсуждение | вклад)

Это снимок страницы. Он включает старые, но не удалённые версии шаблонов и изображений.
Перейти к: навигация, поиск
Лекции ПЦУСБ

Лекции

Практические
Тесты

Лабораторные

Доп. материалы

Содержание

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

Задание

Вариант 1
Рисунок 1 — Пример задания схемы

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

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

Рекомендуемый порядок выполнения работы

  1. Составить VHDL-модель каждого из типов элементов, входящих в схему. Если в схеме есть элементы одинакового типа, то составляется одна модель для всех элементов данного типа. Модель элемента должна учитывать задержку распространения сигнала (от входа к выходу), указанную в таблице 1. В схеме для каждого логического элемента указаны его тип (библиотечное имя) и имена входных и выходных портов.
  2. Составить структурную VHDL-модель схемы в целом. Предварительно следует проставить на схеме имена связей и номера элементов, которые должны соответствовать именам сигналов и меткам элементов (в операторе port map).
  3. По схеме составить логические уравнения зависимости выходов от входов, используя заданные в таблице 1 логические функции элементов. Составить VHDL-модель, используя полученные выражения.
  4. Составить тестирующую программу, включающую две VHDL-модели, и формирующую входные сигналы (полный перебор) и сравнивая ответы двух схем (сигнал OK). При сравнении ответов следует учитывать, что в структурном VHDL-описании учитываются задержки распространения сигналов в логических элементах, и поэтому правильные (окончательные) ответы со структурного и логического описаний будут разнесены во времени.
  5. Провести моделирование и получить временную диаграмму.
  6. Для каждого тестирующего набора и для каждой функции определить задержку схемы.
  7. Найти критический путь на схеме – путь с наибольшей суммарной задержкой элементов.


Требования к оформлению отчета

  1. В отчете должна быть приведена логическая схема, на которой должны быть обозначены имена сигналов и меток элементов, соответствующие описанию на языке VHDL (изображение схемы можно скопировать из файла заданий).
  2. В отчете должен содержаться VHDL-код структурного (включая описания используемых библиотечных элементов) и логического описаний схемы, а также тестирующая программа.
  3. В отчете должны содержаться временные диаграммы, соответствующие тестирующей программе.
  4. В отчете должна содержаться система логических функций, реализуемых схемой.
  5. В отчете необходимо привести таблицу, содержащую значения задержки распространения сигналов от входа к выходам для каждого входного набора.
  6. На логической схеме должен быть отмечен критический путь для каждой выходной функции.
  7. В отчете должно быть указано значение задержки схемы, соответствующее задержке критического пути.

Требования к VHDL-файлам проекта:

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

Библиотека элементов

В таблице заданы 2 типа задержек: в относительных единицах и в пикосекундах. Относительные единицы можно приравнять к наносекундам.

Информация

Группа 013201 должна использовать значения задержки в пикосекундах,
а группа 013202 — в относительных единицах (нс).

Таблица 1
Имя элемента Функция элемента Задержка,
относит. ед.
(гр. 013202)
Площадь Задержка, пс
(гр. 013201)
GND 1
VCC 1
N 2 100 160
A2 4 1000 511
A3 5 1500 824
A4 6 400 1156
A6 10 400 1505
A8 12 400 2121
EX2 7 1000 592
MX2 8 1000 938
NA2 3 200 275
NA3 4 300 425
NA3O2 5 300 441
NA4 5 400 742
NAO2 4 200 362
NAO22 5 200 487
NAO3 5 300 1000
NAOA2 5 200 1000
NEX2 7 1000 526
NMX2 6 1000 593
NMX4 15 1000 910
NO2 3 200 299
NO3 4 300 559
NO3A2 5 300 643
NO4 5 400 1087
NOA2 4 200 346
NOA22 5 200 477
NOA3 5 300 570
NOAO2 5 200 570
O2 4 1000 601
O3 5 1500 946
O4 6 1500 1400
O6 10 1500 1831
O8 12 1500 2388
DFRS D-триггер, управляемый положительным фронтом с

асинхронным сбросом и установкой с прямым выходом

25 1000 1300


Alib3-logic.png
Рисунок 1 – Условное графическое обозначение элементов

Варианты заданий

Варианты заданий приведены в DOC-файле.

Информация

Для группы 013201 вариант задания соответствует номеру в журнале.
Для группы 013202 вариант задания определяется по формуле (31 – N), где N – номер по списку в группе.


Шпаргалка

Схема

1. На схеме подписываются все связи и даются имена всем элементам. Подписывать элементы рекомендуется как принято в ГОСТе: слева направо, сверху вниз. Рекомендуется использовать префикс DD в метке элемента.

2. Определяется список библиотечных элементов, входящих в схему.

Таблица 1
Имя элемента Функция элемента Задержка,
относит. ед.
Площадь Задержка, пс
N 2 100 160
NA3 4 300 425
NO2 3 200 299
NAO22 5 200 487
NOAO2 5 200 570

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






Чтобы уменьшить размер файла структурного описания схемы, декларации элементов (описание интерфейсов) выносятся в пакет lib (package), который будет подключаться в структурной VHDL модели через оператор use work.lib.all;






Тестбенч sch01_tb(tb) позволяет проверить правильность работы двух VHDL описаний схемы, но определение задержки по выходам для каждого набора нужно делать вручную, используя два курсора на временных диаграммах как показано на рисунке.

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


ЦСУСБ-Лаб2-Tb2 vawe.png
Временная диаграмма sch01_tb(tb2)


Вывод в транскрипт:

#  X   Y  DY2  DY1
#  000 00 9 ns 9 ns Ok
#  001 00 0 ns 0 ns Ok
#  010 00 0 ns 0 ns Ok
#  011 01 0 ns 8 ns Ok
#  100 11 7 ns 0 ns Ok
#  101 00 5 ns 10 ns Ok
#  110 11 5 ns 8 ns Ok
#  111 01 5 ns 0 ns Ok
#  000 00 0 ns 8 ns Ok
#  001 00 0 ns 0 ns Ok
#  010 00 0 ns 0 ns Ok
#  011 01 0 ns 8 ns Ok
#  100 11 7 ns 0 ns Ok
#  101 00 5 ns 10 ns Ok
#  110 11 5 ns 8 ns Ok
#  111 01 5 ns 0 ns Ok
#  000 00 0 ns 8 ns Ok

В результате моделирования получено, что максимальная задержка для

  • DY1 = 10 нс (условных единиц)
  • DY2 = 7 нс (условных единиц)

Начальное значение задержки (9 нс) "фиктивное".

Однако, при ручном анализе схемы:

Схема с отмеченным критическим путём для каждого выхода (Edit)

Значение максимальной задержки равно 13 и 11 для выходов Y1 и Y2. Почему при моделировании не получены эти значения?