Научная статья на тему 'Проектирование в условиях временных ограничений: отладка проектов на основе ПЛИС'

Проектирование в условиях временных ограничений: отладка проектов на основе ПЛИС Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
325
125
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Михайлов Максим, Грушвицкий Ростислав

Настоящая статья продолжает цикл публикаций, посвященных анализу особенностей проектирования в условиях жестких временных ограничений. Рассматриваются вопросы отладки для ПЛИС, включая рекомендации и примеры практической работы с САПР одной из мировых ведущих фирм — Altera.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Проектирование в условиях временных ограничений: отладка проектов на основе ПЛИС»

■

Продолжение. Начало в№ 6 '2007

Ростислав ГРУШВИЦКИЙ

[email protected] Максим МИХАЙЛОВ

[email protected]

Средства отладки, предлагаемые фирмой Altera

Фирма Altera, понимая всю важность средств отладки систем на ПЛИС и учитывая многообразие ее проблем, предлагает разработчикам целый спектр средств. Основные принципы их работы были рассмотрены в предыдущем разделе. Поскольку динамика развития программных продуктов в данной области достаточно высока, следует оговорить, что последующий материал ориентирован на возможности САПР Quartus II версии 7.0.

Представленные ниже средства фирмы Altera проверялись при их загрузке в отладочный стенд (рис. 9). Разработанный авторами стенд в ЛЭТИ, предназначенный для экспериментальных и учебных целей, позволил произвести большинство запланированных экспериментов. Его основу образует ПЛИС типа Cyclone (EP1C6Q240C8). Вывод свободных контактов ИС на разъемы типа PLD и PLT позволяет подключать (в том числе и по мезонинной технологии) разнообразное оборудование. Плата содержит ИС 16 Мбайт памяти типа DDR SDRAM и предусматривает соединение с ведущим компьютером не только по интерфейсу JTAG, но и USB 2.0 через ИС Cypress.

Программное обеспечение Quartus II предоставляет несколько способов отладки про-

Рис. 9. Плата с ИС фирмы Altera для проведения экспериментов

Проектирование в условиях временных ограничений:

отладка проектов

Настоящая статья продолжает цикл публикаций, посвященных анализу особенностей проектирования в условиях жестких временных ограничений. Рассматриваются вопросы отладки для ПЛИС, включая рекомендации и примеры практической работы с САПР одной из мировых ведущих фирм — Altera.

екта после его загрузки в FPGA, среди которых можно выделить использование встроенного логического анализатора SignalTap II, интерфейса внешнего логического анализатора LAI (Logic Analyzer Interface), передачу внутренних сигналов на внешние контакты с помощью SignalProbe и создание отладочной инфраструктуры с использованием мегафункции “sld_virtual_jtag”. Каждый из них, безусловно, является очень важным и полезным. Однако в конкретных ситуациях преимущества отдельной утилиты могут быть настолько очевидны, что применение остальных средств представляется нецелесообразным.

Подробное описание этих средств и правил работы с ними вряд ли возможно в рамках журнальных статей. Поэтому далее рассматриваются их основные возможности и приводятся описания базовой последовательности действий.

SignalProbe

Аппаратная отладка — долгий и весьма дорогостоящий процесс. В настоящее время он практически немыслим без привлечения специализированных средств САПР. Одним из ключевых моментов при этом является простота доступа к внутренним сигналам устройства, что вызвано необходимостью визуального наблюдения за проектом при постоянном росте уровня интеграции схем и ограниченности трассировочных ресурсов и контактов ИС. Еще одним условием является минимум влияния на проект отладочных средств. Традиционно используемый разработчиками перебор наблюдаемых точек проекта чаще всего связан с повторной компиляцией. Во многих случаях это приводит к изменениям схемы проекта, и поэтому результаты контрольных экспериментов могут в дальнейшем отличаться от ее работы с удаленными отладочными фрагментами. Фирма Altera для увеличения эффективности процедуры верификации предлагает средство

SignalProbe, позволяющее быстро проводить соединение между внутренними сигналами и внешними контактами ввода/вывода без оказания воздействия на основной проект.

Каждое соединение внутреннего сигнала с внешним контактом реализуется в системе как указание о конструкторском изменении ECO (Engineering Change Order), которое применяется к списку соединений после полной компиляции.

