Simtera

Simtera

Система Delta Design обладает уникальным инструментарием для моделирования работы цифровой аппаратуры. Средства моделирования системы обеспечивают расчет и анализ совместной работы аппаратной части радиоэлектронного устройства и программного обеспечения (прошивки), которое функционирует на данном устройстве. Такой подход обеспечивает целостность данных моделирования, благодаря тому, что различные процессы совместно моделируются в одной среде, а не отдельно друг от друга.

Средства моделирования работы цифровой аппаратуры Delta Design предоставляют проектировщику следующие возможности:

Разрабатывать-модели-работы-различных-цифровых-устройств.png

Разрабатывать модели работы различных цифровых устройств

Использовать готовые сторонние модели работы цифровых устройств, которые соответствую стандарту VHDL

Разрабатывать программное обеспечение, которое способно функционировать, как на моделях устройств, так и на реальных системах

Использовать стороннее программное обеспечение (прошивки), адаптируя его для разрабатываемого устройства

Разрабатывать-модели-работы-различных-цифровых-устройств.png

Проводить моделирование работы как аппаратной части устройства, так и совместной работы аппаратной части и программного обеспечения (прошивки)

Получать данные моделирования, в том числе визуальные, непосредственно в процессе расчета

preview.png

Больше информации доступно в описании модуля.

Работа с моделями устройств и прошивками осуществляется на основе проектов. Отдельный проект может описывать или работу устройства (VHDL-модель), или прошивку. Моделирование аппаратуры строится на основе группы проектов - обобщающего проекта (решения). Структура обобщающего проекта (решения) обладает иерархией, включая в свой состав несколько проектов. Данные из подключаемых проектов могу быть использованы в любом составе (по аналогии с библиотекой). Возможность одновременно использовать материалы из нескольких проектов существенно расширяют возможности по конфигурированию моделей работы сложных устройств и заметно упрощает процесс конфигурирования. Организация хранения данных обеспечивает возможность совместной работы нескольких участников над одним проектом.

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

Средства моделирования цифровой аппаратуры Delta Design обеспечивают наиболее полную поддержку стандарта VHDL, по сравнению с аналогичными продуктами. При этом система обеспечивает высокую скорость проведения расчетов.

Для разработки прошивок используется язык C/C++, компиляция выполняется сторонним компилятором.

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

В процессе моделирования аппаратной части (VHDL) могут быть выставлены точки останова. По достижению точки останова расчет может быть продолжен как в обычном режиме, так и в режиме пошаговой отладки модели VHDL ( при этом работа прошивки не нарушается).

Вместе с системой могут быть поставлены примеры моделей, описывающие следующую аппаратуру:

  • процессоры: MIPS, MSP, AVR
  • периферия к микроконтроллерам: Atemga128, PIC32, MSP430 1-го семейства

  • Высокая скорость моделирования
  • Низкий уровень входа в систему HDL-моделирования
  • Совместное моделирование и отладка (инструменты: осциллограф и точки останова)
  • В систему заложена архитектура, определяющая четкую структуру проекта, облегчающая процесс разработки
  • Комфортный осциллограф, позволяющий снизить визуальную нагрузку

Система Delta Design обладает уникальным инструментарием для моделирования работы цифровой аппаратуры. Средства моделирования системы обеспечивают расчет и анализ совместной работы аппаратной части радиоэлектронного устройства и программного обеспечения (прошивки), которое функционирует на данном устройстве. Такой подход обеспечивает целостность данных моделирования, благодаря тому, что различные процессы совместно моделируются в одной среде, а не отдельно друг от друга.


При создании модуля мы исходим из следующих принципов:

  • Создать и отладить прошивку еще до этапа изготовления макета 
    Разработка программного обеспечения для изделия может быть выполнена на основании описания схемы, параллельно с разработкой конструкции платы. При это в ходе разработки программного обеспечения может быть выявлено, что ресурсы платы избыточны или недостаточны для работы прошивки. Такой подход позволяет существенно сократить время проекта в целом и обнаружить ошибки в схеме еще при незаконченном конструировании платы.
  • Сократить время обнаружения ошибки при отладке 
    При разработке программного обеспечения самым важным параметром является время локализации ошибок. Мы работаем над сокращением этого времени. Поэтому, программа обеспечивает отображение данных моделирования в осциллографе "онлайн" (т.е. непосредственно в момент моделирования). Также мы добавили точки останова в VHDL и поддерживаем пошаговое выполнение.
  • Обеспечить максимальное удобство использования 
    Инструмент будет использоваться каждый день. Должен экономить время разработчика. Основные трудности с компиляцией и отладкой (скрипты и пр.). Мы пошли правильным путем - одна кнопка. Также в рамках единой среды реализована отладка и осциллограф.
  • Приблизиться к стандарту VHDL как можно ближе
    Стандарт VHDL позволяет описывать аппаратуру множеством различных вариантов синтаксиса. При этом многие варианты используются очень редко. Разработчики симулятора вынуждены выбирать между поддержкой всех "изысков" стандарта и скоростью моделирования. Для нас приоритетом является полная поддержка стандарта. При этом мы обеспечиваем скорость моделирования сравнимую с конкурентами.

