Проектирование академических ПЛИС типа ППВМ
с одноуровневой структурой межсоединений
Андрей СТРОГОНОВ, д. т. н.
[email protected] Максим МОТЫЛЕВ [email protected] Сергей ДАВЫДОВ Алексей БЫСТРИЦКИЙ [email protected] Сергей ЦЫБИН [email protected]
В статье рассматриваются программные инструменты T-Vpack и VPR, разработанные в университете Торонто (Канада) [1] для проектирования академических ПЛИС типа ППВМ с одноуровневой структурой межсоединений под технологические проектные нормы 22—180 нм КМОП-технологии c минимальной площадью кристалла и шириной трассировочного канала, нахождением критического пути в трассировочных ресурсах ПЛИС. Успехи в области исследования и создания новых архитектур ПЛИС с использованием T-Vpack и VPR привели к созданию в Торонто технологического центра фирмы Altera (Altera Toronto Technology Centre).
Основные функциональные части ПЛИС (рис. 1) — это логический блок (ЛБ), соединительные блоки (C-блоки) и коммутатор-маршрутизатор (S-блок). В академических ПЛИС для обеспечения программируемой коммутации существует две технологии соединений: multi-driver и single-driver, которые распространяются как на соединительные блоки, так и на коммутаторы-маршрутизаторы. Маршрутизатор с использованием двунаправленных межсоединений и двунаправленных ключей, реализованных на буферах с третьим состоянием, получил название multi-driver (при этом также возможно использование n-МОП ключей), а на основе однонаправленных межсоединений и мультиплексорных структур — single-driver switch block.
В настоящее время считают, что применение однонаправленных межсоединений в совокупности с мультиплексорными структурами в маршрутизаторах наиболее перспективно, так как это позволяет получать существенный выигрыш по сравнению с технологией multi-driver по быстродействию (в этом случае задержка распространения сигнала в трассировочных ресурсах ПЛИС уменьшается на 9%) и по площади кристалла (экономия площади кристалла — до 25%). Технология соединений single-driver, известная как DirectDrive, широко используется в современных сериях ПЛИС серий Stratix. Технология single-driver также распространяется на входные мультиплексоры и демультиплексоры в соединительных блоках (рис. 1).
Рассмотрим типовой маршрут проектирования гетерогенных академических ПЛИС, который предполагает использование сле-
дующих программных инструментов: ODIN, функционального устройства (benchmark, ABC, T-Vpack и VPR. ODIN конвертиру- тестовая схема на языке Verilog HDL) в специ-ет схемное описание некоторого сложно- альный файл в формате .blif, в котором выде-
Несегментируемое
однонаправленное
межсоединение,
проходя щее
непрерывно
через ЛБ
(L>1)
Соединительный блок Ч^ (мультиплексор)
Рис. 1. Распространение технологии соединений single-driver на соединительные блоки и непосредственное подключение выходов логических блоков к мультиплексорам коммутаторов-маршрутизаторов
Трассировка (VPR)
Увеличить ширину W трассировочного канала
Трассировка с W = 1,2Wmmh (VPR)
Определить критическую задержку в трассировочных ресурсах и рассчитать площадь транзисторов на кристалле ПЛИС
Рис. 2. Маршрут проектирования ПЛИС типа ППВМ с одноуровневой структурой межсоединений
ляет логические вентили для описания логики устройства и «черные ящики» для гетерогенных блоков.
Далее с помощью инструмента ABC (существуют и другие программные инструменты минимизации булевых функций в базис ПЛИС типа ППВМ с использованием 4-входовой LUT и D-триггера логического блока, такие как SIS и FlowMap) проводится логическая оптимизация схемы на основе специального стиля описания, независимого от технологии проектирования БИС, и ее размещение в логические блоки академической ПЛИС. Выходным также является файл в формате .blif, в котором выделяются LUT, D-триггеры логических блоков и гетерогенные блоки (листинг 1).
Инструмент T-Vpack перепаковывает файл в .^/¿/-формате (LUT и D-триггеры) в кластеры логических блоков (типовой размер кластера — 2-12 ЛБ; число входов LUT — 2-7; длина межсоединений — 1-8), которые аналогичны кластерам в ПЛИС FLEX8, 10K или кластерам ПЛИС Virtex, и формирует выходной файл в .net-формате для VPR (листинг 2). VPR размещает кластеры логических блоков и гетерогенные блоки по кристаллу ПЛИС и организует глобальные и локальные трассировочные ресурсы для меж- и внутрикластерной связи логических блоков наиболее оптимальным образом, с учетом требований, например, к минимальной ширине трассировочного канала, быстродействию, экономии площади кристалла и др. (рис. 2). Для размещения функциональных блоков на кристалле ПЛИС применяется алгоритм «имитации отжига». Процесс «имитации отжига» может быть представлен на основе четырех ключевых компонентов: состояния текущего решения, набора перемещений из одного состояния в другое, целевой функции стоимости для оценки каждого состояния и «схемы охлаждения», определяющей, как можно перейти от начального поиска к локальной оптимизации. Разводка электрических связей между кластерами осуществляется с учетом задержек распространения сигналов в трассировочных ресурсах ПЛИС.
.clb hetero_REGISTER_38_960_out
pinlist: hetero_H_SKEL_14_101_4 iir1_valid_0 n1324 n1325 \
hetero_H_SKEL_14_102_4 hetero_H_SKEL_14_102_5 hetero_REGISTER_38_961_out \
hetero_H_SKEL_14_102_6 hetero_REGISTER_38_962_out hetero_H_SKEL_14_102_7 \
hetero_REGISTER_38_963_out hetero_H_SKEL_14_102_8 hetero_REGISTER_38_964_out \
hetero_H_SKEL_14_102_9 hetero_REGISTER_38_965_out open open open open open \
open open hetero_REGISTER_38_960_out n1414 n1416 n1420 n1422 n1426 n1428 \
n1432 n1434 n1438 iir1_clk_i_0
subblock: hetero_REGISTER_38_960_out 0 1 2 3 22 32
subblock: n1414 4 5 ble_0 6 23 open
subblock: n1416 4 5 ble_0 6 24 open
subblock: n1420 7 8 ble_1 open 25 open
subblock: n1422 7 8 ble_2 open 26 open
subblock: n1426 9 10 ble_3 open 27 open
subblock: n1428 9 10 ble_4 open 28 open
subblock: n1432 11 12 ble_5 open 29 open
subblock: n1434 11 12 ble_6 open 30 open
subblock: n1438 13 1 4 ble_7 open 31 open
Листинг 2. Выходной файл инструмента T-Vpack в формате .net
Для работы этих программ в среде Windows необходимо использовать свободно распространяемую UNIX-подобную среду Cygwin. Cygwin обеспечивает тесную интеграцию приложений, данных и ресурсов Windows с приложениями, данными и ресурсами UNIX-подобной среды. Процесс инсталляции необходимо начать на сайте [2] и загрузить программу setup.exe, далее с помощью этой программы нужно скачать следующие приложения: GCC, GDB, X Windows [3] и др. Более подробную информацию можно получить на сайте [4].
Ниже показано использование инструментов T-Vpack и VPR для размещения и трассировки тестовой схемы БИХ-фильтра y[n] = b10xx[n]+b11xx[n-1]+b12xx[n-2]+a11xy[n-1]+a12xy[n-2] [5] в базис гетерогенных (со встроенными блоками перемножителей 36x36) ПЛИС типа ППВМ с одноуровневой структурой межсоединений.
Пример использования программных инструментов:
.../T-VPACK_HET/t-vpack.exe iir1.map4.latren.blif iir1.map4.latren.net -inputs_per_cluster 22 -cluster_size 10 -lut_size 4 .../VPR_HET/vpr.exe iir1.map4.latren.net k4-n10.xml place.out route.out
Информация об архитектуре ПЛИС содержится в файле k4-n10. xm/ (листинг 3). В этом файле находится информация: о требуемых размерах кристалла; о сопротивлении и минимальных геометрических размерах n- и р-МОП-ключей; о емкостях входных буферов мультиплексорных структур соединительных блоков, задержках сигналов через эти буферы и мультиплексоры; о типах маршрутизаторов; о соединительных блоках; о сегментации межсоединений в каналах, о типе межсоединений (двунаправленные или однонаправленные) и их сопротивлении и емкости; о ширине трассировочного канала ядра и периферийного канала между ядром и блоками ввода/вывода и др.
# Benchmark "iiri" written by ABC
.latch n279 hetero_REGISTER_61_1838_out re iiri_clk i_0 0
.latch n284 hetero_REGISTER_61_1839_out re iiri_clk i_0 0
.latch n289 hetero_REGISTER_61_1840_out re iir1_clk i_0 0
.latch n294 hetero_REGISTER_61_1841_out re iir1_clk i_0 0
.latch n299 hetero_REGISTER_61_1842_out re iir1_clk i_0 0
.latch n304 hetero_REGISTER_61_1843_out re iir1_clk i_0 0
.names iir1_dat_i_4 iir1_rst_i_0 hetero_REGISTER_61_ 1906_out n1533 n999
00-1 0
-000 0
.names iir1_dat_i_5 iir1_rst_i_0 hetero_REGISTER_61_ 1907_out n1533 n1004
00-1 0
-000 0
.names iir1_dat_i_6 iir1_rst_i_0 hetero_REGISTER_61_ 1908_out n1533 n1009
00-1 0
-000 0
.names iir1_dat_i_7 iir1_rst_i_0 hetero_REGISTER_61_ 1909_out n1533 n1014
00-1 0
-000 0
.end
.model mult_36
.inputs a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 a16 a17 b0 b1 \
b2 b3 b4 b5 b6 b7 b8 b9 b10 b11 b12 b13 b14 b15 b16 b17
.outputs c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 c16 c17 c18 \
c19 c20 c21 c22 c23 c24 c25 c26 c27 c28 c29 c30 c31 c32 c33 c34 c35
.blackbox
.end
Листинг 1. Выходной файл инструмента ABC в формате .blif
11! i. Ul У И! Il 1 i.i UlS [ill
□ :::. □ ■ □ ■ □
Бав □ □ □ □ 1 □ □ □ R
™ □ □ □ □ □ □ □ э
В □ □ □ □ L □ □ □ iii
Й ■ 1 ■ ■ 1 ■ ■ ■ ■ s
g ■ ■ ■ ■ □ ■ □ 'Ш
he ■ ■ ■ 1 ■ □ ■ и g
■ п □ ■ n □ Г ■ □ □ s
й ■ ■ ■ ■ □ ■ ■ a
m □ Hi ... г □ |ii □ : гп J 1 □ II 1 il □ iiii □ fill □ ill [=3
|М<Н)6 ВВ Cost: 5Э.8505 ТО Cast gjgggë 0' Pelay Cost: е.8755гс 117 1 ЗИЛ
Рис. 3. Интерфейс инструмента VPR
Рис. 4. Гетерогенная архитектура ПЛИС с одноуровневой структурой межсоединений со связями между функциональными блоками
<агсЫ1есШге> <1ауои айо="1.000000" />
- ^ечсе>
<шп§ К_шшШ_пшо8="5726.870117" Я_ш1М_ршов="15491.700195" 1р1п_ших_1гап8_812е="1.000000" />
< ^ ш1п § С_1р1п_сЬ1оск = " 1. 19 1000е-1 4" Т_1р1п_ сЬ1оск="1.482000е-10" /> <атеа рМ_1орс_п1е_атеа="30000.000000" />
< ! Спецификация на трассировочные каналы>
<Задается ширина периферийного трассировочного канала относительно самого широко канала ядра и устанавливается равномерное распределение межсоединений в канале>
<1о width="1.000000" />
<х ^Ц="иш£огш" реак="1.000000" />
<у distr="uпiforш" реак="1.000000" />
</chan_width_distr>
<switch_Ь1ock type="wi1toп" fs="3" />
</device>
< ! Пример спецификации ключа для однонаправленных межсоединений >
< Задается тип ключа, его имя, сопротивление, входные и выходные емкости, внутренняя задержка ключа, геометрический размер мультиплексора и буфера восстановления уровня в условных единицах площади, привязанных к минимальной ширине (канала) транзистора для получения минимальной площади >
- <switch1ist>
<switch !уре="ших" паше="0" К="94.841003" Сп="1.537000е-14" Сои!="2.194000е-13" Tde1="6.562000e-11" ших_Н:аш_ size="10.000000" Ьuf_size="1" /> </switch1ist>
< ! Пример спецификации на однонаправленные сегментированные межсоединения >
< ! Задаются частота сегментации межсоединения в канале, длина сегмента (сколько кластеров проходит межсоединение без сегментации), направление передачи сигнала (однонаправленное или двунаправленное межсоединение), сопротивление и емкость межсоединения, схема депопуляции (удаление) маршрутизаторов на заданную длину сегмента (1 - есть, 0 - нет маршрутизатора), схема депопуляции подключений межсоединений к входам кластера с помощью соединительных блоков на заданную длину сегмента >
- <segmentlist>
- <segment freq="1.000000" length="2" type="unidir" Rmetal="11.064550" Cmetal="4.727860e-14">
<mux name="0" />
<sb type="pattern">1 1 1</sb>
<cb type="pattern">1 1</cb>
</segment>
</segmentlist>
<! Пример спецификации для блоков ввода/вывода >
<! Задается число блоков ввода/вывода на строку/столбец из класте-
ров ЛБ, задержки, коэффициенты объединения по входу/выходу>
- <typelist>
- <io capacity="3" t_inpad="7.734000^11" t_outpad="4.395000e-11">
<^_ш Гуре="^ас">0.250000</к_т>
<к_оШ; !уре='Тгас">1.000000<^с_оШ:>
</ю>
<! Пример спецификации кластера N=10, К=4, 1=22 >
- Суре паше=".с1Ь">
- <subb1ocks max_subb1ocks="10" шax_suЬЬ1ock_ inputs="4">
- <:1Ш1П§>
- <Т_сошЬ>
<trow>1.679000e-10</trow>
<trow>1.679000e-10</trow>
<trow>1.679000e-10</trow>
<trow>1.679000e-10</trow>
</Т_сошЬ>
- <T_seq_in>
<trow>-3.990000e-11</trow>
</T_seq_in>
- <T_seq_out>
<trow>1.261000e-10</trow>
</T_seq_out>
</йшт§>
</suЬЬ1ocks>
<к_Ь type="frac">0.250000</fc_iп>
<fc_out type="frac">1.000000</fc_out>
Листинг 3. Фрагмент xml-файла
с описанием архитектуры ПЛИС
На рис. 3 показана гетерогенная архитектура ПЛИС типа ППВМ с одноуровневой структурой межсоединений размером 10x10 кластеров и встроенными блоками перемножителей 36x36 (9 шт.) в VPR5.0. Каждый кластер состоит из 10 ЛБ, а каждый блок — из 4-входовой LUT и триггера. По периферии кристалла располагаются блоки ввода/вывода. В базисе ПЛИС размещена тестовая схема БИХ-фильтра. Задействованные блоки перемножителей для реализации БИХ-фильтра отображены оранжевым цветом. Трассировочные ресурсы ПЛИС не подвергаются оптимизации. На рис. 4 представлены электрические связи между функциональными блоками ПЛИС (4-входовая LUT, размер кластера — 10 ЛБ).
На рис. 5 приведена архитектура ПЛИС после оптимизации (размещение и трассировка). Зеленым цветом показан выделен-
ный кластер из ЛБ (блок 89 n1071 c координатами (6,8)). Синим цветом — функциональные блоки (1 перемножитель, 3 кластера и 5 блоков ввода/вывода), которые связаны с коэффициентом объединения по входу FCin (показывается число межсоединений в трассировочном канале, которые могут быть подключены к входу функционального блока; значение задается в долях от W) выделенного кластера; красным цветом — блоки, которые связаны с коэффициентом разветвления по выходу FCout выделенного кластера (1 перемножитель, 7 кластеров). На рис. 6 представлена ПЛИС с общими трассировочными ресурсами после размещения и трассировки связей между блоками.
На рис. 7 показаны общие трассировочные ресурсы, которые заложены в структуру программируемых межсоединений. Выделенный кластер — ярко-зеленого цвета. В темно-зеленый цвет окрашены направления коммутации межсоединений в маршрутизаторах. Синим цветом (синие линии и квадраты) — подключение трассировочных ресурсов к входам кластера с помощью соединительных блоков (мультиплексоров). Соединительные блоки подключают входы кластера к трассировочным каналам. Выходы кластера по методологии соединений single-driver switch block напрямую подключаются к мультиплексорам маршрутизаторов. Для соединительных блоков задается коэффициент объединения по входу FCin = 0,25. Для кластеров ядра ПЛИС выходы логических блоков подключаются к 13 мультиплексорам маршрутизаторов, которые находятся слева (7 мультиплексоров) и справа (6 мультиплексоров) от выделенного кластера, с коэффициентом разветвления по выходу FCout = 1 (рис. 7).
Красным цветом (красные линии и квадраты) показаны выходы кластера, межсоединения, связанные с коэффициентом развет-
Рис. 5. Гетерогенная архитектура ПЛИС с одноуровневой структурой после операций размещения и трассировки
Рис. 6. Гетерогенная ПЛИС с общими трассировочными ресурсами
вления по выходу с выделенным кластером, и избыточные (неиспользуемые) трассировочные ресурсы.
На рис. 8 представлены только те трассировочные ресурсы, которые необходимы для реализации БИХ-фильтра в базисе гетерогенной ПЛИС. Синие линии (соединительные блоки и канальные трассировочные ресурсы) связаны с коэффициентом объединения по входу (синие крестики), а красные линии и красные квадраты (выходы кластера) — с коэффициентом разветвления по выходу. Черным цветом показаны входы/выходы кластеров, не связанные с выделенным кластером, этим же цветом обозначены канальные трассировочные ресурсы и различные межсоединения (в маршрутизаторах и соединительных блоках), относящиеся к задаче размещения БИХ-фильтра в базис ПЛИС.
Горизонтальный и вертикальный трассировочные каналы состоят из 26 однонаправленных межсоединений, то есть ширина канала W = 26 (рис. 9). Канал разделяет коммутатор-маршрутизатор типа wilton с коэффициентом разветвления FS = 3, такой коммутатор обладает лучшей разводи-мостью (большее число путей маршрутизации в пределах заданного направления) и позволяет организовать длинные межсоединения. VPR 5.0 дает возможность использовать 3 типа маршрутизаторов: subset, wilton, universal.
Треугольники (серые и черные) по периферии маршрутизатора показывают направление передачи сигналов по межсоединениям. Серые треугольники по периферии маршрутизатора указывают на то, что пара разнонаправленных межсоединений проходит через маршрутизатор непрерывно (без использования ключей в горизонтальном или вертикальном направлениях). В рассматриваемом примере межсоединения в кана-
Рис. 7. Общие трассировочные ресурсы гетерогенной ПЛИС
Рис. 8. Фрагмент коммутатора-маршрутизатора (левый верхний от блока 89) типа wilton, горизонтальный трассировочный канал из однонаправленных сегментов и трассировочные ресурсы, задействованные для реализации БИХ-фильтра в базисе ПЛИС
Рис. 9. Коммутатор-маршрутизатор (расположен в центре ядра кристалла ПЛИС), построенный по методологии single-driver:
а) левый верхний от блока 89 (6 мультиплексоров с каждой стороны);
б) левый нижний от блока 89 (7 мультиплексоров с каждой стороны)
щих непрерывных и 7 исходящих сегментированных. Таким образом, в первом случае с каждой стороны по 6, а во втором — по 7 мультиплексоров по методологии single-driver.
Рассмотрим коммутаторы-маршрутизаторы, расположенные на периферийных трассировочных каналах ПЛИС. На рис. 10а показан коммутатор-маршрутизатор, который находится в центре периферийного вертикального трассировочного канала. Слева — кластеры логических блоков, а справа — блоки ввода/вывода. К 13 мультиплексорам небольшой разрядности (4 и 5) с левой стороны маршрутизатора подключаются выходы кластеров и блоков ввода/вывода. На рис. 10б показан коммутатор-маршрутизатор в углах пересечения горизонтального и вертикального периферийных трассировочных каналов.
лах непрерывно проходят через 2 кластера, в этом случае I = 2.
Желтой черточкой и черной стрелкой показаны места сегментации пары разнонаправленных межсоединений на периферии маршрутизатора. В позиции желтых черточек осуществляется подключение выходов соседних кластеров и выходов гетерогенных блоков (перемножителей). Цифрами обозначена разрядность мультиплексоров. Например, число 13 — это мультиплексор 13 в 1 (рис. 9).
Рассмотрим вертикальный трассировочный канал и левый верхний маршрутизатор от блока 89, находящиеся в ядре кристалла (рис. 9а). С каждой стороны маршрутизатора имеется 13 входящих межсоединений, из них 7 входящих непрерывных (серые тре-
угольники, обращенные острием в маршрутизатор) и 6 входящих сегментированных межсоединений (черные треугольники, обращенные острием в маршрутизатор), и 13 исходящих межсоединений: 7 исходящих непрерывных (серые треугольники, обращенные острием от маршрутизатора) и 6 исходящих сегментированных (желтые черточки).
Все входящие межсоединения в маршрутизатор имеют коэффициент разветвления Р8 = 3. В левом нижнем маршрутизаторе ситуация меняется на противоположную (рис. 9б). С каждой стороны маршрутизатора имеется 13 входящих межсоединений, из них 6 входящих непрерывных и 7 входящих сегментированных межсоединений, и 13 исходящих межсоединений: 6 исходя-
Заключение
Ведущие мировые дизайн-центры (более 200) и учебные образовательные центры (более 1000) широко используют программные инструменты T-Vpack и VPR как для проектирования, так и для исследования новых архитектур ПЛИС типа ППВМ.
В настоящее время разработчики не только коммерческих, но и академических ПЛИС пришли к выводу о целесообразности использования однонаправленных сегментированных межсоединений различной длины в трассировочных каналах и мультиплек-сорных структур в соединительных блоках и коммутаторах-маршрутизаторах, что позволяет получать существенный выигрыш по быстродействию и площади кристалла. ■
Рис. 10. Расположение коммутатора-маршрутизатора с общими трассировочными ресурсами:
а) в центре периферийного вертикального трассировочного канала; б) на пересечении горизонтального и вертикального периферийных трассировочных каналов
Литература
1. http://www.eecg.utoronto.ca/vpr
2. www.cygwin.com
3. http://cygwin.com/xfree
4. http://www.intuit.ra/department/security/issec/5/
5. http://opencores.org
6. Betz V., Campbell T., Fang W. M., Jamieson P., Kuon K. I., Luu J., Marquardt A., Rose J., Ye A. VPR and T-VPack User's Manual. Summer 2008. VPR 5.0 Full Release, July 29, 2009.
7. Lewis D., Betz V., Jefferson D., Lee A., Lane C., Leventis P., Marquardt S., McClintock C., Pedersen B., Powell G., Reddy S., Wysocki C., Cliff R., Rose J. The Stratix Routing and Logic Architecture // FPGA'03, Feb. 23-25, 2003. Monterey, California, USA.
8. Luu J., Kuon I., Jamieson P., Campbell T., Ye A., Fang W. M., Rose J. VPR 5.0: FPGA CAD and architecture exploration tools with single-driver routing, heterogeneity and process scaling // FPGA, 2009. Feb. 22-24, 2008. Monterey, California, USA.
9. Brown S., Francis R., Rose J., Vranesic Z. Field-Programmable Gate Arrays. Kluwer Academic Publishers, 1992.
10. Wilton S. Architectures and Algorithms for Field-Programmable Gate Arrays with Embedded Memories. Ph. D. Dissertation. University of Toronto, 1997. (http://www.ece.ubc.ca/~stevew/publications.html).
11. Chang Y. W., Wong D. F., Wong C. K. Universal Switch Modules for FPGA Design. ACM Trans. on Design Automation of Electronic Systems. Jan. 1996.
12. Lemieux G., Lee E., Tom M., Yu A. Direction and Single-Driver Wires in FPGA Interconnect // International Conference on Field-Programmable Technology, 2004.
13. http://ru.wikipedia.org/wiki/Cygwin