Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методическое пособие 751

.pdf
Скачиваний:
10
Добавлен:
30.04.2022
Размер:
7.53 Mб
Скачать

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

Инструменты для ввода неисправностей разрабатываются и различаются в зависимости от того, как они вводят неисправности в целевую систему. Методы и инструменты внедрения неисправностей классифицируются, отвечая на четыре основных вопроса: как вводить неисправность? (методология внедрения неисправности), когда вводить неисправность? (время для активации неисправности), для каких типов неисправностей? (для каких моделей неисправностей разработан инструмент). Методы внедрения неисправностей, основаны на аппаратном и программном обеспечении [1].

Аппаратное внедрение неисправностей использует дополнительное оборудование для вставки неисправностей в исследуемую систему. Инструменты HWFIT делятся на две категории в зависимости от неисправностей и их места их ввода.

HWFIT с контактом: в этих типах методов и инструментов инжектор неисправности находится в контакте с целевой системой, на пример штыревой метод активного пробника или метод вставки гнезда.

HWFIT без контакта: в этих типах инструментов инжектор неисправности не имеет физического контакта с исследуемой системой, например, тяжелые ионные излучения и электромагнитные помехи [2].

Аппаратные инструменты для ввода неисправностей обладают определенными преимуществами и недостатками по сравнению с другими методами и инструментами:

а)

Преимущества:

 

1)

используя радиационную методологию, он может вызвать не-

исправность в местах, которые другими способами создать невозможно;

2)работа проводится с реальным оборудованием;

3)подходит для моделей с низким уровнем отказов;

4)эксперименты проходят быстро;

б) Недостатки:

1)представляют высокий риск повреждения;

2)нужно ограничивать место ввода неисправностей;

3)для проведения экспериментов требуется специализированное оборудование;

4)наблюдаемость и управляемость ограничены.

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

90

Эти сбои возникают в расположении, памяти, шинах, регистрах, сбоях дисковой системы, сетевой связи и многих других местах. Инструменты SWFIT можно классифицировать по способам внесения неисправностей, т. е. по времени компиляции и времени выполнения [3].

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

Преимущества и недостатки программных методов ввода неисправностей

[4]:

а) Преимущества:

1)не требует специального оборудования;

2)низкая стоимость внедрения;

3)доступ к тем местам, которые недоступны для аппаратных средств ввода неисправностей;

4)эксперименты проводятся почти в реальном времени;

б) Недостатки:

1)ограниченный набор моментов ввода;

2)неисправности нельзя вводить в места, недоступные для программного обеспечения;

3)очень сложно реализовать моделирование постоянных неисправностей;

4)ограниченная наблюдаемость и управляемость;

5)выполнение ввода неисправностей программным методом может повлиять на поведения системы.

Внедрение неисправностей на основе моделирования включает построе-

ние имитационной модели анализируемой системы, включая подробную имитационную модель используемого процессора. Это означает, что ошибки или отказы моделируемой системы работают в соответствии с заданным распределением. Методы внедрения неисправностей на основе моделирования (SBFI) можно разделить на две категории: изменение кода (CM) и команда симулятора

(SC) [5]:

метод модификации кода – этот метод требует модификации кода HDL путем добавления некоторых моделей неисправностей, таких как застревание, переворот битов, изменение и саботаж.

метод команд симулятора – в этом методе сигнал или значения переменных моделей HDL изменяются с помощью команд симулятора.

У этих инструментов есть определенные преимущества и недостатки: а) Преимущества:

91

1)нет риска повреждения исследуемой системы;

2)экономически выгодно, потому что не используется реальное оборудование;

3)более высокая наблюдаемость и управляемость во время внесения неисправностей;

4)моделирование как кратковременных, так и постоянных неисправностей выполняется с легкостью;

5)поддерживает все уровни абстракции;

б) Недостатки:

1)разработка модели требует больших усилий;

2)время моделирования увеличивается с увеличением размера

схемы;

3)точность модели влияет на результаты эксперимента.

На уровне кода методы внедрения неисправностей для проектов FPGA обычно относятся к категории SBFI. В литературе есть много инструментов, разработанных и доступных для VHDL, например, VERIFY, (MEFISTO-C, HEARTLESS, VFIT, FTI), FSFI и т. д. Все эти инструменты разработаны для проектов на основе VHDL с использованием методов SC, саботажа и изменений. Приложение Verilog PLI включает генерацию тестов во время моделирования неисправностей. Эта среда способна вводить неисправности, генерировать некоторые случайные шаблоны и проверять реакцию введенных неисправностей. В некоторых подходах модифицируется модуль проектирования верхнего уровня вместе с техникой команд симулятора.