Последовательность действий при работе с SignalProbe выглядит следующим образом:

1. Резервирование контактов ввода/вывода для SignalProbe.

2. Выполнение полной компиляции проекта.

3. Назначение источника сигнала для SignalProbe.

4. Указание количества регистров в цепи конвейера и источника тактовых сигналов.

5. Выполнение SignalProbe-компиляции с созданием файла конфигурации.

6. Эксперименты со штатными и SignalProbe-контактами проекта.

Резервирование контактов

Резервировать необходимое количество контактов, ориентированных на SignalProbe, можно как до, так и после выполнения полной компиляции проекта. Программное обеспечение Quartus II предусматривает множество способов назначения SignalProbe-контактов, таких как, например, утилита PinPlanner или Тс1-скрипт. Однако для полноценной работы необходимо использование диалогового окна SignalProbe Pins (меню Tools > SignalProbe Pins...), внешний вид которого представлен на рис. 10.

В том случае если проект еще не был размещен в кристалле, доступными для заполнения будут только поля Pin name (имя SignalProbe-контакта) и I/O Standard (стандарт ввода/вывода данного контакта). При добавлении нового контакта SignalProbe сначала в списке Current and potential SignalProbe pins выбирается номер вывода микросхемы, который будет использоваться для отладки, и ему присваивает-

RewTvç рги «» SignaProbc pns end enable SiyvdProbc loutrg SçndPiobe j*n rfamaton can bc vwwed r> (he Change Manage«

лмгсЫ end potential SignaPiobc рте

N.J Narr* I Source I tnaWcd i Status f Ctocfc i Rcgrite«: 1 1/0 Standard I/O Bar*. 1 Тле л

j Oil 1 Row I/O

6 0« 7 0« 8 $ijnaP»obe_p*\2 urrtDfF_regK*e«(4) On Routed 11 nit 0 3.3VLVTTL 1 1 1 1 Row I/O Row I/O. Row 1/0. Row l/П v

< >

Change

Рп лап* 1 Sgnrfi obe_p*i1

Souc« J

17 SignaPiobe enable Enable AI

dock; |ix*Cloci. J OuabeAl

Reggie*: |l

1/0 tlandaid |13VIVTTI jJ

Г* Automteaty iot/e SignePiobe tomit during compiaton

” Moriiy liVM littmg irttUt àtrrrj comp»Wnn

С OK 1 c*~-

Рис. 10. Диалоговое окно SignalProbe Pins

ся имя в поле Pin name. Далее производится назначение стандарта ввода/вывода. После нажатия кнопки Add в список добавляется новый SignalProbe-контакт. При редактировании ранее зарезервированного контакта вместо кнопки Add появится кнопка Change. В примере были зарезервированы два SignalProbe-контакта: SignalProbe_pin1 и SignalProbe_pin2, назначенные в отладочной плате на пятый и восьмой выводы микросхемы Cyclone соответственно.

Получение списка соединений проекта Следующий шаг — получение списка соединений проекта, для чего требуется произвести полную компиляцию (Processing > Start Compilation). Источником сигналов для SignalProbe-контактов становится один из внутренних узлов списка соединений, полученного после трансляции проекта. Выбор источника происходит при помощи функции Node Finder с предустановленным фильтром SignalProbe. Возможны ситуации, когда какой-то конкретный узел не будет присутствовать в списке допустимых источников сигналов по причине выполненной оптимизации при синтезе или физической невозможности трассировки данного сигнала до выбранного SignalProbe-контакта. Примером последнего может служить недоступность внутренних комбинационных узлов и регистров гигабитных приемопередатчиков, так как подобная трассировка принципиально невозможна.

Подключение резервированных контактов к узлам проекта SignalProbe-источники (сигналы проекта, выводимые на ранее зарезервированные контакты ИС) назначаются в поле Source диалогового окна SignalProbe Pins (фильтр SignalProbe в Node Finder установлен по умолчанию). После выбора источника автоматически включается опция SignalProbe enable (разрешение SignalProbe). Для сохранения измене-

ний необходимо нажать кнопку Add/Change. В качестве источников сигналов в примере были задействованы выход регистра Shift_regis-ter[0] (для контакта SignalProbe_pin1) и выходной сигнал DFF_register[4] (для контакта SignalProbe_pin2).

Дополнительным сервисом пакета SignalProbe является возможность вывода наружу не только сигналов проекта, но и их значений, зафиксированных в конвейерном соединении дополнительно вставленных триггеров. Конвейеризация может использоваться для фиксации значений на определенном фронте тактовых импульсов, задержки сигнала на заданный временной интервал или синхронизации выходных сигналов SignalProbe при их шинной организации.

Синхросигнал тактирования конвейера указывается в поле Clock диалогового окна SignalProbe Pins (в примере — сигнал Clock).

А в поле Registers заносится число триггеров, которые планируется последовательно расположить в цепи между источником сигнала и контактом SignalProbe (в примере указан один триггер). Сохранение изменений происходит после нажатия кнопки Change.

SignalProbe-компиляция Трассировка SignalProbe-соединений происходит при SignalProbe-компиляции (меню Processing > Start > Start SignalProbe Compilation).

Выполнение этой команды не изменяет результатов полной компиляции — размещение проекта в кристалле остается прежним. После успешной компиляции поле Status изменяет свое значение на Routed. Результаты SignalProbe-компиляции могут анализироваться в файле отчета (раздел Fitter > SignalProbe Fitting Results). Кроме того, можно оценить временные параметры полученных соединений — меню Processing > Start > Start Timing Analyzer. Основным результатом этого этапа является создание файла конфигурации, содержащего основной проект и дополнительные разведенные SignalProbe-соединения (Processing > Start > Start Assembler).

Отладка проекта с SignalProbe-контактами

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

Для экспериментальной проверки проекта UNIT был разработан источник тестовых сигналов — простейшая VHDL-программа, основу которой составляет конечный синхронный автомат (компонент Avt). Временная диаграмма, формируемая тестовым устройством, приведена на рис. 11.

С. Ouartus II D:/täp_tost_2/tap tap ftap.vwf*]

