Перепроектирование ПЛИС на основе трансформации...
description
Transcript of Перепроектирование ПЛИС на основе трансформации...
Перепроектирование ПЛИС на основе
трансформации моделей
Д.И. Черемисинов Объединенный институт проблем
информатики НАН Беларуси , Минск[email protected]
Спецификация
Проектирование и верификация
Кремневый прототип
Интеграция в устройство Выпуск
Готовая СБИС
"Замораживание проектирования" - это пункт планирования процессе проектирования, после которого изменения в проекте приведут к задержке вхождения в производственную фазу.
Возможна итерация
Декомпиляция
2 года
9 месяцев
Уменьшаются невосполнимые затраты (NRE)
Перепро-ектирование
FPGA
FPGA
FPGA
ПЛИС
ПЛИС
Перепроектирование в цикле проектирования заказной СБИС
Декомпиляция FPGA
Структурноеописание
FPGA Файл программирования
производственный секрет Xilinx
Другое структурноеописание
Синтез
NCD
Декомпиляция
Файл XDL
Текстовый формат – официального описания
нет
VHDL
ЗаказнаяСБИС Маршрут
перепроектирования
Проектирование заказной СБИСперепроектированием FPGA
VHDL
XDL
VHDL
XDL
XDLUnpac
Netgen Simulation
Synthesis
Xilinx tools
+ Simprim
Проектирование, управляемое моделями
Модель A на языке LA
Документ XA
Модель Bна языке LB
Документ XB
ТрансформерСистема переписывания графов
Знания
OMG
Декомпиляция программирования FPGA
Тип элемента
Имя элемента
Исходное описание в формате XDL
Результат декомпиляции на языке VHDL
Система переписывания графов
Анализ XDL
Исходное описание в формате XDL
Распаковка
Оценивание
Примитивы изXDLRC
Примитивы изXDLRC
EDIF
Структура в памяти
VHDL
I3
I1I2
I0
O
I3
I1I2
I0
O D Q
SET
RST
CE
D Q
SET
RST
CE
Подстановка графов в процессе
перепроектирования
Правило переписывания графов
Модель описания Spartan 3 на XDL
User-design netlist FPGA fabric netlist
Подстановка графов
Подстановка p: L→R состоит из шаблонного графа L (левой части правила), замещающего графа R (правой части правила) и частичного графового гомоморфизма → между L и R.
Замена
Правило применения подстановки - семантика
Левая часть
Правая часть
Семантика приклеивания
Исходный граф Остаток после удаления gihost
Результат применения подстановки
Приклеиваемые вершины закрашены
Подстановка графов
I0
I1
S
0
0
S
S_B
OUT
OUT
OUT
I0_USED
I1_USED
SINV
I0
I1
S
OUT
GCLKMUX
IN OUT O
CLK_BUFFER
BUFGMUXI0
S
OI1
Образец Действие – семантикаприклеивания
Формируется по файлу отчета
CLK
circ1/Q
CLK
CLK
CLK
circ2/Q
circ3/Q
circ4/Q
BUFGMUXI0
S
Oclk
VCC
clk_BUFGP/IBUFG
GLOBAL_LOGIC1_0clk_BUFGP
clk_BUFGP/BUFG
I0
S
0
0
S
S_B
OUT
OUT
OUT
I0_USED
I1_USED
SINV
I0
I1S
OUT
GCLKMUX
IN OUT O
CLK_BUFFER
clk
VCC
clk_BUFGP/IBUFG
CLK
circ1/Q
CLK
CLK
CLK
circ2/Q
circ3/Q
circ4/Q
clk_BUFGP
Склеиваются
Удаляется
GLOBAL_LOGIC1_0
Исходный фрагмент схемы Распаковка XDL
(primitive_def BUFGMUX 4 11(pin I0 I0 input)(pin I1 I1 input)(pin S S input)(pin O O output)(element O 1
(pin O input)(conn GCLK_BUFFER OUT ==> O O)
)(element I1 1
(pin I1 output)(conn I1 I1 ==> I1_USED 0)
)(element S 1
(pin S output)(conn S S ==> SINV S_B)(conn S S ==> SINV S)
)(element SINV 3
(pin S_B input)(pin S input)(pin OUT output)(cfg S_B S)(conn SINV OUT ==> GCLKMUX S)(conn S S ==> SINV S_B)(conn S S ==> SINV S)
)(element I0 1
(pin I0 output)(conn I0 I0 ==> I0_USED 0)
)(element GCLK_BUFFER 2
(pin IN input)(pin OUT output)(conn GCLK_BUFFER OUT ==> O O)(conn GCLKMUX OUT ==> GCLK_BUFFER IN)
)
Выводыродительскогоблока
Эл
ементы
потомки
показано6 и
з11 потом
ков Выводы блокапотомка
Соединенияблока потомка
Программирование
Имя типа родительского блока
Имя типаблока
потомка
Подстановка
Результат
Построение правила переписывания по
FPGA fabric netlist
Pattern
Replacementgraph
Распаковка макроячейки – формирование
правой части правилаBX
CLK
F
G
F1
F2
F3
F4
G1
G2
G3
G4
XQ
F5MUX
FFX
inst "circ3/Q" "SLICEL",placed R1C19 SLICE_X37Y95 , cfg " BXINV::BX BYINV::#OFF CEINV::#OFF CLKINV::CLK COUTUSED::#OFF CY0F::#OFF CY0G::#OFF CYINIT::#OFF CYSELF::#OFF CYSELG::#OFF DXMUX::1 DYMUX::#OFF F:circ0/circ1/d31:#LUT:D=(A1*(A4*(~A3+~A2))) F5USED::#OFF FFX:circ3/Q:#FF FFX_INIT_ATTR::INIT0 FFX_SR_ATTR::SRLOW FFY::#OFF FFY_INIT_ATTR::#OFF FFY_SR_ATTR::#OFF FXMUX::F5 FXUSED::#OFF G:circ0/circ1/d32:#LUT:D=((~A3*(A4*A1))+(A3*((~A2*(A4*A1))+(A2*(A4+A1))))) GYMUX::#OFF REVUSED::#OFF SRINV::#OFF SYNC_ATTR::ASYNC XBUSED::#OFF XUSED::#OFF YBUSED::#OFF YUSED::#OFF F5MUX:circ0/circ1/d3_f5: " ;
Фрагмент исходного файла XDL
Результат распаковки
LUT
ФункцияLUT
Подстановка
Структура алгоритма XDLUnpac
Анализ XDL
Исходное описаниев формате XDL
Распаковка
Оценивание
Примитивы изXDLRC
Примитивы изXDLRC
EDIF
Структура в памяти
EDIF
I3
I1I2
I0
O
I3
I1I2
I0
O D Q
SET
RST
CE
D Q
SET
RST
CE
(primitive_def BUFGMUX 4 11(pin I0 I0 input)(pin I1 I1 input)(pin S S input)(pin O O output)(element O 1
(pin O input)(conn GCLK_BUFFER OUT ==> O O)
)(element I1 1
(pin I1 output)(conn I1 I1 ==> I1_USED 0)
)(element S 1
(pin S output)(conn S S ==> SINV S_B)(conn S S ==> SINV S)
)(element SINV 3
(pin S_B input)(pin S input)(pin OUT output)(cfg S_B S)(conn SINV OUT ==> GCLKMUX S)(conn S S ==> SINV S_B)(conn S S ==> SINV S)
)(element I0 1
(pin I0 output)(conn I0 I0 ==> I0_USED 0)
)(element GCLK_BUFFER 2
(pin IN input)(pin OUT output)(conn GCLK_BUFFER OUT ==> O O)(conn GCLKMUX OUT ==> GCLK_BUFFER IN)
)
Выводыродительскогоблока
Эл
ементы
потомки
показано6 и
з11 потом
ков Выводы блокапотомка
Соединенияблока потомка
Программирование
Имя типа родительского блока
Имя типаблока
потомка
VHDL