При внедрении неисправностей на основе моделирования неисправности вводятся с использованием языков описания оборудования (HDL) и программного обеспечения для моделирования. Основным преимуществом таких подходов по сравнению с другими типами закачки неисправностей является большая наблюдаемость и управляемость чувствительной области SEU. Однако их главный недостаток - большая трудоемкость [6].

С другой стороны, внедрение неисправностей на основе ПЛИС позволяет ускорить эксперименты по эмуляции, а также обеспечить хорошую управляемость и наблюдаемость. Еще одно существенное преимущество - возможность вводить ошибки SEU / SET, поскольку для большинства современных сложных схем, таких как процессоры, может быть доступен код HDL. Методы инжекции неисправностей на основе ПЛИС стали широко использоваться для оценки частоты ошибок интегральных схем еще до их изготовления, исследуя, таким образом, эффективность реализованных радиационно-стойкие конструкций [7].

Несмотря на возможность транслировать VHDL в код Verilog и наоборот, большинство основанных на FPGA методов внедрения неисправностей используют синтезируемые модели VHDL исследуемой схемы. Существует очень мало инструментов, которые выполняют внедрение неисправностей в систему, описанную в Verilog.

92

Ультрасовременные инструменты и методы на основе ПЛИС (моделирование / эмуляция или гибридные) для ввода разломов [8]:

FITO (средство ввода неисправностей на основе ПЛИС): постоянные и переходные неисправности вводятся в логические вентили тестируемой схемы. Процесс внесения неисправностей основан на добавлении некоторых дополнительных портов и соединений к развязкам исследуемой схемы;

FIDYCO (Гибкий встроенный инжектор для проверки зависимости во время выполнения с языком программирования) представляет собой комбинацию аппаратного и программного обеспечения для внедрения неисправностей, где аппаратная часть реализована на VHDL на ПЛИС, а программное обеспечение на ПК. Основная цель этого метода – разработка гибкой и открытой системы, способной тестировать различные компоненты;

Flipper – это платформа эмуляции SEU, которая нацелена на конфигурационную память тестируемой FPGA посредством частичной реконфигурации;

SCFIT (метод инжекции разломов на основе скрытых компонентов) – это инструмент инжекции неисправностей, основанный на SEmulation (моделирование / эмуляция). Он использует сценарии TCL для доступа к различным ресурсам Altera FPGA через кабель JTAG;

FUSE (внедрение неисправностей с использованием SEmulation) – это инструмент внедрения неисправностей на основе SEmulation, который сочетает

всебе производительность прототипа, реализованного на оборудовании, и гибкость, а также наглядность стандарта моделирования HDL. Неисправности вводятся симулятором в сигнал или переменные RTL с использованием либо смоделированной модели HDL, либо списка соединений, реализованного внутри FPGA, чтобы ускорить процесс внедрения неисправностей [9];

FT-UNSHADES (Fault Tolerant – система отладки аппаратного обеспечения Университета Севильи) представляет собой эмулятор FPGA с устранением неисправностей, использующий технику частичной реконфигурации. FTUNSHADES вводит ошибки, используя технику чтения-изменения-записи битов конфигурации;

FIFA (Fault-Injection Fault Analysis Tool): использует саботажников для ввода SEU, MCU и застраивания на уровне RTL. Внутри ПЛИС реализованы две версии тестируемой схемы;

метод DFI (Direct Fault-Injection) – этот инструмент используется для имитации последствий SEU, возникающих в ячейках памяти ЦП. Он основан на модификации архитектуры схемы на уровне RT. Он может выдавать сбои в течение одного тактового цикла, пока тестируемая схема выполняет прикладную программу.

Также существуют методы, которые вводят ошибки в список соединений тестируемой схемы.

93

Метод воссоздает сбой называемый перевернутый бит для расчета программных ошибок сбоя единичного события (SEU). SEU возникает, когда бит изменяется с логики «0» на логику «1». Чаще всего в качестве модели неисправности с перевернутым битом используют вентиль XOR.

FISA – это блок управления неисправностями, основанный на логике демультиплексора. Термин «блок FISA» означает блок ввода, выбора и активации неисправностей. Он предназначен для исследования нагнетания неисправностей, чтобы проверить нагнетание неисправностей, как показано на рис. 1.

Рис. 1. Блок управления FISA на основе DEMUX

Сигнал FIS имеет логическое значение «1». Когда выбранному порту назначается значение, тогда эта неисправность выбирается и активируется в целевой системе. Функциональный анализ ввода неисправностей в рамках RASPFIT включает код блока FISA в неисправную копию целевого проекта. Для больших проектов по мере увеличения количества введенных неисправностей также увеличивается количество линий отбора этих ошибок.

wire fis = ‘1’; reg f0, f1, f2;

always @ (select) begin if (select == 2’d0) begin f0 = fis; f1 = 0; f2 = 0; end

else if (select == 2’d1) begin f0 = 0; f1 = fis; f2 = 0; end else if (select == 2’d2) begin f0 = 0; f1 = 0; f2 = fis; end else begin