Re Etft 4** Project Toon Wndow ГЗ! Mfrifi* IwB* 7 3 ni

«| >| Pointer I 303 ut Interval

Name Value at 7.3 m ) ps 640,0 ns 128 ui 19?u. 2 S6in ш 384m 4 48ui 512up

73 ne

uK Oocfc HO

!#•' Re*t Sw H1

1+2 Oec HO u

lri Starl_Sw HI I I

O^ Sim HO 1

оь Stop HO

1*6 S»op_Sw H1

07 Re*et M HO n n

08 Shlt.M HO IT “I 1 1 1

09 Data.In.M HO Г1 ' г 1 1 1 1 1 1

ОЮ Load M HO П Г-1

OH En_Co*rt_M HO 1 1 1 1 1 1 1

□ DFF.Re^ter A[0!

018 Ay*. Ot Avtcurert Me ide HO J ' '

019 AvtOt_AvticuT««*_i»ate r*_m HO 1 1 П

020 AvtCrt Avtcurert Hate court 3 HO П П

021 Avt Ot.Avtlcwreft _«ate со«л4 HO n П

022 Avt Crt_Avtlo*T4rt_iiate cocrtb HO n n

О 22 Avt Ot _ Avt current _<ate court 7 HO П -

02i AvtCrt Avticurert «ateaMtl HO n 1 1

025 Avt Ot_Avtcvr*rt_itale Wl2 HO г 1 П

026 Avt Ot.Avtfcwrert «ate *ЛЗ HO П П

027 Avt Qt _AvtCx/i«rt _jtate jMM HO I n . . П.

A

564

M

№ Ä £ Л

i» )& ax

хг>5 XiXd % il

Рис. 11. Временная диаграмма тестового устройства

Сигналы Reset_M, Start_M, Stop_M служат для сброса, запуска и остановки тестового устройства. Наличие свободных ресурсов в ИС отладочного стенда позволило объединить в конфигурационном файле одной ИС оба проекта: собственно исследуемое устройство и тестирующий его автомат (имя модуля верхнего уровня иерархии — tap). Соединение внешними перемычками двух проектов позволяет при помощи стандартного осциллографа наблюдать на выходных контактах ПЛИС результаты работы устройства. Как и следовало ожидать (в нашем случае), в реальных экспериментах они совпадают с результатами моделирования (см. КиТ № 6, 2007, с. 136, рис. 8). Наблюдению доступны как контакты собственно проекта unit, так и SignalProbe-контакты.

