Методика обеспечения сбоеустойчивости программируемой логической интегральной схемы для ракетно-космического применения

Разработка методики обеспечения сбоеустойчивости при проектировании логики для программируемой логической интегральной схемы. Программное обеспечение на языке Си++. Расчет сверхбольшой интегральной схемы на основе применения кодов хемминга и арифметики.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 30.08.2016
Размер файла 530,4 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

{

QString result;

QTextOStream out(&result);

list<Drawing>::const_iterator it = drawings.begin();

while (it != drawings.end()) {

out << *it;

++it;

}

return result;

}

Связать поток со строковой переменной так же просто, как и связать поток с файлом.

void Gallery::readFromString(const QString &data)

{

QString string = data;

drawings.clear();

QTextIStream in(&string);

while (!in.atEnd()) {

Drawing drawing;

in >> drawing;

drawings.push_back(drawing);

}

}

Программное обеспечени считывает одним оператором одну строку данных приложения Электронная таблица. Функция readLine() удаляет завершающий символ '\n'. Функция QString::split() возвращает список строк, разбивая строку на части согласно обнаруженным символам--разделителям.

Программное обеспечение создает для ввода и вывода данных объекты QTextStream, полученные на базе устройств QIODevice, переданных конструктору. Поддерживаются три переменные для контроля состояния: счетчик новых строк, счетчик пробелов и текущую позицию столбца в текущей строке (для преобразования символов табуляции в правильное количество пробелов).

Синтаксический анализ выполняется в цикле while, на каждом шаге которого считывается из входного файла один символ. В этой функции в некоторых местах делаются тонкие вещи. Например, хотя TabSize устанавливается на значение 8, мы заменяем символы табуляции достаточно точным числом пробелов, чтобы достигнуть следующей метки табуляции, а не грубо заменять каждый символ табуляции восемью пробелами. При встрече символа новой строки, символа табуляции и пробелов мы просто обновляем состояние данных. Только при получении символа нового вида мы выполняем вывод данных, а перед записью символа записываем ожидающие вывода символы новой строки и пробелы (чтобы учесть пробельные строки и сохранить отступы) и обновляем состояние.

01 int main()

02 {

03 QFile inFile;

04 QFile outFile;

05 inFile.open(stdin, QFile::ReadOnly);

06 outFile.open(stdout, QFile::WriteOnly);

07 tidyFile(&inFile, &outFile);

08 return 0;

09 }

При чтении и записи простых ASCII--файлов и файлов с кодировкой ISO 8859-1 (Latin-1) можно непосредственно использовать программный интерфейс QIODevice вместо класса QTextStream. Поступать так имеет смысл только в редких случаях, поскольку в большинстве приложений требуется в некоторых случаях поддержка других кодировок и только QTextStream обеспечивает такую поддержку безболезненно. Если вы все-таки хотите писать текст непосредственно на устройство QIODevice, необходимо явно указать флажок QIODevice::Text в функции open(), например:

file.open(QIODevice::WriteOnly | QIODevice::Text);

Этот флажок говорит устройству QIODevice о том, что при записи в системе Windows необходимо преобразовывать символы '\n' в последовательность "\r\n". При чтении он говорит устройству, что необходимо игнорировать символы '\r' при работе на любой платформе. Теперь можно рассчитывать на то, что конец каждой строки обозначается символом новой строки '\n' вне зависимости от принятых на этот счет соглашений в операционной системе.

  • 2.3 Разработка алгоритма программы
    • Работа программы представлена на рисунке 2.3
    • Рис. 2.3
    • 2.4 Кодирование и тестирование программы
    • Программа кодировалась на языке Си++, используя библотеку Qt5x
    • Код файлов проекта представлен ниже.
    • fileReading.pro - файл проекта;
    • mainwindow.h - заголовочный файл главного окна;
    • mainwindow.cpp - файл исходных кодов главного окна;
    • main.cpp - main.cpp :);
    • mainwindow.ui - файл формы главного окна.
    • Итак, в файле mainwindow.h подключаем QFile для работы с файлами и QDebug дабы выводить считанную информацию в консоль.
    • #include <QFile>
    • #include <QDebug>
    • Также нам потребуется QByteArray, который нам будет возвращать класс QFile.
    • #include <QByteArray>
    • Ну и конечно же класс строки, без которого не обходится ни одна GUI программа.
    • #include <QString>
    • В этом же файле объявим функцию для чтения из файла:
    • public:
    • void readFile();
    • Теперь переходим в mainwindow.cpp. В этом файле определим нашу функцию.
    • void MainWindow::readFile()
    • {
    • QFile file("file.txt"); // создаем объект класса QFile
    • QByteArray data; // Создаем объект класса QByteArray, куда мы будем считывать данные
    • if (!file.open(QIODevice::ReadOnly)) // Проверяем, возможно ли открыть наш файл для чтения
    • return; // если это сделать невозможно, то завершаем функцию
    • data = file.readAll(); //считываем все данные с файла в объект data
    • qDebug() << QString(data); // Выводим данные в консоль, предварительно создав строку из полученных данных
    • }
    • В конструкторе file указывается имя файла, либо полный путь до файла, который необходимо считать, так что предварительно вам будет необходимо его создать.
    • Надеюсь закомментировал все наглядно.

#include "mainwindow.h"

#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :

QMainWindow(parent),

ui(new Ui::MainWindow)

{

ui->setupUi(this);

}

MainWindow::~MainWindow()

{

delete ui;

}

#include "mainwindow.h"

#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :

QMainWindow(parent),

ui(new Ui::MainWindow)

{

ui->setupUi(this);

}

MainWindow::~MainWindow()

{

delete ui;

}

  • 2.5 Интеграция программы в Actel Libero IDE
    • Интеграция программного обеспечения в Actel Libero IDE заключается в том что программное обеспечение запускается независимо от запуска Actel Libero. При преобразовании происходит перезапись файла EDIF проекта, поэтому преобразование должно быть столько же раз сколько происходит верификация проекта. Сам исполняемый файл программного обеспечения может быть где угодно, программное обеспечение запоминает указанный путь исходного EDIF.
  • Глава 3. Методика обеспечения сбоеустойчивости ПЛИС
    • 3.1 Разработка методики обеспечения сбоеустойчивости ПЛИС
    • Для обеспечения повышения сбоеустойчивости необходимо просто указать место файла EDIF в проекте и запустить преобразования после каждой верифкации и моделирования в проекте.
    • Программное обеспечении выполняет в процессе преобразования следующие операции:
    • 1.Нахождение в исходном файле связанных с резервируемым элементом цепей и добавлении к ним цепей схемы резервирования и мажорирования
    • (instance (rename Z__1I6_ "\$1I6\") (viewRef netlist (cellRef or2 (libraryRef &54SXA)))
    • (net (rename Z__1N17_ "\$1N17\") (joined
    • (portRef y (instanceRef Z__1I3_))
    • (portRef b (instanceRef Z__1I6_))
    • ))
    • (net (rename Z__1N22_ "\$1N22\") (joined
    • (portRef y (instanceRef Z__1I4_))
    • (portRef a (instanceRef Z__1I6_))
    • ))
    • (net C_c (joined
    • (portRef y (instanceRef Z__1I6_))
    • (portRef d (instanceRef C_pad))
    • ))
    • 3. Создания базы данных исходных цепей и резервированных
    • 4. Добавление элементов и цепей схемы резервирования и мажорирования согласно связей исходных цепей
    • Такой метод может послужить хорошим заделом в случае добавлении к схеме переключения сигнала ошибки для работы на более верхнем уровне корректирующих кодов.
    • Однако возникает проблема верификации при симуляции поведенческой модели и верификации при симуляции после разводки с учетом всех временных задержек при редактировании EDIF в рамках стандартного процесса проектирования
    • Поскольку существует следующая краткая структура
    • Методология с использованием списка цепей в виде EDIF файла входит в состав инструментариев таких производителей как Actel и Altera. Ести и другие производители, например Xilinx, в их инструментарий входит список цепей называемых Xilinx Netlist Format(XNF), у которого другой синтаксис и семантика, но тот же смысл.
    • Для обеспечения ближайшего расположения резервируемой логики с резервируемой в процессе расположения и разводки вентилей необходимо внести соответствующие изменения в RPM(Relationally Placed Modules) файле, основном на EDIF стандарте.
    • Перед интеграцией в микросхему делается процедура компоновки и разводки на основе RTL схемы сгенерированной уже с EDIF файла
    • Методика представлена на рисунке 3.1

. Рис. 3.1

  • 3.2 Пример использования методики
    • Содержание выходного, преобразованного EDIF представлено на ниже
    • (instance (rename Z__1I6_ "\$1I6\") (viewRef netlist (cellRef or2 (libraryRef &54SXA)))
    • (net (rename Z__1N17_ "\$1N17\") (joined
    • (portRef y (instanceRef Z__1I3_))
    • (portRef b (instanceRef Z__1I6_))
    • ))
    • (net (rename Z__1N22_ "\$1N22\") (joined
    • (portRef y (instanceRef Z__1I4_))
    • (portRef a (instanceRef Z__1I6_))
    • ))
    • (net C_c (joined
    • (portRef y (instanceRef Z__1I6_))
    • (portRef d (instanceRef C_pad))
    • ))
    • cell (AND) { area : 3 ; vhdl_name : "AND2" ; pin (A) { direction : input ; capacitance : 1 ; } pin (B) { direction : input ; capacitance : 1 ; } } cell (AND) { area : 3 ; vhdl_name : "AND2" ; pin (A,B) { direction : input ; capacitance : 1 ; } }
  • Заключение

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

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

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

Экспериментальная отработка согласована с НИИЯФ МГУ. Для имитации ВВФ и согласован эксперимент и подобрано оборудование. Разработана спецификации и программа проведения испытаний в рамках экспериментальной отработки, а также разработана оснастка для проведения испытаний. Для моделирования тяжелых ионов и галактических космических лучей (ГКЛ) был выбран имеющийся в НИИЯФ МГУ 120 - сантиметровый циклотрон Р-7. Для моделирования протонов, и положительно заряженных ионов был выбран электростатический генератор Ван-де-Граафа ЭГ-8. Была разработана структура оснастки и ее спецификация. Таким образом для проведения эксперимента необходим циклотрон и генератора, 4 микросхемы с 2-мя разными прошивками(сбоеустойчивой и обычной), один промышленный компьютер и плата согласования собственного производства.

  • Список литературы
  • 1. В.Ф Зинченко, ФГУП "НИИП" Прогнозирование вероятности возникновения эффектов одиночных событий в аппаратуре космических объектов при действии отдельных заряженных частиц
  • 2. ОСТ 134-1044-2007. Аппаратура, приборы, устройства и оборудование космических аппаратов. Методы расчета радиационных условий на борту космических аппаратов и установления требований по стойкости РЭА космических аппаратов к воздействию заряженных частиц космического пространства естественного происхождения. ЦКБС ЦНИИМАШ, 22 ЦНИИИ МО РФ, НИИ приборов, НИИЯФ МГУ, РКК "Энергия", 2007.
  • 3. ОСТ 134-1034-2003. АППАРАТУРА, ПРИБОРЫ, УСТРОЙСТВА И ОБОРУДОВАНИЕ КОСМИЧЕСКИХ АППАРАТОВ. Методы испытаний и оценки стойкости бортовой радиоэлектронной аппаратуры космических аппаратов к воздействию электронного и протонного излучений космического пространства по дозовым эффектам
  • 4. РД 134-0139-2005. АППАРАТУРА, ПРИБОРЫ, УСТРОЙСТВА И ОБОРУДОВАНИЕ КОСМИЧЕСКИХ АППАРАТОВ.Методы оценки стойкости к воздействию заряженных частиц космического пространства по одиночным сбоям и отказам
  • 5. РД 134-0174-2009. АППАРАТУРА РАДИОЭЛЕКТРОННАЯ БОРТОВАЯ КОСМИЧЕСКИХ АППАРАТОВ. Методы расчета показателей стойкости интегральных микросхем к воздействию заряженных частиц космического пространства по одиночным сбоям и отказам по результатам прямых испытаний на ускорителях заряженных частиц
  • 6. РД 134-0175-2009. АППАРАТУРА РАДИОЭЛЕКТРОННАЯ БОРТОВАЯ
  • КОСМИЧЕСКИХ АППАРАТОВ. Методы испытаний цифровых сверхбольших интегральных микросхем на воздействие одиночных высокоэнергетических протонов и тяжелых заряженных частиц космического пространства на ускорителях заряженных частиц
  • 7. ГОСТ 15484-81. ГОСУДАРСТВЕННЫЙ СТАНДАРТ СОЮЗА ССР
  • ИЗЛУЧЕНИЯ ИОНИЗИРУЮЩИЕ И ИХ ИЗМЕРЕНИЯ. Термины и определения
  • Ionizing radiations and their measurements. Terms and definitions
  • 8.Справочник Надежность ЭРИ ИП.
  • Размещено на Allbest.ru

Подобные документы

  • Разработка на программируемой логической интегральной микросхеме арифметико-логического устройства для выполнения операций над числами. Описание его функционирования. Коды команд АЛУ. Реализация действия RS триггера. Структура, тело и работа программы.

    курсовая работа [697,1 K], добавлен 16.12.2014

  • Принцип микропрограммного управления. Управляющие автоматы с жесткой и программируемой логикой. Граф-схемы алгоритмов. Синтез управляющего автомата по граф-схеме алгоритма. Построение управляющего автомата с программируемой логикой на основе ПЗУ.

    курсовая работа [263,8 K], добавлен 25.01.2011

  • Понятие степени дисперсности многопроцессорной архитектуры. История создания транспьютеров, общие сведения об их архитектуре как интегральной микросхемы сверхбольшой степени интеграции. Особенности интерфейсов транспьютеров, сфера их применения.

    доклад [744,0 K], добавлен 04.04.2014

  • Разработка плана здания с помощью графического редактора AutoCAD. Описание предметной области и схемы модели данных. Разработка приложения, позволяющего работать с базой с помощью диалогового окна Windows. Программный код формы, прописывание кодов.

    курсовая работа [2,2 M], добавлен 30.07.2010

  • Теоретические основы, адаптация и практическое применение методики интегральной атаки для использования против усеченного варианта блочного симметричного шифра Crypton. Основные требования к механизмам системы, обеспечивающим конфиденциальность.

    дипломная работа [642,7 K], добавлен 19.06.2011

  • Технико-экономическая характеристика ОАО "ТТЗ". Обоснование проектных решений информационного обеспечения комплекса задач. Описание информационной модели (схемы данных). Технологическое, программное обеспечение. Расчет экономической эффективности проекта.

    дипломная работа [81,3 K], добавлен 28.09.2009

  • Этапы разработки модели базы данных: составление логической схемы и создание на ее основе физической формы графическим инструментарием Erwin. CASE-технологии для проектирования прикладного программного обеспечения и конфигурационного управления проектом.

    контрольная работа [370,7 K], добавлен 03.01.2011

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

    презентация [114,7 K], добавлен 14.08.2013

  • Разработка алгоритма работы. Выбор и обоснование структурной схемы. Разработка функциональной схемы блока ввода и блока вывода. Проектирование принципиальной схемы блока ввода и блока вывода, расчет элементов. Разработка программного обеспечения.

    курсовая работа [1,7 M], добавлен 25.12.2011

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

    курсовая работа [647,0 K], добавлен 23.04.2009

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.