f0 = 0; f1 = 0; f2 = 0; end

94

end

Демультиплексор может быть разработан на Verilog HDL в различных вариациях, например, с использованием операторов case или if-else. Демультиплексор - это компонент, который содержит один входной порт (в данном случае сигнал инжекции неисправности (FIS)), выбирающий один из множества выходов данных, который подключен к входному порту. Таким образом, значение FIS достигает конкретной неисправности и вносит свой вклад в SUT. Поскольку инструмент RASP-FIT генерирует ошибочную копию оригинального дизайна, нам необходимо вписать этот код в дизайн. Здесь следует отметить несколько моментов:

порт выбора неисправности (т. е. порт выбора) добавляется к неисправной копии в качестве входного порта, который используется для выбора конкретной неисправности для ввода и ее активации;

выбранный сбой активируется путем присвоения логического значения «1». Для этого в конструкцию добавляется переключатель FIS;

переменные ошибки f0, f1, ..., fn используются для присвоения значения «fis» в блоке always, поэтому эти переменные должны быть объявлены как переменные reg;

добавлен блок FISA на основе DEMUX для выбора и активации неисправности. Когда неисправность не активируется, схема выполняет ту же операцию, что и в исходной конструкции.

В качестве первой исследуемой схемы была выбрана схема, состоящая из простых логических элементов (рис. 2), нормальная работа которых показана на временной диаграмме (рис. 3).

Рис. 2. Простая логическая схема

Неизмененный код Verilog HDL простой логической схемы: module c17 (N1, N2, N3, N6, N7, N22, N23);

input N1, N2, N3, N6, N7; output N22, N23;

wire N10, N11, N16, N19;

95

nand NAND2_1 (N10, N1, N3); nand NAND2_2 (N11, N3, N6); nand NAND2_3 (N16, N2, N11); nand NAND2_4 (N19, N11, N7); nand NAND2_5 (N22, N10, N16); nand NAND2_6 (N23, N16, N19); endmodule

Рис. 3. Временная диаграмма работы простой логической схемы

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

module c17_1 (select, N1, N2, N3, N6, N7, N22_f1, N23_f1); input N1, N2, N3, N6, N7;

output N22_f1, N23_f1; wire N10, N11, N16, N19; input [1:0] select;

wire fis=1;

reg f0, f1, f2, f3; always @ (select) begin

if (select == 2'd0) begin f0=fis; f1=0; f2=0; f3=0; end else if (select == 2'd1) begin f0=0; f1=fis; f2=0; f3=0; end else if (select == 2'd2) begin f0=0; f1=0; f2=fis; f3=0; end else if (select == 2'd3) begin f0=0; f1=0; f2=0; f3=fis; end else begin

f0=0; f1=0; f2=0; f3=0; end end

nand NAND_1(N10, f0^N1, F1^N3); nand NAND_2(N11, f2^N3, f3^N6);

96

nand NAND_3(N16, N2, N11); nand NAND_4(N19, N11, N7); nand NAND_5(N22_f1, N10, N16); nand NAND_6(N23_f1, N16, N19); endmodule

Временная диаграмма работы простой логической схемы после внесения неисправностей представлена на рис. 4.

Рис. 4. Временная диаграмма работы простой логической схемы после внесения неисправностей

Внеся изменения в код исследуемой логики начинаем ее вшивать отладочную плату. По итогу мы получим в дополнении к нашей прошлой схеме еще один вход «select», данный вход является двух битный и в зависимости от поданного сигнала, с помощью оператора условия «if-else» мы определяет в какой участок нашей схемы будет введена наша неисправность.

В ходе данной работы было проведено исследование влияния одиночных сбоев (SEU), на различные схемы, выполненные в базисе ПЛИС. А также исследованы существующие методики ввода неисправностей с указанием достоинств и недостатков рассмотренных методик. В качестве основной методики проведения моделирования влияния одиночных сбоев на поведение различных схем, собранных в базисе ПЛИС, была выбрана методика FITO которая включает в себя как изменение программного кода, так и добавления дополнительных элементов. Эта методика показала себя как наиболее простой, быстрый, доступный и наглядный метод симуляции одиночных сбоев. В качестве исследуемой ПЛИС была выбрана микросхема EP1C3T144C8 которая входит в состав отладочной платы LESO, данный тип микросхемы был выбран как наиболее бюджетный и от того наиболее распространённый вариант.

Также были проведены исследования аппаратного метода ввода неисправностей с помощью программного инструмента, входящего в программу

Quartus Prime 18, Fault Injection Debugger. Поскольку данный инструмент ис-

97