Скачать и установить Delta Design HDL Simulator - потребуется регистрация как бета-тестера.

Запустить симулятор

Создать новое решение:

createsolution.png

Создать новый VHDL проект в созданном решении (контекстное меню по правой кнопке мыши):

CreateNewProject.png

Выбираем тип проекта (HDL Project). вводим название проекта (ClkTest) и нажимаем "Ok":

CreateNewProject2.png

Добавляем новый VHDL файл к проекту:

CreateNewVHDL.png

Двойным кликом левой кнопки мыши по новому файлу (vhdlfile.vhd) открываем файл для редактирования.

водим текст:

























entity ENT_Test_Clk is
end entity ENT_Test_Clk;

architecture Test_Clk of ENT_Test_Clk is
constant CYCLES : integer := 1000 ;
signal cnt : integer := 0 ;
signal clk : bit := '0' ;

begin
main: process(cnt)
begin
clk <= not clk;
end process;

terminator : process(cnt)
begin
if cnt >= CYCLES then
assert false report " end of simulation" severity failure;
end if ;
end process;

cnt <= (cnt+ 1 ) after 1 us;
end architecture Test_Clk;



Запускаем симуляцию на заданное время с помощью кнопки "Run For":

button_runfor.png

Так как это первый запуск, необходимо указать для проекта точку входа (архитектуру верхнего уровня). После нажатия на кнопку "Run" или "Run For" откроется окно со списком всех найденных архитектур в проекте:

SelectTopLevel.png

Выбираем нужную точку входа (в нашем примере она единственная) и нажимаем "Ok". Запускается симуляция на заданное модельное время и останавливается, о чём сообщается в консоли:

StartAndPause.png

Можно продолжить выполнение нажав "Run", выполнить ещё нужное количество времени "Run For" или остановить моделирование "Stop".

Ещё можно посмотреть результат моделирования в осциллографе. Для этого, добавляем новый осциллограф в проект:

CreateNewOsc.png

Выбираем, что хотим видеть в этом осциллографе (можно создать несколько осциллографов с разным набором отображаемых данных):

selectoscdata.png

Отмечаем все доступные сигналы и нажимаем "Ok":

selectoscdata2.png

Открываем осциллограф двойным кликом мышки, изменяем масштаб до нужного, нажав "Ctrl" и крутим колёсико мышки:

osc1.png

Перемещение осциллограмы делается перемещением мышки с зажатой левой кнопкой.

eide.pngHDL Simulator является частью боле мощной системы Delta Design, в которой он будет в качестве одного из средств разработки сложных электронных систем. Вся проектная информация Delta Design (в том числе и HDL Simulator) хранится на высокопроизводительном сервере объектно-гиперграфовой БД IPR[1]. Это сделано для упрощения взаимодействия между подсистемами Delta Design, для создания возможности параллельной работы нескольких пользователей и для централизации хранения результатов работы. Мы постарались сделать так, чтобы работа с данными, хранящимися в IPR, как можно меньше отличалась от работы с привычными файлами и папками. Delta Design в целом и HDL Simulator в частности позволяют предоставить любую информацию для сторонних инструментов.
Delta Design HDL Simulator состоит из пользовательского интерфейса, транслятора языков описания аппаратуры и системы моделирования. Для компиляции кода программ используются внешние пакеты, например, gcc, сконфигурированный в качестве кросс-компилятора[2].
Набор инструментов симулятора стандартен и мало отличается от обычных систем разработки программ или электронных устройств. Наиболее используемые инструменты вынесены на панели инструментов, все инструменты без исключения доступны через основное меню программы и контекстное меню.
Последовательность использования инструментов также не отличается от обычных интегрированных сред. Цикл «редактирование-компиляция-запуск-отладка» присутствует и здесь. Он немного расширен спецификой предметной области – вы можете посмотреть на развитие состояния системы во времени, в том числе значения перерменных, заданных в коде программы-прошивки.
Для проектировщиков, использовавших другие среды разработки электронных устройств, структура работы с проектами может показаться несколько непривычной. По сравнению с типовыми продуктами HDL Simulator предполагает более жесткую схему работы, которая позволяет лучше структурировать процесс работы над сложными проектами.
Проект, описывающий части электронного устройства, представляет собой законченный набор ссылок на (под)проекты, набор моделей устройств и определений. Каждый проект имеет свои собственные тесты и свой набор файлов, не разделяемых с другими проектами. Таким образом, разработчики не могут менять один файл в своих проектах, провоцируя расхождение функциональности и версий. Система ссылок на проекты гарантирует, что проект должен оставаться цельной единицей, которую можно транслировать отдельно от использующих его проектов.

