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

Примеры сценариев тестирования компонент

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

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

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

pushbutton.xje


Для редактирования XJEase файла компонента, в разделе Setup окна XJDeveloper нужно нажать кнопку Setup.

- Отредактируйте pushbutton.xje вставив следующий текст:

Функция ReadSwitch использует связь между кнопкой и компонентами из JTAG цепи для чтения значения с "выходного" контакта кнопки, чтение выполняется при помощи строки начинающейся с SET.

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

Функция Test при возврате значения использует константу RESULT_PASS если в ответ на предложение нажать или отпустить кнопку функция "видит" переключения значений цепи подключённой к кнопке или константу RESULT_FAIL, если оператор нажал любую клавишу на клавиатуре.

Константы RESULT_PASS и RESULT_FAIL являются глобальными и определены в globals.xje. Константы определённые в этом файле могут быть сконфигурированы в окне Options, вызываемом при помощи меню Tools окна XJDeveloper.

Повторим ещё раз: любой тест, перед тем как быть запущенным, должен быть добавлен в список XJRunner Test List.

- Нажмите кнопку Save внизу области Test Device Files.
- Перейдите в раздел Run & Deploy на самой левой панели окна XJDeveloper, затем нажмите кнопку XJRunner Setup.
- Нажмите кнопку New... в нижней части области XJRunner Tests
- В поле Test Name введите Pushbutton tests
- Нажмите кнопку Add Device Function
- В появившемся окне Available Device Functions в поле Filter введите SW
- Разверните All Components и выберите SW2 и SW3
- В области Function Selector выберите Test
- Нажмите OK
- Нажмите OK
- Сохраните проект при помощи кнопки Save на панели инструментов окна XJDeveloper

Для того, чтобы тест запустился, его необходимо включить:

- Перейдите в раздел Run Tests

В данный момент включен только автоматический тест на разрывы/закоротки (Connection Test), такая конфигурация была ранее выбрана как конфигурация по умолчанию.

- Щёлкните правой клавишей по пункту Connection Test в выберите Do Not Run

Для включения тестов кнопок установленных на демонстрационной плате нужно дважды щёлкнуть левой клавишей мыши по каждому пункту из раздела Pushbutton.

Включение и выключение тестов в разделе Run Tests отличается от выбора тестов по умолчанию в разделе XJRunner Setup тем, что включенные тесты не будут экспортированы в XJRunner при генерации пакета (XJPacked) и состояние включено/выключено не будет сохранено при выходе из XJDeveloper.

Запустите тесты кнопок. Они пройдут успешно если в процессе их выполнения не нажимать клавиши на клавиатуре.

LED.xje


- В окне XJDeveloper в разделе Test Device Files дабавьте в файл LED.xje Следующий текст:

Когда тестировались кнопки расположенные на демонстрационной плате, тест заключался в том, что скрипт читал значение контакта JTAG совместимого компонента соединённого с кнопкой, значение менялось в зависимости от того, нажата кнопка или нет. Теперь же, при тестировании светодиода (LED), скрипт будет записывать значения в контакт JTAG совместимого компонента соединённого со светодиодом, а оператор будет наблюдать за поведением тестируемого компонента.

Ядром теста светодиода является функция SetLED. Входным параметром для этой функции является значение определяющее какой цвет будет включен на светодиоде: целое число типа integer представляется как массив бит, при этом значение RED_LED - красный - выставляет выставляет нулевой бит, GREEN_LED - зелёный - выставляет первый бит. Константы, определённые перед функцией SetLED, помогают сделать сценарий теста более наглядным.

Скрипт на языке XJEase в функции Test переключает светодиод в зелёный и красный цвета. Функция возвращает RESULT_PASS если оператор нажимает на клавиатуре пробел, он должен сделать это если видит циклично-переключающийся цвет, или RESULT_FAIL, если оператор нажал на клавиатуре любую другую клавишу. Константы RESULT_PASS и RESULT_FAIL определены в globals.xje.

- Перейдите в раздел Run & Deploy на левой панели окна XJDeveloper, затем нажмите пункт XJRunner Setup
- В разделе XJRunner Tests нажмите кнопку New...
- В поле Test Name введите LED tests
- Нажмите кнопку Add Device Function
- В появившемся окне Available Device Functions разверните пункт Suggested Diodes и выделите все девять светодиодов (LED)
- В области Function Selector выберите Test
- Нажмите OK
- Нажмите OK
- Сохраните проект при помощи кнопки Save на панели инструментов окна XJDeveloper
- Перейдите в раздел Run Tests
- В самой правой панели в меню Select выберите None

- В списке тестов дважды щёлкните по пункту LED tests
- Запустите тестирование. Если в процессе работы теста оператор нажмёт на клавиатуре клавишу пробел, то тест завершится успешно, а если нажмёт любую другую клавишу, то тест завершится ошибкой.

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