Войти|Зарегистрироваться|Напомнить
Дополнительные материалы

Запуск теста на закоротки/обрывы

В предыдущих разделах данного тренинга было введено достаточно подготовительных данных для запуска первых тестов. Остальные разделы тренинга посвящены в основном запуску различных тестов, в некоторых случаях придётся вводить дополнительные данные.

Существует три метода запуска тестов:

- Из XJDeveloper
- Из отдельного приложения XJRunner. Для этого нужно подготовить проект созданный в XJDeveloper для запуска в XJRunner, это делается в разделе Run and Deploy на левой панели окна XJDeveloper в области XJRunner Setup
- Из командной строки, при помощи языка XJEase - для использования данного метода нужно вставить вызовы функциональных тестов в функцию CircuitTest

Основное внимание тренинга сосредоточено на запуске тестов из XJDeveloper, но и запускам из XJRunner и из командной строки тоже будет уделено внимание. XJRunner использует подготовленный файл типа XJPack.

- На левой панели окна XJDeveloper нажмите на Run & Deploy, а затем нажмите кнопку XJRunner Test List
- В области XJRunner Tests нажмите кнопку New...
- В поле Test Name введите Connection Test. Test Name - это провто метка, которая появится в XJRunner, так что можно ввести любое имя
- Нажмите кнопку Add Global Function
- В появившемся диалоговом окне Available Global Functions выделите CONNTEST и нажмите OK
- В диалоговом окне New XJRunner Test нажмите OK
- Теперь в области XJRunner Tests должен появиться новый тест. Для того, чтобы этот новый тест попал в список тестов выполняемых по умолчанию после того как будет сформирован XJPack файл и запущен XJRunner, нужно включить опцию Connection Test
- Сохраните проект при помощи кнопки Save на панели инструментов окна XJDeveloper

Глобальные (Global) функции - это все функции из Circuit Code Files которые могут быть запущены из XJRunner. Эти функции не имеют входных параметров и имеют один выходной параметр типа INT, который позволяет XJRunner-у знать прошёл ли тест успешно или нет. CONNTEST - это особая функция, которая на входе имеет один параметр, который определяет количество выдаваемой информации в случае если были найдены отказы. По умолчанию выставляется уровень два (level two).

Последний шаг - это сказать XJTAG как сконфигурировать XJLink для взаимодействия с тестируемой платой. Демонстрационная плата сконфигурирована так, чтобы использовать распиновку по умолчанию под названием "XJTAG". Нужно выбрать её и включить подачу питания по USB:

- На левой панели окна XJDeveloper активируйте раздел Pin Mapping
- В выпадающем списке Current Pin Mapping выберите XJTAG
- Щёлкните правой клавишей мыши по контакту 1, это питание, и выберите Power On
- Нажмите кнопку Apply
- Сохраните проект при помощи кнопки Save на панели инструментов окна XJDeveloper

Для запуска автоматического теста на разрывы/закоротки (Connection Test):
- На левой панели окна XJDeveloper перейдите в раздел Run Tests
- Нажмите кнопку Run

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

- На левой панели окна XJDeveloper перейдите в раздел Setup и нажмите Connections
- В области Connections нажмите кнопку Add
- В появившемся диалоговом окне Add Connection выберите опцию Pin to Pin
- В поле From введите IC2.E4
- В поле To введите IC2.D3
- Нажмите OK
- Сохраните проект при помощи кнопки Save на панели инструментов окна XJDeveloper

- Вернитесь в раздел Run Tests и еще раз нажмите кнопку Run, на этот раз тест должен пройти без ошибок.

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

Обрыв - Open circuit error


Для имитации обрыва цепи нужно вынуть одну из перемычек JP1 - перемычки показаны на иллюстрации ниже:

Эти перемычки разрывают цепи между двух ПЛИС. Снятие ближней к синему поворотному элементу перемычки приведёт к появлению сообщения как на иллюстрации ниже. Снятие остальных перемычек вызовет ошибку "разрыв цепи" (open circuit error), но при этом снятие перемычки на контактах 3 и 4 не приведёт к появлению ошибки в процессе автоматического текста на разрывы/закоротки (connection test), но приведёт к появлению ошибки в процессе отдельного тестирования инвертора, которое будет проведено в одном из последующих разделов данного тренинга.

