Проектирование академических ПЛИС типа ППВМ с одноуровневой структурой межсоединений

№ 6’2011
PDF версия
В статье рассматриваются программные инструменты T-Vpack и VPR, разработанные в университете Торонто (Канада) для проектирования академических ПЛИС типа ППВМ с одноуровневой структурой межсоединений под технологические проектные нормы 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.

Распространение технологии соединений single-driver на соединительные блоки и непосредственное подключение выходов логических блоков к мультиплексорам коммутаторов-маршрутизаторов

В настоящее время считают, что применение однонаправленных межсоединений в совокупности с мультиплексорными структурами в маршрутизаторах наиболее перспективно, так как это позволяет получать существенный выигрыш по сравнению с технологией multi-driver по быстродействию (в этом случае задержка распространения сигнала в трассировочных ресурсах ПЛИС уменьшается на 9%) и по площади кристалла (экономия площади кристалла — до 25%). Технология соединений single-driver, известная как DirectDrive, широко используется в современных сериях ПЛИС серий Stratix. Технология single-driver также распространяется на входные мультиплексоры и демультиплексоры в соединительных блоках (рис. 1).

Рассмотрим типовой маршрут проектирования гетерогенных академических ПЛИС, который предполагает использование следующих программных инструментов: ODIN, ABC, T-Vpack и VPR. ODIN конвертирует схемное описание некоторого сложно-функционального устройства (benchmark, тестовая схема на языке Verilog HDL) в специальный файл в формате .blif, в котором выделяет логические вентили для описания логики устройства и «черные ящики» для гетерогенных блоков.

Далее с помощью инструмента ABC (существуют и другие программные инструменты минимизации булевых функций в базис ПЛИС типа ППВМ с использованием 4-входовой LUT и D-триггера логического блока, такие как SIS и FlowMap) проводится логическая оптимизация схемы на основе специального стиля описания, независимого от технологии проектирования БИС, и ее размещение в логические блоки академической ПЛИС. Выходным также является файл в формате .blif, в котором выделяются LUT, D-триггеры логических блоков и гетерогенные блоки (листинг 1).

# Benchmark “iir1” written by ABC

.latch n279 hetero_REGISTER_61_1838_out re iir1_clk_i_0 0
.latch n284 hetero_REGISTER_61_1839_out re iir1_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

Инструмент T-Vpack перепаковывает файл в .blif-формате (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 14 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] = b10×x[n]+b11×x[n–1]+b12×x[n–2]+a11×y[n–1]+a12×y[n–2] [5] в базис гетерогенных (со встроенными блоками перемножителей 36×36) ПЛИС типа ППВМ с одноуровневой структурой межсоединений.

Пример использования программных инструментов:

…/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.xml (листинг 3). В этом файле находится информация: о требуемых размерах кристалла; о сопротивлении и минимальных геометрических размерах n- и p-МОП-ключей; о емкостях входных буферов мультиплексорных структур соединительных блоков, задержках сигналов через эти буферы и мультиплексоры; о типах маршрутизаторов; о соединительных блоках; о сегментации межсоединений в каналах, о типе межсоединений (двунаправленные или однонаправленные) и их сопротивлении и емкости; о ширине трассировочного канала ядра и периферийного канала между ядром и блоками ввода/вывода и др.

