Войти|Зарегистрироваться|Напомнить
Дистрибьютор ООО "Ай Пи Блок"
 / 
 

Ревизии проекта JTAG-тестирования платы

Данная статья является переводом следующих оригинальных статей:
Revisions – part 1
Revisions – part 2
Revisions – part 3

Важным новшеством в системе XJTAG версии 3.10 является поддержка ревизий (revisions). Данная статья посвящена тому, как это работает и как это может помочь сэкономить время при подготовке проекта тестирования модифицированной платы, если ранее уже был разработан проект тестирования оригинальной платы.

Что такое ревизия (revision) проекта тестирования?

Для начала определимся, что называть ревизией (revision)? В терминах XJTAG ревизия (revision) — это такая модификация той платы, которую нужно тестировать (UUT — Unit Under Test), при которой возникает необходимость модифицировать соответствующий проект тестирования, выполненный в XJDeveloper. В прошлом наличие модификации в плате часто означало создание нового проекта в XJDeveloper "с нуля", особенно в случае, если элементы на плате были перенумерованы. Но теперь с этим покончено! Новый функционал по поддержке ревизий (revisions) получает на входе исходный проект тестирования оригинальной немодифицированной платы, а далее нужно подключить нетлист или ODB++ (а также можно добавить принципиальную схему и перечень элементов (Bill of Materials — BOM)) модифицированной платы и XJDeveloper автоматически подготовит новый проект тестирования модифицированной платы, в котором подавляющее большинство действий по подготовке проекта тестирования будет уже выполнено в полностью автоматическом режиме.

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

Создание новой ревизии проекта тестирования

Новая ревизия (revision) заводится в XJDeveloper из меню File > Create Revision, при этом открывается диалоговое окно "New Revision".

В этом окне нужно указать, куда сохранять новый проект тестирования и подключить новый нетлист, принципиальную схему и перечень элементов (Bill of Materials — BOM) модифицированной платы. Также можно (но не обязательно) указать суффикс для названий файлов проекта и платы, чтобы из названий было видно, что это не независимые данные, а новые ревизии (например, _RevC) ранее существовавших файлов.

В процессе создания новой ревизии проекта тестирования нужно выбрать один из двух вариантов иерархического взаимоотношения между оригинальным проектом тестирования и его новой ревизией:

  • Если галочка Shared code включена, то и оригинальный проект тестирования, и его новая ревизия будут использовать одинаковые файлы скриптов на языке XJEase. То есть в двух проектах тестирования (и в оригинальном, и в новой ревизии) файлы скриптов будут всегда идентичными, и изменения, сделанные в одном из проектов, автоматически появятся и в другом. При этом новая ревизия проекта тестирования может располагаться как в той же директории, что и оригинальный проект тестирования, так и в отдельной директории.
  • Если галочка Shared code выключена, то все файлы скриптов на языке XJEase, используемые в оригинальном проекте тестирования, будут один раз скопированы в новую ревизию проекта тестирования, и далее, если они будут отредактированы, то это никак не повлияет на файлы, оставшиеся в оригинальном проекте тестирования. При этом новая ревизия проекта тестирования обязательно должна располагаться в отдельной от оригинального проекта тестирования директории.

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

Процесс подготовки новой ревизии проекта тестирования

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

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

Процесс подготовки новой ревизии проекта тестирования разбит на несколько этапов. Всего насчитывается от 7 до 13 этапов, каждый из которых представлен отдельным графическим значком в виде стилизованной "стрелки вправо" в полоске таких стрелок в верхней части окна "Revision Checklist". В некоторых случаях предложенную в окне "Revision Checklist" последовательность выполнения этапов можно нарушать, но разработчики системы XJTAG настоятельно рекомендуют выполнять действия в точности в указанной последовательности. Предложенная последовательность этапов рассчитана таким образом, чтобы минимизировать количество требуемой работы, так как в процессе выполнения этапов система XJTAG получит дополнительные данные, которые позволят выполнить назначения моделей тестирования компонентам платы в автоматическом режиме. Например, при обычной разработке нового проекта тестирования одним из самых первых этапов должен быть этап назначения цепей питания и земли, это нужно сделать даже до конфигурирования пути JTAG-контура. После проработки всех пунктов, перечисленных в окне "Revision Checklist", останется только вручную подтвердить назначения моделей тестирования для тех компонентов платы, для которых XJDeveloper сделал предположения (suggestions), какую модель тестирования нужно использовать, но не уверен в этом. Оставшимся без ручной обработки компонентам, для которых были сформированы предположения (suggestions), будет назначена модель с префиксом "(ORIGINAL)".

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

