SYNCHRONIZATION OF AGENT MOVEMENTS FOR THE FORMATION OF GEOMETRIC STRUCTURES IN THE CASE
OF THERMAL MOTION EQUIVALENT METHOD
E.A. Heiss, O.O. Morozov, A.V. Kozyr
In this paper we propose a solution to the problem of forming geometric structures (formation problem) for a swarm functioning by the method of quasi-thermal motion of agents. The problem is solved by introducing a component of synchronization of their movements into the control system of each agent (quadrocopter). The solution takes into account the requirements of this method to the motion parameters of the agents before, during and after formation. The results of numerical simulation using a linear model of a quadrocopter agent are given, showing the performance of the proposed system of synchronization of motion of coupled agents.
Key words: group control, formation, quasi-thermal motion, motion synchronization.
Heiss Eduard Albertovich, junior researcher, [email protected], Russia, Tula, Tula State University,
Morozov Oleg Olegovich, candidtate of technical sciences, docent, [email protected], Russia, Tula, Tula State
University,
Kozyr Andrey Vladimirovich, candidtate of technical sciences, senior researcher, [email protected], Russia, Tula, Tula State University
УДК 004
DOI: 10.24412/2071-6168-2023-11-277-278
ВЫЯВЛЕНИЕ ДЕФЕКТОВ ПРИ ТЕСТИРОВАНИИ АЛГОРИТМОВ ЦИФРОВЫХ УСТРОЙСТВ
НА БАЗЕ ПЛИС
И.А. Панков
В работе рассмотрена проблема поиска и анализа дефектов, обнаруживаемых в цифровых устройствах для программируемых логических интегральных схем (ПЛИС). Предложен подход к тестированию цифровых устройств на базе ПЛИС. Рассмотрена имитация дефектов для алгоритмов в ПЛИС на основе программных искажений. Разработан алгоритм обнаружения дефектов в цифровых устройствах на базе ПЛИС и представлены экспериментальные результаты.
Ключевые слова: цифровые устройства, тестирование ПО, ПЛИС, имитация неисправностей.
Введение. В настоящее время разработчики используют специализированные инструменты проектирования для ПЛИС, такие как среда проектирования Vivado фирмы Xilinx, Quartus Prime фирмы Intel. Чтобы оценить потребление ресурсов и производительность алгоритма на ПЛИС. При разработке цифровых алгоритмов особое значение имеет выбранная аппаратная платформа, которая задает структуру системы тестирования. В силу высокой степени интеграции и разнородности решаемых задач, проведение тестирования модулей обработки сигналов осуществляется с применением имитации неисправностей [1]. Существующие алгоритмы имитации неисправностей, применяемые для микроконтроллеров и микропроцессоров, не применимы для тестирования ПЛИС [2]. Решение задачи интеграции имитации неисправностей (в том числе с использованием программной техники фаззинга) к ПЛИС предполагает необходимость разработки алгоритма для проведения тестирования [3].
Постановка задачи. Целью тестирования является осуществление анализа дефектов для опытных образцов проектируемых цифровых устройств, содержащих в программируемую логику. Для тестирования алгоритмов цифрового устройства на базе ПЛИС необходимо адаптировать алгоритмы имитации неисправностей для выбранной аппаратной платформы [4]. Для этого разработана архитектура системы инъекции неисправностей и алгоритм проведения испытаний по внесению искажений в работающее устройство.
Структура стенда проведения испытаний. Стенд состоит из 3 ПЛИС внедрения неисправностей, исполняющегося алгоритма, верифицирующая) и АРМ оператора. Чтобы провести тестирование, предлагается стенд имитации неисправностей (рис. 1).
Для проведения экспериментального тестирования используются следующие типы вводимых ошибок Ф1
- Ф4:
Ф1 - Зависание в ошибке (Stuck-at-faults) - позволяет моделировать большую часть отказов, возникающих в интегральной схеме, например, отказы в LUT (таблицами поиска); Ф2 - Зависание в открытом состоянии (Stuck-open) - позволяет имитировать случайные межсоединения, путем случайного переключения соединения; Ф3 - Задержка сигнала, позволяет моделировать неисправности, возникающие из-за нарушения синхронизации; Ф4 -одиночное влияние частицы (single-event upset).
ПЛИС-1 выполняет функцию внесения неисправностей при различных сценариях имитации дефектов в режиме на основе списка соединений(netlist) и в режиме на основе анализа памяти (memory fault simulation).
На ПЛИС-2 загружен алгоритм цифровой обработки, над которым проводится эксперимент по внедрению неисправности. ПЛИС-3 фиксирует результаты выполнения алгоритма и отправляет эти данные на ПЭВМ. После чего в общем случае результаты выполнения алгоритма ПЛИС сопоставляются с результатами тестового модуля на ПЭВМ. Далее на основе полученных данных формируется статистика, которая позволит выявить расхождения от эталонной модели и сформировать метрики оценки текущей системы [5].
В режиме имитации неисправности на основе списка соединений вносятся на уровне логической схемы ПЛИС и исследуются возможные дефекты в логических структурах, соединениях и элементах. Для каждого указанного в программном интерфейсе приложения (API) типа соединения или элемента схемы генерируются неисправности, такие как короткое замыкание, обрыв, инверсия сигнала. Имитатор проверяет, как эти неисправности влияют на поведение системы в целом и какие ошибки могут возникнуть на выходе.
В режиме имитации на основе анализа памяти имитатор неисправностей выполняет анализ дефектов, связанных с блоками памяти в ПЛИС, такими как блоки RAM или FIFO буферы. Неисправности в памяти могут включать в себя битовые ошибки (Ei), ошибки адресации (E2), задержки в доступе к данным и другие аномалии (Ез). Имитатор в этом режиме проверяет, как эти неисправности могут повлиять на чтение и запись данных в память и может проверять корректность чтения/записи.
Структурная схема программно-аппаратного обеспечения для внесения инъекций представлена на рисунке 2.
Логика внедрения неисправностей используется в виде параметризируемого HDL модуля. В архитектуре данного типа не применяются уникальные аппаратные решения, такие как BRAM, PLL и ЦП, что позволит реализовать данный HDL-дизайн на любом устройстве FPGA. Модуль введения неисправностей работает путем внедрения в исследуемый дизайн отдельных структур на основе заданного списка соединений в соответствии с предопределенной конфигурацией в оболочки API на ПЭВМ. Для каждой исследуемой структуры используется только один блок ввода ошибок, который может изменить соответствующий сигнал.
Основными блоками ввода ошибки (F1-F4) управляет блок ввода единичных неисправностей, который можно параметризировать в соответствии с текущей задачей. Блок ввода единичных неисправностей подключается к ПЭВМ по UART и позволяет менять конфигурации вводимых ошибок и контролировать работу системы. Модуль введения неисправностей загружается на ПЛИС-1 и содержит в себе логику инъектора неисправностей, причем воздействия вносятся на ПЛИС-2 с помощью внедряемых регистров в указанные части исполняемого алгоритма, этот процесс показан на рисунке 3.
ПЛИС-1:Внедрение воздействия
Модуль введения неисправностей
Блок ввода ошибки (F1-F4) конфигурация
ПЛИС-2:Исполняемый алгоритм
РегистрыЙ ^
Исполняемый алгоритм
Рис. 2. Структурная схема программно-аппаратного обеспечения эксперимента
278
Описание алгоритма анализа дефектов ПЛИС. С целью определения места возникновения дефекта предлагается алгоритм на основе внедрения неисправностей который представлен на рисунке 2.
Рис. 2. Алгоритм работы инъекции неисправности
Алгоритм, предложенный для определения места возникновения дефекта, представляет собой структурированный подход, основанный на внедрении неисправностей. Процесс исследования и диагностики начинается с выполнения следующих этапов:
Этап 1. Инициализация ТезАепеН: настройка и инициализация тестовой среды, предоставляющей инструментарий для проверки функциональности и устойчивости цифрового дизайна в условиях возможных ошибок. Производится подключение элемента фаззинга (искажения входных данных блока) [3,6] к входам ТезЛепеН: в данном этапе возможно подключение блока фаззинга, предназначенного для генерации различных тестовых сценариев и данных, используемых при проведении тестирования.
Этап 2. Определение цифровых сигналов, характерных для ошибок системы: выделение сигналов, которые могут служить индикаторами наличия или отсутствия дефектов в системе. Инициализация параметров инъекции: установка параметров, определяющих характеристики инъекции ошибок, таких как тип ошибок, места инъекции, частота инъекции и другие.
Этап 3. Загрузка воздействий по сценариям Ф1-Ф4: загрузка сценариев воздействий (Ф1-Ф4), определяющих типы и места возможных ошибок. Эти сценарии могут быть предопределены или формироваться динамически в соответствии с требованиями тестирования.
Этап 4. Генерация ошибки Е1-Е4: подготовка к генерации ошибок, включая проверку возможности возникновения ошибок в указанной области поиска. Производится проверка наступления момента времени для внедрения ошибки. Инъекция ошибки: при наступлении момента инъекции фактически происходит внедрение ошибки. Включает в себя изменение состояния цифровых сигналов, модификацию значений регистров и другие манипуляции с аппаратурой.
Этап 5. Проверяется, была ли обнаружена ошибка в результате инъекции. Сохранение результатов инъекции: Производится сохранение данных о месте и способе внедрения ошибки для последующего анализа. Проводится проверка завершения процесса диагностики. Результаты инъекции и диагностики передаются на персональный компьютер (ПЭВМ) для дальнейшего анализа.
Этап 6. Внедрение блока "имитатора" с заданным типом ошибки: производится загрузка блока, эмулирующего конкретный тип ошибки. Запуск работы устройства с реальным сигналом: устройство запускается с внедренным блоком и имитатором ошибки. Диагностика места возникновения ошибки: Осуществляется анализ результатов для определения места возникновения ошибки. Проверяется, был ли обнаружен дефект в системе.
Этот алгоритм представляет собой циклический процесс тестирования и диагностики, который может быть использован для поиска и изоляции неисправностей в цифровом дизайне на FPGA. Важным аспектом является генерация разнообразных тестовых сценариев и механизм инъекции ошибок для проверки стойкости системы к различным аппаратным сбоям.
В результате тестирования были введены и обнаружены следующие виды ошибок, которые представлены
в таблице.
Результаты испытаний
Тип внесения ошибки Место внесения ошибки Процент обнаружений при числе повторений n <100 Процент обнаружений при числе повторений n >100
1 Ф1 A1 40 70
A2 45 20
Аз 60 10
2 Ф2 В1 15 50
В2 61 25
Вз 44 32
3 Ф3 С1 26 43
С2 64 54
Сз 83 65
4 Ф4 D1 11 56
D2 25 67
D3 41 69
Ф1 - Зависание в ошибке (Stuck-at-faults): A1 - отказ в LUT; A2 - отказ в регистре; A3 - отказ в мультиплексоре в схеме маршрутизации; Ф2 - Зависание в открытом состоянии (Stuck-open) Bi Открытая линия передачи данных; В2 - Отказ в коммутационном блоке маршрутизации; В3 Отказ в блоке мультиплексирования на входе в блок памяти. Ф3 - Задержка сигнала (Delay): C1 - задержка в блоке сравнения; C2 - задержка в блоке управления; C3 - задержка в линии передачи тактовых импульсов. Ф4 - Одиночное влияние частицы (Single-event upset): D1 - изменение значения регистра; D2 - изменение состояния выхода порта; D3 - изменение значения входа ЦОС.
Заключение. Поиск дефектов цифровых устройств на базе ПЛИС является сложной задачей, поэтому для тестирования и поиска ошибок проектирования применяется алгоритм введения неисправностей, основанный на программных инъекциях группы типов основных дефектов и анализа их проявления при испытании на разработанном СПО. Экспериментальные результаты показывают, что совмещение алгоритмов имитации с алгоритмами эмуляции (testbench) с модулями анализа на ПЭВМ позволяют выявить ошибки проектирования (до 70% вносимых ошибок). В дальнейшем планируются доработать полученный алгоритм для поиска ошибок в схемах с большим числом соединений и повышение скорости обнаружения ошибок за счет алгоритмов машинного обучения.
Список литературы
1. Christian Fibich, Stefan Tauner, Peter Rossler, Martin Horauer, Martin Matschnig, Herbert Taucher. FIJI: Fault Injection Instrumenter. 2023. [Электронный ресурс] URL: https://link.springer.com/content/pdf/10.1186/s13639-019-0088-7.pdf (дата обращения 10.05.2023).
2. Чекмарев С.А. Метод инъектирования сбоев для тестирования сбоеустойчивых микропроцессоров типа система на кристалле 05.13.05. Красноярск, 2015. 135 c.
3. Timoty Trippel, Kang G. Shin [el al]. Fuzzing Hardware Like Software. 2022. [Электронный ресурс] URL: https://www.usenix.org/system /files/sec22- trippel.pdf (дата обращения 10.05.2023).
4. Русаков М.А. Многоэтапный анализ архитектурной надежности в сложных информационно-управляющих системах: дис. канд. техн. наук. Красноярск, 2005. 168 с.
5. Tasiran S., Keutzer K. Coverage metrics for functional validation of hardware designs // IEEE Design & Test of Computers. 2001. P. 36-45. DOI: 10.1109/54.936247.
6. Ковалев И.В. Анализ проблем в области исследования надежности программного обеспечения: много-этапность и архитектурный аспект // Вестник СибГАУ. 2014. № 4. C. 78-92.
Панков Илья Анатольевич, аспирант, [email protected]. Россия, Омск, Омский государственный технический университет
DETECTING DEFECTS WHEN TESTING ALGORITHMS DIGITAL DEVICES BASED ONFPGA
I.A. Pankov
The paper examines the problem of searching and analyzing defects found in digital devices for programmable logic integrated circuits (FPGAs). An approach to testing FPGA-based digital devices is proposed. The simulation of defects for algorithms in FPGAs based on software distortions is considered. An algorithm for detecting defects in FPGA-based digital devices is developed and experimental results are presented.
Key words: digital devices, software testing, FPGA, fault simulation.
Pankov Ilya Anatolyevich, postgraduate, pankov99ai@yandex. ru, Russia, Omsk, Omsk State Technical
University