Подписка на новости

Опрос

Нужны ли комментарии к статьям? Комментировали бы вы?

Реклама

 

2007 №6

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

Грушвицкий Ростислав  
Михайлов Максим  

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

Все статьи цикла:

Проблема проектирования в условиях временного дефицита возникла не сегодня, но в настоящий момент разработка того или иного проекта жестко ограничена по времени, что является одним из основных требований к проектировщикам. Любая проектируемая система должна быть протестирована и отлажена. Три основных аспекта характерны для современных изделий электронной промышленности. Первый связан с постоянным усложнением систем по всем параметрам и характеристикам. Второй — с возрастанием цены ошибки. Хотя эта цена оказывается различной для разных технологий изготовления конечного продукта. Для современной продукции ошибка при изготовлении ИС по технологии ASIC приводит к потерям на несколько порядков выше, чем при выпуске продукции в форме ПЛИС. Однако если учитывать неполученную прибыль, то потери могут оказаться достаточно близкими. И, наконец, последний аспект — это значительное уменьшение времени, которое отводится на весь цикл проектирования и изготовления нового прибора.

Проектирование и изготовление практически любого электронного изделия связаны с поиском и устранением погрешностей проекта. Постоянно улучшается методика проектирования (включая новые методики тестирования и отладки), появляется новый, более эффективный инструментарий. Из рис. 1 ясно, что количество ошибок, вносимых на начальных этапах проектирования (почти 70%), существенно больше числа ошибок, появляющихся на последующих этапах. С другой стороны, максимальное количество (тоже примерно 70%) ошибок обнаруживается только на последних этапах проектирования.

Ошибки проектирования и их устранение
Рис. 1. Ошибки проектирования и их устранение

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

Другим способом сокращения времени реализации проекта при сохранении традиционного отношения разработчиков к тестированию является всестороннее ускорение процесса отладки. Такой подход должен ориентироваться на широкое привлечение прогрессивных методов отладки проектируемых систем. Фирмы, выпускающие системы автоматизации проектирования, уделяют вопросам развития подобных методов и соответствующей аппаратуры очень большое внимание. Именно поэтому, обсуждая проблему ускорения процедуры проектирования, авторы сочли целесообразным начать с вопросов ускорения заключительных этапов проектирования, а не начальных (хотя последнее было бы более логичным).

Процедура отладки

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

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

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

Отладка рассмотренными (традиционными) способами и средствами, ориентированными на подключение к контактам ИС, становится практически невозможной для современной аппаратуры. Все более широкое распространение получают ИС, помещенные в корпуса типа BGA. Тем самым практически блокирован прямой доступ к контактам. Острота проблемы была частично снижена после 1991 года при внедрении в ИС виртуальных контактов. Идеи граничного сканирования, составляющие основу тестовых возможностей стандарта IEEE 1149.1, позволили предоставить разработчику доступ к механически недоступным контактам. Интерфейсу JTAG посвящен целый ряд работ в различных изданиях, в том числе и на страницах данного журнала.

Однако традиционному интерфейсу JTAG присущи свои ограничения. Исходно тестовые возможности JTAG-интерфейса распространялись только на внешние контакты ИС. Для интерфейса JTAG характерна малая скорость обмена (обычно не более 10 МГц), и, как следствие, получение последовательности «мгновенных снимков» состояния контактов ввода/вывода возможно только через значительные интервалы времени. Другое ограничение связано с возможностью работы только с цифровыми сигналами. После принятия новых стандартов 1149.4 и 1149.6 для аналоговых сигналов и дифференциальных пар сигналов [4, 5] ограничение на охваченные граничным сканированием типы сигналов уменьшилось. Но практическому применению граничного сканирования для аналоговых сигналов препятствует отсутствие выпуска ИС, поддерживающих этот стандарт. Принципиальным является возможность получения в считываемом по JTAG-интерфейсу снимке недостоверной информации о взаимном состоянии различных контактов, как у отдельной ИС, так и у их группы в JTAG-цепочке. Ограничение обусловлено существующей, как правило, взаимной асинхронностью тактовых сигналов проекта и тактового сигнала JTAG-интерфейса TCK. Несовпадение частот сигналов может служить причиной либо перекосов у фиксируемой группы сигналов, либо возникновения метастабильных состояний у захватывающих триггеров ячеек граничного сканирования. Существующие ограничения уменьшают область целесообразного применения традиционных (стандартных) методов граничного сканирования.

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