<architecture>
<layout auto=“1.000000” />
— <device>
<sizing R_minW_nmos=“5726.870117” R_minW_pmos=“15491.700195” ipin_mux_trans_size=“1.000000” />
<timing C_ipin_cblock=“1.191000e-14” T_ipin_cblock=“1.482000e-10” />
<area grid_logic_tile_area=“30000.000000” />
< ! Спецификация на трассировочные каналы>
<Задается ширина периферийного трассировочного канала относительно самого широко канала ядра и устанавливается равномерное распределение межсоединений в канале>
— <chan_width_distr>
<io width=“1.000000” />
<x distr=“uniform” peak=“1.000000” />
<y distr=“uniform” peak=“1.000000” />
</chan_width_distr>
<switch_block type=“wilton” fs=“3” />
</device>
< ! Пример спецификации ключа для однонаправленных межсоединений >
< Задается тип ключа, его имя, сопротивление, входные и выходные емкости, внутренняя задержка ключа, геометрический размер мультиплексора и буфера восстановления уровня в условных единицах площади, привязанных к минимальной ширине (канала) транзистора для получения минимальной площади >
— <switchlist>
<switch type=“mux” name=“0” R=“94.841003” Cin=“1.537000e-14” Cout=“2.194000e-13” Tdel=“6.562000e-11” mux_trans_size=“10.000000” buf_size=“1” />
</switchlist>
< ! Пример спецификации на однонаправленные сегментированные межсоединения >
< ! Задаются частота сегментации межсоединения в канале, длина сегмента (сколько кластеров проходит межсоединение без сегментации), направление передачи сигнала (однонаправленное или двунаправленное межсоединение), сопротивление и емкость межсоединения, схема депопуляции (удаление) маршрутизаторов на заданную длину сегмента (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.734000e-11” t_outpad=“4.395000e-11”>
<fc_in type=“frac”>0.250000</fc_in>
<fc_out type=“frac”>1.000000</fc_out>
</io>
<! Пример спецификации кластера N=10, K=4, I=22 >
— <type name=“.clb”>
— <subblocks max_subblocks=“10” max_subblock_inputs=“4”>
— <timing>
— <T_comb>
<trow>1.679000e-10</trow>
<trow>1.679000e-10</trow>
<trow>1.679000e-10</trow>
<trow>1.679000e-10</trow>
</T_comb>
— <T_seq_in>
<trow>-3.990000e-11</trow>
</T_seq_in>
— <T_seq_out>
<trow>1.261000e-10</trow>
</T_seq_out>
</timing>
</subblocks>
<fc_in type=“frac”>0.250000</fc_in>
<fc_out type=“frac”>1.000000</fc_out>

Листинг 3. Фрагмент xml-файла с описанием архитектуры ПЛИС

На рис. 3 показана гетерогенная архитектура ПЛИС типа ППВМ с одноуровневой структурой межсоединений размером 10×10 кластеров и встроенными блоками перемножителей 36×36 (9 шт.) в VPR5.0. Каждый кластер состоит из 10 ЛБ, а каждый блок — из 4-входовой LUT и триггера. По периферии кристалла располагаются блоки ввода/вывода. В базисе ПЛИС размещена тестовая схема БИХ-фильтра. Задействованные блоки перемножителей для реализации БИХ-фильтра отображены оранжевым цветом. Трассировочные ресурсы ПЛИС не подвергаются оптимизации. На рис. 4 представлены электрические связи между функциональными блоками ПЛИС (4-входовая LUT, размер кластера — 10 ЛБ).

 Интерфейс инструмента VPR

 

 Гетерогенная архитектура ПЛИС с одноуровневой структурой межсоединений со связями между функциональными блоками

На рис. 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).

 Общие трассировочные ресурсы гетерогенной ПЛИС

Красным цветом (красные линии и квадраты) показаны выходы кластера, межсоединения, связанные с коэффициентом разветвления по выходу с выделенным кластером, и избыточные (неиспользуемые) трассировочные ресурсы.

На рис. 8 представлены только те трассировочные ресурсы, которые необходимы для реализации БИХ-фильтра в базисе гетерогенной ПЛИС. Синие линии (соединительные блоки и канальные трассировочные ресурсы) связаны с коэффициентом объединения по входу (синие крестики), а красные линии и красные квадраты (выходы кластера) — с коэффициентом разветвления по выходу. Черным цветом показаны входы/выходы кластеров, не связанные с выделенным кластером, этим же цветом обозначены канальные трассировочные ресурсы и различные межсоединения (в маршрутизаторах и соединительных блоках), относящиеся к задаче размещения БИХ-фильтра в базис ПЛИС.

Фрагмент коммутатора-маршрутизатора (левый верхний от блока 89) типа wilton,  горизонтальный трассировочный канал из однонаправленных сегментов и трассировочные ресурсы,  задействованные для реализации БИХ-фильтра в базисе ПЛИС