SignalTap II Logic Analyzer

Другим средством внутрикристальной отладки фирмы Altera является встроенное в САПР Quartus II программное обеспечение под общим названием SignalTap II. В отличие от SignalProbe пакет SignalTap II имеет расширенные возможности и позволяет разработчику создавать и встраивать в проект определенное число логических анализаторов, оперативно изменять условия фиксации данных в их памяти и отображать эти данные на экране компьютера. Особенность этого подхода состоит в исследовании поведения внутренних сигналов без использования дополнительных контактов ввода-вывода и какого-либо внешнего оборудования, кроме ПК с загрузочным кабелем того или иного типа (рис. 12). Еще одной является работа в режиме реального времени проекта. Применение анализатора не требует изменения исходных файлов проекта и практически не влияет на его свойства и поведение. Все эти достоинства достигаются путем временного хранения

полученных значений сигналов в буферах, организованных во внутренней памяти ПЛИС, а затем посредством JTAG-интерфейса передаваемых в САПР и отображаемых в виде временных диаграмм.

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

Камнем преткновения между гибкостью изменений настроек внутрикристального логического анализатора и минимизацией временных затрат на выполнение экспериментов становится необходимость повторной компиляции проекта (так как в отличие от внешнего анализатора внутренний является частью проекта). В SignalTap II возможен выбор одного из двух вариантов компиляции: обычная (полная) и инкрементная (частичная). Обычная компиляция является традиционной. Инкрементная предполагает транслирование только тех частей проекта, в которых были произведены изменения.

В соответствии с этим разработчик может назначить два типа сигналов для своего SignalTap II:

• Pre-Synthesis — выделяются из проекта после анализа исходного кода, но до выполнения какой-либо оптимизации, связанной с синтезом (сигналы уровня регистровых передач).

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

• Post-Fitting — образуются после проведения физической оптимизации и размещения проекта в кристалле.

В том случае если используется инкрементная компиляция, выбор сигналов должен производиться из списка Post-Fitting. В противном случае наоборот — из Pre-Synthesis. После выполнения команды Analysis & Elaboration (меню Processing) сигналы, подсвеченные красным цветом, являются недопустимыми и должны быть удалены из списка.

Такое возможно, например, если в список были добавлены сигналы типа Pre-Synthesis, а затем включена опция Incremental Compilation.

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

К моменту наступления этапа отладки должно быть подготовлено описание проекта, отладку которого, собственно, и необходимо произвести. При работе с логическим анализатором SignalTap II, как для всех устройств аналогичного типа, можно выделить следующие основные этапы:

1. Компиляция (при необходимости) исходного описания проекта для получения списка цепей.

2. Определение структуры логического анализатора (создание основных блоков).

3. Конфигурирование и подключение логического анализатора к проекту.

4. Совместная компиляция проекта с подключенным анализатором.

5. Загрузка прошивки в ПЛИС и запуск логического анализатора.

6. Выполнение запланированных действий с проектом и анализ полученных данных.

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

и результатах его работы хранится в связанном с ним STP-файле. Управление отладкой осуществляется при помощи редактора STP-файла. Для одного проекта можно создать любое количество таких файлов. Для этого используют два способа: прямую работу с редактором или привлечение параметризиру-емой мегафункции SignalTap II Logic Analyzer. При необходимости в один и тот же STP-файл можно включать дополнительные экземпляры (instances) анализатора, например, если требуется одновременно отслеживать несколько областей синхронизации (clock domains). Количество экземпляров ограничивается только доступными ресурсами микросхемы.

Возможности конфигурирования и управления работой анализатора

Поскольку вся процедура отладки выполняется с помощью тех или иных действий в редакторе STP-файлов, то целесообразно вначале остановиться на его возможностях и средствах. Функциональное разнообразие задач, решаемых редактором STP-файлов, делает рациональной организацию его работы

Управление

анализатором

Затраты ресурсов

анализатора

Разрешен ие/зап рет инкрементной компиляции

Рис. 13. Окно Instance Manager

в основном и пяти дополнительных окнах: Instance Manager, JTAG Chain Configuration, Signal Configuration, Hierarchy Display и Data Log.

Окно Instance Manager

