Главная страница

Лешуков В.В., Скакунов В.Н. (сост.) Проектирование микропроцессорных систем. Лешуков В.В., Скакунов В.Н. (сост.) Проектирование микропроцессо. Методические указания к лабораторной работе по курсу "Проектирование микропроцессорных систем" Часть v волгоград 2000


Скачать 0.51 Mb.
НазваниеМетодические указания к лабораторной работе по курсу "Проектирование микропроцессорных систем" Часть v волгоград 2000
АнкорЛешуков В.В., Скакунов В.Н. (сост.) Проектирование микропроцессорных систем
Дата09.02.2022
Размер0.51 Mb.
Формат файлаdoc
Имя файлаЛешуков В.В., Скакунов В.Н. (сост.) Проектирование микропроцессо.doc
ТипМетодические указания
#355932
страница3 из 4
1   2   3   4

Report File Equation Viewer. Еще одно средство визуализации информации об изображенных объектах - просмотрщик файла отчета логических функций. Для того чтобы он появился (исчез) в нижней части окна, нужно поставить (убрать) галочку напротив пункта Главного меню 'Layout\Report File Equation Viewer'. Визуализируется информация о выделенных ячейках или выводах. Просмотрщик имеет три поля:

Fan-In (...) - список сигналов, входящих в выбранный объект или объекты. В скобках указывается общее число входящих сигналов;

Equations (...) - в этом поле отображается логическая функция, результат кото­рой подается на выбранный в текущий момент объект. Число функций равно чис­лу выбранных объектов и указывается в скобках;

Fan-Out (...) - список ячеек или выводов, для которых выбранный объект (объ­екты) является источником сигнала. В скобках указывается общее число этих ячеек и выводов.

Кнопки '<Go To' и 'Go To>' переводят общее выделение с текущего объекта на объект, выбранный соответственно в поле 'Fan In' или 'Fan Out'. При этом изменяется содержимое полей просмотрщика, в соответствии с новым выделени­ем. Синий ободок выделения перемещается и в рабочем окне. Эти кнопки позво­ляют проектировщику прослеживать в обоих направлениях пути распространения различных сигналов и их взаимозависимости.

В рассматриваемом примере относительно простая логическая функция раз­мещается на целый кристалл ПЛИС, поэтому не возникает проблем, требующих вмешательства проектировщика. Самостоятельно поэкспериментируйте с основ­ными свойствами и возможностями Редактора подложки, не забыв предваритель­но сохранить исходный вариант, полученный Компилятором (команда Главного меню 'Assign\Back-Annotate Project').
2.7. Редактор входных воздействий

Для проверки правильности работы логики проектируемого устройства САПР MAX+PLUS II предоставляет достаточно эффективные и удобные средства. В ча­стности, есть возможность смоделировать поведение будущей ПЛИС при различных вариантах последовательностей входных сигналов. Для формирования этих последовательностей предназначен Редактор входных воздействий (Waveform Editor - пункт Главного меню 'MAX+PLUS II\Waveform Editor'). Он же позво­ляет просматривать результаты моделирования. Запустим Редактор входных воз­действий. Появляется окно с именем 'Untitiedl - Waveform Editor'.

По умолчанию Диапазон времени для формирования входных сигналов огра­ничен одной микросекундой (1 us.). Для того чтобы изменить это значение, нуж­но выбрать пункт Главного меню 'File\End Time...' (этот подпункт меню присут­ствует в пункте 'File' только при открытом окне Редактора входных воздейст­вий). В программе MAX+PLUS II используются следующие единицы измерения времени:

[ns] - nanosecond - наносекунда;

[ms] - millisecond - миллисекунда;

[us] - microsecond - микросекунда;

[s] - second - секунда.

Еще одна немаловажная для Редактора входных воздействий настройка - это Шаг временной сетки. От этой величины зависит минимальный период частоты задаваемых синхросигналов, а также диапазон времени между ближайшими из­менениями уровня сигналов при включенной опции 'Snap to Grid Size' (пункт Главного меню.'Options'). Для изменения Шага временной сетки нужно выбрать пункт Главного меню 'Options\Grid Size...'.

Заметим, что величина файла входных воздействий .scf (Simulator Channel File) напрямую зависит от соотношения Диапазона временного анализа и Шага временной сетки. Не следует задавать эти величины различающимися на десяток и более порядков, так как это грозит не только непомерным увеличением разме­ров .scf файла, но и проблемами в работе операционной системы.