Автоматический тест на разрывы/закотортки не пройден. На выходе имеем следующие данные:

Для получения дополнительной информации о найденной неисправности, требуется изменить так называемый "уровень" (level), по умолчанию он равен 2:

- В разделе Run Tests нажмите на кнопку Options..., расположенную внизу самой правой панели окна.
- В появившемся диалоговом окне Enhanced Testing Options перейдите в закладку Connection Test
- Переключите debug output level из положения level 2 в положение level 0. Level 0 - означает выдавать вообще всю доступную информацию, без какой-либо фильтрации - "уровень фильтрации ноль".
- Нажмите кнопку OK

Запустите тест ещё раз. Должно появиться следующее:

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

Первый тест послал значение 0 в контакт 42 компонента IC3 и, пока этот контакт удерживал этот 0, другой контакт, номер F5 компонента IC2, подключенный к этой-же логической цепи, при чтении выдавал 1. Звёздочка в конце строки означает, что такое поведение соответствует разрыву в цепи.

Тире означает, что в данный контакт в данном тесте ни какие данные не записывались.

Замыкание - Short circuit


Демонстрационная плата позволяет эмитировать непредусмотренное короткое замыкание между цепями. Для этого используется перемычка замыкающая 2-й и 3-й контакты в центральном столбце элемента JP6/7, как на иллюстрации ниже:

Также можно замкнуть контакты и на JP4/5, но это нужно делать очень аккуратно. Ближайшие к посадочному месту для DIP корпуса столбцы контактов компонентов JP6/7 и JP4/5 имеют напряжение 0V - подключены к земле; самые дальние столбцы - 3.3V - подключены к источнику питания. Соответственно, если случайно замкнуть контакты из двух крайних столбцов - получится короткое замыкание источника питания. Используйте только поставляемые перемычки.

При замыкании двух контактов в среднем столбце на JP6/7 или JP4/5 верните фильтр выдаваемой информации (debug output level) в положение Normal:

- На самой правой панели раздела Run Tests нажмите кнопку Options...
- В появившемся диалоговом окне Enhanced Testing Options перейдите в закладку Connection Test
- Переместите ползунок фильтра выходной информации (debug output level) из положения 0 (All - выдавать всё - не фильтровать), в положение 2 (Normal - выдавать типовое количество информации)
- Нажмите кнопку OK

Запустите тест на разрывы/закоротки (connection test) ещё раз. Результат должен быть таким:

Если всё ещё непонятно где источник неисправности (он на JP6, контакты 18 и 16, если замкнуто как на иллюстрации выше), необходимо на физической плате проверить пары тех контактов на одном и том же компоненте, которые подключены к показанным цепям DIL11 и DIL12. В результате имеем:

- CN3 - контакты 12 и 13
- IC5 - контакты 25 и 26
- IC3 - контакты 19 и 20
- JP6 - контакты 18 и 16

"Залипание" - Stuck-at


Для имитации "залипания" сигнала в постоянное значение 0 или 1, замкните перемычкой одну из цепей DIL0 - DIL19, которые подключены к центральным столбцам компонентов JP4/5 и JP 6/7, с нулём или питанием - крайние столбцы тех же JP4/5 и JP 6/7 и запустите тест ещё раз.

Если перемычка размещена как на иллюстрации выше, то результат должен быть таким:

Неявное замыкание - Indirect Shorts


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

Например, цепи DIL16 - DIL19 соединены с шиной адреса на RAM через резисторы. Если замкнуть DIL16 на DIL17 при помощи контактов 1 и 3 компонента JP3, то это приведёт к неявной закоротке. Очень важно иметь возможность диагностировать неисправности такого типа, т.к. на платах часто располагаются целые пакеты резисторов.

При замыкании контактов 1 и 3 на JP3 появится следующая диагностика:

Ненайденные неисправности


Существуют некоторые типы неисправностей которые автоматический тест на разрывы/закоротки (connection test) найти не в состоянии. Например, не получится обнаружить обрыв на JP3 и JP2 т.к. RAM не поддерживает JTAG интерфейс. Для выявления такого рода неисправностей в XJTAG предусмотрено так называемое функциональное тестирование компонентов без поддержки JTAG. Для этого требуется для каждого компонента завести отдельный файл описывающий сценарий тестирования. Подробнее - в следующих разделах тренинга.

Составные части комплекса