Пункты в окне "Revision Checklist"

Список пунктов в окне "Revision Checklist" сгруппирован в три основные группы: Tasks (Задачи), Missing (Пропавшие элементы) и Suggested (Предложения), а проработанный пункт попадает в четвёртую группу под названием Completed (Выполнено). Группа Completed (Выполнено) позволяет не только просматривать список ранее проработанных пунктов, но и при необходимости отменять изменения, сделанные в рамках проработки выбранного пункта. Переход пункта в состояние Completed (Выполнено) осуществляется как при помощи активных ссылок в текстовом описании пункта, так и при помощи кнопок Accept (Принять)/Reject (Отклонить)/OK (Подтвердить).

Пункты группы Tasks (Задачи) обычно подразумевают какие-то ручные действия, например, проверку правильности назначения цепей питания и земли. Группа Suggested (Предположения) показывает предположительные соответствия компонентов между оригинальной и модифицированной платами. В группе Missing (Пропавшие элементы) перечислены такие компоненты оригинальной платы, для которых не нашлось подходящего соответствующего компонента модифицированной платы. Большинство пунктов, перечисленных в окне "Revision Checklist", будет относиться к группе Suggested (Предположения), на иллюстрации ниже показан как раз такой пункт.

Пример Предположенного (Suggestions) предположительного соответствия компонентов оригинальной и модифицированной плат. В примере показано, что для элемента оригинальной платы имеющем позиционное обозначение R44 был найден предположительно этот же элемент модифицированной платы, который теперь уже имеет другое позиционное обозначение R46 и вероятность того, что показанное соответствие верно составляет 68.8%.

Выделенная на иллюстрации выше строка списка пунктов в окне "Revision Checklist" среди прочего показывает проценты — это вероятность, рассчитанная алгоритмом поиска соответствий компонентов между оригинальной и модифицированной платами, и этот процент показывает вероятность того, что найденное соответствие является правильным. Если навести курсор мыши на этот процент, то появится всплывающая подсказка, показывающая детальную информацию по расчёту вероятности. В приведённом примере выделенная строка сообщает о выявленном предположительном соответствии элемента R46 модифицированной платы элементу R44 оригинальной платы, то есть система предполагает, то это один и тот же элемент, только с разными позиционными обозначениями. Нажатие кнопки "Accept" приведёт к тому, что назначение модели тестирования этого элемента будет скопировано из проекта тестирования оригинальной платы, в новую ревизию проекта тестирования модифицированной платы. Во всех ссылках на компонент R44 (так он обозначался на оригинальной плате), имеющихся, например, в списке тестов на выполнение, будет заменено обозначение этого элемента на R46 (так теперь этот же компонент обозначается на модифицированной плате). К позиционным обозначениям тех компонентов оригинальной платы, для которых не нашлось соответствия на модифицированной плате, будет добавлен префикс "(ORIGINAL)".

Просмотр элементов нетлиста

Цепи и компоненты как из оригинального проекта тестирования, так и из новой ревизии проекта тестирования могут быть отображены в дополнительных окнах Schematic Viewer (принципиальная схема), Layout Viewer (топология платы) и Netlist Explorer (нетлист). Это позволяет в сложных случаях наглядно видеть что стало с компонентом при переходе от оригинальной платы к модифицированной (куда переместился элемент на схеме, в топологии, в нетлисте). То, какой проект тестирования (оригинальный или новая ревизия) в данный момент отображается в окне Schematic Viewer, Layout Viewer или Netlist Explorer показывает большой цветной баннер в верху окна. Окно Netlist Explorer открывается щёлчком левой клавиши мыши по активной ссылке на цепь или компонент в текстовых описаниях пунктов окна "Revision Checklist". Щелчок правой клавишей мыши по активной ссылке на цепь или компонент позволяет открыть через всплывающее меню любое из трёх окон Schematic Viewer, Layout Viewer или Netlist Explorer. Другой способ открытия этих окон с нужной информацией — через меню View основного окна XJDeveloper.

Два окна Netlist Explorer: одно показывает компонент оригинальной платы и, соответственно, оригинального проекта тестирования, а другое показывает компонент модифицированной платы и, соответственно, новой ревизии проекта тестирования.

Для чего требуется искать соответствия компонентов оригинальной и модифицированной плат?