следует влияние одиночных сбоев на ПЛИС в реальном времени, то схема EP1C3T144C8 не подходит так как у нее не имеется поддержки данной функции, а также она не входит в перечень доступных схем в библиотеке Fault Injection Debugger и поэтому была выбрана схема 5SGXEA3K2F40C3, но ввиду ее высокой стоимости и низкой распространенности все исследование возможностей данного инструмента сводится к описанию необходимых подготовительных работ для начала ввода и анализа влияния SEU на работу микросхемы 5SGXEA3K2F40C3. Заключительной частью стало исследование способов защиты и исправления мягких ошибок, которое представлено обзором разных методик защиты, а также построением собственной схемы детектирования неисправностей на основе мультиплексоров.

Литература

1.Грушвицкий Р. И. Проектирование систем на микросхемах с программируемой структурой: учеб. пособие / Р. И. Грушвицкий, А. Х. Мурсаев, Е. П. Угрюмов. – 2-е изд., перераб. и доп. – СПб. : БХВ-Петербург, 2006 – 736 с.

2.Угрюмов Е. П. Цифровая схемотехника / Е. П. Угрюмов – учебное пособие для вузов. – 3-е изд., перераб. и доп. – Спб.: БХВ – Петербург, 2010. – 810 с.

3.Browning J. S. Total dose characterization of a CMOS technology at high dose rates and temperatures / J. S. Browning, M. P. Connors, C. L. Freshman // IEEE Trans. Nucl. Sci. – 1988. – V. 35. № 6 – P. 1557-1562.

4.Winokur P. S. Predicting CMOS inverter response in nuclear and space environments / P. S. Winokur, K. G. Kerris, L. Harper // IEEE Trans. Nucl. Sci. – 1983. – V. 30 – P. 4326-4332.

5.Dodd P. E. Basic mechanisms and modeling of single-event upset in digital microelectronics / P. E. Dodd, L. W. Massengill // IEEE Trans. Nucl. Sci. – 2003. – V. 50. № 3 – P. 583-602.

6.Post-Irradiation Effects (PIE) in integrated circuits / C. E. Barnes [et al,] // IEEE Trans. Nucl. Sci. – 1992. – V. 39. № 3. – P. 324-241.

7.Dependability analysis of a high-speed network using software-implemented fault injection and simulated fault injection / D. T. Stott [et al.] // IEEE Transactions on Computers, – 1998. – V. 47. № 1. – P. 108-119.

8.SEU critical charge and sensitive area in a submicron CMOS technology / C. Detcheverry [et al.] // IEEE Trans. Nucl. Sci. – 1997. – V. 44. № 6 – P. 2266-2273.

9.McLean F. B., Charge funneling in n and p-type Si substrates / F. B. McLean, T. R. Oldham // IEEE Trans. Nucl. Sci. – 1982. – V. 44. № 6. – P. 22662273.

Воронежский государственный технический университет

98

УДК 538.93

И.А. Непочатая, А.Н. Смирнов,О.В. Стогней

ВЛИЯНИЕ ТОЛЩИНЫ СЛОЕВ НИКЕЛЯ НА ЭЛЕКТРИЧЕСКИЕ И МАГНИТОРЕЗИСТИВНЫЕ СВОЙСТВА (Ni/ZrO)45 МНОГОСЛОЙНЫХ НАНОСТРУКТУР

Работа посвящена структурным особенностям, а также результатам исследования влияния изменения морфологии никелевых слоев на электрические и магниторезистивные свойства многослойной наносистемы Ni/ZrO2 с увеличением толщины слоя никеля.

Одной из наиболее важных проблем в стабильном развитии и реализации водородной экономики является реализация эффективных систем перевозки и хранения водорода. Одним из перспективных вариантов новых водородоадсорбирующих материалов являются наноструктуры, в которых проявления размерных эффектов приводят к увеличению скорости адсорбции и количества поглощаемого водорода, а также приводят к снижению температуры формирования гидридов. С этой точки зрения оптимальными материалами являются нанокомпозитные структуры гидридообразующий металл – диэлектрик катализатор. Однако исследования, проводимые в данном направлении, показали, что получение в таких системах композитной структуры проблематично, поскольку гидридообразующий металл, как правило, активно окисляется, что недопустимо. Альтернативным вариантом является использование многослойных наноструктур металл – диэлектрик, в которых каждый отдельный слой формируется независимо друг от друга. Были проведены исследования многослойной наноструктуры Mg/NbO, в результате которых выяснилось, что эта система является нестабильной относительно термических отжигов: при увеличении температуры NbO разлагается, а кислород окисляет магний, формируя MgO [1].

Вданной работе проведено исследование многослойной наноструктуры,

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

Поскольку никель является ферромагнетиком можно предполагать, что в зависимости от морфологии многослойной структуры в ней могут проявляться различные магнитные и магниторезистивные свойства. В работе исследовано влияние структуры и морфологии многослойной наноструктуры Ni/ZrO на электрические и магнитотранспортные свойства.

99