Проектирование в САПР MAX+PLUS II.

В. Лобанов

Проектирование в САПР MAX+PLUS II

Редакция журнала уделяет самое пристальное внимание освещению проблем, связанных с внедрением высоких технологий в отечественные разработки. Несмотря на весьма обширный объ╦м публикаций в "Chip News" по системе автоматизированного проектирования (САПР) MAX+PLUS II [1-5], интерес разработчиков к этой теме не ослабевает. Публикуемая статья освещает практическую сторону вопроса.Появление на отечественном рынке ПЛИС фирмы ALTERA и САПР MAX+PLUS II для разработки цифровых устройств на базе изделий этой фирмы совершило небольшую техническую революцию в среде инженеров-цифровиков. Сегодня специалист, не владеющий современной технологией проектирования, ставит себя в очень невыгодные условия. Автор хотел бы помочь отечественным электронщикам в освоении этого достаточно совершенного инструмента. Основной материал по элементной базе и языку описания цифровых устройств AHDL можно найти в [6,7].

САПР MAX+PLUS II предназначена для разработки цифровых устройств и предоставляет для решения этой задачи следующие инструменты:

средства описания проекта; средства компиляции проекта; средства верификации проекта; средства программирования ("прожигания") ПЛИС.

Рассмотрим сквозное проектирование в САПР MAX+PLUS II на примере разработки упрощ╦нного ТВ-синхрогенератора. Пусть задана входная тактовая частота 4 МГц. Необходимо получить кадровый гасящий импульс (КГИ), строчный гасящий импульс (СГИ), кадровый сихроимпульс (КСИ) и строчный синхроимпульс (ССИ). Для КГИ заданы следующие характеристики: период Т = 20 мс, длительность импульса ДИ = 1,6 мс; для Т = 20 мс - ДИ = 68 мкс. КСИ должен располагаться по центру КГИ. Для СГИ Т = 64 мкс, ДИ = 12 мкс. ССИ имеет следующие параметры: Т = 64 мкс, ДИ = 4 мкс. ССИ должен быть привязан к центру КСИ. В этом простом учебном примере некоторые характеристики не соответствуют ГОСТ 7845-79, но из-за специфики задачи с этим прид╦тся смириться.

Разработка любого устройства начинается с эвристического этапа. Из технического задания следует, что для получения КГИ и СГИ потребуется сч╦тчик с коэффициентом деления К = 20 мс/250 нс = = 80000. Для формирования СГИ и ССИ достаточно сч╦тчика с К = 64 мкс / 250 нс = 256. Сч╦тчики должны быть синхронными, поскольку привязка фронтов всех формируемых импульсов к тактовой частоте достаточно ж╦сткая. Кроме того необходима некоторая комбинационная схема, которая будет преобразовывать состояния сч╦тчиков в импульсы ТВ-синхронизации.

В [1] уже отмечалось, что проектирование только в графическом редакторе является непрофессиональным. Даже в таком простом примере, где нет микропрограммного автомата в полном смысле этого слова [2], мы начн╦м разработку с создания текстового файла программы ks1.tdf (рис. 1) на языке AHDL. Связано это с тем, что синтезируемые логические функции достаточно громоздки, и рисовать полученную комбинационную схему весьма нудно. К тому же теряется прозрачность решения. Кстати, создавать проект только в текстовом редакторе тоже не следует по той же самой причине: теряется наглядность. Поэтому разработка любого цифрового устройства должна быть, если так можно выразиться, тексто-графической.

Программа ks1.tdf принимает выходы двух синхронных сч╦тчиков Q, Y и синтезирует логические функции требуемых ТВ-синхроимпульсов.

Рисунок 1. Создание файла ks1.tdf

SUBDESIGN ks1
   (
   q7,q8,q9,q10,q11,q12,q13,q14,q15,q16 : INPUT;
   y4,y5,y6,y7,q4,q5,q6 : INPUT;
   sgi,kgi,ssi,ksi,reset,strob96 : OUTPUT;
   )
