PowerPoint - MES conference

advertisement
СОБОЛЕВ Сергей Сергеевич
ЗОЛЬНИКОВ Владимир Константинович
КРЮКОВ Валерий Петрович
Особенности автоматизированного проектирования
генераторов комбинаторного беспорядка
ФГУП ВПО «Воронежская государственная лесотехническая академия»
ФГУП «НИИ Электронной техники»
В данной работе решаются следующие задачи.
• Обзор специализированных устройств генерации полных
комбинаторных перестановок элементов символьной строки, их
применение и особенности.
• Анализ современного состояния средств САПР таких устройств и
направления их текущего развития.
• Разработка методики проектирования рассматриваемых устройств,
позволяющую обеспечить наиболее эффективное проектирование
с учетом устройств генерации полных комбинаторных
перестановок.
• Разработка аппаратных моделей и алгоритмов, позволяющих
учесть специфику устройств.
• Разработка проблемно-ориентированного программного
обеспечения на основе предложенных аппаратных моделей и
алгоритмов и его внедрение в общий маршрут проектирования
данных устройств, оценка эффективности разработанных
программных средств.
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
Download