Изучение цифровой схемотехники
С ИСПОЛЬЗОВАНИЕМ САПР MAX+PLUSII
Графический ввод схемы устройства и функциональная симуляция с использованием САПР MAX+plusII
Графический ввод схемы устройства и функциональная симуляция с использованием САПР MAX+plusII
Цель работы:изучение САПР MAX+plusII,методов описания проекта в виде принципиальной схемы, трансляции и анализа с использованием функционального симулятора.
ВВЕДЕНИЕ
Программный продукт MAX+plusIIфирмы Alteraпредставляет собой интегрированную систему автоматизированного проектирования (EDA - electronicdesignautomation) цифровых систем, которая предполагает реализацию проекта с использованием программируемых логических интегральных схем (ПЛИС), производимых этой фирмой. Система позволяет описать проект несколькими способами: посредством ввода принципиальной схемы, текста на языке AHDL (AlteraHardwareDescriptionLanguage), в виде временных диаграмм функционирования, как машину состояний.
Система включает 11 программных модулей - приложений (applications), каждый из которых используется для выполнения определенного этапа обработки проекта. В список входят графический редактор, текстовый редактор, символьный редактор, редактор диаграмм, компилятор, монитор структуры проекта, симулятор, редактор конфигурации БИС, временной анализатор, программатор, процессор сообщений.Пользователь имеет мощную поддержку через подсистему Help,которая выдает информацию в виде гипертекста.
ОПИСАНИЕ ЗАДАЧИ
Предположим, что проектируемое устройство определено булевым уравнением, а описание проекта в системе MAX+plusIIпредполагается выполнить в графической форме с использованием библиотеки примитивов. Последовательность решения такой задачи следующая
• исходя из уравнения необходимо определить количество переменных и построить таблицу истинности;
• используя графический редактор, ввести схему устройства. Начинать рекомендуется с входных портов, количество которых определяется количеством переменных в уравнении. Далее анализируется вид членов уравнения и вызываются соответствующие примитивы из библиотеки системы MAX+plusII.В завершение проводятся межсоединения(цепи и шины), вызывается примитив выходного порта;
• используя редактор временных диаграмм, на основе таблицы истинности формируются тестовые векторы для проверки (верификации) соответствия введенной схемы и первоначального уравнения. Для этого используется функциональная симуляция;
• выполняется трансляция проекта, вызывается симулятор, который на основе тестовых векторов формирует диаграмму выходной функции устройства;
• сравнивая диаграмму состояний функции с таблицей истинности делается заключение о правильности функционирования разработанного устройства.
ПОСЛЕДОВАТЕЛЬНОСТЬ РЕШЕНИЯ ЗАДАЧИ
Определение имени проекта. Разрабатываемое устройство представляется в системе MAX+plusIIкак проект. Вначале работы с системой необходимо определить текущий проект, т.е. указать его имя и директорию. Выберем директорию d:\max2work\tutorial, а в качестве имени проекта укажем graphic 1. Имя тома и директория выбираются с помощью соответствующих меню, имя файла вводится в строке FileName. Завершается определение вводом ОК. Имя проекта отобразится в титульной строке окна Manager.
Использование графического редактора. Для вызова графического редактора нужно в меню Managerвыбрать Max+plusII|GraphicEditor. Откроется окно графического редактора, в титульной строке окна появится сообщение (Untitled 1 - GraphicEditor), говорящее о том, что текущим приложением системы MAX+plusIIявляется графический редактор и открыт неименованный файл. Строка меню Managerсодержит имена команд и набор инстументальных панелей. Чтобы узнать назначение каждой панели, нужно навести на нее указатель мыши, информация высветится под окном в строке состояния.
Графическому файлу со схемой узла необходимо присвоить имя с расширением .gdf (GraphicDesignFile).. Для этого выберите File|SaveAsи в строке FileNameпоявившегося диалогового окна укажите имя graphicl.gdf, введите ОК.
Для ввода графических изображений элементов будем импортировать их из библиотеки, которая в этой системе называется Primitives. Дважды щелкните мышью в центре экрана графического редактора. Откроется диалоговое окно, в котором в меню SymbolLibrariesуказанная библиотека находится по адресу d:\maxplus2\max21ib\prim. Дважды щелкните мышью по этой строке, в меню SymbolFilesпоявится список логических элементов. Двойной щелчок по имени and2 приводит к копированию элемента в окно графического редактора в позицию, определенную ранее курсором. Щелчок мышью по элементу производит его выбор, о чем свидетельствует окрашивание в красный цвет. После этого передвигая курсор мыши при нажатой кнопке 1 можно двигать элемент по окну редактора. Для определения положения элемента полезна сетка, которая появляется при активизации опции Option|Showguidelines.
Для реализации функции f нужен еще один элемент and2, два элемента оr2 и элемент notВведите эти элементы (примитивы) указанным выше образом.
После того, как логические элементов введены, нужно ввести символы входных и выходных портов. Их примитивы находятся в той же библиотеке под именами inputи output. Далее необходимо присвоить имена всем портам. Для этого дважды щелкните мышью по слову PIN_NAME на символе входного порта, находящегося в верхнем левом углу экрана. Слово засветится, позволяя прямо набрать имя порта. Ввод Enterнепосредственно после имени переводит курсор на следующий порт и так далее. Присвойте имена х2и хЗ оставшимся двум входным портам и имя f выходному порту.
Следующим шагом является ввод линий, соединяющих логические элементы между собой и с портами.
Нажмите панель"Выбор объекта" - верхнюю в вертикальном меню слева от окна редактора (на ней изображена стрелка). Если после этого подвести курсор к концу линии вывода (pinstub) порта х1, его указатель приобретет вид креста, а после нажатия правой клавиши мыши потянет за собой соединительную линию (node), которая кончается при отпускании клавиши. Соединение выхода и входа двух элементов выполняется в виде горизонтальных и вертикальных отрезков прямых. Любой отрезок можно выделить, щелкнув по нему мышью (он станет красным), и стереть (например клавишей Delete).
Схема Д-триггера
Работа с компилятором. После ввода схемы система проектирования анализирует ее и генерирует булевы уравнения для всех логических функций. Этот этап обработки выполняет приложение-компилятор, который вызывается выбором Max+PlusII|Compilerили щелчком по панели компилятора в меню инструментов. Перед компиляцией нужно выбрать тип микросхемы ПЛИС, на которой будет реализован проект. Наберите Assign|Deviceи в открывшемся окне укажите тип микросхемы ПЛИС, установленной на плате StarterKit -EPF8282ALC84-4. Время перекомпиляции проекта сокращается, если установлена опция SmartRecompile (Processing|SmartRecompile). Если выбрать Processing|DesignDoctor, специальная утилита проверит все файлы проекта на соответствие правилам реализации на выбранном типе ПЛИС. Для дальнейшей симуляции понадобится SNF-файл, для его генерации нужно указать ProcessingFunctional SNF Extractor. После установки опций щелчок по клавише Startзапускает процесс компиляции, после окончания которого высвечиваются сообщения об ошибках и предупреждения. После успешной трансляции закройте окно компилятора (клавишей Х в верхнем правом углу).
Симуляция.Симуляцией обычно называют процесс функционального моделирования с использованием программно-логической модели. Перед проверкой функционирования схемы необходимо создать тестовые векторы, которые представляют значения входных сигналов. Мы будем использовать для их создания редактор диаграмм, который выбирается последовательностью команд Max+PlusII|WaveformEditor. Когда окно редактора откроется, создайте файл graphic1.scf, последовательностью File|SaveAsи указанием graphic1.scf в строке FileNameоткрывшегося диалогового окна.
Далее определим входные и выходные линии схемы для процесса симуляции. Для этого используем линии, занесенные в SNF-файл (SimulatorNetlistFile), созданный на этапе компиляции схемы. Введите Node|EnterNodefrom SNF. Откроется экран, в котором имеется два окна:AvailableNodes&Groupsи SelectedNodes&Groups. После нажатия Listв первом окне появится список входных и выходных линий из SNF-файла. Нужно скопировать входные линии х1, х2, хЗ и выходную линию f во второе окно. Для этого нужно отметить линии поодиночке или блоком и нажать панель _ между окнами. Чтобы отметить одну линию, нужно щелкнуть по ней мышью. Чтобы отметить блок, нужно протащить указатель по списку при нажатой правой клавише мыши. В завершение введите ОК и вернитесь в окно редактора.
Определим параметры процесса симуляции, значения входных переменных для нашей
схемы. Вначале вводом File|EndTimeоткроем окно определения времени симуляции, введем значение 160ns и ОК. Далее определим интервал сетки окна редактора, введя OptionsGridSizeи набрав 20ns. На входных линиях значения логического "0", а выходная линия заштрихована, что указывает на неопределенность значения выходной переменной.
Для полной симуляции функционирования нашего устройства необходимо подать на входы все комбинации значений переменных. Поскольку переменных три, комбинаций 23 == 8. Длительность каждой комбинации при полном времени симуляции в 160nс равна 20пс. Таким образом, переменная х1должна иметь значение логической "1" в интервалы времени 20-40nс, 60-80nс, 100-120nс. Переменная х2должна иметь значение логической "1" на интервалах 40-80nс, 120-160nс, а переменная хЗ на интервале 80-160nс.
Для редактирования временной диаграммы переменной х1протащите указатель при нажатой правой кнопке мыши над линией логического "0" во втором интервале сетки. Этот интервал будет "залит" черным цветом, в окнах Ref: и Time: отобразятся значения 20nс и 40nс. Переведите указатель на панель установки значения "1" в левом вертикальном меню инструментов и щелкните мышью. Временная диаграмма х1в указанном интервале примет значение "I", заливка исчезнет. Аналогичными действиями отредактируйте диаграммы переменных х1, х2, х3 так, чтобы они приняли значения, указанные в предыдущем абзаце. Сохраните созданный файл (комбинация "горячих" клавиш Ctrl+S).
Для вызова приложения-симулятора выберите Max+plusII |Simulatorили нажмите соответствующую панель на верхнем меню инструментов. В открывшемся окне симулятора в заголовке указан режим функциональной симуляции, потому что на этапе компиляции была введена опция Processing| Functional SNF Extractor. В качестве входного файла указанgraphic1.scf. Укажите в качестве StartTime: значение 0.0nс, а в качестве EndTime: значение 160.0nс и щелкните по панели Start. После сообщения об отсутствии ошибок щелкните по ОК и вернитесь в окно симулятора. Результаты симуляции записаны в файл graphicl.scfи отображаются в окне редактора диаграмм.
Диаграмма с результатами симуляции
Диаграмма с результатами симуляции (с Д-триггером)
Лабораторная работа №3