Назначение Delta Design HDL Simulator

eide2.png eide3.png
На сегодняшний день HDL Simulator решает следующие задачи:
  • Совместная разработка и отладка аппаратуры («железа») и программного обеспечения (ПО)
  • Проектирование встраиваемых систем
  • Простая стыковка моделей аппаратуры с разрабатываемым программным обеспечением

Главным преимуществом системы является возможность осуществлять разработку железа и прошивки для него в едином маршруте проектирования. Естественно, что при такой организации проектирования одновременно доступна полная информация о моделировании и отладке всей объединённой системы. Это значительно упрощает разработку систем и позволяет снизить затраты, т.к. снижается необходимость использования реального железа и макетов со всеми сопутствующими проблемами в отладке и ограничениями на "заглянуть внутрь".

Работа с Delta Design HDL Simulator

Решения и Проекты. Создание и организация работы

eide4.pngeide5.png

Решения группируют проекты разного рода, объединённые общей целью. Изменения в составе проекта или его параметрах можно производить только у подключенных к решению проектах. Пошаговая отладка производится тоже только среди файлов, входящих в состав проектов, подключённых к решению. Решение, как средство группировки проектов, ограждает от распыления усилий и распространению зависимостей между проектами. К решению Delta Design HDL Simulator можно подключать проекты моделей аппаратуры и программные проекты.
Проекты могут иметь ссылки на другие проекты. Проще всего рассматривать такие ссылки на проекты, как на использование библиотек. Проекты моделей аппаратуры могут ссылаться на другие проекты моделей аппаратуры и на программные проекты. Программные проекты могут ссылаться только на программные проекты.
В проектах моделей аппаратуры программы используются в качестве параметров моделей процессорных ядер. Из них формируется специальный список констант, значения которых могут быть использованы в качестве параметров моделей процессорных ядер.
Программные проекты ссылаются на проекты, которые подключаются в виде библиотек. Для программы-прошивки сначала будут скомпилированы проекты, на которые она ссылается. Из этих проектов будут скомпилированы библиотеки, которые, в свою очередь, будут использоваться для сборки текущего проекта.
Проекты могут быть без исходных файлов - достаточно подключить вместо файлов скомпилированную библиотеку. В проект можно добавлять файлы из файловой системы, можно создать новые файлы, а также можно исключать файлы проекта из компиляции. Для проектов моделей устройств не важен порядок файлов - компилятор автоматически определит нужную последовательность компиляции файлов. Файлы проектов можно группировать с помощью папок - проект имеет древовидную структуру для удобства разработчика.
Проекты можно экспортировать в файловую систему для передачи в другие системы разработки.
Работа с решениями и проектами организована максимально просто и прозрачно.

eide6.pngeide7.png

Моделирование

В HDL Simulator процесс разработки модели устройства мало отличается от подобного процесса в других средствах разработки.Создаётся решение, в него добавляются новые проекты или уже существующие в других решениях. В проект добавляются файлы с моделями и тестами. К проекту могут добавляться ссылки на другие проекты – моделей устройств и программ.
Моделирование запускается путём нажатия клавиши F5 или выбора инструмента в панели инструментов. Вот здесь уже появляется одно из отличий нашего симулятора от большинства тех существующих систем, которые можно назвать аналогами (хотя и с большой натяжкой, если забыть о совместном проектировании прошивок). Delta Design HDL Simulator имеет быстрый отклик при старте симуляции, а её запуск может быть выполнен одним действием без каких-либо промежуточных шагов. При этом результаты моделирования доступны сразу же после начала симуляции. Виртуальные осциллографы, позволяют просматривать результаты моделирования он-лайн. Проект может содержать несколько осциллографов с разным и отображаемыми данными.

eide8.pngeide9.png


Надо отметить, что частичный отчёт о моделировании появляется практически сразу. Этим можно пользоваться, создавая тесты, проверяющие варианты работы устройства как можно быстрее.
Установив точки останова, можно прервать моделирование и перейти в режим пошаговой отладки. Осциллограф можно вынести отдельным окном и наблюдать изменения сигналов параллельно с отладкой модели.
Во время отладки доступен просмотр стека вызовов, значений локальных переменных и управление точками останова (включение/выключение).
При этом после пошаговой отладки можно возобновить моделирование с текущего состояния симуляции.