Окно Instance Manager (рис. 13) содержит информацию обо всех экземплярах логического анализатора, добавленных к проекту. В ПЛИС одновременно могут присутствовать несколько анализаторов. Эта возможность оказывается полезной, например, в том случае, если необходимо использовать отдельный анализатор на каждую область синхронизации. Каждый экземпляр анализатора настраивается индивидуально. Отсюда вытекает еще одно полезное свойство — можно варьировать объем выборки для любого сигнала персонально. Таким образом обеспечивается гибкость отладки.

Панель Instance Manager предназначена для управления анализатором. Возможен запуск анализатора в ручном или автоматическом режимах, а также его принудительная остановка. Для создания очередного экземпляра анализатора достаточно выполнить команду Create Instance в меню Edit. Панель содержит окно состояния устройства управления анализатора, в котором контролируются режимы его работы. В окне Instance Manager также отображается информация о ресурсах микросхемы, которые затрачиваются на реализацию отладки.

В этом окне есть опция — разрешение/запрет инкрементной компиляции. Поскольку в нашем варианте она не рассматривается, то соответствующая галочка убирается.

Окно Signal Configuration

После того как были созданы все необходимые логические анализаторы, можно приступать к их настройке в окне Signal Configuration (рис. 14).

В поле Clock происходит назначение частоты выборки. Логический анализатор будет производить запись данных по каждому фронту этого синхросигнала. Несмотря на то, что для синхронизации фиксирования данных анализатором можно выбрать любой сигнал проекта, все же рекомендуется в качестве частоты выборки задействовать глобаль-

Тип памяти буферов Глубина выборки

Частота выборки

ные тактовые сигналы. Выбор сигнала Clock выполняется обычным способом через окно Node Finder.

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

Далее необходимо выбрать вариант организации буферов для хранения отсчетов. Допустимо использование двух видов заполнения и остановки буферов: циклического или сегментарного. При использовании циклического буфера (рис. 15) задается количество данных, «защелкиваемых» до и после момента фиксации. Циклический буфер является установкой по умолчанию. Во время работы логического анализатора данные непрерывно записываются в память выборки, новые данные замещают старые. Продолжается это до тех пор, пока не возникнет условие защелкивания. После его появления анализатор будет фиксировать значения сигналов до момента переполнения буферов.

Сегментарный буфер удобен при периодическом возникновении условий защелкива-

Количество уровней

условии фиксации

Взаимодействие с внешним оборудованием

Рис. 14. Окно Signal Configuration

ния. В этом режиме буфер разделяется на несколько частей — сегментов (рис. 16). Запись в очередной сегмент начинается после возникновения условия фиксации. При переполнении буфера новые данные замещают устаревшие. Размер и количество сегментов являются предварительно настраиваемыми параметрами.

Пояснения относительно группы настроек Trigger (определение условий защелкивания данных в окне Signal Configuration)

Условие фиксации

Буфер при Center-фиксации

Новые

данные

1 0 1 1 1 0 1 0 1 1 1 0 1 0 0 1 0 0 1 1 0 0 1 0

А

Старые

данные

Буфер при Post-фиксации

Буфер при Р го-фиксации

Рис. 15. Циклический буфер

Фиксация

сегмента

Фиксация

сегмента

Фиксация

сегмента

Фиксация

сегмента

1 0 1 1 0 1 0 0 1 1 0 1 0 0 1 0

Сегмент 1 Сегмент 2 Сегмент 3 Сегмент 4

Рис. 16. Сегментный буфер

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

Основное окно редактора

Основное окно редактора является узловым для логических анализаторов. Редактор STP-файлов допускает два режима работы: предварительный выбор фиксируемых сигналов (вкладка Setup) и отображение временного поведения выбранных сигналов (вкладка Data).

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

При настройке логического анализатора в список узлов STP-файла добавляются сигналы проекта, подключаемые к анализатору (рис. 18). Для того чтобы сигналы появились в перечне Node Finder, необходимо обработать исходные файлы проекта — команда Start Analysis & Elaboration в меню Processing, и затем можно обращаться к меню Edit > Add Nodes. Выбранные сигналы могут использоваться по-разному. В одних случаях при отладке необходимо отслеживать только поведение выбранных сигналов, в других случаях они используются для формирования