При внутрикристальной отладке роль интеллектуального отображающего элемента берет на себя ведущий компьютер (рис. 2). Мощность современных персональных компьютеров позволяет использовать их в качестве целого комплекса измерительных устройств. Специфические задачи связи могут возлагаться на интерфейсное оборудование, включаемое между ПК и отлаживаемой системой. Унификация отладочных средств достигается за счет широкого использования в отлаживаемых системах интерфейса JTAG. В отдельных случаях достаточным может оказаться внедрение в ИС минимального набора средств, позволяющих транслировать наружу события, происходящие внутри схемы. Набор таких средств существенно зависит от технологии реализации проекта. Для технологии ASIC характерны невозможность оперативно изменять конфигурацию отладочных средств и необходимость оставлять их в конечной продукции, что для технологии ПЛИС не является существенным. Даже если ПЛИС реализована по технологии пережигаемых перемычек и оперативное изменение структуры проекта невозможно, отладочные средства могут быть размещены в пробных экземплярах, а в отдельных случаях и в опытной партии конечной продукции.

Схема внутрикристальной отладки
Рис. 2. Схема внутрикристальной отладки

При создании сложных проектов по технологии ASIC отладочные средства обычно реализуются в форме окружения отдельных блоков системы (внутри ИС) ячейками граничного сканирования, управляемыми по интерфейсу JTAG. Такие средства позволяют отлаживать систему, а в дальнейшем тестировать конечную продукцию, опираясь на все средства тестирования граничного сканирования. Возможна фиксация значений сигналов на всех выводах отлаживаемых блоков, можно отключать воздействие блоков на систему, в блоки можно подавать индивидуальные тестовые воздействия и контролировать формируемые ими ответные сигналы. Можно, наоборот, подавать в систему сигналы, имитирующие работу изолированного блока и т. д. Естественно, большинство недостатков граничного сканирования, приведенных для вводо-выводных контактов ИС, распространяется и при переносе методов внутрь ИС.

Для ПЛИС возможна не только организация подобного обрамления отдельных фрагментов, но и добавление любого отладочного оборудования, реализуемого на внутренних элементах ПЛИС. Проблема заключается только в наличии свободных ресурсов, а для удобства реализации хорошо иметь возможность подключения такого оборудования не только к внутренним элементам, но и встроенным фрагментам ПЛИС (например, к встроенному TAP контроллеру JTAG-интерфейса). Более того, способность внутрисхемного реконфигурирования (характерная для большинства типов ПЛИС) позволяет заносить в ИС не только интерфейсные элементы, необходимые для подключения внешней отладочной аппаратуры, но и загружать внутрь ИС специальные тестовые конфигурации. Последнее свойство дает, например, возможность проверить оборудование, подключенное к исследуемой ИС, и отделить внутренние проблемы проекта от внешних.

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

Встроенный логический анализатор
Рис. 3. Встроенный логический анализатор

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

В настоящий момент в фирменных САПР хорошо отработаны методы автоматизации создания отладочных средств фиксирующего типа. Задачи отображающего элемента системы отладки, как правило, берет на себя ведущий компьютер с САПР или логический анализатор. Для синхронизации ведущего и ведомого оборудования используется JTAG-интерфейс. При этом проблемными местами проекта, слабо охваченными стандартными элементами фирменных САПР, остаются средства занесения тестовой информации во внутренние части проектов. В частности, это касается занесения тестовой информации в темпе штатной работы проектов.

Авторами предлагается концепция построения устройств, условно называемая «динамическим обертыванием» тестируемых блоков. Возможная схема отладочного устройства, поддерживающего этот способ построения, приведена на рис. 4. Концепция объединяет достоинства двух методов: обвязки отлаживаемых блоков ячейками, аналогичными ячейкам граничного сканирования (ЯГС), и использование встраиваемой памяти анализаторов для хранения защелкиваемых данных (RAM_Capture) и тестовых данных (RAM_Update). Работа обоих ОЗУ (связанных с каждым отлаживаемым блоком) осуществляется синхронно с источником тактовых сигналов блоков. Для мультитактовых систем обвязку блоков с различными тактовыми сигналами целесообразно строить с различными блоками памяти. Схемы запуска устройств отладки аналогичны уже рассмотренным.

«Динамическое обертывание» тестируемых блоков
Рис. 4. «Динамическое обертывание» тестируемых блоков

Скорость работы RAM_Capture и RAM_Update (реализованных на встроенных блоках памяти ПЛИС) позволит работать на внутренних скоростях современных и будущих ИС. В такой структуре отладочного устройства подключение входа RAM_Capture вместо триггера Capture традиционных ячеек граничного сканирования и выхода RAM_Update вместо триггера Update этих ячеек устраняет основной недостаток метода граничного сканирования, перенесенного внутрь отлаживаемой ИС, — малую допустимую скорость фиксации сигналов и изменения стимулов.

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

Предлагаемая концепция предполагает наличие целого ряда достоинств. Во-первых, она может с успехом использоваться не только в ПЛИС, но и в достаточно больших и сложных ASIC-проектах, во-вторых, для создания тестов могут использоваться результаты работы стандартных пакетов, создающих тестовые последовательности.

