Компоненты и технологии, № 6'2002
ModelSim -
система HDL-моделирования цифровых устройств
Валерий Зотов
Одна из характерных тенденций современного этапа развития технологии проектирования цифровых систем — применение языков описания аппаратуры HDL (Hardware Description Language) высокого уровня, среди которых наибольшее распространение получили VHDL и Verilog. При этом не только возрастает роль средств моделирования в процессе разработки устройств, но и меняются методы и требования, предъявляемые к процедурам верификации. Для своевременного обнаружения возможных ошибок средства моделирования должны обеспечивать возможность контроля результатов каждого этапа процесса проектирования: создания исходных HDL-описаний, синтеза, размещения и трассировки в кристалл. Такой подход обеспечивает минимальное время разработки устройства и сокращает стоимость этого процесса, так как цена ошибки возрастает с каждым последующим шагом проектирования.
Пакет программных средств ModelSim™ корпорации Model Technology (одного из подразделений компании Mentor Graphics) в настоящее время является самой распространенной системой HDL-моделирования. Это обусловлено целым рядом уникальных характеристик этого пакета. Цель настоящей публикации — ознакомить разработчиков цифровых устройств с возможностями системы моделирования ModelSim и ее графическим интерфейсом.
Назначение и основные характеристики пакета ModelSim
Отличительные особенности пакета:
• Полная поддержка всех основных стандартов языков VHDL и Verilog и их расширений: IEEE VHDL Std 1076-1987 и IEEE VHDL Std 1076-1993, IEEE 1164-1993 Standard Multivalue Logic System for VHDL Interoperability, IEEE 1076.2-1996 Standard VHDL Mathematical Packages, IEEE VITAL Std 1076.4-1995, VITAL 2000 и IEEE Verilog Std 13641995. Полная совместимость со спецификациями 1.0 — 3.0 стандартного формата описания задержек SDF (Standard Delay Format) обеспечивает возможность обратной аннотации временных параметров. Кроме того, пакет ModelSim удовлетворяет требованиям VCD (Value Change Dump) по формированию стандартных выходных векторов для VHDL и Verilog и PLI (Programming Language Interface).
Единое ядро моделирования пакета SKS (Single Kernel Simulation), обеспечивающее возможность полной отладки «смешанных» проектов, которые одновременно содержат модули, написанные на VHDL и Verilog. Для реализации этого режима предусмотрена специальная лицензия (редакция пакета ModelSim SE/PLUS), разрешающая совместное VHDL- и Verilog-моделирование. Поддержка библиотек всех ведущих фирм-изго-товителей как программируемых логических интегральных схем (ПЛИС) семейств FPGA (Field Programmable Gate Array) и CPLD (Complex Programmable Logic Device), так и ASIC (Application-Specific Integrated Circuit), предоставляющая разработчику широкие возможности сравнения различных платформ и выбора оптимальной для реализации проектируемой системы. Сертифицированные изготовителями библиотеки обеспечивают максимальную достоверность результатов моделирования.
Высокая скорость компиляции и моделирования (полнофункциональных версий), обеспечивающая минимальное время отладки систем различного уровня сложности. Одним из главных факторов, повышающих производительность, является использование принципа оптимизированной прямой компиляции. В соответствии с этим принципом исходные VHDL- или Verilog-описания компилируются в машинно-независимый объектный код, исполняемый на любой поддерживаемой платформе.
Открытая архитектура программных средств ModelSim, обеспечивающая тесную интеграцию с пакетами САПР «третьих» фирм. Пользователь может выполнять этапы моделирования фактически в рамках основной системы проектирования, в среде которой осуществляется процесс разработки устройства. Средства управления пользовательским интерфейсом Tcl (Tool command language) и Tk (Tool kit) предоставляют возможность организации прямого доступа к моделирующему ядру ModelSim, загрузки информации о выполнении процесса моделирования и его результатов в среду используемой САПР и управления работой системы ModelSim через интерфейс применяемых средств проектирования. Возможен также и противоположный метод интеграции с программным обеспечением других фирм, когда в качестве основной системы исполь-
Компоненты и технологии, № 6'2002
зуется ModelSim, интерфейсная оболочка • которой адаптируется для управления выбранным пакетом САПР.
• Наличие защищенного режима компиляции моделей, гарантирующего выполнение требований, предъявляемых к охране интеллектуальной собственности, к которой • относятся коммерчески распространяемые модули (IP Core). В обычном режиме разрешается полная отладка моделей с доступом к исходному коду и внутренней структуре объекта. Если интеллектуальные продукты распространяются производителем
в скомпилированном виде без передачи исходного кода, внутренней структуры и переменных, то следует использовать защищенный режим компиляции моделей.
При этом в процессе моделирования отображается состояние только внешних (интерфейсных) сигналов объектов интеллектуальной собственности, а контроль поведения их внутренних сигналов и процессов недоступен пользователю.
• Расширенные отладочные возможности пакета, позволяющие пользователю не только быстро отыскать и идентифицировать ошибки, но и сразу же устранить причины их возникновения. После обнаружения ошибки достаточно перейти из режима отладки в режим редактирования исходного кода, внести соответствующие изменения в текст описания и после сохранения файла выполнить повторную компиляцию данного модуля. Все перечисленные операции производятся в процессе текущего сеанса работы системы моделирования и требуют минимальных временных затрат. Динамическое обновление окон системы обеспечивает возможность быстрого и легкого перемещения по базе данных проекта.
• Наличие встроенного индикатора активности кода, не только повышающего эффективность отладки проекта, но и позволяющего быстро создавать более полные и надежные тестовые последовательности. Этот инструмент предоставляет возможность проследить строки исходного кода, которые не «активизировались» в процессе моделирования, и вывести в графической форме соответствующий отчет обо всех файлах проекта. Индикатор активности кода может быть использован как на уровне отдельного блока, так и для всей системы в целом.
• Использование встроенного анализатора производительности, позволяющего повысить скорость моделирования за счет обнаружения в проекте и последующего устранения факторов, оказывающих отрицательное влияние на быстродействие этого процесса. С помощью этого инструмента можно получить информацию о библиотечных элементах, обработка которых требует значительных временных затрат, фрагментах исходного кода, написанных нерационально с точки зрения скорости его исполнения, неиспользуемых сигналах в выводимых списках, избыточном коде в тестовых последовательностях. Исключение перечисленных элементов из проекта позволяет резко снизить общее время моделирования.
• Возможность работы в различных режимах, в том числе и пакетном. Разработав и отладив некоторый сценарий моделирования в интерактивном режиме, можно оформить его для последующего использования в виде пакетного командного файла.
• Доступный для разработчика визуальный пользовательский интерфейс и наличие подробной справочной системы, сокращающие время освоения пакета моделирования. Средства управления пользовательским интерфейсом Tcl и Tk позволяют выполнить настройку его элементов (панелей кнопок, меню) в соответствии с требованиями каждого конкретного пользователя.
Получение и установка свободно распространяемых версий пакета ModelSim
Система моделирования ModelSim выпускается в двух основных редакциях: Special Edition (SE), функционирующей под управлением операционных систем (ОС) UNIX, Linux, Windows 98, Windows 2000, Windows NT, Windows XP, и Personal Edition (PE), предназначенной только для ОС семейства Windows. Кроме того, имеются специализированные редакции, предназначенные для интеграции с пакетами САПР «третьих» фирм. Примером специализированной редакции является ModelSim Xilinx Edition (XE), ориентированная на интеграцию с программным обеспечением фирмы Xilinx.
Чтобы на практике изучить возможности этой системы моделирования, можно воспользоваться оценочными версиями ModelSim (SE и PE), которые распространяются бесплатно. Лицензии этих версий обеспечивают возможность полноценной работы с пакетом в течение 30 дней с момента установки. Получить бесплатную версию программного обеспечения ModelSim (SE или PE) можно двумя путями. В первом случае следует обратиться на вебсайт (www.megratec.ru) компании Megratec (Mentor Graphics Technologies) — официального представителя Mentor Graphics в России и СНГ, заполнить регистрационную анкету запроса оценочной версии требуемого программного продукта (в частности, пакета ModelSim). По указанному в анкете адресу будет выслан CD-ROM с соответствующим программным обеспечением. После установки программы необходимо получить файл license.dat, содержащий лицензионный код.
Для получения файла лицензии следует запустить Submit License Request из меню Программы/ModelSim..., которое открывается при нажатии кнопки Пуск операционной системы Windows. Эта утилита автоматически собирает всю информацию об используемом ПК, необходимую для получения лицензионного кода, преобразует ее в формат адресной строки Internet и автоматически запускает Microsoft Internet Explorer. Если ПК, на котором установлен пакет, подключен к Internet, то файл лицензии может быть получен в течение нескольких минут. В процессе получения лицензии необходимо вновь заполнить регистрационную анкету с указанием адреса
электронной почты, по которому будет выслан файл, содержащий лицензионный код.
В противном случае, при отсутствии выхода в Internet, следует скопировать содержимое адресной строки Microsoft Internet Explorer в буфер, выделив его и воспользовавшись командой копирования из меню Edit или всплывающего контекстно-зависимого меню. Затем содержимое буфера нужно сохранить в виде текстового файла на дискете (используя любой текстовый редактор, например Блокнот или WordPad), которую следует перенести на ПК, подключенный к Internet. Далее нужно выполнить обратную операцию — скопировать текст из файла на дискете в буфер, после чего активизировать Microsoft Internet Explorer и вставить содержимое буфера в адресную строку. Полученный файл лицензии необходимо перенести на ПК, где установлен пакет.
Второй способ позволяет скачать требуемую версию пакета непосредственно с вебсервера корпорации Model Technology. Для этого нужно обратиться по адресу www.model.com/evaluations/ и выбрать требуемую редакцию пакета. Перед началом копирования программы появляется регистрационная анкета, которую необходимо заполнить. После установки пакета выполняется процесс получения файла лицензии, подробно рассмотренный выше.
Кроме оценочных версий, можно также воспользоваться свободно распространяемой версией ModelSim XE Starter, которая включается в состав пакета САПР WebPACK ISE (Integrated Synthesis Environment), рассмотренного ранее на страницах этого журнала [1-4]. Эта версия имеет одно существенное ограничение — исходный текст описания должен содержать не более 500 исполняемых выражений. Если объем исходного кода превышает указанное значение, то программа моделирования сохраняет работоспособность, но функционирует с очень низкой производительностью.
Для получения свободно распространяемой версии программного обеспечения ModelSim XE Starter необходимо зарегистрироваться на веб-сайте www.xilinx.com. В процессе регистрации пользователь должен указать собственный идентификатор и пароль, которые необходимо запомнить и использовать при последующих обращениях. После регистрации следует выполнить процедуру копирования модулей пакета на ПК, который будет использован для развертывания САПР. Далее необходимо последовательно выполнить все инструкции программ инсталляции, которые автоматически запускаются при активизации полученных файлов, каждый из которых представляет собой самораспаковывающий-ся архив. После успешного завершения процесса установки пакета следует получить файл, содержащий лицензионный код, используя рассмотренную выше методику. В процессе получения лицензии будет запрошен идентификатор пользователя и пароль, указанные при регистрации.
Перед началом работы с пакетом моделирования необходимо активизировать полученный лицензионный код. Для этого следует
е
Компоненты и технологии, № 6'2002
запустить программу Licensing Wizard из меню Программы/ModelSim..., которая выполнит поиск файла лицензии и автоматически установит полный путь доступа к нему, а также необходимые переменные окружения.
Пользовательский интерфейс пакета ModelSim
Графический интерфейс системы моделирования ModelSim представлен девятью окнами:
• основное окно (Main window);
• окно исходного кода (Source);
• окно структуры проекта (Structure);
• окно переменных (Variables);
• окно сигналов (Signals);
• окно таблиц (List);
• окно процессов (Process);
• окно временных диаграмм (Wave);
• окно трассировки сигналов (Dataflow). Основное окно ModelSim является главным
элементом пользовательского интерфейса пакета. Оно содержит все необходимые инструменты управления процессами компиляции и моделирования. Открытие вспомогательных окон, используемых для отображения информации о проекте и результатах моделирования в различной форме, и их конфигурирование осуществляется из главного окна. Структура основного окна ModelSim (рис. 1) включает следующие элементы:
• заголовок окна;
• главное меню;
• оперативная панель управления;
• рабочая область;
• консольная область;
• строка состояния.
Рис. 1. Основное окно системы моделирования
ModelSim
В заголовке главного окна отображается название программы моделирования с указанием ее версии и редакции.
Главное меню основного окна открывает доступ ко всем командам управления проектом, процессами компиляции и моделирования, отображением результатов моделирования, установки необходимых значений параметров и конфигурирования системы. Каждый пункт главного меню используется для активизации одноименного всплывающего меню, в котором представлена соответствующая группа команд. Всплывающее меню File включает команды создания, открытия и закрытия проектов, файлов и наборов данных, а также очистки и сохранения содержимого консольной области в виде файла на диске. Кроме того, в эту группу включены команды установки параметров консольной об-
ласти и завершения работы. Выпадающее меню Edit объединяет команды редактирования исходного HDL-кода и установки точек прерывания. Во всплывающем меню Design представлены команды работы с библиотеками проекта, компиляции исходного кода, инициализации и завершения моделирования. В выпадающем меню View сгруппированы команды, определяющие вид основного окна ModelSim и открывающие вспомогательные окна. Всплывающее меню Project содержит команды работы с проектом, которые позволяют включать в проект файлы исходных описаний и выполнять компиляцию всех файлов проекта. Команды выпадающего меню Run предназначены для управления процессом моделирования проекта. Команды всплывающего меню Macro используются для запуска процедуры выполнения командных файлов. Выпадающее меню Options предоставляет доступ к командам установки значений параметров компиляции, моделирования и графического интерфейса. Всплывающее меню Window содержит команды установки взаимной конфигурации открытых окон пакета ModelSim. Пункт Help основного меню предоставляет справочную информацию о программах пакета.
Оперативная панель управления содержит кнопки быстрого доступа, которые дублируют наиболее часто используемые команды меню пакета ModelSim.
Рабочая область основного окна ModelSim представляет собой эффективный визуальный инструмент управления проектом. Здесь отображается детальная информация о структуре текущего проекта и используемых библиотек. Выполнение необходимых операций осуществляется с помощью команд всплывающих контекстно-зависимых меню, которые выводятся на экран при щелчке правой кнопки мыши на свободном поле или на выделенной строке в рабочей области. Эта область содержит, как правило, несколько страниц, снабженных закладками с их названиями (Project, Library, Sim), каждая из которых представляет соответствующий вид информации о проекте. Страница Project предназначена для отображения списка файлов, которые входят в состав текущего проекта. С помощью команд всплывающего контекстно-зависимого меню пользователь может быстро открыть выбранный файл для редактирования, выполнить компиляцию отдельного или всех файлов, добавить или удалить файлы из проекта. Страница Library позволяет просмотреть состав библиотек, используемых в проекте, и выполнить необходимые операции с ними. В поле выбора, расположенном в верхней части страницы, указывается название библиотеки, структуру которой необходимо просмотреть. Для этого используется выпадающий список доступных библиотек, который выводится при нажатии кнопки, расположенной у правой границы поля выбора. Команды всплывающего контекстно-зависимого меню позволяют редактировать и удалять модули, входящие в состав выбранной библиотеки, перекомпилировать ее, а также создавать новые библиотеки. Страница Sim содержит по-
дробную информацию об иерархической структуре проекта, для которого активизирован процесс моделирования. Эта информация может отображаться в сжатом или развернутом виде. Выбор формата отображения осуществляется с помощью команд всплывающего контекстно-зависимого меню. Кроме рассмотренных, в рабочей области могут присутствовать страницы, отражающие структуру открытых наборов данных.
В консольной области основного окна фиксируются выполняемые команды и все сообщения программы, которые появлялись в текущем сеансе работы пакета ЫойвШт. Кроме того, в нижней части этой области отображается командная строка, в начале которой указывается заголовок, соответствующий текущему режиму работы. Командная строка позволяет издавать команды управления, используя клавиатуру. Содержимое консольной области может быть сохранено в виде файла на диске. Сохраненные файлы далее могут использоваться в качестве макросов (командных файлов), вызываемых в последующих сеансах работы с программой.
В строке состояния, расположенной в нижней части основного окна, отображается информация о загруженном проекте, текущем времени и итерации моделирования, название выбранного элемента проекта.
Окно исходного кода (рис. 2) позволяет просматривать и редактировать текст ИБЬ-описания выбранного элемента структуры проекта. Это окно автоматически открывается при активизации соответствующей строки в рабочей области основного окна пакета ЫойвШт и используется в процессе отладки описания выбранного элемента проекта. Структура окна исходного кода, помимо стандартных элементов управления (строки меню и оперативной панели инструментов), включает панели. В левой панели отображаются номера строк исходного кода и условные обозначения, используемые в процессе отладки. Здесь содержится информация о точках прерывания, исполняемой строке кода и выбранном процессе. В правой панели содержится текст ИБЬ-описания.
Рис. 2. Окно исходного кода системы моделирования ModelSim
Окно Structure (рис. 3) представляет в иерархической форме информацию о структуре проекта и всех его элементов. Это окно
Компоненты и технологии, № 6'2002
фактически дублирует содержание аналогичной страницы в рабочей области основного окна ЫойвЕгт. При развернутой форме отображения в окне структуры содержится подробная информация обо всех ИБЬ-элемен-тах различного уровня иерархии проекта. Выделение элементов проекта в окне структуры влечет за собой отображение соответствующей информации в окнах исходного кода и сигналов.
которая может быть представлена в сжатой или развернутой форме. Двойной щелчок левой копки мыши на названии сигнала открывает окно исходного кода, представляющее фрагмент описания, в котором объявляется этот сигнал.
пшш\
Рис. 3. Внешний вид окна структуры проекта пакета Мобе&т
Окно УатгаЫвъ (рис. 4) предназначено для контроля текущих значений переменных, параметров и констант выбранного процесса. Рабочая область этого окна содержит две панели. В левой панели отображаются названия переменных, параметров и констант, а в правой — их текущие значения. Для элементов составных типов (массивов или записей) используется иерархическая форма представления. Окно переменных предоставляет возможность оперативного изменения отображаемых значений в ходе отладки.
variables
File Edit View Window
tpd_reseMo_count
tpd_clk_to_counl I {5 ns}
smAestbench/uut/ctr
Рис. 4. Окно переменных системы моделирования ModelSim
Окно Бг^аЪ (рис. 5) используется для отображения текущего состояния сигналов (на момент завершения шага моделирования) в символьной форме. Структура этого окна, кроме стандартных элементов управления (строки меню, оперативной панели инструментов и строки состояния), включает две панели. Левая панель содержит список идентификаторов сигналов, соответствующих выделенному элементу в окне структуры проекта, а правая — их текущие значения. Сигналы составных типов (массивов или записей) отображаются в виде иерархической структуры,
<Wait> — указывает на то, что процесс находится в состоянии ожидания изменения сигнала или указанного временного интервала;
<Done> — соответствует состоянию процесса, завершившего выполнение оператора ожидания.
Рис. 5. Окно сигналов системы моделирования ModelSim
Окно List (рис. 6) представляет результаты моделирования в табличной форме. Отображаемая здесь таблица разделена на две области. Левая область содержит последовательность дискретных отсчетов времени моделирования. Каждый столбец в правой области представляет значения сигнала или переменной в соответствующие моменты моделирования. В верхней части этой области отображаются полные названия сигналов с учетом иерархии проекта. Команды меню рассматриваемого окна позволяют сохранять результаты моделирования в текстовом виде в различных форматах.
Рис. 7. Внешний вид окна процессов пакета ModelSim
Окно временных диаграмм (рис. 8) используется для представления результатов моделирования в графическом виде. В рабочей области этого окна расположены три панели. Левая панель содержит список контролируемых сигналов. В средней панели указывается состояние сигналов в момент времени, который фиксируется положением курсора в панели временных диаграмм. В нижней части этой панели выводится значение времени моделирования, на котором установлен курсор. Правая панель отображает результаты моделирования в форме временных диаграмм. В нижней секции этой панели расположена ось времени моделирования. Управление масштабом изображения осуществляется с помощью инструментов, расположенных на оперативной панели, и команд меню Zoom этого окна. Для перемещения по временной оси следует использовать элементы прокрутки этой панели. Окно временных диаграмм предоставляет возможность измерения временных интервалов между моментами переключения сигналов, а также сохранять результаты моделирования в графической форме в виде файла на диске для последующего анализа и использования.
Рис. 6. Окно таблиц системы моделирования ModelSim
Окно Process (рис. 7) предназначено для отображения списка процессов в выбранном структурном фрагменте проекта или запланированных для выполнения в текущем цикле моделирования. Команды меню View рассматриваемого окна определяют, по какому принципу формируется выводимый список процессов. Перед каждым элементом списка указано обозначение состояния, в котором находится соответствующий процесс. Возможны три варианта обозначений:
• <Ready> — соответствует состоянию процесса, выполнение которого планируется в текущем интервале времени;
Рис. 8. Окно временных диаграмм системы моделирования ModelSim
Окно Dataflow позволяет проследить «прохождение» выбранного сигнала в иерархической структуре проекта (рис. 9). Название анализируемого сигнала отображается в
е
Компоненты и технологии, № 6'2002
центре рабочей области окна. В левой части расположены названия процессов, которые формируют поведение сигнала, а в правой — названия процессов, которые используют этот сигнал в качестве входного, но не изменяют его. Кроме того, рассматриваемое окно может использоваться для отображения ин-
Рис. 9. Внешний вид окна трассировки сигналов пакета ModelSim
формации о сигналах процесса, выделенного в окне Process (рис. 10). В этом случае в центре рабочей области окна располагается условный графический образ (УГО) выбранного процесса. Все сигналы, значения которых читаются в процессе, представлены в ви-
Ele Window
Ф Ф
ЛеХЬспсЫиЛУсЬ
count ш counl
00001101 @588886 ps 00001101 @ 588886 ре
Гв»» <•> І6МІ
0 @ 588888 pt
Ьк <■> dk
1 @ 588886 pi ■
lL
J
Рис. 10. Отображение сигналов процесса в окне Dataflow системы моделирования ModelSim
де входов, располагающихся с левой стороны УГО, а сигналы, формируемые процессом, — в виде выходов, находящихся с правой стороны УГО.
В окне трассировки рядом с идентификаторами сигналов указываются их значения в момент времени, который зафиксирован положением курсора в окне временных диаграмм. При перемещении этого курсора окно отслеживает изменение значений отображаемых сигналов.
Учитывая ограниченный объем журнальной статьи, автор на этом завершает описание основных характеристик пакета ЫойвБгт и его графического интерфейса. В последующих публикациях будет рассмотрена методика моделирования при использовании этого пакета. ИИ
Литература
1. Зотов В. WebPACK КБ — свободно распространяемый пакет проектирования цифровых устройств на базе ПЛИС фирмы ХДтх // Компоненты и технологии. 2001. № 6.
2. Зотов В. WebPACK КБ: Интегрированная среда разработки конфигурации и программирования ПЛИС фирмы ХДтх. Создание нового проекта // Компоненты и технологии. 2001. № 7.
3. Зотов В. Схемотехнический редактор пакета WebPACK КБ. Создание принципиальных схем и символов // Компоненты и технологии. 2001. № 8.
4. Зотов В. Синтез, размещение и трассировка проектов, реализуемых на базе ПЛИС СРББ фирмы ХДтх, в САПР WebPACK КБ // Компоненты и технологии. 2002. № 1.