условий фиксации данных, в-третьих, — для обеих целей вместе. Для наблюдения за поведением сигналов в строго определенных интервалах времени (в начале, конце или середине этих интервалов) необходимо сформировать специальные условия защелкивания — аналог точек останова в традиционных программных отладчиках. SignalTap II предоставляет широкий выбор различных типов условий. Простейшим случаем является использование так называемых базовых условий защелкивания (Basic Triggers). Напомним, что доступными для добавления к STP-файлу (то же относится и к сигналу Clock — частоте выборки данных) являются сигналы двух типов: Pre-Synthesis и PostFitting. Поскольку нами рассматривается случай, когда инкрементная компиляция не используется (сброшена соответствующая опция в окне Instance Manager), выбор сигналов должен производиться из списка Pre-Synthesis.

Для выбора способа применения каждого сигнала необходимо указать требуемые опции: Data Enable, Trigger Enable и Trigger Levels.

Опция Data Enable означает, что узел будет использован в качестве анализируемого сигнала и соответственно отображен на временной диаграмме.

Узлы с установленной опцией Trigger Enable предназначены для формирования условия фиксации.

Опция Trigger Levels позволяет выбрать из списка поведение, соответствующее выполнению одного из 6 базовых условий фиксации: Don't care (безразлично), Low (низкий уровень сигнала), High (высокий уровень сигнала), Falling Edge (спад сигнала), Rising Edge (фронт сигнала), Ether Edge (любое изменение сигнала).

Фиксация (Triggering) — это останов процесса сбора информации о сигналах при выполнении всех установленных логических условий. Другими словами, фиксация происходит, когда объединение условий по логическому «И» оценивается как истина.

Существует возможность предотвращения внесения изменений в STP-файл, которые потребовали бы перекомпиляции, — использование режима блокировки. Включение режима производится, например, через меню Edit > Lock Mode, после чего становятся допустимы только изменения условий защелкивания.

Однако не редки ситуации, когда в процессе отладки желательно задействовать сигналы уровня RTL, которые в результате оптимизации могут исчезнуть. Данное обстоятельство ограничивает использование Pre-Synthesis-сигналов. Для разрешения этого противоречия можно воспользоваться специальными атрибутами синтеза для сохранения сигналов при размещении проекта в кристалле — Keep (предотвращает оптимизацию комбинационных сигналов) и Preserve (выполняет аналогичную функцию для регист-

ров). При этом необходимо учитывать, что подобные действия могут привести к увеличению занимаемой площади или ухудшению временных характеристик проекта. Исключительными являются сигналы, которые в силу архитектурных особенностей ПЛИС или иных причин не могут быть напрямую захвачены анализатором: выход clkout блоков PLL, сигналы переноса логических элементов (coutO и coutl), сигналы интерфейса JTAG, выходы блоков SERDES и др.

Наряду с базовыми возможностями задания условий фиксации существуют и расширенные. Они позволяют установить условия с использованием дополнительных логических ресурсов микросхемы. При выборе фиксации типа Advanced в столбце Trigger Levels открывается дополнительная вкладка в основном окне редактора SignalTap II — Advanced Trigger, в которой посредством графического интерфейса создается сложное условие с использованием различных вычислительных устройств и логических операций.

Настройки Trigger в окне Signal Configuration

Создание сложных условий фиксации данных производится в окне Signal Configuration. Как уже было сказано ранее, в формировании любых условий останова фиксации данных участвуют сигналы с включенной опцией Trigger Enable. Для каждого из таких сигналов выбирается одно из шести условий фиксации.

Достаточно сложной является иерархическая организация условий. SignalTap II позволяет задавать несколько последовательных уровней (поле Trigger Levels в окне Signal Configuration) и формировать сложные команды для логического анализатора, обеспечивая, таким образом, более точный поиск и анализ проектной проблемы при отладке. В начале анализатор SignalTap II обрабатывает условия защелкивания, соответствующие уровню trigger level 1. Когда выражение, связанное с этим уровнем, будет оценено как True, анализатор приступит к вычислению значения логического выражения уровня trigger level 2 и т. д. Любой из уровней может быть представлен базовым или расширенным набором условий фиксации.

