Компоненты и технологии, № 6'2002
Современные системы проектирования для ПЛИС.
Пакет Libero фирмы Actel
Американская компания Actel Corporation (www.actel.com) была основана в 1985 году. Особенностью ПЛИС, производимых этой компанией, является применение так называемой технологии Antifuse, представляющей собой создание металлизированной перемычки при программировании. Данная технология обеспечивает высокую надежность и гибкие ресурсы трассировки, кроме того, не требуется конфигурационное ПЗУ. Для проектирования устройств на базе ПЛИС фирмы Actel бесплатно распространяется пакет Libero.
Владимир Стешенко, к. т. н.
steshenk@sm.bmstu.ru
По технологии Antifuse выпускаются семейства ACT1, ACT2, 1200XL, а также новые семейства SX, SX-A, eX, А40МХ, А42МХ (со встроенными модулями памяти), имеющие хорошие показатели «цена — логическая емкость»: ПЛИС, заменяющая 300-350 корпусов ТТЛ, с частотой более 250 МГц стоит 10 долл. Данные ПЛИС являются хорошей альтернативой БМК при среднесерийном производстве.
Микросхемы Actel, выпускаемые по технологии Antifuse, требуют применения специального программатора. Устройство Flash Pro предназначено для конфигурации в системе ПЛИС семейств ProASIC и Pro ASIC Plus и представляет собой дешевое и простое решение. ПЛИС Actel отличает высокая надежность, поэтому они являются весьма перспективной базой для специальных применений. ПЛИС фирмы Actel выпускаются в коммерческом и индустриальном диапазоне температур, а также с военной и космической приемкой.
Новые семейства ProASIC и Pro ASIC Plus фирмы Actel обладают емкостью более 500 000 эквивалентных логических вентилей, их отличительными особенностями являются энергонезависимость (благодаря применению Flash-технологии) и наличие интегрированного на кристалле запоминающего устройства.
Для проектирования устройств на базе ПЛИС фирмы Actel бесплатно распространяется пакет Libero. В его состав входит средство синтеза Synplify от известной фирмы Synplicity — один из мощнейших пакетов синтеза для ПЛИС, по мнению многих разработчиков. Для ввода описания проекта в виде схемы используется средство VieDraw от Innoveda. Моделирование выполняется в известном пакете Modelsim от Mentor Graphics, а генерация тестовых векторов (testbenches) — с помощью пакета WaveFormer Lite от SinaptiCAD. Непосредственно ввод проекта на языках описания аппаратуры, трассировка ПЛИС, генерация макросов и программирование кристалла осуществляются на компонентах фирмы Actel. Libero продолжает линию, начатую еще в пакетах UltraPack и Actel DeskTOP, содержащих средства ввода проекта, моделирования, генерации тестов разработки VeriBest и средства синтеза разра-
ботки Synplicity. Пожалуй, Actel поставляет наиболее мощные из всех бесплатных пакетов САПР ПЛИС.
Пакет Libero легкодоступен для заказа на сайте www.actel.com — автор регулярно получал его свежие версии на компакт-дисках. Существует несколько вариантов лицензирования (в максимальных конфигурациях платно), но, как показала практика, для целей учебного процесса и простых проектов бесплатный вариант Libero Silver очень удачен, поддерживает достаточное число семейств ПЛИС. Цены на платные варианты весьма приемлемы, что позволяет говорить о неплохой перспективе этого пакета.
На рис. 1 показано меню, появляющееся при установке диска с пакетом Libero. Инсталляция проста и доступно изложена в соответствующем документе, но следует помнить, что при использовании синтезатора Synplify его следует ставить первым.
Рассмотрим маршрут проектирования в пакете Libero. В нашем случае процесс проектирования (Design flow) включает следующие этапы:
• создание проекта с помощью схемы, только как описание на языках описания аппаратуры и в смешанном режиме (mixed schematic-HDL flows);
• синтез проекта;
• моделирование;
• программирование ПЛИС;
• верификация системы.
Компоненты и технологии, № 6'2002
Создание проекта (Design Creation) осуществляется путем генерации по введенной схеме или описанию генерации списка цепей, проведении функционального и временного моделирования с использованием тестов (testbench/test fixture). Для ввода схемы (schematic capture) в пакете Libero используется графический редактор ViewDraw, который включает редактор схем (schematic editor) и редактор символов (symbol editor), позволяющий пользователю создавать собственные символы, что удобно при смешанном методе описания схемы. После ввода схемы генерируется список цепей в формате EDIF и производится трассировка проекта на ПЛИС.
Функциональное моделирование (Functional Simulation) позволяет проверить правильность работы схемы. Для этих целей в пакете Libero используется широко известный продукт ModelSim. Кроме того, для генерации тестовых воздействий применяется продукт WaveFormer Lite фирмы SynaptiCAD.
Трассировка проекта в выбранную пользователем ПЛИС осуществляется с помощью собственного продукта Designer, который также имеет средство анализа временных характеристик Designer's Timer tool, позволяющее провести статический анализ задержек сигналов на кристалле; средство размещения макросов ChipEdit; средство назначения контактов PinEdit. После размещения и трассировки проекта на кристалле с помощью пакета ModelSim выполняется временное моделирование (timing simulation).
Непосредственно программирование ПЛИС осуществляется с использованием программатора и программного средства Actel Designer. Верификация всей системы (System Verification) осуществляется с помощью средства Silicon Explorer.
В основном окне пакета Libero (рис. 2) интегрированы все программные средства и файлы, используемые в текущем проекте.
Окно отчета (Log Window) отображает информацию о ходе выполнения проекта, предупреждения и сообщения об ошибках.
Панель инструментов (Toolbar) содержит пиктограммы для выполнения наиболее часто встречающихся команд.
Строка состояния (Status Bar) отображает текущий режим работы проекта.
Окно обозревателя проекта (Design Explorer) отображает исходные файлы и всю иерархическую структуру проекта. В окне обозревателя проектов отображаются все файлы — источники текущего проекта (design sources files), которые включают все файлы, необходимые для описания проекта (схемы, файлы на языках описания аппаратуры).
Обозреватель проекта состоит из двух закладок: менеджера файлов (File Manager Tab) и закладки иерархии проекта (Design Hierarchy Tab) (рис. 3) — в ней отображается иерархическое расположение файлов в проекте. При работе над проектом в пакете Libero непрерывно анализируются файлы, входящие в проект, и обновляется его иерархическая структура.
Рис. 3
Окно процессов (Process Window) отображает текущее состояние процесса проектирования и все возможные его стадии.
Редактор языков описания аппаратуры (HDL Editor) используется для написания файлов проекта на выбранном языке (Verilog или VHDL).
• Run Silicon Explorer — запускает пакет Silicon Explorer для прошивки ПЛИС в реальном времени;
• Run Silicon Sculptor — запускает пакет Silicon Sculptor для программирования устройств. Отметим, что все редакторы интегрированы в главное окно, и любое изменение в них приводит к изменению в иерархии проекта, обозреватель проекта автоматически обновляет эти изменения. При необходимости для обновления сведений об иерархии проекта можно нажать кнопку Refresh.
Закладка менеджера файлов (File Manager Tab) показана на рис. 4. На ней отображены все файлы проекта, каждому соответствует свой символ, позволяющий определить тип файла. Файлы сгруппированы по типам.
3roject Design FilesH
i Block Symbol Files
; Schematic Files
3 Hdl Files
: example2.vhd
; Vhd Package Files
E 3 ! \CTgen Macros mplementation Files
1 ® example2.edn
: example2.vhd
(§ example2.adb
example2.sdf
0 Stimulus Files
example2.tim
J
Design Hierarchy
Рис. 4
File Manager
Для открытия файла необходимо дважды щелкнуть левой кнопкой мыши по нему в закладке иерархии проекта. При нажатии правой кнопки мыши возможны следующие варианты:
Open Schematic — открывает выбранную схему для редактирования во ViewDraw.
Open HDL File — открывает выбранный файл на языке описания аппаратуры для редактирования в HDL Editor.
Set as Root — устанавливает выбранный файл в качестве верхнего уровня иерархии.
Generate EDIF — создает список цепей в формате EDIF (только для схем).
Create Symbol — создает символ.
Create Stimulu — создает тестовое воздействие с использованием пакета WaveFormer Lite. Synthesize — запускает синтезатор Synplify. Run Simulation — запускает пакет моделирования ModelSim:
• Run Pre-Synthesis Simulation — запускает пакет моделирования ModelSim для функционального моделирования (pre-synthesis simulation);
• Run Post-Synthesis Simulation — запускает пакет моделирования ModelSim для временного моделирования после синтеза (post-synthesis simulation);
• Run Designer — запускает пакет Designer;
Нажатие правой кнопки мыши в закладке менеджера файлов позволяет вызвать всплывающее меню, специфичное для каждого типа файла. Для удаления файла из проекта следует выделить файл и выбрать меню Delete from Project.
В окне процессов (Process Window) (рис. 5) отображены все доступные составляющие пакета Libero, сгруппированные по функциональному назначению. Текущая стадия работы с проектом выделена.
В- Design Entry Utilities
i..j=j HDL Editor
i..v? ViewDraw
S Symbol Generation Wizard ACTgen $ Syrthesize
Й-О Synplily Synthesis □ - Simulation
а Й WaveFormer Lite Stimulus S' M ModelSim Simulation B-- Implement Design
)..ф Designer Place-and-Route
j..H Silicon Sculptor
;..■ Silicon Explorer
Рис. 5
e
Компоненты и технологии, № 6'2002
Компоненты активируются двойным щелчком мыши.
Libero, как и многие подобные современные пакеты, обладает рядом полезных сетевых свойств. В частности, существует возможность проверки обновлений через интернет (рис. 6).
Соединение по FTP используется для обновления некоторых файлов данных. Для установки этих опций используется закладка Proxy в меню Preferences.
Таблица 1
Команда Описание
Меню FILE
New Создает новый файл проекта
Open Открывает существующий файл проекта
Close Закрывает открытый файл проекта
New Project Создает новый проект
Open Project Открывает существующий проект
Close Project Закрывает открытый проект
Import Files Импорт файлов
Save Сохранение файлов
Save As Сохранение под другим именем или в другой папке
Save All Сохраняет все открытые файлы
Print Вывод на печать текста из редактора HDL Editor
Print Preview Предварительный просмотр
Preferences Установка опций интернет и прокси-сервера
Recent Projects Список 5 последних проектов
Exit Выход
Меню EDIT
Undo Отменяет предыдущую команду
Redo Повторяет предыдущую команду
Cut Вырезает фрагмент и помещает его в буфер обмена
C°py Копирует выделение в буфер обмена
Paste Вставляет содержимое буфера обмена в выбранное место
Find Поиск текста в редакторе HDL Editor
Find Next Поиск следующего фрагмента текста в редакторе HDL Editor
Replace Замена текста в редакторе HDL Editor
Select All Выбор всего текста в редакторе HDL Editor
Refresh Обновление окна
Меню VIEW
Toolbar Включает панель инструментов
Status Bar Включает строку состояния
Design Explorer Открывает окно Design Explorer
Process Window Открывает окно Process window
Меню PROCESS
Design Entry Utilities Запускает HDL Editor, ViewDraw, Symbol Generation Wizard или ACTgen
Synthesize Запускает Synplify
Simulation Запускает ModelSim или WaveFormer Lite
Implement Design Запускает Designer для трассировки ПЛИС
1 Меню TOOL
Software Update Обновление продукта через интернет
Options Установка опций проекта для выбранного семейства ПЛИС
Меню WINDOW
Cascade Каскадирование окон HDL Editor
Tile Упорядочивание окон HDL Editor
HDL Editor Переключение между HDL файлами
1 Меню HELP
Reference Manual Руководство пользователя Libero User's Guide
Actel on the Web Выход на сайт Actel
About Libero Информация о версии
New Open Save Cut Copy Paste Undo Redo Find
і T і і її і i—і
Q & У
Рис. 7
Replace Print
Рассмотрим создание нового исходного файла. В меню File следует выбрать пункт New. При этом появляется диалоговое окно создания нового исходного файла, приведенное на рис. 9.
В таблице 1 представлены команды пакета Libero.
Наиболее часто используемые команды выведены в виде пиктограмм на панель инструментов (Tool Bar), показанную на рис. 7.
Рассмотрим процесс создания нового проекта в пакете Libero. Очевидно, что перед началом работы необходимо создать проект. Для этого запускаем Libero, дважды щелкнув мышью по соответствующей пиктограмме на рабочем столе или из меню «Пуск». Затем выбираем пункт New Project из меню File. Появляется диалог создания проекта (рис. 8).
В меню File Type выбираем тип исходного файла (схема, символ, макрос ACTgen, описание или пакет на VHDL или Verilog, тестовое воздействие) и вводим имя файла в поле Name. Пакет Libero добавит расширение автоматически, вручную его вводить не следует. После нажатия кнопки OK файл создается и заносится в менеджер проекта File Manager.
В таблице 2 приведены расширения исходных файлов проекта.
Таблица 2
Тип файла Расширение
Символ ViewDraw *.1-9
Схема ViewDraw *.1-9
Описание на VHDL .vhd, .vhdl
Пакет VHDL Package .vhd, .vhdl
Макрос ACTgen Macro gen
Verilog Include/Header File .h
Behavioral and Structural Verilog .v
Stimulus .vhd, .vhdl, .v
EDIF Netlist .edn
В поле Project Name вводится имя проекта. В поле Project Location указывается расположение файла. В выпадающем меню Family выбираем семейство ПЛИС. Затем выбираем язык описания — Verilog или VHDL, в зависимости от того, какой язык поддерживается текущей лицензией на пакет. Новый проект располагается в выбранной или созданной директории и имеет расширение .prj.
Для открытия существующего проекта используется пункт Open Project меню File.
Теперь приступаем к созданию исходных файлов проекта. В новый проект файлы могут быть и импортированы. При открытии или импорте исходного файла он автоматически заносится в менеджер файлов File Manager.
Следует помнить, что невозможно импортировать файл на Verilog в проект на VHDL и наоборот. Кроме того, следует импортировать в проект раздельно пакеты и описания на VHDL.
Для импорта файла следует выбрать пункт Import Files в меню File и, используя стандартный диалог, выбрать интересующий файл.
При создании проекта на VHDL открывается окно редактора HDL Editor (рис. 10). Как видно, одновременно может быть открыто несколько файлов HDL.
Компоненты и технологии, № 6'2002
Для переключения между окнами HDL Editor используется механизм закладок. Обычно для удобства работы в редакторе HDL editor рекомендуется временно закрыть окна Менеджера проектов (Design Explorer^ процессов (Process Windows), используя соответствующие пункты меню View.
Рассмотрим создание символа из исходного файла на языке описания аппаратуры. Для этого в окне иерархии проекта щелкаем правой кнопкой мыши по выбранному файлу. В появившемся выпадающем меню выбираем Create Symbol (рис. 11).
Процесс создания описания проекта с помощью схемы также достаточно прост и интуитивно понятен. В качестве графического редактора схем используется компонент ViewDraw.
Для создания новой схемы выбираем Schematic в диалоге создания файла (рис. 9) и задаем в поле Name имя файла. Работа во ViewDraw достаточно проста и похожа на работу со схемными редакторами других пакетов для работы с ПЛИС. Для проверки созданной схемы и ее сохранения выбираем пункт Save+Check из меню File. В результате имеем файл схемы — WIR file.
Рассмотрим некоторые приемы работы в графическом редакторе ViewDraw.
Для добавления компонентов в схему следует выбрать в меню Add пункт Component или непосредственно нажать кнопку Component на панели инструментов. В этом случае появляется диалоговое окно (рис. 12).
понентов пользователя. Директория BUILTIN используется только для специализированных макросов, таких как соединители и жгуты. В списке в окне Symbol выбираем требуемый компонент. В окне Symbol Preview Window отображается условное обозначение компонента. С помощью стандартного перетаскивания переносим выбранный компонент из окна Symbol Preview в схему.
В случае, когда необходимо добавить несколько одинаковых компонентов в схему или размножить общий узел, используется команда копирования, работающая так же, как и во всех приложениях Windows (выделение по Ctrl и т. п.).
Только размещения компонентов на схеме недостаточно: их необходимо соединить между собой с помощью цепей (nets) и шин (buses).
Добавление новой цепи (net) или шины (bus) осуществляется выбором соответствующего пункта в меню Add. Общие принципы размещения шин и цепей подобны стандартным схемным редакторам. При формировании пересечения цепей с соединением (Intersecting Connections) должен появиться символ соединения — точка на месте пересечения цепей (впрочем, это замечание справедливо для любого графического схемного редактора).
Незавершенное соединение (Dangling Connections) обозначается прямоугольником на конце цепи — это достаточно надежное средство визуального контроля правильности создания схемы. Имейте в виду, что за вас эту работу ни одна программа не сделает.
Команда Cleanup из меню Tools позволяет завершить незавершенные цепи и «причесать» внешний вид схемы, расположив все цепи под прямым углом друг к другу.
Каждый компонент или цепь в схеме имеет ряд специфических признаков, называемых атрибутами.
Для добавления атрибута двойным щелчком мыши выделяем объект, при этом появляется окно (рис. 13). Выбираем закладку Attributes и заполняем поля имени атрибута Name и его значения Value. Видимость атрибута на схеме выбирается в меню Visibility.
В окне Directory выбирается пункт из списка. Для стандартных ячеек из библиотек выбирается ACTELCELLS. Директории ACTGEN и ACTELSIM используются в системных целях и не предназначены для размещения ком--------------------www.finestreet.ru -
щих на сегодняшний день для синтеза ПЛИС на базе PC-совместимых компьютеров. Выходным продуктом синтеза является оптимизированный список цепей, как правило в формате EDIF.
Запуск Synplify производится из менеджера файлов нажатием правой кнопки мыши и выбором пункта Synthesize (рис. 14).
После запуска появляется окно Synplify, показанное на рис. l5.
г*, с* л»" Є«' ro.ér*n» .
р менада * a tía о -
Synplify Sourt*Pi*e» Synplicity Im» Wmlu f raquency £MH;} |l 00 jj SymOc*c FSU Coupler P ftesojc* 9a nj (7
Artî 1 - Я g ■£* >hj
ÉOfl 1 nj -ailMarx*?: »•>! *.«11 « ь Л (feugna) !«a*efe?1
Retul ГЧе ЙЙЙІ сет-.»*: в* Ouwg*| Ar.i«> ВЫ -P, maiton 14
- v^| Ready „ £«лс*І 1 *
Рис. 1S
В меню Project следует вызвать пункт Implementation Options для настройки синтезатора.
На рис. 16 представлено меню настройки параметров синтеза проекта. Генерация списка цепей осуществляется нажатием кнопки RUN. При появлении сообщений об ошибках можно использовать встроенный редактор Synplify.
Для синтеза списка цепей из описания на языках Verilog или VHDL в пакет Libero интегрировано мощное средство синтеза Synplify, разработанное фирмой Synplicity. Это один из лучших продуктов, существую-
Рис. 14
File Manager
B Project Design Files Block Symbol Files
| Q example1.1
! 0 example2.1
Schematic Files ^ example1.1
Hdl
L [ii
l|»L
r lL L III
Vhd Package ACTgen Implementation
e
Компоненты и технологии, № 6'2002
Для формирования списка цепей из схемного файла следует выбрать в менеджере файлов в качестве основного файла иерархии требуемый файл (рис. 17) и затем запустить опцию Generate EDIF.
Рис. 17
После формирования списка цепей начинается самая важная часть работы над проектом — размещение и трассировка в ПЛИС. Для этих целей в пакете используется средство Designer. Входящий в его состав компонент Designer's Timer позволяет провести статический анализ задержек сигналов в ПЛИС. С помощью редактора ChipEdit можно разместить вручную макросы, а с помощью редактора PinEdit — назначить выводы.
Запуск программы Designer осуществляется командой Run Designer из всплывающего меню при нажатии правой кнопки на выбранном EDIF файле (расширение *.edn).
Окно трассировщика Designer показано на рис. 18.
Как можно видеть, оно очень похоже на окно пакета Foundation фирмы Xilinx. В нем отображается маршрут размещения и трассировки проекта в ПЛИС. Стоит заметить, что в последние годы наблюдается хорошая (для разработчика) тенденция к некой унификации интерфейса САПР ПЛИС. Как и использование пакетов синтеза и моделирования третьих фирм, это позволяет легко осваивать новую элементную базу и при необходимости осуществлять простой перенос проекта с одной ПЛИС на другую. Первой стадией трассировки является компиляция, которая запускается выбором пункта Compile в меню Tools или непосредственно кнопкой Compile. Мастер выбора устройства (Device Selection Wizard) позволяет в интерактивном режиме выбрать тип ПЛИС, ее модификацию по быстродействию, напряжению питания и т. п.
Для запуска трассировки следует нажать пиктограмму Layout на маршруте трассировки. Появится окно настройки опций трассировки (рис. 19).
В данном окне следует установить вариант трассировки. Если необходимо проводить трассировку с учетом временных ограничений, то следует установить Timing Driven Layout.
Затем формируем файлы для временного моделирования. Для этого используем опцию Back-Annotate из меню Tools. Диалоговое окно этой команды показано на рис. 20.
Как правило, для моделирования используется файл задержек в формате 8БР. Список це-
пей выбираем в меню Export Additional Files.
В результате получим файлы *.vhd и *.sdf, пригодные для временного моделирования.
Для формирования файла прошивки нажимаем кнопку Fuse. В результате получаем файл прошивки, пригодный для программирования ПЛИС.
Для полноценной отработки проекта необходимо выполнять моделирование (Simulation).
Первым шагом в процессе моделирования является создание тестовых воздействий (Test Bench) для моделирования. Конечно, можно использовать стандартные приемы языков описания аппаратуры, но в состав Libero входит достаточно простой инструмент визуального создания тестов — WaveFormer Lite. Собственно моделирование, как уже отмечалось, выполняется в пакете ModelSim.
Компонент WaveFormer Lite формирует тестовое воздействие на VHDL или Verilog из нарисованных пользователем временных диаграмм. При создании теста в WaveFormer Lite первоначально из списка цепей извлекается информация о сигналах, затем в графическом виде формируются временные диаграммы тестовых воздействий и, наконец, производится формирование теста на языке описания аппаратуры.
Программа WaveFormer Lite автоматически загружает всю информацию о сигналах, в том числе имя, тип, направление сигнала (вход, выход, двунаправленный) и т. д. Для создания тестового воздействия выбираем пункт WaveFormer Lite Stimulus в окне процессов (Process Window).
На рис. 21 показан экран программы WaveFormer Lite, который содержит три окна:
Компоненты и технологии, № 6'2002
Zoom Controls Next Segment High
Next Segment Weak Higt
Next Segment I Low
Next Segment Weak Low
• Wavcformer Lite - [Oogr«r i - un(tled0.tlnt*]
І Fde Export Eck Bus
Uteres
U (t & Q ^ \
-4 »
ЛЛОпЛ 217.0ns
ГУІ-ММ |'"Л К.Я t!H ИЫгШ ЕВПИВ
^Ot^ons Wrrtow Hgfc 11
LOWl TRI IVALllNW
2oomtt
SEL
BN
AN
)ns
£0In,
■ЗҐ-ГПГ
є diogrom window in
Add Buttons
Рис. 22
Next Segment Tristate
iijij
|lS0ns| |-’JUr s |*j
SirmJeticn Inactive
Next Segment Invalid
Next Segment Valid
диаграмм, отчета и окно параметров. Основным является окно диаграмм (Diagram Window). В этом окне входные сигналы отображаются черным цветом, выходные — серым (рис. 22).
С помощью мыши можно задать необходимые значения сигналов. Можно задать значения сигналов из набора HIGH, LOW, TRIstate, VALid, INValid. Для этого выделяем соответствующий отрезок на временной оси и выбираем в меню состояния соответствующее значение. При необходимости можно задать нужный шаг по времени с использованием опции
Edit Clock Parameters
ишш
Name:
Reference Clk: |None
~3
10.
Freq: [“
Period: I
Period Formula: ex. КО. period
[iciii
С KHz / us G MHz/ns 100 Г GHz /
ps
Rise Jitter: [
Fal Jitter: p Buffer Delay MinLloH: [
t: 1 0 0
1 50 1 50
0 1 0
0 0
1 ° 0
0 0
0 0
1 OJI 1 0
Max Lto H [
Min H to L: [
Max H lo L f
Rising Del^i Coirelation: ["
Falling Delay Correlation: f Rise to Fall Correlation:
1ÜG %
100 %
100 %
Г Invert (Starts Low)
OK
Cancel
Рис. 23
Grid Settings в меню Options. Созданный тест можно сохранить либо экспортировать в формат языка описания аппаратуры по команде Export Timing Diagram As из меню Export.
Отдельный инструмент предназначен для задания тактовых сигналов. Для этого следует нажать кнопку Add Clock. В результате появится диалоговое окно (рис. 23).
В данном окне можно задать имя тактового сигнала, частоту, период, скважность, длительность фронтов, параметры дрожания фронтов сигнала (jitter) и другие параметры тактового сигнала.
Рис. 24
При задании значений на шине используется меню, показанное на рис. 24.
В нем мы можем задать формат и значение сигнала на шине.
Для организации собственно процесса моделирования следует выбрать в окне иерархии проекта пункты Run Pre-Synthesis Simulation (для функционального моделирования) и Run Simulation (для запуска временного моделирования). Для выполнения моделирования в состав Libero включен пакет ModelSim — один из наиболее распространенных в мире VHDL и VHDL/Verilog-симуляторов. Семейство продуктов ModelSim имеет архитектуру, основанную на технологиях т. н. оптимизированной прямой компиляции и единого ядра моделирования, также поддерживаются скрипты Tcl/Tk. Основные функциональные возможности пакета ModelSim — простота портиру-емости и поддержки библиотек за счет независимости от платформы и версии симулятора, широкие отладочные возможности, простой и полнофункциональный графический интерфейс пользователя, возможность настройки на индивидуальные требования пользователя с помощью Tcl/Tk, грамотная поддержка всех стандартов VHDL и Verilog.
Окно пакета ModelSim показано на рис. 25. В нем отображаются основные стадии моделирования.
■ ] ModelSim AC TEL S.Sd - Custom Actel Version
File Edt Design View Project Run Macro Options Window Help
Фо? i і ш І і вїр м
лі
ілкіглпгп
st¡mulus_0: stimJusfgeneratedc example2_0: example2(def_arct Packaae viables Package vital_primitves Package vitaljiming Package itd_legic_1 1Є4 Package textio Package standard
_L
J Jj
\ library \ srnf
tt Loading tt Loading tt Loading tt Loadira tt Loading tt Loading tt Loading tt Loading «
tt Loading act)
tt Loading act)
tt Loading act)
tt Loadirg
Vpostlayout. testbench! tbgeneratedcode)
. /’postlayout stimulus(generatedcode)
C: /Actelprj/enamplezVdesigner/ example2. sdl C: /Actel/M o<fel/win32acoenV.. /ieee. vilaLtimina(body)
. Vpostlayout examfle2(def_atch)
C: /Actel/M odeiy win32acoemA. /ieee. viial_primitives(body)
C: /Actel/M odel/win32acoem/.. /actel/vhdl/ex viables С: /Лctel/M od»l/win32acoem/ . /actel/vhdl/ex. intuf(vital_ac
C: /Actd/Model/winSSecoem/.. /aotel/vhdl/ex. hckbuf(vital_
C: /Acteli'Moctel/win32acoerrv'.. /actel/vhdl/ex crre¡nv(vi(al_
C: /Actel/М octel/win32acoerrV.. /actel/vhdl/ex. oulbut(vital_
C: /Actel/M ocfcl/win32acoertV.. /actel/vhdl/ex. and2b(vîtal_
J
'low: 1 us Delta: 100
|sim:rtestbench
//.
Рис. 25
e
Компоненты и технологии, № 6'2002
На рис. 26 представлено окно ModelSim с результатами прогона модели.
Удобные средства просмотра результат ов моделирования позволяют сделать выводы о работоспособности схемы.
Рассмотрим простой пример функционального поведенческого моделирования на языке описания аппаратуры VHDL в пакете ModelSim. Создадим файл package.vhd, приведенный ниже:
PACKAGE resources IS
TYPE level IS ('X', '0', '1', 'Z');
TYPE level_vector IS ARRAY (NATURAL RANGE <>) OF level;
SUBTYPE delay IS time;
END resources;
Пакет package.vhd определяет типы сигналов, входящих в проект. Создадим описание логического вентиля and2.vhd. Следует заметить, что данное описание несинтезируемо и, скорее, может быть применено для тестирования.
USE work.resources.all;
ENTITY and2 is
GENERIC(trise : delay := 10 ns; tfall : delay := 8 ns);
PORT(a : IN level;b : IN level;c : OUT level);
END and2;
ARCHITECTURE behav OF and2 IS BEGIN
one : PROCESS (a,b)
BEGIN
IF (a = '1' AND b = '1') THEN c <= '1' AFTER trise;
ELSIF (a = '0' OR b = '0') THEN c <= '0' AFTER tfall;
ELSE
c<= 'X' AFTER (trise+tfall)/2;
END IF;
END PROCESS one;
END behav;
Запускаем моделирование и выбираем сигналы для анализа с помощью меню View->Signals . Для того чтобы увидеть их временные диаграммы, используем меню View->Wave->Signals in Design.
Проведем непосредственно моделирование. Зададим значение сигналов (рис. 27), используя команду Edit->Force...
wave - default
File Edt Cursor Zoom Bookmark Fermat Window
в;У§ ! ft fee, j Tí±T i
шшшт
Aestbench/resetn 1
/testbench/load 0
Ac;tbcndi/cnab'c 1
0- /testbench/cnt in 1010
B- Aestbench/count 0011
Aestbench/ck 0
ППШШПГ
Il 111 II II111 II111 III I II111II11 III111II 11II111II 1111
355 ns to 918 ns
Рис. 26
В данном окне задается установка сигнала а в значении 0 через 5 нс после начала моделирования. В строке команд в это время отображается следующая команда:
VSIM 3>force -freeze /and2/a 0 5
Затем запускаем моделирование, его результаты приведены на рис. 28. Для запуска можно использовать команду
VSIM 4>run 20
Она запускает прогон на 20 нс. Дополнительные воздействия могут быть заданы командами
VSIM 5>force -freeze /and2/a 1 0, 0 20 VSIM 6>force -freeze /and2/b 1 0 VSIM 7>run 40
Как видим, возможна работа в пакетном режиме, с использованием как команд и макросов (DO files), так и интерактивного меню.
Для удобства просмотра можно использовать различные команды из меню, например увеличение Zoom->Zoom Full. Для удобства анализа результатов можно добавить курсор командой Cursor->Add Cursor.
Безусловно, в рамках статьи невозможно рассказать обо всех приемах и методах моделирования, в планах автора более полное рассмотрение этого вопроса в будущих публикациях.
Итак, мы рассмотрели основные компоненты пакета Libero, некоторые приемы работы с ними. Как видим, Libero — современный мощный пакет, удобный для использования и имеющий развитые средства ввода описания проекта, синтеза, трассировки и моделирования.
wave - default
File £dit ¿ursor ¿oom Prop ¿Vindow
O /and2/a ■ 0 Q /and2/b = 1
O /and2/c » 0
1 0 ns “5 ns
[f n r8 ns—
Рис. 28