СОБОЛЕВ Сергей Сергеевич ЗОЛЬНИКОВ Владимир Константинович КРЮКОВ Валерий Петрович Особенности автоматизированного проектирования генераторов комбинаторного беспорядка ФГУП ВПО «Воронежская государственная лесотехническая академия» ФГУП «НИИ Электронной техники» В данной работе решаются следующие задачи. • Обзор специализированных устройств генерации полных комбинаторных перестановок элементов символьной строки, их применение и особенности. • Анализ современного состояния средств САПР таких устройств и направления их текущего развития. • Разработка методики проектирования рассматриваемых устройств, позволяющую обеспечить наиболее эффективное проектирование с учетом устройств генерации полных комбинаторных перестановок. • Разработка аппаратных моделей и алгоритмов, позволяющих учесть специфику устройств. • Разработка проблемно-ориентированного программного обеспечения на основе предложенных аппаратных моделей и алгоритмов и его внедрение в общий маршрут проектирования данных устройств, оценка эффективности разработанных программных средств. 2 Стандартная методология проектирования устройств генерации комбинаторных перестановок Создание поведенческой модели SystemC Ручное описание модели и тестов на языке SystemC Ручное описание модели и тестов на одном из языков описания аппаратуры (HDL) Библиотека SystemC Системная верификация SystemC Создание RTL-модели HDLязык Моделирование и верификация RTL-модели HDLязык Библиотеки RTLмоделей Логический синтез Статический временной анализ Логическое моделирование и верификация Генерация тестов Физический синтез и верификация топологий Библиотеки производителей СБИС 3 В некоторых приложениях актуальной задачей является фильтрация перестановок, содержащих неподвижные точки. Перестановка будем называть недопустимой, если она содержит одну или несколько неподвижных точек. Если записать перестановку 𝑝 на множестве упорядоченных элементов 𝑋 мощности 𝑛 в виде подстановки: 𝑝= 𝑥1 𝑦1 𝑥2 𝑦2 𝑥3 𝑦3 … 𝑥𝑛 … 𝑦𝑛 , где 𝑥1 , 𝑥2 , 𝑥3 , … , 𝑥𝑛 = 𝑦1 , 𝑦2 , 𝑦3 , … , 𝑦𝑛 = 𝑋 и 𝑝 𝑥𝑖 = 𝑦𝑖 , 𝑖 = 1, 𝑛 , то неподвижной точкой является каждый из элементов множества 𝑁(𝜋) = {𝑥 𝜖 𝑋: 𝜋(𝑥) = 𝑥}. 4 Специфика устройств генерации перестановок: • сложность логической схемы, увеличивающаяся с ростом длины строки; • разнообразие входных параметров целевого устройства: a) 𝑛 – длина символьной строки; b) 𝑑 – разрядность одного элемента символьной строки; c) 𝑁𝑚𝑎𝑥 – максимально допустимое количество неподвижных точек в каждой перестановке; d) 𝑋0 – упорядоченное множество элементов исходной строки, на основе которых формируются перестановки. Использование стандартной методологии с ручным описанием моделей и тестов на системном и RTL уровнях влечет за собой: • увеличение трудоемкости проекта. • повышение риска субъективных ошибок и увеличение влияния «человеческого фактора» на качество проекта. Вследствие этого, предложена новая методика проектирования данных устройств, позволяющая наиболее автоматизировать процесс проектирования и обеспечивающая более высокое качество всего проекта. 5 Предложенная методика проектирования устройств генерации комбинаторных перестановок Множество входных параметров генерации перестановок Генерация описания модели на SystemC C++ Создание поведенческой модели SystemC Библиотека SystemC Генерация тестов для C++ поведенческой модели Генерация описания RTL-модели на VHDL Генерация тестов для RTL-модели C++ C++ Системная верификация SystemC Создание RTL-модели VHDL Моделирование и верификация RTL-модели Библиотеки RTLмоделей VHDL Красным выделены решения, отличающиеся новизной Логический синтез Статический временной анализ Логическое моделирование и верификация Генерация тестов Физический синтез и верификация топологий Библиотеки производителей СБИС 6 Условная схема предложенного алгоритма генерации комбинаторных перестановок с возможностью отсева недопустимых перестановок (содержащих количество неподвижных точек, превышающих максимально допустимое, для n=3) А Полезная длина строки k = 1 Полезная длина строки k = 2 АB ВА Циклических сдвигов: 1, перестановок: 2 Циклических сдвигов: 4, перестановок: 6 Полезная длина строки k = 3 АВC ВCА CАВ ВАС АСВ СВА Фильтрация перестановок, содержащих количество неподвижных точек, превышающих максимально допустимое (𝑁𝑚𝑎𝑥 ) Результирующее множество перестановок Алгоритм генерации представляет собой комбинацию двух операций: добавления нового символа в строку (увеличение полезной длины строки) и циклического сдвига строки, что делает данный алгоритм удобным для аппаратной реализации. 7 Моделирование генерации перестановок на системном уровне Схема устройства генерации перестановок включает в себя несколько блоков, каждый из которых имеет свою функциональность: Формирователь исходной символьной строки Формирователь очередной уникальной перестановки Блок отсева перестановок с неподвижными точками Блок приема перестановок Системная модель устройства генерации перестановок описывается с помощью языка SystemC. Каждому подблоку соответствует модуль SystemC. 8 Модуль формирования очередной уникальной перестановки (модуль transp_gen на предыдущей схеме) включает в себя 𝑛 − 1 модулей циклического сдвига и 𝑛 − 1 вспомогательных модулей управления. На входные порты X0, X1, X2, X3 поступают элементы исходного множества, на основе которого формируются перестановки. На выходе у схемы (порты Y0, Y1, Y2, Y3) элементы очередной сгенерированной перестановки. CLK CLK S X0 CLK CLK S L L S L Y0 m=2 m=3 X1 Y1 CLK m=4 X2 Y2 CLK X3 Y3 CLK Уровень сигнала на управляющих портах L и S согласно значениям функций (c – внутренний счетчик модуля управления, инкрементирующийся на каждом тактовом импульсе): 𝑛 𝐿 𝑐, 𝑚, 𝑛 = 𝑐 mod 𝑖 =0 , 𝑖=𝑚 𝐿 𝑐, 𝑚, 𝑛 , 𝑆 𝑐, 𝑚, 𝑛 = 𝑚=𝑛 𝑛 𝐿 𝑐, 𝑚, 𝑛 ∧ 𝑐 mod 𝑛 𝑖 𝑖=𝑚 mod 𝑖 =0 , 𝑚<𝑛 𝑖=𝑚+1 9 Структура системы автоматизации проектирования семейства устройств генерации полных комбинаторных перестановок Входные параметры генерации Модуль программного интерфейса Генерация системной модели Модуль генерации IP-блоков (SystemC) Генерация RTL-модели Модуль подсистемы верификации Модуль генерации тестов Модуль генерации IP-блоков (VHDL) Модуль генерации тестов IP-блоки 10 Сложность логических схем устройств генерации комбинаторных перестановок и оценка временных затрат проектирования Длина символьной строки n Количество логических вентилей Количество строк VHDL-кода Временные затраты, в человеко-днях (стандартная методика) Временные затраты, в человеко-днях (предложенная методика) n = 16 n = 24 n = 32 3200 7400 13300 1120 2180 3780 32 74 133 1 1 1 Автоматизация процессов аппаратного описания и верификации на системном уровне и RTL-уровне позволяет существенно сократить цикл проектирования за счет исключения процесса ручного описания на одном из HDL-языков. Кроме того, использование разработанных средств повышают эффективность проектирования за счет минимизации общего количества проектных ошибок, что увеличивает качество разработанных специализированных устройств генерации перестановок. 11 Основные результаты работы 1. Проведен анализ современного состояния средств САПР устройств генерации полных комбинаторных перестановок, определены направления их текущего развития. 2. Разработана методика проектирования специализированных устройств, решающих задачу генерации полных комбинаторных перестановок с функцией фильтрации недопустимых перестановок (содержащих неподвижные точки). 3. Разработаны и исследованы аппаратные модели и алгоритмы, позволяющие учесть особенности проектирования данных устройств с возможностью отсеивания недопустимых перестановок. 4. Разработаны программные средства, реализующие подсистему автоматической генерации IP-блоков для формирования множества полных комбинаторных перестановок на системном и RTL уровнях проектирования. 5. Разработанные программные средства внедрены в единую среду сквозного проектирования специализированных устройств генерации перестановок в рамках дизайн-центра ФГУП «НИИ Электронной техники». 6. Подсчитаны трудоемкость и временные затраты проектирования каждого из семейства устройств генерации комбинаторных перестановок и произведена оценка эффективности разработанных средств автоматизации проектирования данных устройств. 12