Построение подобных тестирующих блоков можно выполнить, опираясь не только на результаты самостоятельных разработок, но и на стандартные фирменные средства. Например, при совместном использовании средств мегафункции sld_virtual_jtag и пакета SignalTap II Logic Analyzer фирмы Altera (о которых речь пойдет в дальнейшем) разработчики смогут собрать систему, обладающую описанными свойствами.

Последовательность действий — проектный поток (Design Flow) — в общем случае (вне зависимости от типа отладочных средств) имеет вид, приведенный на рис. 5. В проектном потоке можно выделить следующие узловые действия:

  1. Создание с помощью средств САПР описания как основного проекта, так и аппаратуры ядра будущего логического анализатора.
  2. Получение списка цепей базового проекта.
  3. Объединение в единый проект основного проекта и подключенного к нему тестирующего блока.
  4. Компиляция проекта и его загрузка в ИС.
  5. Запуск объединенного проекта с циклическим защелкиванием в памяти состояния сигналов в выбранных узлах схемы.
  6. Приостановка работы (фиксация состояния памяти) по одному из условий остановки и передача управления средствам отображения в ведущем ПК зафиксированных данных.
  7. Анализ результатов и изменение защелкиваемых данных и/или условий фиксации данных проекта. Возврат (при необходимости) к продолжению отладки с начала или от приостановленного состояния.
Типовой проектный поток для работы тестового устройства, встроенного в ПЛИС
Рис. 5. Типовой проектный поток для работы тестового устройства, встроенного в ПЛИС

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

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

При подключении узлов проекта к анализаторам происходит уточнение функционального назначения сигналов узлов — использование для защелкивания в памяти и/или для определения момента фиксации данных в памяти.

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

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

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

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

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

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

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

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

На диаграмме (рис. 5) показаны различные варианты повторного запуска экспериментов в тестируемой системе. Цифрами от 1 до 3 помечены варианты повторения.

Далее в статье приводится типовая последовательность действий при отладке проектов, помещенных в ПЛИС различных фирм-изготовителей. В качестве единого примера проекта рассмотрим трехъярусную схему, состоящую из трех простейших блоков. Нижний ярус образован 4-разрядным сдвигающим регистром (shift_register) с асинхронным сбросом и загрузкой сдвигаемых значений при единичном значении сигнала Shift. В среднем ярусе помещен 4-разрядный последовательный счетчик (counter). При достижении счетчиком максимального значения, равного 1111, формируется сигнал переполнения (Over_flow). И, наконец, на верхнем ярусе находится выходной 5-разрядный регистр (DFF_register). Функциональная схема устройства приведена на рис. 6.

Схема устройства, встраиваемого в ПЛИС
Рис. 6. Схема устройства, встраиваемого в ПЛИС

Листинг на языке описания аппаратуры VHDL, соответствующий этому устройству, приведен далее:

Из результатов компиляции проекта в САПР Quartus II Ver. 7.0 фирмы Altera для ПЛИС типа Cyclone (EP1C6Q240C8) следует, что для реализации устройства потребуется 13 логических ячеек. Представление устройства на уровне регистровых передач (RTL) отражено на рис. 7. А на рис. 8 приведена временная диаграмма работы модели на соответствующем тесте.

RTL-вид отлаживаемого устройства
Рис. 7. RTL-вид отлаживаемого устройства
Результат моделирования работы устройства
Рис. 8. Результат моделирования работы устройства

Литература

  1. Грушвицкий Р. И., Мурсаев А. Х., Угрюмов Е. П. Проектирование систем на микросхемах с программируемой структурой. 2-е изд., перераб. и доп. СПб.: БХВ-Петербург. 2006.
  2. IEEE Std 1149.1-1990, IEEE Standard Test Access Port and Boundary-Scan Architecture.
  3. IEEE Std 1149.4-1999 IEEE Standard for a Mixed-Signal Test Bus.
  4. Грушвицкий Р., Ильин И., Михайлов М. Метод граничного сканирования для смешанных сигналов // Компоненты и технологии. 2006. № 8, 9.
  5. Грушвицкий Р., Ильин И., Михайлов М. Граничное сканирование современных высокоскоростных соединений // Компоненты и технологии. 2006. № 11, 12.
  6. Леклидер Т. Погружаясь в ПЛИС // Компоненты и технологии. 2006. № 12.
  7. Материалы фирмы Xilinx: ChipScope Pro Software and Cores User Guide.
  8. Using the Identify Hardware Debugger to Catch Timing Problems. www.synplicity.com/literature/pdf/identify_appnote05.pdf

Скачать статью в формате PDF  Скачать статью Компоненты и технологии PDF

 


Другие статьи по данной теме:

Сообщить об ошибке