Исторически, основной сложностью повторного использования имеющегося проекта XJDeveloper при переходе от тестирования оригинальной платы к тестированию её новой модификации являлась перенумерация. XJDeveloper использует компонентно-ориентированный подход к построению проекта тестирования и много вещей завязано на позиционных обозначениях компонентов, так что, например, если в модифицированной плате компонент U27 изменил своё обозначение и он, теперь, не U27, а какой-то другой, то все настройки оригинального проекта тестирования в XJDeveloper для компонента U27 будут утеряны. Новая функция системы XJTAG под названием "Revisions", о которой идёт речь в данной статье, предназначена для преодоления данной сложности путём поиска для каждого компонента оригинальной платы соответствующего компонента модифицированной платы и подстановки нового позиционного обозначения в новой ревизии проекта тестирования. Алгоритм поиска соответствий находит точное соответствие между компонентами оригинальной и модифицированной плат и копирует в новую ревизию проекта тестирования все назначения, сделанные компоненту в оригинальном проекте тестирования. Таким образом в новой ревизии проекта тестирования последовательно заполняются все данные, в которых используются позиционные обозначения компонентов, например, список тестов для выполнения, список соединений контактов компонентов, список константных значений на контактах компонентов и многие другие данные проекта тестирования. Без данной автоматизации это всё приходилось бы указывать вручную. Результатом является существенное ускорение перехода от оригинального проекта тестирования к его новой ревизии.

Как это работает?

Алгоритм поиска соответствий берёт два нетлиста — один от оригинальной платы, другой — от модифицированной, и пытается пытается выстроить однозначные соответствия компонентов между обоими нетлистами. Каждому найденному соответствию присваивается некоторая вероятность того, что это соответствие правильное, и именно эта вероятность в процентах отображается в окне "Revision Checklist". 100% означает, что соответствие абсолютно точно правильное. Те соответствия, в которых алгоритм абсолютно уверен, принимаются автоматически (но могут быть отменены вручную), остальные отображаются в окне "Revision Checklist" в группе Предположения (Suggested). Предположительные (Suggested) соответствия можно Принять (Accept) или Отклонить (Reject).

Для расчёта вероятности правильности соответствий компонентов между оригинальной и модифицированной платами используется 4 независимых фактора:

  • Совпадения по позиционным обозначениям
  • Совпадения по перечню элементов (Bill of Materials — BOM)
  • Совпадения по количеству контактов
  • Совпадения по топологии подключенных цепей

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

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

Совпадения по позиционным обозначениям

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

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

Совпадения по перечню элементов (Bill of Materials — BOM)

Вклад этого фактора в общую вероятность рассчитывается путём сравнения данных, полученных из перечня элементов (Bill of Materials — BOM) от оригинальной платы с перечнем от модифицированной платы. Для улучшения результатов желательно, чтобы строки обоих перечней были сформированы в как можно более схожим образом, в идеале, чтобы имели одинаковое количество полей в одинаковой последовательности. Для таких полей строк перечня, которые заполнены в обоих перечнях, рассчитывается индекс "похожести" записанных в этих полях данных. Например, для резисторов и конденсаторов основным полем строки перечня для сравнения является числовое значение номинала, а остальные, текстовые, поля вносят небольшой вклад в индекс "похожести".

Совпадения по количеству контактов

Ещё одно простое сравнение, которое вносит максимально возможный для данного фактора вероятностный вклад при совпадении числа контактов компонента. Гораздо более скромный вероятностный вклад формируется если количества контактов двух компонентов (с оригинальной платы и с модифицированной) различаются в пределах 20%. Для одно- и двух-контактных компонентов полное соответствие по количествам контактов является обязательным требованием, и данный фактор не используется.

Совпадения по топологии подключенных цепей

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

Вклад рассчитывается на основе сравнения цепей, подключенных к контактам с одинаковыми номерами. Сначала сравниваются обозначения цепей, а, затем, сравниваются соединения этих цепей с контактами прочих компонентов. Численное значение вклада рассчитывается для каждой пары контактов компонентов (с оригинальной платы и с модифицированной), а, затем, рассчитывается среднее консолидированное значение на основе численных значений всех пар. Данный фактор находит в высшей степени точные соответствия компонентов (с оригинальной и модифицированной плат). Исследования показывают, что при автоматическом признании двух компонентов (с оригинальной и модифицированной плат) идентичными друг другу — точность данного фактора составляет 100%, а в случае формирования предположительного (suggestion) соответствия — точность данного фактора более 90%. К сожалению, уже на платах средних размеров, содержащих несколько сотен компонентов, вероятность 90%, того, что результат правильный, даст несколько ошибок, поэтому ручная проверка предположений (suggestions) по соответствиям в окне "Revision Checklist" очень важна.

Состав системы XJTAG