- •(СПбГэту “лэти”)
- •Задание на выпускную квалификационную работу
- •(СПбГэту “лэти”)
- •Календарный план выполнения выпускной квалификационной работы
- •Реферат
- •Abstract
- •Определения, обозначения и сокращения
- •Введение
- •1 Матричные делители
- •1.1 Матричные устройства
- •1.2 Алгоритм деления без восстановления остатка
- •1.3 Конвейерные делители
- •2 Структурно-топологическое проектирование конвейерного матричного делителя (кмд)
- •2.1 Структурно-топологический план кмд и его оптимизация
- •2.2 Особенности реализации кмд
- •2.2.1 Основные ячейки
- •2.2.2 Ячейки области триггеров
- •3 Схемотехническое проектирование кмд
- •3.1 Схемная конфигурация полного двоичного сумматора
- •3.2 Мультиплексор
- •3.3 Конвейерный триггер
- •4 Топологическое проектирование кмд
- •4.1 Иерархические макроблоки сбис
- •4.2 Основные этапы проектирования топологии иерархических макроблоков сбис
- •4.3 Концепция топологического проектирования
- •4.3.1 Расположение транзисторов
- •4.3.2 Расположение выводов фрагмента
- •4.3.3 Расположение шин земли и питания
- •4.3.4 Топологическая модель базовой ячейки
- •4.4 Топологическое проектирование элементов кмд
- •4.5 Топологии ячеек кмд
- •4.5.1 Топологии ячеек основных элементов ячеек делителя
- •4.5.2 Топологии простых элементов
- •4.5.3 Топологии ячеек области триггеров
- •5 Разработка кремниевого компилятора кмд
- •5.1 Этапы генерации топологии макроблока кмд программными средствами
- •5.2 Разработка спецификаций ячеек кмд
- •5.3 Разработка программы генерации файла спецификации кмд
- •5.4 Согласование ячеек и сборка макроблока кмд
- •6 Экономическое обоснование
- •6.1 Заработная плата основных исполнителей
- •6.2 Затраты на расходные материалы
- •6.3 Амортизационные отчисления
- •6.4 Накладные расходы
- •6.4 Сметная стоимость разработки
- •Заключение
- •Список использованных источников
- •Приложение а Топологические эскизы ячеек кмд
- •Приложение б Структура макроблока кмд
- •Приложение в Текст программы генерации спецификации структурно-топологических схем кмд различной разрядности
- •Приложение г Топологические чертежи конвейерного матричного делителя
5.2 Разработка спецификаций ячеек кмд
Файл спецификаций ячеек макроблока заполняется в строго определённом формате. Этот файл описывает виртуальные линии, участвующие в согласовании. У каждой ячейки имеется свой файл спецификации, но одна ячейка может иметь и несколько файлов, если она используется не одиножды без структурных преобразований.
В редакторе топологий «TopDesign» создание виртуальных линий происходит благодаря их ручному размещению на топологии (Components -> Virtual Line -> Vertical/Horizontal) и присваиванию им уникального имени.
Для описания виртуальных линий используется её уникальное имя, координаты и сторона (left, bottom, right, top), с которой происходит состыковка. Таким образом, каждая строка имеет следующий общий вид:
<Название>--<Отношение>--<Значение>.
Например,
cout1--rht--61.50
cout1--lft--61.50
cin5--top--3.50
cin5--btm--3.50.
Для описания спецификаций ячеек можно использовать программу «Parse». На вход данного приложения необходимо подать файл описания топологии с расширением cpp, этот файл может генерировать программа «TopDesign» (рисунок 5.1).
Рисунок 5.1 – Генерация cpp-файла
После, передав полученный файл в программу «Parse» получаем описание виртуальных линий (рисунок 5.2).
Рисунок 5.2 – Результирующая спецификация КМД
Однако, учитывая необходимость более тонкой настройки, использовалось ручное составление спецификаций ячеек.
5.3 Разработка программы генерации файла спецификации кмд
Спецификация макроблока требует строгой структуры. В начале файла располагается информация о пути к материнской папке, виртуальным описаниям ячеек и реализациям сжатия. Для данной работы такой информацией будет:
C:\TopVG
C:\TopVG\EXAMPLES\Divider
C:\TopVG\EXAMPLES\Divider\M1.2.
Далее описываются строки, необходимые для формирования структуры. Указывается уникальное имя строки, её направление (горизонтальная/вертикальная), имя файла виртуального описания топологии ячеек, с разрешением vlf, имя файла текстового описания спецификации ячеек, с разрешением dat, и коэффициент матрицирования, который показывает сколько раз можно повторить ячейку в одной строке. В конце строки записывается слово «EOL», указывающее конец строки.
Учитывая описанную структуру, строка имеет следующий вид:
Name_Line :g Name_Cell Name_Cell, 1 ; Name_Cell_2 Name_Cell_2, 5 ; EOL.
В итоге, из описанных строк конструируется итоговый цельный макроблок. Структура последней строки очень похожа на структуру строк до этого, имя последней строки соответствует имени выходного файла, а вместо пары vlf и dat файла вставляется уникальное имя строки, записанное выше. Получаем результат:
NameBlock :v Name_Line , 1 ; Name_Line_2 , 4 ; EOL.
Так как человеческий фактор при записывании имён входных файлов, а также расчёт коэффициента матрицирования тяжёлый, разработана программа генерации спецификации структурно-топологической схемы КМД на языке С++. Программа на вход получает количество разрядов делимого и делителя (приложение В). Однако, учитывая ограничения на содержание файла спецификации, целесообразным решением является ввод более ёмких имён ячеек, соответствие которых представлено в приложении Б. Также в этом приложении описана структура получаемых макроблоков с учётом вышеописанного переименования.
Пример работы программы приведён на рисунке 5.3.
Рисунок 5.3 – Работа программы генерации спецификации КМД
Результатом работы программы является текстовый файл «divider_conv_auto». Для заданной разрядности делителя будет сгенерирована следующая спецификация:
C:\TopVG
C:\TopVG\EXAMPLES\Divider
C:\TopVG\EXAMPLES\Divider\M1.2
S1 :g str1_1m str1_1m , 1 ; str1_2m str1_2m , 1 ; str1_3m str1_3m , 1 ; str1_4m str1_4m , 1 ; str1_5m str1_5m , 1 ; str1_6m str1_6m , 1 ; EOL
S2 :g str1_1m str1_1m , 1 ; str1_2m str1_2m , 1 ; str1_3m str1_3m , 1 ; str2_4m str2_4m , 1 ; str2_5m str2_5m , 1 ; str2_6m str2_6m , 1 ; EOL
DividerCONV :v S1 , 1 ; S2 , 16 ; EOL.
Также программа защищена от неверного ввода данных с выводом соответствующего сообщения ошибки, содержащего информацию о причине неисправности (рисунок 5.4).
Рисунок 5.4 – Обработка ошибок
