Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
686.docx
Скачиваний:
85
Добавлен:
24.04.2019
Размер:
6.68 Mб
Скачать

3.2.10.6 Язык программирования Esterel

Esterel – императивный и параллельный язык, который имеет хорошо

определенную формальную базу и законченную реализацию. Фундаментальная

концепция ESTEREL – событие. Событие соответствует посылке или

получению сигналов, которые передают данные.

Esterel основан на синхронной модели. Этот синхронизм упрощает

обоснование времени и гарантирует детерминизм.

Пример программы на языке Esterel:

module ABRO:

input A, B, R;

output O;

loop

[ await A || await B ];

emit O

each R

end module

Приведенная выше программа осуществляет генерацию события ‘О’

только при наличии обоих событий на входах ‘A’ и ‘B’. Сброс программы

осуществляется через вход ‘R’.

В настоящее время Esterel используется в системе программирования

Esterel Studio (Synfora), предназначенной для проектирования систем-на-

кристалле.

3.2.10.7 Язык программирования Lustre

Lustre – декларативный язык программирования, основанный на модели

SDF (synchronous dataflow) и предназначенный для программирования

реактивных систем. Язык начал разрабатываться в 1984 году, во Франции.

152

Рисунок 60. Внешний вид системы SCADE, в котрой используется язык Lustre

Язык Lustre активно используется для реализации ответственных

приложений

в

авиакосмической

промышленности.

На

рисунке

выше

представлен внешний вид системы SCADE, использующей в своей основе этот

язык.

3.3 Инструментальные средства отладки и тестирования

ВВС

3.3.1

Симулятор

Симулятор – система для полной или частичной имитации поведения и

структуры какого-либо объекта. Симулятор относится к инструментальным

средствам отладки, тестирования и верификации программных и аппаратных

компонент вычислительной системы.

153

В случае программной реализации симулятор можно исполнять на

инструментальной машине. В программировании встроенных систем и СнК

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

выглядит как обычный отладчик.

Рисунок 61: Внешний вид симулятора-отладчика Keil Sofrware

При симуляции различных ASIC, процессоров, графических акселераторов

используют программно-аппаратные симуляторы, выполненные на базе FPGA.

Такой подход позволяет существенно сократить время тестирования и

верификации по сравнению с чисто программной симуляцией. Стоимость

программно-аппаратного

симулятора

значительно

выше

стоимости

программного.

К достоинствам симулятора можно отнести возможность моделирования

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

реальном масштабе времени с точки зрения наблюдателя, находящегося внутри

исследуемой системы.

К сожалению, в симуляторах всегда присутствует инструментальная

погрешность, возникающая из-за неточности моделирования, абстракции,

ошибок реализации и так далее.

154

3.3.2

Внутрисхемный эмулятор

Внутрисхемный эмулятор – это аппаратное устройство, используемое при

отладке, обычно выполняемое в форме микропроцессора с дополнительными

контактами.

Внутрисхемные

эмуляторы

подключаются

к

отлаживаемой

или

тестируемой системе вместо целевого микропроцессора или микроконтроллера

и позволяют гибко управлять поведением системы на протяжении процесса

отладки, собирать данные о состоянии ее различных объектов, выполнять

программы пользователя в различных режимах: в режиме реального времени

(непрерывное выполнение программы с заданного адреса), в пошаговом

режиме, в режиме с остановками функционирования по заданному условию.

Зачастую они позволяют эмулировать не только целевой процессор, но и

память, тактовый генератор, устройства ввода-вывода.

Ри

сунок 62: Внутрисхемный

эмулятор для процессоров

фирмы Atmel

Применение внутрисхемных эмуляторов позволяет решить почти все

проблемы, связанные с отладкой и тестированием программного обеспечения и

аппаратуры. К сожалению, крупным недостатком внутрисхемных эмуляторов

является их очень высокая стоимость.

Внутрисхемные

эмуляторы

являются

средством,

заменяющим

на

аппаратном уровне часть целевой системы. В настоящее время распространены

два основных варианта:

 эмулятор процессора;

 эмулятор ПЗУ.

В последнее время, с появлением ОКМЭВМ со встроенной постоянной

памятью (в виде FLASH или ОТР), второй вариант эмуляторов начал

постепенно выходить из употребления. В принципе, внутрисхемный эмулятор

155

имеет тот же набор функций, что и программный симулятор. Приведем

основные отличия:

 отладка возможна на реальном оборудовании (что не исключает

возможности программной имитации окружения);

 отладка может производиться в реальном времени.

Рисунок 63: Отладка с помощью бесплатного отладчика GDB-Insight

Интересным вариантом внутрисхемной эмуляции является JTAG. В

классических эмуляторах процессора для проведения отладки центральный

процессор заменяется на эмулирующую головку (у ряда новых процессоров

эмулирующую головку можно подключать непосредственно к впаянному

кристаллу). Это приводит к необходимости ставить на плату панель под

процессор, что уменьшает надежность системы. При использовании технологии

JTAG, эмулятор подключается к плате через специальный технологический

разъем. При этом процессор не вынимается. JTAG позволяет отключить ядро

процессора и управлять шиной адреса, данных и управления напрямую. К

сожалению,

для

управления

всеми

выводами

процессора

необходимо

передавать через порт JTAG большое количество информации. Поэтому

отладка в реальном времени (на частоте работы процессора) невозможна.

156

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

Например, в самом простом случае, достаточно подключить порт JTAG к

параллельному LPT порту обычного ПК.

Рисунок 64: Адаптер Wiggler для отладки через JTAG. Схема электрическая

принципиальная.

3.3.3

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]