Горизонтальный и вертикальный трассировочные каналы состоят из 26 однонаправленных межсоединений, то есть ширина канала W = 26 (рис. 9). Канал разделяет коммутатор-маршрутизатор типа wilton с коэффициентом разветвления FS = 3, такой коммутатор обладает лучшей разводимостью (большее число путей маршрутизации в пределах заданного направления) и позволяет организовать длинные межсоединения. VPR 5.0 дает возможность использовать 3 типа маршрутизаторов: subset, wilton, universal.

Коммутатор-маршрутизатор (расположен в центре ядра кристалла ПЛИС), построенный по методологии single-driver

Треугольники (серые и черные) по периферии маршрутизатора показывают направление передачи сигналов по межсоединениям. Серые треугольники по периферии маршрутизатора указывают на то, что пара разнонаправленных межсоединений проходит через маршрутизатор непрерывно (без использования ключей в горизонтальном или вертикальном направлениях). В рассматриваемом примере межсоединения в каналах непрерывно проходят через 2 кластера, в этом случае L = 2.

Желтой черточкой и черной стрелкой показаны места сегментации пары разнонаправленных межсоединений на периферии маршрутизатора. В позиции желтых черточек осуществляется подключение выходов соседних кластеров и выходов гетерогенных блоков (перемножителей). Цифрами обозначена разрядность мультиплексоров. Например, число 13 — это мультиплексор 13 в 1 (рис. 9).

Рассмотрим вертикальный трассировочный канал и левый верхний маршрутизатор от блока 89, находящиеся в ядре кристалла (рис. 9а). С каждой стороны маршрутизатора имеется 13 входящих межсоединений, из них 7 входящих непрерывных (серые треугольники, обращенные острием в маршрутизатор) и 6 входящих сегментированных межсоединений (черные треугольники, обращенные острием в маршрутизатор), и 13 исходящих межсоединений: 7 исходящих непрерывных (серые треугольники, обращенные острием от маршрутизатора) и 6 исходящих сегментированных (желтые черточки).

Все входящие межсоединения в маршрутизатор имеют коэффициент разветвления FS = 3. В левом нижнем маршрутизаторе ситуация меняется на противоположную (рис. 9б). С каждой стороны маршрутизатора имеется 13 входящих межсоединений, из них 6 входящих непрерывных и 7 входящих сегментированных межсоединений, и 13 исходящих межсоединений: 6 исходящих непрерывных и 7 исходящих сегментированных. Таким образом, в первом случае с каждой стороны по 6, а во втором — по 7 мультиплексоров по методологии single-driver.

Рассмотрим коммутаторы-маршрутиза-торы, расположенные на периферийных трассировочных каналах ПЛИС. На рис. 10а показан коммутатор-маршрутизатор, который находится в центре периферийного вертикального трассировочного канала. Слева — кластеры логических блоков, а справа — блоки ввода/вывода. К 13 мульти-плексорам небольшой разрядности (4 и 5) с левой стороны маршрутизатора подключаются выходы кластеров и блоков ввода/вывода. На рис. 10б показан коммутатор-маршрутизатор в углах пересечения горизонтального и вертикального периферийных трассировочных каналов.

Расположение коммутатора-маршрутизатора с общими трассировочными ресурсами

Заключение

Ведущие мировые дизайн-центры (более 200) и учебные образовательные центры (более 1000) широко используют программные инструменты T-Vpack и VPR как для проектирования, так и для исследования новых архитектур ПЛИС типа ППВМ.

В настоящее время разработчики не только коммерческих, но и академических ПЛИС пришли к выводу о целесообразности использования однонаправленных сегментированных межсоединений различной длины в трассировочных каналах и мультиплексорных структур в соединительных блоках и коммутаторах-маршрутизаторах, что позволяет получать существенный выигрыш по быстродействию и площади кристалла. n

Литература

  1. http://www.eecg.utoronto.ca/vpr
  2. http://www.cygwin.com
  3. http://cygwin.com/xfree
  4. http://www.intuit.ru/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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *