- •1. Автоматизированное проектирование эвм
- •1.1. Этапы жизненного цикла промышленных изделий
- •1.2. Сапр эвм и их место среди других автоматизированных систем
- •1.3. Проектирование технического объекта
- •1.4. Этапы проектирования сложных систем
- •2. Общие сведения о сапр
- •2.1. Блочно-иерархический подход к проектированию
- •2.2. Классификация сапр
- •2.3. Структура сапр
- •2.4. Виды обеспечения сапр
- •3. Математическое обеспечение сапр
- •3.1. Требования к математическому обеспечению
- •3.2. Требования к математическим моделям
- •3.3. Классификация математических моделей
- •3.4. Формализация проектных задач
- •3.5. Математические методы описания моделей конструкций эвм
- •3.3.1. Понятия теории множеств
- •3.5.2. Элементы теории графов
- •3.5.3. Деревья
- •3.5.4. Способы задания графов
- •3.5.5. Характеристические числа графов
- •3.6. Математические модели электрических схем
- •Модель схемы в виде двудольного графа g(e, u, p)
- •Модель схемы в виде гиперграфа h(e, u)
- •Модель схемы в виде мультиграфа g(e, u)
- •4. Алгоритмы автоматизированного проектирования эвм
- •4.1. Основные свойства алгоритмов
- •4.2. Элементы теории сложности
- •5. Алгоритмы компоновки
- •5.1. Алгоритм покрытия
- •5.2. Последовательный алгоритм компоновки
- •5.3. Итерационный алгоритм компоновки
- •5.4. Смешанный алгоритм компоновки
- •6. Алгоритмы размещения элементов
- •6.1. Постановка задачи
- •6.2. Математическая модель задачи размещения
- •6.3. Метод ветвей и границ
- •6.4. Конструктивные алгоритмы начального размещения
- •6.5. Алгоритм обратного размещения
- •6.6. Итерационные алгоритмы улучшения начального размещения
- •6.7. Алгоритм групповых перестановок
- •6.8. Непрерывно-дискретные методы размещения
- •6.9. Размещение разногабаритных элементов
- •7. Алгоритмы трассировки межсоединений
- •7.1. Алгоритмы построения минимальных связывающих деревьев
- •7.1.1. Алгоритм Прима
- •7.1.2. Алгоритм Краскала
- •7.1.3. Кратчайшие пути
- •7.1.4. Задачи, близкие к задаче о кратчайшем пути
- •7.1.5. Алгоритм Франка – Фриша
- •7.1.6. Задача Штейнера
- •7.2. Алгоритмы раскраски графа
- •7.2.1. Алгоритм Вейссмана
- •7.2.2. Алгоритм, использующий упорядочивание вершин
- •Порядок проведения проводников
- •Трассировка соединений
- •Волновой алгоритм трассировки
- •7.4.2. Волновой алгоритм с кодированием по mod 3
- •7.4.3. Метод путевых координат
- •7.4.4. Метод Акерса
- •7.4.5. Оптимизация пути по нескольким параметрам
- •7.4.6. Методы повышения быстродействия волнового алгоритма
- •7.4.7. Многослойная трассировка
- •7.5. Лучевые алгоритмы трассировки
- •7.5.1. Алгоритм Абрайтиса
- •7.6. Канальные алгоритмы трассировки
- •7.7. Программа автоматической трассировки specctra
- •8. Графо-теоретический подход к синтезу топологии
- •Разбиение графа на планарные суграфы
- •8.1.1. Построение графа пересечений g’
- •8.1.2. Нахождение максимальных внутренне устойчивых множеств
- •8.1.3. Выделение из g' максимального двудольного подграфа h'
- •8.2. Нахождение гамильтонова цикла. Алгоритм Робертса-Флореса
- •Нахождение гамильтонова цикла
- •8.2.2. Построение графа пересечений g'
- •8.2.3. Построение семейства ψg '
- •9. Верификация. Основные понятия
- •9.1. Место верификации при проектировании вычислительных систем
- •9.2. Изоморфизм графов
- •10. Нахождение эйлерова цикла
- •10.1. Алгоритм Флери
- •10.2. Сравнение эйлеровых и гамильтоновых циклов
- •11. Эволюционные алгоритмы оптимизации
- •11.1. Генетические алгоритмы
- •11.2. Биоинспирированные методы в оптимизации
- •11.2.1. Муравьиные методы и алгоритмы
- •11.2.2. Пчелиные методы и алгоритмы
- •Заключение
- •Список литературы
- •Законы Мэрфи для программистов. Теория ошибок
- •Алгоритмы конструкторского проектирования эвм Учебное пособие по дисциплине «Конструкторско-технологическое обеспечение производства эвм»
9. Верификация. Основные понятия
9.1. Место верификации при проектировании вычислительных систем
Согласно закону Мэрфи: Если какая-нибудь неприятность может произойти, она случается. Человек может ошибиться, поэтому он обязательно ошибается. Ошибки случаются при проектировании аппаратуры, при написании программ, при изготовлении аппаратуры. Иногда ошибки обходятся очень дорого. Приведем некоторые примеры последствий, к которым приводят такие ошибки.
В 1994 году профессор математики из Вирджинии при вычислении обратных величин простых чисел обнаружил, что микропроцессор Pentium в некоторых случаях неправильно делит числа с плавающей точкой. Через месяц фирма Intel согласилась заменить микропроцессоры с неправильно спроектированным устройством деления, что обошлось ей в 300 миллионов долларов (итоговые потери корпорации составили 500 миллионов долларов). Этот случай нанес большой ущерб репутации фирмы.
В 1991 году во время Войны в заливе (США против Ирака) батарея американских зенитных ракет «Patriot» не смогла перехватить запущенную иракцами ракету «Scud» советского производства. Ракета попала в казарму американских солдат, при этом погибло 28 человек. Причиной этого была погрешность вычисления времени. При вычислении нужно было умножать время, задаваемое тактовым генератором компьютера (оно измерялось в десятых долях секунды) на 1/10, но это десятичное число невозможно точно представить в двоичном виде. Для хранения этой константы использовался 24-разрядный регистр. Разница между точным значением 1/10 и ее неточным представлением составляет около 0,000000095 в десятичном виде. Компьютер был включен около 100 часов, за это время накопилась ошибка в измерении времени в 0,34 секунды. Скорость ракеты «Scud» составляла примерно 1700 м/сек, то есть за это время она прошла более 500 метров. Этого хватило для того, чтобы зенитные ракеты не смогли ее перехватить.
Слово верификация произошло от латинского verus - истинный и facere - делать. Вообще, верификация означает подтверждение того, что описание проекта полностью соответствует спецификации (техническому заданию) проектируемой системы. Спецификация — документ, подробно перечисляющий условия, которым должна соответствовать изготовляемая или проектируемая система.
Верификация определяется как разновидность анализа, имеющая целью установление соответствия двух описаний одного и того же объекта. Различают верификацию структурную и функциональную. При структурной верификации устанавливается соответствие структур, отображаемых двумя описаниями, при функциональной (параметрической) - проверяется соответствие процессов функционирования и выходных параметров, отображаемых сравниваемыми описаниями. Структурная верификация связана с меньшими затратами вычислительных ресурсов, чем функциональная. Поэтому последняя часто выполняется не в полном объеме и после того, как проверено соответствие структурных свойств. Примером структурной верификации служит установление соответствия системы электрических межсоединений на печатной плате и в принципиальной электрической схеме, заданных своими топологическими моделями в виде графов. Верификация в этом случае сводится к установлению изоморфизма графов. Функциональная верификация в данном примере выполняется путем анализа переходных процессов с учетом перекрестных помех и задержек сигналов в длинных линиях, определяемых конструктивным исполнением электронного блока.