BEGIN
   reset = q7q11q12q13q16;%k=80000=h13880,T=20мс%
   TABLE
   q8,q9,q10,q11,q12,q13,q14,q15,q16 => kgi;
   x, x, x , 0 , x , 0 , 0 , 0 , 0 => 1 ;
   x, x, x , x , 0 , 0 , 0 , 0 , 0 => 1 ;
   0, 0, 0 , 1 , 1 , 0 , 0 , 0 , 0 => 1 ;
   END TABLE;
   TABLE
   y4,y5,y6,y7 => sgi;
   1 ,x ,1 ,1 => 1;
   x ,1 ,1 ,1 => 1;
   END TABLE;
   ssi = sgi !y4;
   ksi = kgi q11(!q10q9q8#q10!q9!q8!q7!q6!q5!q4);
   strob96 = (!q7#!q8)!q9!q10!q11!q12!q13!q14!q15!q16;
   % 96мкс=>384=h180 %
END;

После того, как программа ks1.tdf написана и отлажена, необходимо создать е╦ Include-файл и соответствующий ему символ библиотечного элемента, чтобы потом работать в графическом редакторе. Только в н╦м обеспечивается самое наглядное представление проекта.

Создание Include-файла и символа библиотечного элемента:

создать файл .tdf и оттранслировать его; щ╦лкнуть "мышью" по команде File/Create Default Include File; прочитать этот файл и уточнить названия входов/выходов; щ╦лкнуть "мышью" на команде File/Create Default Symbol.

Затем уже в графическом редакторе изображается вся схема проекта с использованием только что полученного библиотечного элемента (рис. 2). После трансляции и запуска симулятора были получены временные диаграммы (рис. 3), полностью соответствующие ТЗ на ТВ-синхрогенератор. По окончании отладки проекта выполняется назначение ресурсов и программирование ПЛИС (см. ниже Инструкцию по пакету MAX+PLUS II).

Рисунок 2. Схема синхрогенератора

При создании полной принципиальной схемы с применением ПЛИС необходимо учитывать следующие факторы. Крутизна фронта входного сигнала должна быть не более 40 нс. Это означает, что все входы требуют буферизации. В качестве такого буфера можно использовать ИС инвертора 1533ЛН1. Нагрузочная способность выходов по току весьма высока (24 мА), но емкостная нагрузка составляет 12 пФ. Приходится буферировать выходы ПЛИС. Для этой цели можно использовать 1533ЛН8 или любую другую ИС с не менее качественными параметрами. В качестве тактового генератора желательно применять ИС кварцевого генератора ГК56П.

Рисунок 3. Временные диаграммы синхрогенератора

В заключение привед╦м краткий информационно-справочный материал по САПР MAX+PLUS II для разработчиков, не имеющих перевода фирменных рекомендаций.

Инструкция по пакету MAX+PLUS II

Программное обеспечение системы MAX+PLUS II содержит 11 приложений и главную управляющую программу. Различные приложения, обеспечивающие создание проекта, могут быть активизированы мгновенно, что позволяет пользователю переключаться между ними щелчком "мыши" или с помощью команд меню. В это же время может работать одно из фоновых приложений, например, компилятор, симулятор, анализатор синхронизации и программатор. Одни и те же команды разных приложений работают одинаково, что облегчает задачу разработки логического дизайна.

Hierarchy Display - обзор иерархии - отображает текущую иерархическую структуру файлов в виде дерева с ветвями, представляющими собой подпроекты.

Graphic Editor - графический редактор - позволяет разрабатывать схемный логический проект в формате реального отображения на экране WYSIWYG.

Symbol Editor - символьный редактор - позволяет редактировать существующие символы и создавать новые.

Text Editor - текстовый редактор - позволяет создавать и редактировать текстовые файлы логического дизайна, написанные на языках AHDL, VHDL, Verilog HDL.

Waveform Editor - сигнальный редактор - выполняет двойную функцию: инструмент для разработки дизайна и инструмент для ввода тестовых векторов и наблюдения результатов тестирования.

Floorplan Editor - поуровневый планировщик - позволяет графическими средствами делать назначения контактам устройства и ресурсов логических элементов.

Compiler - компилятор - обрабатывает графические проекты.

Работа с графическим редактором

Выбрав графический редактор, открываем новый файл (как в Word). Двойным щелчком в окне редактора вызваем библиотеку. На первых порах лучше работать с библиотекой mf, которая содержит стандартные элементы серии 74ХХ. Схему любого библиотечного элемента можно посмотреть, выполнив двойной щелчок на выделенном элементе. Кроме того, можно посмотреть справочник, выполнив следующие операции:

выделить нужный элемент щелчком "мыши"; щ╦лкнуть по нему правой клавишей "мыши"; выбрать в появившемся меню опцию Edit Ports/Parameters┘; выбрать Help on.

В этом справочнике имеется прототип функции для текстового редактора и таблица истинности для выбранного элемента.

При работе с мегафункцией необходимо выполнить следующие операции:

вызвать нужный символ из библиотеки мегафункций; правой клавишей "мыши" щ╦лкнуть внутри символа; выставить необходимые параметры, отменить лишние входы.

Графический редактор Altera похож на редактор PaintBrush. Но многие операции имеют свои особенности.

Проведение шин выполняется через команду Options/LineStyle с выбором вида соединительной линии. Обозначение шины выполняется латиницей в режиме указателя (наклонная стрелка в левом инструментальном поле), но лучше это делать в текстовом режиме, поместив маркер в тексте входа/выхода или над маркируемой линией. Например, rg[12..1], где 12 и 1 - соответственно старший и младший индексы связей. Обозначение отдельной связи в шине состоит из имени шины и е╦ индекса, например rg[1]. Линии, идущие от входов/выходов можно не обозначать, так как им автоматически присваиваются имена входов/выходов.

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

Точка на шине или связи ставится с помощью инструментальной линейки слева.

Связи лучше проводить с помощью инструмента в виде прямого угла.

С помощью примитивов можно вводить GND и VCC ("землю" и питание). Примитивы вызываются двойным щелчком левой клавиши "мыши".

Вращение элемента выполняется командой Rotate, выбираемой из меню, которое появляется после щелчка правой клавишей "мыши" (контекстное меню). Проще выполнить команду вращения из опции Edit.

Распечатка схем из графического редактора: уменьшить до предела масштаб изображения, чтобы определить необходимый размер листа и способ расположения рисунка; в опции Fileвыбрать Sizeи установить необходимый размер листа. Это можно сделать методом перебора предлагаемых форматов; проверить, помещается ли в этом листе вся схема; войти в опцию Fileи выбрать Print Setupдля установки книжного или альбомного расположения; щ╦лкнуть по иконке принтера. Создание библиотечного элемента: создать файл .gdf и оттранслировать его; щ╦лкнуть "мышью" по команде File/Create Default Symbol. Реализация иерархического проекта в графическом редакторе: изобразить все блоки (подпрограммы) в виде файлов *.gdf; провести компиляцию каждого блока (подпрограммы); с помощью команды File/Create Default Symbolзанести каждый блок (подпрограмму) в свою библиотеку подпрограмм в виде символа; вставить этот символ как обычный стандартный элемент в головной (main) блок (программу); отразить все связи с этим элементом в головном блоке. Работа с текстовым редактором

Этот редактор созда╦т файлы с расширением *.tdf. Можно использовать языки AHDL и VHDL.

Для просмотра include-файлов нужно щ╦лкнуть по иконке с изображением папки, выбрать директорию maxplus2max2inc при ключе All files и просмотреть файлы с расширением *.inc. Их содержимое можно увидеть в директории maxplus2 max2libmf. Чтобы увидеть содержимое function (include), нужно щ╦лкнуть по опции Templates (стр. 121, ч. 1 фирм. перевода).

Создание Include-файла: создать файл .tdf с шапкой TITLE и оттранслировать его; щ╦лкнуть "мышью" по команде File/Create Default Include File; прочитать этот файл и уточнить названия входов/выходов. Просмотр Include-файла из стандартной библиотеки: щ╦лкнуть по Help; выбрать опцию Searh for Help on┘; найти имя примитива (4count, 8count и так далее); щ╦лкнуть на кнопке "Показать"; просмотреть содержимое. Просмотр Include-файла из собственной библиотеки: открыть папку с искомым Include-файлом; вызвать свой Include-файл; просмотреть содержимое. Настройка на ПЛИС серии MAX7000S: войти в опцию Assign / Device; установить в окне Device Familyтип ПЛИС MAX7000S; только потом дать имя проекту и запустить трансляцию. Создание комбинированного проекта

Рациональное проектирование связано с использованием графического и текстового редакторов одновременно. Стандартные узлы (сч╦тчики, регистры, сумматоры и т. п.) удобно создавать в графическом редакторе. Микропрограммные автоматы (МПА), произвольные логические функции, операции с условиями, циклами и так далее нужно синтезировать в текстовом редакторе. При таком проектировании экономится время, а схема получается достаточно прозрачной. Порядок решения задачи в этом случае может быть следующим:

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

Перед компиляцией в опции File/ Project задать имя проекта (имя головного файла с расширением *.gdf). Компиляция проводится либо через опцию MAX+plusII/Compiler, либо через главную инструментальную линейку. При появлении окна компилятора нужно щ╦лкнуть по клавише Start.

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

Для отмены глобальных входов тактирования, сброса и выбора кристалла нужно в меню выбрать опцию Assign, а в ней Global Project Logic Synthesis и убрать все "галочки" в секциях Automatic Global, MAX Device Synthesis Options и других. Убедиться, что в окне Global Project Synthesis Style установлен режим NORMAL. В этом случае глобальные входы можно использовать в качестве обычных.

Для определения объ╦ма проекта необходимо выполнить следующие операции:

щ╦лкнуть "мышью" по "пирамиде"; вскрыть опцию rpt; просмотреть сообщение до опции %LCS Utilized. Моделирование

Открываем файл с расширением *.sсf, щ╦лкнув по соответствующему значку главной инструментальной линейки. Двойным щелчком вызываем меню ввода входных/выходных переменных.

Для установки интервала времени моделирования нужно войти в опцию File/EndTime и выставить нужное время (us, ms, s) или масштаб (1, 10, 100, 1000).

Для задания тактовой частоты нужно использовать левую инструментальную линейку (иконка с символом "С"), предварительно щелчком выделив диаграмму тактовой частоты.

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

Если при установке частоты не срабатывает задание шага, то щ╦лкнуть по 3-ей справа иконке на горизонтальной инструментальной линейке, а потом снова на вертикальной линейке повторить задание частоты.

Для запуска пакета моделирования (симулятор) необходимо щ╦лкнуть по кнопке симулятора главной инструментальной панели.

Назначение ресурсов

Для указания нумерации выводов следует выполнить следующие операции:

войти в меню Assign; выбрать опциюPin/Location/Chip┘; в появившемся окне записать имя узла и номер вывода ПЛИС.

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

Программирование ПЛИС

После назначения ресурсов возможно программирование ПЛИС. Программирование выполняется в следующем порядке:

при выключенном ПК подсоединить кабель ByteBlaster к принтерному разъ╦му ПК и программируемому прибору; включить ПК, запустить MAX+PLUS II; подать питание (обычно +5 В) на программируемый прибор; войти в опцию меню Fileи задать имя проекта; выбрать опцию MAX+plus II/Programmerи кнопку Program или просто щ╦лкнуть "мышью" по иконке программирования; убедиться в успешном выполнении программирования; отключить питание программируемого прибора; выйти из MAX+PLUS II; выключить ПК; отсоединить кабель ByteBlaster.

Литература

Стешенко В. Школа разработки аппаратуры цифровой обработки сигналов на ПЛИС // Chip News. 1999. ╧ 8 √ ╧ 10. 2000. ╧ 1 √ ╧ 3. Вицын Н. Современные тенденции развития систем автоматизированного проектирования в области электроники // Chip News. 1997. ╧ 1. С. 12√15. Губанов Д.А. и др. Перспективы реализации алгоритмов цифровой фильтрации на основе ПЛИС фирмы ALTERA // Chip News. 1997. ╧ 9-10. С. 26√33 Сем╦нов и др. Микропрограммный автомат на базе специализированных БИС // Chip News. 2000. ╧ 7. С. 51√53. Лобанов В.И. Технический минимум пользователя САПР MAX+PLUS II // Chip News. 2001. ╧ 1. С. 56√58. Стешенко В.Б. ПЛИС фирмы ALTERA: проектирование устройств обработки сигналов. М., 2000. Антонов А.П. Язык описания цифровых устройств AlteraHDL. М., 2001. Лобанов В.И. Инженерные методы разработки цифровых устройств. М., 1977 (шифр Центр. Политехн. Библиотеки - W1454/231) (шифр библ. НИИРТА - 507/Л68).







Рекомендуемый контент




Copyright © 2010-2019 housea.ru. Контакты: info@housea.ru При использовании материалов веб-сайта Домашнее Радио, гиперссылка на источник обязательна.