eide10.pngeide11.png

Важной особенностью Delta Design HDL Simulator является совместное моделирование и отладка. Наша система предоставляет инструменты для проектирования и тестирования сложных систем, содержащих процессорные ядра. Если модель вашего устройства содержит процессорное ядро, и это ядро использует программу-прошивку, то вы можете одновременно отлаживать и программу, и устройство. Модели процессорных ядер – такие же устройства описанные на HDL. Для работы с моделью процессорного ядра необходимо добавить подключение к шине данных, тактовой частоте и задать программу через параметр elf_file. После правильного задания параметров модели процессорного ядра можно расставить точки останова в нужных местах модели устройства и программы и запустить моделирование.

Разработка встраиваемых систем


eide12.png

Процесс разработки встраиваемых систем практически не отличается от процесса разработки цифровых микросхем. Все описания модели на HDL уже разработаны и необходимо только правильно их соединить и написать управляющую программу.
Если все компоненты системы уже разработаны, то можно сразу приступать к разработке программ для встраиваемых систем.
Благодаря иерархической работе с проектами HDL Simulator позволяет легко заменять одну модель микроконтроллера на другую, изменять программу, или состав системы. Также можно сделать модель собственного устройства, задав ему необходимый алгоритм работы. Тогда появляется возможность отлаживать программы, пока параллельно происходит поиск аналогов.
Для систем-на-кристалле, совместная разработка программ и моделей устройств, реализуемая в HDL Simulator, позволяет писать библиотеки, которые станут драйверами для реальных операционных систем. Для проектирования встраиваемых систем Delta Design HDL Simulator предоставляет расширяемую и постоянно пополняемую базу моделей.


Настройка наборов инструментов


Для удобства работы в Delta Design HDL Simulator предусмотрена возможность настройки набора инструментов автоматически предоставляемых при разработке/моделировании. Таким образом, при создании моделей или программ от разработчика скрыты инструменты, предназначенные исключительно для симуляции, и наоборот. Это позволяет снизить визуальную нагрузку и сделать использование симулятора простым и комфортным (нет необходимости приходится искать нужные инструменты в множестве кнопок и меню, которые не используются на данном этапе разработки). Дружелюбный к пользователю интерфейс - одна из тех задач, которая реализовалась при разработке Delta Design HDL Simulator. Сложные итерфейсы сред моделирвоания, это актуальная проблема области разработки железа (наглядный пример - Mentor Graphics Modelsim).

eide13.png


Базовый функционал и развитие

Базовый функционал:
  • Разработка модели аппаратуры с использованием языков описания аппаратуры (HDL)
    • VHDL
    • Verilog / SystemVerilog
  • Разработка программ прошивок
    • C
    • C++
  • Совместное моделирование и отладка HDL-описаний и программ прошивок.
В будущем планируется:
  • Система Контроля Версий.
  • Моделирование аналоговых процессов с поддержкой VHDL-AMS.
  • Расширение возможности по стыковке VHDL и Verilog / SystemVerilog описаний.
  • Подключение виртуальных устройств.


Ограничения бета-версии.

946824656.jpg
На данный момент не поддерживается:
  • VHPI, т.к. основная работа по поддержке взаимодействия с высокоуровневыми языками направлена на разработку нового продвинутого способа интеграции, более простого и предоставляющего большие возможности.
  • Стандарт VHDL-2008.
  • Выбор переменных для отображения в осциллографе.
  • Отображение переменных в осциллографе.
  • Поддержка высокоуровневых языков.
  • Поддержка Verilog, SystemVerilog.
  • Фильтрация и группировка переменных в осциллографе.
  • Фокусировка на место в исходнике по выбранному сигналу/переменной в осциллографе.
  • Установка assert'ов в окне осциллографа.
  • Watch. 
Ограничена поддержка:

  • Встроенные библиотеки VHDL поддержаны частично, что проявляется в недостаточном быстродействии.
  • Проверка locally_static, globally_static, static_name. На данный момент у нас можно больше, чем по стандарту VHDL.
  • Работа с курсорами в осциллографе: отсутствует выделение области.



[1] IPR – Item-Property-Relation, высокопроизводительный сервер баз данных, разработанный специально для хранения проектной информации. Он позволяет сочетать гибкость объектно-ориентированного и гиперграфового подходов с производительностью современных реляционных БД.


[2] Компилятор, создающий код в системе команд другого процессора. Например, создающий код для ARMv7/Linux, но запускающийся под Windows.

[3] Он останется в системе и, при желании, его можно снова подсоединить.




Будьте в курсе новостей и спецпредложений

Авторизация
Чтобы продолжить покупку, пожалуйста, авторизируйтесь на сайте.
Забыли пароль?