Вернемся к окну Редактора входных воздействий. Сначала необходимо задать названия входных и выходных сигналов. В левой части окна под надписью 'Name' щелкнем правой кнопкой мыши и во всплывающем меню выберем пункт 'Ввод узлов из SNF-файла' ('Enter Nodes from SNF'). В появившемся диалого­вом окне в поле 'Туре' зададим маску для отображения узлов, ограничившись входами (inputs) и выходами (outputs). Затем, нажав на кнопку 'List', в окне Доступных узлов и групп ('Available Nodes & Groups:') получим выделенный список всех входов и выходов проектируемого устройства. С помощью кнопки '=>' перенесем все выделенные узлы в правое окно Выбранные узлы и группы ('Selected Nodes & Groups:'). Нажатием кнопки 'OK' вернемся в Редактор вход­ных воздействий. В левой части окна должен появиться список из двух входных и четырех выходных узлов схемы счетчика: CEn, CCount, Q4, Q3, Q2 и Q1 (рис. 3). Аналогичный результат можно получить, повторив несколько раз операцию 'Вставить узел' (пункт 'Insert Node' из того же всплывающего меню, которая отличается от предыдущей тем, что позволяет выбирать только один узел из спи­ска, но дает возможность сразу задать для него вид сигнала на весь исследуемый временной диапазон. Вид сигнала задается в строчке 'Default Value' и может принимать одно из следующих значений:

'0' - низкий уровень сигнала;

'1' - высокий уровень сигнала;

'X' - неопределенное значение;

'Z' - высокоомное состояние (Z-состояние).

Зададим требуемую для проверки схемы последовательность входных воздей­ствий. Один из вариантов приведен на рис. 3. На счетный вход CCount подается синхросигнал с периодом 60 наносекунд. На вход СЕn, разрешающий работу' счетчика в счетном режиме, первые 100 наносекунд подается низкий (неактив­ный) уровень, далее до конца моделируемого промежутка времени (1 микросе­кунда) - высокий уровень сигнала. Выходы счетчика Q1-Q4 оставим в неопреде­ленном состоянии.

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

В верхней части окна расположены три цифровых индикатора:

Ref - временной интервал, на который Курсор текущей позиции (Reference cursor) удален от начала координат. Для перемещения курсора достаточно нажа­тия правой кнопки мыши в нужном месте рабочего поля редактора. Можно также стандартно перетаскивать курсор мышью за верхнюю часть, изображенную в ви­де квадратика. Значения уровней сигналов, соответствующие текущему положе­нию курсора отображаются в столбце 'Value', расположенном в левой части окна редактора, сразу после столбца с названиями выводов 'Name'.

Time - удаление по оси времени текущего положения указателя мыши от нача­ла координат.

Interval - временной интервал между Курсором текущей позиции и указателем мыши, взятый со знаком, либо длина интервала выделенного отрезка времени. Выделение осуществляется стандартно правой кнопкой мыши.

Задать значение сигнала для входа или выхода на всем моделируемом проме­жутке либо на выделенном отрезке можно с помощью кнопок на левой инстру­ментальной панели. К вышеперечисленным значениям ('0', '1', 'Z' и 'X') добав­ляются:

Возможность инвертирования сигнала.

Задание меандра (тактовой частоты) с указанием периода. Причем мини­мальный период не может быть меньше удвоенного шага координатной сетки.

Эти же возможности задания значения выделенного интервала сигнала пре доставляются при выборе пункта 'Overwrite' всплывающего меню.

Выделив несколько однотипных сигналов (только входов или только выходов правой кнопкой мыши, можно объединить их в Группу (выбрав пункт 'Enter Group...' всплывающего меню или меню 'Node'). Для каждой группы указывает ся система счисления из четырех возможных:

- Двоичная ('BIN')

- Восьмеричная ('ОСТ')

- Десятичная ('DEC')

- Шестнадцатеричная ('HEX')

Каждый отдельный сигнал имеет свой вес в соответствии с выбранной систе­мой счисления. Смысл объединения сигналов в группу заключается в том, что с группой удобнее проводить некоторые операции. В частности, для группы можно задать Счетную последовательность ('Count Value...') соответствующей кноп­кой левой инструментальной панели или пунктом 'Overwrite\Count Value...' всплывающего меню. В появившемся диалоговом окне 'Overwrite Count Value' задаются:

Начальное значение ('Starting Value') из диапазона допустимых для данной системы счисления;

Код счета ('Count Type') - двоичный или код Грея;

Шаг инкремента ('Increment By') в диапазоне целых чисел от -32000 до 32000 (для кода Грея строго равен единице);

Коэффициент растяжения по оси времени ('Multiplied By') в диапазоне це­лых чисел от -32000 до 32000;

Начальное и конечное значения интервала ('Interval') определяются выде­ленной областью группы. Время одного отсчета ('Count Ever') соответствует шагу временной координатной сетки. Конечное значение счета ('Ending Value') вычисляется автоматически исходя из остальных параметров.



Используя необходимые из вышеперечисленных инструментальных средств редактирования сигналов, приведем редактируемый файл 'Untitledl.scf' в соот­ветствие с рис. 3 и сохраним под именем 'example.scf' с помощью пунктов меню 'File\Save' или 'File\Save As...'.

Обратите внимание, что в Иерархическом дисплее появился новый значок с подписью 'scf', означающий, что в проект входит файл с формами входных и вы­ходных сигналов. Двойной щелчок мышью по этому значку запускает соответст­вующий редактор (Редактор входных воздействий) и загружает .scf файл текуще­го проекта.
2.8. Имитатор

Одним из мощных и полезных средств САПР MAX+PLUS II является Имита­тор, который запускается выбором пункта Главного меню 'MAX+PLUS II\Simulator' или соответствующей кнопкой на верхней общей панели инстру­ментов. В зависимости от варианта последней компиляции Имитатор позволяет осуществлять три типа моделирования:

Функциональное моделирование, при котором за основу берется функцио­нальный .snf файл. Этот тип моделирования проверяет только логику исходной схемы проекта со всеми узлами и элементами, т.е. схемы не прошедшей на этапе компиляции Логический синтез, Распределение и Сборку.

Временное моделирование, при котором за основу берется временной .snf файл, полученный в результате полной компиляции с выполнением всех этапов. Этот тип моделирования позволяет проанализировать работоспособность проекта как с точки зрения логики (используется схема уже в оптимизированном виде), так и с точки зрения функционирования в реальном режиме времени.

Объединяющее моделирование предназначено для проверки работы логики суперпроекта, состоящего из отдельных проектов, объединенных в один. Моде­лирование осуществляется на основе объединенного .snf файла, собранного на этапе компиляции из функциональных и временных .snf файлов подпроектов.

Помимо соответствующего .snf файла входными данными для модуля является .scf файл проекта.

Для рассматриваемого нами примера воспользуемся Временным моделирова­нием, поскольку в процесс компиляции был создан именно временной .snf файл. Перед началом моделирования проектировщику предоставляется возможность сделать некоторые начальные установки в окне Имитатора.

В строчках 'Start Time' и 'End Time' задается соответственно Начальное и Конечное время моделирования. Причем конечное время не может превышать границы .scf файла (по умолчанию 1 us).

Опция 'Use Device' используется, если к программатору подключено реальное спроектированное устройство. В этом случае набор входных сигналов подается непосредственно на входы, а набор выходных снимается непосредственно с вы­ходов подключенного кристалла.

Выбор опции 'Setup/Hold' позволяет учитывать при моделировании Время установки/задержки.

Под временем установки понимается:

для триггера (flipflop) - минимальное время между изменением уровня сигнала на информационном или разрешающем (Clock Enable) входе и переходом сигнала на счетном входе (Clock) из нулевого в единичное значение;

для вентиля (latch) - минимальное время между изменением уровня сигнала на информационном входе и переходом сигнала на разрешающем входе (Latch Enable) из нулевого в единичное значение;

для асинхронного блока памяти (RAM) - минимальное время между измене­нием уровня сигнала на информационном или адресном входе и изменением сиг­нала на разрешающем запись входе (Write Enable).

Под временем задержки понимается:

для триггера - минимальное время между активным изменением уровня сиг­нала на счетном входе (Clock) и изменением уровня сигнала на информационном или разрешающем входе (Clock Enable);

- для вентиля - минимальное время между активным изменением уровня сигна­ла на разрешающем входе (Latch Enable) и изменением уровня сигнала на инфор­мационном входе (D);

- для асинхронного блока памяти (RAM) - минимальное время между актив­ным изменением уровня сигнала на разрешающем входе (Write Enable) и измене­нием уровня сигнала на информационном или адресном входе (Write Enable).

Для функционального моделирования Время установки/задержки по умолча­нию принимается равным 0,1 наносекунды. В остальных случаях оно зависит от используемого типа ПЛИС.

Опция 'Check Outputs' - проверка выходов, дает возможность сравнить зна­чения выходных сигналов, приведенные в .scf файле, со значениями, полученны­ми в результате моделирования. Новые значения не записываются поверх имею­щихся. В случае отличия имеющегося и полученного при моделировании уровней сигналов в открывающемся Окне сообщений ('Messages - Simulator') появляются сообщения об ошибках с указанием названия сигнала и отметки на временной шкале, начиная с которой идут расхождения. Вновь полученные диаграммы вы­деляются красным цветом и проводятся поверх уже имеющихся. Таким образом, расхождения в уровнях соответствующих сигналов хорошо видны. Независимо от текущего типа моделирования, сравнение сигналов всегда выполняется в функ­циональном режиме.

Опция 'Oscillation' - колебания, во включенном режиме позволяет отследить Точки схему, в которых значение логического уровня не успевает установиться в течение заданного времени после изменения сигналов вектора входных воздейст­вий. Значение времени задается в строчке напротив пункта 'Oscillation'. В случае появления при моделировании колебаний, не затухающих в течение заданного времени, в окне сообщений 'Messages - Simulator' фиксируются сообщения с указанием узла схемы и временем возникновения колебаний. Это справедливо для временного и объединяющего моделирования. Для функционального моде­лирования определяется только 'Nil-period Oscillation' - колебания логических уровней в узлах схемы, не установившиеся после самого последнего (окончатель­ного) изменения вектора входных воздействий.

Опция 'Glitch' - сбой, во включенном режиме позволяет выявить узлы схемы, в которых во время моделирования появляются положительные или отрицатель­ные импульсы короче времени, указанного в строке напротив пункта 'Glitch'. Для функционального моделирования определяется только 'Nil-time Glitch' - сбои, возникающие после окончательного изменения вектора входных воздействий.

Запустим процесс моделирования текущего проекта кнопкой 'Start' окна Ими­татора. Динамическая горизонтальная шкала показывает процент выполнения моделирования. В случае успешного завершения появляется сообщение об этом с указанием:

времени стабилизации схемы ('Circuit stabilized at...');

времени окончания моделирования по временной оси .scf файла ('Simulation ended at...');

отношения фактически промоделированных узлов к общему числу узлов в .snf файле ('Simulation coverage...').

Если в ходе моделирования возникают ошибки или предупреждения, то они отображаются в окне сообщений.

Из окна Имитатора можно открыть Редактор входных воздействий с .scf фай­лом текущего проекта, выбрав кнопку 'Open SCF'.

Проведем моделирование для рассматриваемого примера схемы счетчика. В качестве входного файла выступают 'exampl.scf' с входными воздействиями и файл 'ехаmрl.snf' с информацией о проектируемом устройстве. Для просмотра результатов моделирования воспользуемся кнопкой 'Open SCF'. В открывшемся Редакторе входных воздействий в .scf файле неопределенные значения выводов Q1..Q4 заменены знамениями, полученными при временном моделировании. В случае правильного выполнения предыдущих шагов проектирования диаграммы должны соответствовать работе двоичного суммирующего счетчика. Выделив че­тыре выходных сигнала (движением мыши с нажатой левой кнопкой справа от названий выводов либо левой кнопкой с нажатой клавишей 'Ctrl'), объединим их в группу Q[4..1] с десятичной системой счисления. В результирующей строке по­лучим последовательность значений счетчика в десятичном коде. Нетрудно заме­тить, что нормальная последовательность счета '0, 1, 2, 3, 4, 5...' нарушается кратковременными ложными состояниями (между значениями '1' и '2' появляет­ся состояние '0' и т.д). Этот эффект характерен для последовательных счетчиков и связан с неодновременным переключением триггеров.
1   2   3   4


написать администратору сайта