Помимо вышеназванных средств по управлению условиями фиксации данных, которые можно обозначить как внутренние, SignalTap II предоставляет возможности взаимодействия с внешним оборудованием. Внешний вход защелкивания (Trigger input) воспринимается анализатором как уровень trigger level 0 и анализируется в первую очередь. Переход к следующим уровням происходит только после получения значения True для выражения, соответствующего этому сигналу. Настройка производится в разделе Trigger in окна Signal Configuration.

Вторая возможность — формирование выходного сигнала фиксирования (Trigger output)

Не М* View Protect Ртоеялд Too*

д а| ■ ■ ' ' 3® а а ’ *■ -* ■

trw» 2007 Я7/04 00 Î0Î7 «I | £ Акт Л сЫпдп ^

N04« trtoe«r ln*DK If >09« Г L«V«lt 1

I«»« Ми м«т* " M 1Р|вмс _j|

t» Смм.П P p 35

х» Еп.СаЛ P p E

1» LMd Р p S

1ф P p S

1» 9.1 P R S

1> P P xxxxxь

о . UríBw.UMKour««, P P ххххъ

о 9 •е.имрхл.гедо*' P P пом

iS t1*» £3 s«**>

И \__________________________________________

Рис. 18. Сигналы проекта, подключаемые к анализатору, в режиме Setup

Рис. 17. Основное окно анализатора в режиме отображения выбранных сигналов

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

для внешнего оборудования или других анализаторов SignalTap II. Это позволяет синхронизировать работу внешних устройств и встроенного логического анализатора. Настройка выходного сигнала фиксирования осуществляется также в окне Signal Configuration в разделе Trigger Out.

Окно JTAG Chain Configuration Панель (рис. 19) позволяет конкретизировать соединение со встроенным логическим анализатором ведущего компьютера и ИС, выбрать и загрузить конфигурационный файл проекта, содержащий отладочные средства. Содержимое окон отражает наличие JTAG-связи между ПК и отлаживаемым устройством, задает тип загрузочного кабеля, осуществляет выбор в JTAG-цепочке необходимой ИС и определяет загружаемый файл.

Состояние JTAG-цепочки

Загружаемая микросхема

___________Автоматическое

определение JTAG-цепочки

Разрешение/запрет блоков проекта

Разрешение/запрет ведения

Набор сигналов

Рис. 19. Окно загрузки конфигурации

Окно Hierarchy Display Для всех сигналов, подключенных к анализатору, как показано на рис. 20, панель отображает иерархическое расположение блоков проекта. Включение блока (наличие галочки внутри) разрешает присутствие его внутренних сигналов в перечне сигналов основного окна редактора STP-файла.

Рис. 20. Окно иерархии отображаемых блоков

Окно Data Log

Журналом записей (Data Log) традиционно пользуются для сохранения действий пользователя в последнем сеансе работы (рис. 21). В SignalTap II журнал обычно применяют для сохранения временных диаграмм. Для этого в меню Edit надо выбрать Enable

Рис. 21. Окно Data Log

Data Log. Чтобы сохранить полученные анализатором данные, выполняют команду Save to Data Log (меню Edit).

При необходимости можно сохранить временную диаграмму в любом из доступных форматов: .csv, .tbl, .vcd, .vwf, .jpg или .bmp.

Основные этапы отладки примера Unit с помощью SignalTap II

Базовую последовательность действий разработчика рассмотрим на предложенном ранее примере устройства.

Компиляция исходного проекта

Традиционными средствами САПР Quartus II задаем имя проекта и его расположение (директорий). В общем случае в нем помещаются файлы, содержащие описание проектируемого устройства (в нашем случае, кроме файла собственно проекта — Unit.vhd, тестовые программы — Avt и TAP) и проектные библиотеки. Указывается компонент верхнего уровня иерархии проекта (TAP). Приводится имя семейства ПЛИС и конкретизируется тип ИС. Для выбранной нами отладочной платы это — ПЛИС типа Cyclone (EP1C6Q240C8).

Задание базовых элементов анализатора

Файл STP (и соответствующие ему логические анализаторы) можно создать различными способами: от создания нового файла (с чистого листа) до корректировки существующего файла.

Для открытия существующего STP-файла можно выполнить одну из следующих последовательностей действий: в меню File выбрать Open и открыть желаемый STP-файл или в меню Tools выбрать SignalTap II Logical Analyzer. Для создания нового STP-файла необходимо в меню File выбрать New, а затем выбрать тип файла Other File и далее SignalTap II File. После этого выполняется последовательность действий в различных окнах редактора STP-файлов. Для назначения тактового сигнала:

1. В окне Signal Configuration около окна Clk нажимаем клавишу (...) для открытия определителя узлов Node Finder.

2. В определителе устанавливаем фильтр на сигналы типа SignalTap II: pre-synthesis.

3. После нажатия List становится доступным список сигналов, из которого может быть выбран тактовый сигнал — Clock. Если он не выбран, то САПР Quartus автоматически назначит тактовым сигнал с именем auto_stp_external_clk, предполагая, что далее разработчик обеспечит подключение к внешнему контакту с этим именем соответствующего источника тактовых импульсов.

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

Выбору сигналов должно предшествовать выполнение Analysis & Elaboration или Analysis & Synthesis, или обычная полная компиляция проекта.

В окне логического анализатора открываем панель Setup. Двойной щелчок в окне вызывает определитель узлов Node Finder. В определителе устанавливаем фильтр на сигналы типа SignalTap II: pre-synthesis. Двойной щелчок на выбранных сигналах открывает их список.

Выбор опций позволяет отнести сигналы к одной из трех вышеперечисленных групп, а для сигналов, выбранных в качестве условий фиксации, можно установить шаблон поведения (по умолчанию установлено Don't care). Для примера выбраны внешние сигналы устройства: Data_In, En_Count, Load, Reset, Shift, DFF_Register и внутренние: Counter и Shift_register.

Компиляция проекта, совмещенного с анализатором

После создания STP-файла его подключают к основному проекту. Для этого достаточно выполнить следующие действия:

1. Выбрать меню Assignments > Settings...

2. В разделе SignalTap II Logic Analyzer установить опцию Enable SignalTap II Logic Analyzer.

3. Указать имя сохраненного STP-файла — TAP.stp.

4. Нажать Ok.

После окончания работы с логическим анализатором необходимо снять соответствующую опцию Enable SignalTap II Logic Analyzer.

В окне Instance Manager SignalTap II показываются затраты ресурсов кристалла, вносимые отладочными объектами.

Загрузка конфигурации в кристалл

Перед загрузкой конфигурации в кристалл в окне JTAG Chain Configuration производится подключение к ведущему компьютеру. Для загрузки конфигурации в статическое

ОЗУ обычно используется JTAG-интерфейс. Соответствующий тип загрузочного кабеля указывается в строке Hardware. После просмотра JTAG-цепочки в строке Device необходимо указать нужную микросхему ПЛИС. Далее следует указать SOF-файл, полученный после компиляции проекта с подключенными средствами логического анализатора, и нажать Program Device.

Запуск анализатора в работу

Запуск логического анализатора выполняется по команде Processing > Run Analysis.

С момента нажатия кнопки Run и до перехода логического анализатора в состояние ожидания JTAG -порт занят и не должен использоваться для каких-либо других операций.

Кроме обычного запуска можно воспользоваться также автоматическим перезапус-

ком — Autorun Analysis. При этом логический анализатор периодически повторяет процесс сбора информации. Это эквивалентно выполнению команды Run Analysis автоматически после каждого защелкивания.

Анализ результатов

При успешном сеансе работы анализатора происходит фиксация состояния буфера анализатора с назначенными проектировщиком данными.

Результатом работы SignalTap II является временная диаграмма процессов, происходящих с анализируемыми сигналами. Она формируется на вкладке Data основного окна SignalTap II.

Для экспорта текущей диаграммы в один из предложенных форматов необходимо:

1. Выбрать File > Export...

2. Указать STP-файл.

3. Указать формат нового файла.

4. Для некоторых форматов возможно указание периода синхросигнала.

5. Нажать Ok.

На заключительном этапе этой обычно циклической процедуры, пользуясь интерфейсом JTAG, можно проанализировать результаты, зафиксированные в памяти анализатора, если условие остановки достигнуто, либо, в противном случае, остановить работу анализатора и, изменив условия, повторить действия. ■

Литература

1. Quartus II Version 7.0 Handbook Volume 3: Verification (Section V. In-System Design Debugging). www.altera.com

i Надоели баннеры? Вы всегда можете отключить рекламу.