Организация GALS-системы с помощью аппаратных компонентов FPGA

Описание архитектуры FPGA семейств UltraScale компании Xilinx

PDF версия
В конце 2013 года компания Xilinx, ведущий производитель программируемых логических интегральных схем, объявила об отгрузке заказчику первых образцов FPGA нового семейства Kintex UltraScale, выполненного с соблюдением 20-нм технологических норм. В ожидании начала серийных поставок нужно проанализировать возможности новых семейств и те изменения в подходах к проектированию, которые могут стать следствием перехода к новой архитектуре.

Введение

Компания Xilinx регулярно выпускает ПЛИС с архитектурой FPGA с применением современных технологических процессов. Этому способствует fables-модель производства, которая подразумевает передачу документации для последующего выпуска микросхем сторонней организации. В настоящий момент ПЛИС Xilinx производятся на предприятиях тайваньской компании TSMC, которой на протяжении последних лет удавалось сохранять свои позиции среди контрактных производителей интегральных микросхем. Выпускаемые в настоящее время FPGA серии 7 выполнены с соблюдением норм 28 нм, а недавно Xilinx сообщила об отправке потребителю первого образца ПЛИС, выполненного с соблюдением 20-нм норм [1].

Планы выпуска новых продуктов с соблюдением норм 28–16 нм показаны на рис. 1. Видно, что новое поколение FPGA будет включать в себя переработку семейств Virtex и Kintex, которые вместо номера поколения получают дополнительное обозначение UltraScale. Семейство Virtex UltraScale также планируется к выпуску с соблюдением норм 16 нм. На данный момент речь идет о выпуске инженерных образцов в течение 2014 года. Таким образом, нет смысла планировать на 2014 год выпуск изделий с применением FPGA UltraScale. Сроки начала поставок промышленных образцов определяются не только Xilinx, но и темпами освоения технологии производства по нормам 20 нм компанией TSMC. Поэтому конкретная дата начала возможных поставок может быть скорректирована в будущем.

Планы выпуска FPGA Xilinx с нормами 28–16 нм

Рис. 1. Планы выпуска FPGA Xilinx с нормами 28–16 нм

 

Состав семейств Virtex и Kintex UltraScale

Основные характеристики семейств Kintex UltraScale и Virtex UltraScale представлены в таблице 1. Из анализа приведенных в ней данных можно сделать некоторые выводы:

  • Диапазон логической емкости в очередной раз расширен: семейство Virtex как hi-end продукт получило микросхему емкостью 4,4 млн логических вентилей (по сравнению с 2 млн в Virtex-7).
  • Максимальная производительность в задачах цифровой обработки сигналов достигается при использовании семейства Kintex, в котором имеется до 5520 секций DSP (больше, чем в Virtex-7 или Virtex UltraScale).
  • Семейство Virtex позиционируется как платформа преимущественно для телекоммуникационных приложений. (Тем не менее, старшая микросхема не имеет большого количества приемопередатчиков и предназначена для прототипирования ASIC.)
  • Произошли некоторые эволюционные изменения в количестве и скорости приемопередатчиков — до 104 шт. в Virtex, а скорость обмена составляет 16 и 33 Гбит/с.
  • Добавлены аппаратные блоки 100G Ethernet и 150G Interlaken, что позволяет в короткие сроки и с предсказуемыми характеристиками разрабатывать проводные телекоммуникационные системы на базе этих интерфейсов.
Таблица 1. Основные характеристики семейств Kintex UltraScale и Virtex UltraScale

Семейство

Kintex UltraScale

Virtex UltraScale

Количество логических ячеек, тыс.

355–1160

627–4407

Объем блочной памяти, Мб

19–75,9

44,3–115,2

Количество секций DSP

1700–5520

600–2880

Производительность DSP, GMAC/s

8180

4268

Количество приемопередатчиков

16–64

36–104

Пиковая скорость приемопередатчиков, Гбит/с

16

33

Пиковая производительность приемопередатчиков, Гбит/с

2086

5101

Количество интерфейсов PCIe

2–4

2–6

100G Ethernet (новый компонент)

2

3–7

150G Interlaken (новый компонент)

1

3–9

Производительность интерфейсов памяти, Мбит/с

2400

2400

Количество программируемых выводов

312–832

364–1456

Напряжение на выводах, В

1–3,3

1–3,3

В 28-нм поколении FPGA наметилась тенденция выделения, например, mid-range продуктов, которыми стали ПЛИС семейства Kintex-7. Если ранее для FPGA основных производителей существовали по сути два класса устройств — высокопроизводительные и дешевые, то с расширением сфер применения программируемой логики потребовалось вывести на рынок семейства с усредненными характеристиками и относительно невысокой ценой. Важно, что для семейства Kintex-7 показатели производительности не ухудшены, а снижение цены было обеспечено уменьшением количества и пиковой скорости приемопередатчиков. Таким образом, преимущественным применением Kintex-7 стала цифровая обработка сигналов.

Эта тенденция, очевидно, получила свое развитие в новом поколении FPGA Xilinx. В семействе Kintex-7 количество секций DSP было меньше, чем в Virtex-7, поэтому выбор аппаратной платформы для цифровой обработки сигналов несколько затруднен тем, что Kintex позиционируется как ПЛИС с наилучшим соотношением производительности и цены, но максимальная абсолютная производительность на одном кристалле достигается, тем не менее, в семействе Virtex. В поколении UltraScale ситуация определенно скорректирована. Если предположить сохранение ценовой политики (то есть меньшую цену для ПЛИС Kintex), то для получения максимальной производительности в задачах цифровой обработки сигналов именно Kintex является наилучшей платформой. При этом семейство Virtex с большим количеством высокоскоростных приемопередатчиков и большим логическим объемом пригодно в первую очередь для телекоммуникационных систем и прототипирования.

В таблицах 2 и 3 приведены подробные характеристики семейств Kintex UltraScale и Virtex UltraScale соответственно.

Таблица 2. Характеристики семейства FPGA Kintex UltraScale

Характеристики

XCKU035

XCKU040

XCKU060

XCKU075

XCKU100

XCKU115

CLB

25 391

30 300

41 460

54 000

68 460

82 920

Количество логических ячеек

355 474

424 200

580 440

756 000

958 440

1 160 880

Количество триггеров CLB

406 256

484 800

663 360

864 000

1 095 360

1 326 720

Объем распределенной памяти, Мбит

5,9

7

9,1

7,2

12,8

18,3

Количество блоков памяти BRAM36

540

600

1080

1188

1680

2160

Всего блочной памяти, Мбит

19

21,1

38

41,8

59,1

75,9

CMT (1 MMCM, 2 PLL)

8

8

12

14

24

24

DLL

40

40

48

64

64

64

Максимальное количество выводов High Performance

416

416

520

624

676

676

Максимальное количество выводов High Range

104

104

104

104

156

156

Количество секций DSP

1700

1920

2760

2592

4200

5520

Системный монитор

1

1

1

1

2

2

PCI Express

2

3

2

4

4

4

Interlaken

0

0

0

2

0

0

100G Ethernet

0

0

0

1

0

0

Количество приемопередатчиков GTH

16

20

32

52

64

64

Таблица 3. Характеристики семейства FPGA Virtex UltraScale

Характеристики

XCVU065

XCVU080

XCVU095

XCVU125

XCVU145

XCVU160

XCVU440

CLB

44 760

55 714

67 200

89 520

102 500

115 800

314 820

Количество логических ячеек

626 640

780 000

940 800

1 253 280

1 435 000

1 621 200

4 407 480

Количество триггеров CLB

716 160

891 429

1 075 200

1 432 320

1 640 000

1 852 800

5 037 120

Объем распределенной памяти, Мбит

4,2

3,9

4,8

8,4

9,4

10,7

28,7

Количество блоков памяти BRAM36

1260

1421

1728

2520

2787

3276

2520

Всего блочной памяти, Мбит

44,3

50

60,8

88,6

98

115,2

88,6

CMT (1 MMCM, 2 PLL)

10

16

16

20

24

26

30

DLL

40

64

64

80

96

104

120

PLL

5

8

8

10

13

13

0

Максимальное количество выводов High Performance

468

780

780

936

988

988

1404

Максимальное количество выводов High Range

52

52

52

104

52

52

52

Количество секций DSP

600

672

768

1200

1365

1560

2880

Системный монитор

1

1

1

2

3

3

3

PCI Express

2

4

4

4

4

4

6

Interlaken

3

6

6

6

9

9

0

100G Ethernet

3

4

4

6

7

7

3

Количество приемопередатчиков GTH

20

32

32

40

52

52

48

Количество приемопередатчиков GTY

20

32

32

40

52

52

0

 

Трассировочные ресурсы UltraScale

Положительной тенденцией для Xilinx можно считать регулярные модификации архитектуры FPGA, что позволяет разработчикам получать преимущества не только от улучшения характеристик вследствие перехода к новому технологическому процессу, но и от появления новых компонентов на кристалле ПЛИС и улучшения характеристик уже имеющихся. При этом революционных изменений в архитектуре основных программируемых компонентов (логических ячеек, блочной памяти, блоков цифровой обработки сигналов) ожидать вряд ли приходится, поскольку их характеристики вполне соответствуют текущему уровню развития технологии и методов проектирования.

Более важная проблема возникла в области проектирования на FPGA в течение последних лет, с переходом от 90 нм (Virtex-4) к последующим поколениям технологических процессов и соответствующих им семейств FPGA. Проблема (рис. 2) заключается в том, что по мере роста размеров кристалла количество логических ячеек возрастает пропорционально квадрату размера, а количество трассировочных линий растет всего лишь линейно. Поэтому по мере перехода к новым поколениям FPGA инженеры Xilinx регулярно увеличивали количество линий, проложенных между ячейками.

Проблема нехватки трассировочных линий при увеличении площади кристалла FPGA [2]

Рис. 2. Проблема нехватки трассировочных линий при увеличении площади кристалла FPGA [2]

Очередной качественный скачок в этом направлении заявлен для семейств UltraScale. Количество разнообразных трассировочных ресурсов в очередной раз увеличивается, что с учетом применения новых алгоритмов «аналитического размещения» (analytical placement) улучшит трассируемость проектов. Это свойство представляется весьма важным в свете последних тенденций развития технологии производства цифровых интегральных схем. Можно заметить, что рост системной тактовой частоты замедлился, вплоть до того, что для семейств UltraScale заявлены те же значения рабочих частот основных программируемых ресурсов, что и для Virtex-7. Однако речь в данном случае идет не о частоте, на которой способен работать конкретный проект, представляющий практический интерес, а о несколько абстрактной схеме, состоящей из цепочки синхронных компонентов, с не более чем одной логической ячейкой между каждой парой регистров. Размещение связанных компонентов в такой цепочке должно быть компактным. Именно для такой конструкции определяется понятие «системная тактовая частота». На практике это значение можно смело полагать недостижимым и рассчитывать на меньшие значения, скорректированные с учетом сложности схемы и особенностей взаимного расположения компонентов.

Именно взаимное расположение компонентов является в настоящее время важнейшим фактором, определяющим достигаемую для проекта тактовую частоту. Еще для техпроцессов с нормами 90 нм было отмечено, что задержки на трассировочных линиях становятся сопоставимыми с задержками на цифровых компонентах микросхем. Это является не следствием ухудшения характеристик трассировочных линий, а результатом повышения быстродействия цифровых компонентов. По мере уменьшения норм технологических процессов эффект не только сохранялся, но и усугублялся тем, что площадь кристалла (а значит, и длина трассировочных линий) постоянно увеличивалась. Поэтому повышение системной тактовой частоты при переходе на новые технологические процессы еще не означает, что этими возможностями удастся воспользоваться на практике. Не менее важно качественно улучшить характеристики трассировочных ресурсов. Именно на это и было обращено внимание при создании нового поколения FPGA UltraScale.

 

Тактовые сигналы в FPGA UltraScale

Кроме передачи данных, для кристаллов большого размера стало необходимым также позаботиться о формировании тактовых сигналов. Уже в серии 7 намечаются некоторые проблемы с синхронизацией компонентов, расположенных в разных точках полупроводникового кристалла. Несмотря на то, что тактовое дерево (clock tree) реализовано с помощью выделенных трассировочных линий, при увеличении размеров FPGA инженеры Xilinx сталкиваются с вполне объективными препятствиями. На практике на тактовую частоту проекта из сотен тысяч и даже миллионов логических ячеек будут влиять характеристики джиттера и неравномерность распространения по кристаллу тактового сигнала. Эти показатели невозможно улучшать до бесконечности, тем более что увеличение размеров ПЛИС предъявляет все более жесткие требования к тактовым цепям.

Одним из возможных решений для серии 7 является переход, например, к GALS-архитектуре (Globally Asynchronous, Locally Synchronous), в рамках которой проект реализуется в виде нескольких подсистем, каждая из которых имеет собственный независимый источник тактового сигнала, располагаясь на кристалле компактно. Подсистемы не синхронизированы друг с другом (хотя номинальное значение их тактовых частот может и совпадать), а передача данных между ними происходит с помощью схем с аппаратной поддержкой двух синхронных интерфейсов, например true dual-port RAM.

Практика показывает, что корректное использование тактовых ресурсов FPGA до сих пор остается проблемой для некоторых разработчиков. Трудность заключается скорее в недостаточной актуализации проблемы формирования тактовых сигналов и необходимости использования для этой цели вполне определенных компонентов. Дополнительно ситуация усугубляется тем, что использование упрощенной схемы, показанной на рис. 3, само по себе не является гарантированным путем получения неработоспособного проекта, который мгновенно потребовал бы внимания разработчика и исправления ситуации. Источником проблемы в действительности является объективная нестабильность временных характеристик современных цифровых микросхем, которую обычно обозначают аббревиатурой PVT — Process, Voltage, Temperature.

Понятие Process относится к вариациям технологического процесса, которые не позволяют изготовить абсолютно идентичные микросхемы. Поэтому проект, рассчитанный на конкретные значения задержек, будет работать только в определенных экземплярах FPGA. Термины Voltage и Temperature указывают на изменение задержек сигналов при колебаниях напряжения питания и температуры, что происходит постоянно в процессе эксплуатации устройств на базе ПЛИС. Влияние этих факторов становится все заметнее с уменьшением норм технологического процесса, поэтому уже начиная с 90-нм ПЛИС (Spartan-3, Virtex-4) разработчики часто сталкивались с явлением, когда логически корректный проект, проходящий требуемые функциональные тесты, оказывался неработоспособным либо при изменении условий эксплуатации, либо для отдельных микросхем при производстве партии изделий.

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

Проблема не является абсолютно неразрешимой. На протяжении последних поколений Xilinx устанавливает в ПЛИС специальные аппаратные компоненты для формирования и распространения тактового сигнала. Прежде всего, тактовый сигнал должен быть подан в ПЛИС через специальные входы, которые могут передать его на специальные тактовые буферы. Такие буферы обозначаются как IBUFG (Input BUF Global) и располагаются непосредственно за входами, отмеченными в документации как «глобальные тактовые входы» (GCLK). Далее тактовые сигналы могут быть переданы на вертикальные магистрали, подключенные к выходам внутренних тактовых буферов BUFG. Кроме того, что эти буферы имеют непосредственный выход на глобальные тактовые магистрали, они также обеспечивают большую скорость нарастания тактового сигнала (то есть малый clock skew). Такое подключение получится автоматически после объявления сигнала clk в качестве входного и дальнейшего упоминания его в качестве тактового:

Port(
clk : in std_logic
…

process(clk)
begin
  if rising_edge(clk) then
…
Некорректная схема формирования тактового сигнала

Рис. 3. Некорректная схема формирования тактового сигнала

Синтезатор автоматически установит буферы IBUFG и BUFG, однако стабильная работа такой схемы (рис. 3) не гарантируется. Дело в том, что компонент BUFG не обеспечивает коррекцию фазы с учетом влияния температуры и напряжения для тактового сигнала при его передаче компонентам большого кристалла. Для того чтобы обеспечить синхронизацию и коррекцию сигнала с течением времени, необходимо установить в проект компонент PLL или MMCM (рис. 4). Важнейшим свойством этого компонента является «обеспечение нулевой задержки» (zero insertion delay), что на практике означает то, что фаза выходного сигнала совпадает с фазой входного сигнала. Термин «нулевая задержка», таким образом, не означает, что PLL/MMCM могут передавать сигнал мгновенно, а отражает тот факт, что обратная связь по выходному тактовому сигналу позволяет этим блокам компенсировать вариации задержки его распространения.

Организация глобальной тактовой сети с помощью компонента PLL или MMCM

Рис. 4. Организация глобальной тактовой сети с помощью компонента PLL или MMCM

Установка в проект формирователя тактового сигнала может быть выполнена с помощью соответствующего IP-ядра (рис. 5). Альтернативным вариантом для опытных разработчиков может быть использование низкоуровневого описания аппаратного компонента PLL или MMCM, которое может быть вставлено в HDL-описание в качестве ссылки на аппаратный примитив. Соответствующие шаблоны описания приведены в справочной системе (раздел Templates).

Настройка IP-ядра формирователя тактового сигнала

Рис. 5. Настройка IP-ядра формирователя тактового сигнала

Описанные действия на данный момент абсолютно необходимы при разработке проектов на базе FPGA. К сожалению, отдельные разработчики высказывают мнение о том, что компонент BUFG сам по себе достаточен для надежной синхронизации компонентов проекта. Мнение обычно аргументируется тем, что BUFG обеспечивает крутой фронт тактового сигнала и позволяет распространять его по выделенным аппаратным ресурсам. Это абсолютно справедливое замечание, однако перечисленных свойств BUFG недостаточно для обеспечения подстройки тактового сигнала и коррекции внешних факторов.

Эволюция архитектуры FPGA и переход к новым поколениям привели к тому, что современные проблемы формирования тактовых сигналов должны решаться путем развития описанного выше подхода. Таким образом, освоение правил проектирования синхронных схем с применением аппаратных компонентов PLL/MMCM с появлением семейства UltraScale начинает выглядеть не только необходимым, но и в своем роде базовым приемом, который требует дальнейшей модификации.

Модификация, как было упомянуто ранее, заключается в создании на кристалле нескольких тактовых регионов, каждый из которых тактируется собственным источником. Номинальные значения тактовых частот могут совпадать, однако формально разработчик не может гарантировать, что фазы этих сигналов будут находиться в каком-то определенном соотношении. Однако выгода от такого разделения проекта заключается в том, что при компактном расположении модулей, тактируемых одним и тем же сигналом, достижение высокой рабочей частоты заметно облегчается.

Разделение проекта на тактовые регионы можно проводить по различным принципам:

  1. В проекте выделяются подсистемы, выполняющие разные функции. Например, подсистема цифровой обработки сигналов создается на базе IP-ядер и работает на высокой тактовой частоте. Управление такой системой и реализацию интерфейсных функций может выполнять софт-процессор MicroBlaze, для которого выбирается отдельный тактовый регион, а сам процессор работает на умеренной частоте (поскольку непосредственно в операциях цифровой обработки сигналов он не участвует). Аналогично можно выделить сетевую подсистему, построенную вокруг высокоскоростных последовательных приемопередатчиков. При таком подходе можно ожидать, что внесение небольших изменений в процессорную подсистему (например, добавление контроллера UART или регистров для управления светодиодами) не будет затрагивать характеристики наиболее ответственной высокоскоростной части проекта.
  2. Разделяются тактовые сети отдельных каналов. При таком подходе собственный источник тактового сигнала получает каждый канал многоканальной системы. Одним из приемов обеспечения высокой частоты для передачи данных является использование, например, source-synchronous интерфейсов, для которых данные сопровождаются отдельным тактовым сигналом (формируемым, например, некоторыми высокоскоростными АЦП). При наличии большого количества таких АЦП у ПЛИС оказывается соответствующее количество тактовых входов, на которые подаются независимые (хотя и номинально совпадающие по частоте) тактовые сигналы. Каждый канал в этом случае будет иметь собственную систему обработки, тактируемую сигналом от внешнего АЦП.

Передача данных между отдельными тактовыми подсетями должна выполняться с применением схем ресинхронизации (рис. 6). Самой простой из таких схем является узел из двух последовательно установленных триггеров. Однако современные FPGA имеют достаточное количество более подходящих для решения этой задачи аппаратных компонентов — блоков синхронной двухпортовой памяти. Эти блоки (BRAM) имеют два полностью независимых порта для доступа к одному и тому же массиву ячеек емкостью 36 кбит. Таким образом, можно использовать этот блок для надежной передачи данных между тактовыми подсетями, с учетом того, что к каждому порту подключаются сигналы от одной из этих подсетей.

Организация GALS-системы с помощью аппаратных компонентов FPGA

Рис. 6. Организация GALS-системы с помощью аппаратных компонентов FPGA

В предыдущих поколениях FPGA использовалась схема, при которой в центре кристалла располагались источники тактовых сигналов. Глобальные буферы BUFG передавали тактовые сигналы по вертикальным линиям, от которых с помощью горизонтальных магистралей эти сигналы распространялись по отдельным областям FPGA — тактовым регионам. Поскольку источником сигнала является центр кристалла, то по мере распространения сигнала к периферии неминуемо накапливается задержка. При достижении определенных размеров ПЛИС становится очень сложно обеспечивать синхронность тактового сигнала для всех компонентов проекта, оставаясь в рамках подобного подхода. В устройствах семейств UltraScale применена новая схема формирования тактовых ресурсов, подобная тем, которые используются в заказных микросхемах (например, ASIC-like clocking). Схематичное изображение тактовых ресурсов ПЛИС UltraScale представлено на рис. 7.

Тактовые сети FPGA UltraScale

Рис. 7. Тактовые сети FPGA UltraScale

Такая схема гораздо лучше соответствует подходу, основанному на разделении проекта на несколько тактовых регионов. Для каждой из подсетей, показанных на рис. 7, можно установить собственный источник тактового сигнала, выбрав его среди ресурсов, размещенных в непосредственной близости (а не в центре кристалла, как в предыдущих поколениях FPGA). В каждом из тактовых регионов расположены 24 тактовых сети, которые могут тактироваться буферами, размещенными в том же регионе. Размер региона несколько увеличен по сравнению с серией 7 и составляет 60 CLB в высоту. Таким образом, общее количество центров распространения тактового сигнала в семействах UltraScale может достигать нескольких сотен, и эти центры равномерно распределены по всему кристаллу. Такая схема делает привлекательным использование GALS-архитектур для построения высокопроизводительных систем большого логического объема.

Каждый регион содержит:

  • 24 компонента BUFGCE;
  • 8 компонентов BUFGCTRL;
  • 4 делителя BUFGCE_DIV.

Каждый из этих буферов может использовать в качестве входа и входы, помеченные как clock-capable, входящие в состав этого региона, и выходы формирователей частоты PLL и MMCM. Графическое изображение аппаратного примитива BUFGCTRL представлено на рис. 8. Он имеет два набора входных сигналов, включающих в себя:

  • вход для тактового сигнала I;
  • вход выбора (Select) S;
  • вход разрешения работы по данному каналу CE;
  • вход управления игнорированием данного канала IGNORE.
Графическое изображение аппаратного примитива BUFGCTRL

Рис. 8. Графическое изображение аппаратного примитива BUFGCTRL

На практике управление всеми этими сигналами для обоих каналов требуется далеко не всегда. Установив на некоторых управляющих входах постоянные логические уровни, можно получить более простые узлы, оформленные в библиотеке компонентов Xilinx в виде отдельных примитивов. На рис. 9 показан компонент BUFGCE_1, представляющий собой глобальный тактовый буфер с сигналом «разрешение счета» (Clock Enable).

В практике проектирования на базе ПЛИС существует понятие gated clock (дословно: «тактовый сигнал, проходящий через логический вентиль»). Его появление в проекте относят к неудачным решениям, которых следует избегать. Одна из причин такой оценки очевидна: сигнал, прошедший через логическую ячейку, далее будет распространяться не по выделенным тактовым линиям, а по трассировочным ресурсам общего назначения, которые имеют худшие параметры в части распространения скоростных сигналов по всему кристаллу. Вторая важная причина кроется в том, что после такого преобразования фронт тактового сигнала будет приходить на аппаратные компоненты с разной, трудно прогнозируемой задержкой, что вызовет эффект «гонок фронтов». Наконец, при включении и выключении тактового сигнала обычным вентилем возможно появление коротких «иголок» (glitches), на которые часть синхронных ресурсов ПЛИС может отреагировать, а часть — нет, что приведет к появлению «мерцающей неисправности».

Компонент BUFGCTRL в режиме глобального буфера с разрешением счета (компонент BUFGCE_1)

Рис. 9. Компонент BUFGCTRL в режиме глобального буфера с разрешением счета (компонент BUFGCE_1)

От всех этих недостатков свободны специализированные компоненты для работы с тактовым сигналом — BUFGCTRL и созданные на их основе разновидности библиотечных элементов. На рис. 10 показаны временные диаграммы работы компонента BUFGCE_1 при выключении и включении тактового сигнала. На этом рисунке видно, что при внезапном выключении сигнала разрешения счета текущий полупериод тактового сигнала корректно завершается, что исключает появление «иголок». При возвращении сигнала разрешения выход буфера также продолжает счет только со следующего фронта тактового сигнала. Таким образом, для корректного распространения тактового сигнала следует использовать только компоненты BUFGCE и их разновидности.

Временные диаграммы работы компонента BUFGCE_1 при выключении и включении тактового сигнала

Рис. 10. Временные диаграммы работы компонента BUFGCE_1 при выключении и включении тактового сигнала

Аналогичными свойствами обладает компонент BUFGMUX, предназначенный для переключения между двумя тактовыми сигналами. Его графическое обозначение показано на рис. 11, а временные диаграммы работы — на рис. 12. На временной диаграмме видно, что, несмотря на произведенное переключение, мультиплексор корректно завершает текущий полупериод тактового сигнала и только потом переключается на тот, который был выбран сигналом S. Отмеченные жирной линией участки выходного сигнала показывают, что выходной тактовый сигнал остается на низком уровне, хотя выбранный вход находится в это время в состоянии логической единицы. Такое поведение, так же, как и для компонента BUFGCE, позволяет исключить возникновение коротких тактовых импульсов, которые могли бы быть восприняты только частью синхронных компонентов проекта.

Компонент BUFGCTRL в режиме глобального мультиплексора BUFGMUX

Рис. 11. Компонент BUFGCTRL в режиме глобального мультиплексора BUFGMUX

Временные диаграммы работы компонента BUFGMUX в режиме переключения тактовых сигналов

Рис. 12. Временные диаграммы работы компонента BUFGMUX в режиме переключения тактовых сигналов

Компоненты BUFGCE представляют собой буферы, способные только выключать тактовый сигнал. В отличие от BUFGCE_1, созданного на основе более мощного BUFGCTRL, они не имеют дополнительных возможностей по переключению между тактовыми сигналами.

Компонент BUFGCE_DIV позволяет дополнительно делить тактовую частоту на 1–8. Все это дает возможность организовать достаточное количество тактовых сетей в каждом из регионов FPGA UltraScale.

 

Архитектура логических ячеек

 Основой FPGA являются программируемые логические ячейки, объединяемые в конфигурируемые логические блоки (Configurable Logic Block, CLB). Ячейки семейства UltraScale в целом подобны ячейкам серии 7, однако их архитектура улучшена.

Прежде всего, для UltraScale упразднено понятие секции (slice). Вместо этого CLB собираются непосредственно из LUT и триггеров с добавлением общих для всего блока дополнительных компонентов. Можно говорить, что секции и CLB теперь совпадают.

В серии 7 существует понятие control set, которое относилось к набору сигналов управления триггерами — clk, ce, reset. Эти сигналы физически обобщены для всех триггеров секции, что не дает возможности разместить в одной секции один триггер с аппаратным контролем разрешения сигнала (ce), а другой — без такого контроля. Синтезатор частично разрешает эту проблему, при необходимости подавая сигналы ce и reset на LUT для формирования эквивалентной схемы без использования аппаратных управляющих входов триггера. Например, если реализовать в LUT мультиплексор, который писал бы в триггер или входной сигнал D, или «лог. 0», такая схема будет эквивалентна триггеру с синхронным сбросом. (Поскольку сигнал reset, поданный в качестве селектора на мультиплексор, вызовет запись в триггер логического нуля.) Тем не менее, такой подход не отменяет того факта, что функциональные возможности CLB в серии 7 несколько урезаны. Это не мешает реализации большинства узлов цифровых схем, однако представляет собой цель последующего улучшения.

В UltraScale каждый CLB имеет четыре независимых сигнала clock enable, а также возможность инверсии сигнала сброс/установка. Добавлена отдельная тактовая линия для распределенной памяти (то есть памяти, реализуемой на базе LUT) и отдельный от триггеров сигнал clock enable.

Выходы LUT могут быть независимо поданы на выход CLB. Таким образом, LUT и триггеры могут использоваться независимо. Триггеры могут быть как D-триггерами, так и защелками (latch).

В CLB добавлен мультиплексор F9MUX. Можно напомнить назначение подобных мультиплексоров в CLB: выходы 6-входовых LUT могут быть объединены мультиплексором F7, а два таких мультиплексора в свою очередь объединяются мультиплексором F8. На этом функциональность CLB предыдущей серии 7 ограничивалась. В UltraScale выходы двух F8 поданы на мультиплексор F9, что позволяет объединять еще больше LUT для формирования более сложной комбинаторной схемы (или распределенной памяти 512×1).

Колонки CLB так же, как и в предыдущих сериях, связаны линиями ускоренного переноса для построения сумматоров/вычитателей (а также основанных на них узлах — счетчиках, аккумуляторах и т. п.).

На рис. 13 показано схематичное изображение CLB в семействах UltraScale.

CLB в UltraScale

Рис. 13. CLB в UltraScale

 

Блоки XtremeDSP

Давно признано, что цифровая обработка сигналов — область, в которой FPGA демонстрируют великолепные показатели как по абсолютной производительности, достигаемой на одном кристалле, так и по относительной стоимости одной операции «умножение с накоплением». Это достигается благодаря размещению в FPGA большого количества блоков DSP48, которые благодаря аппаратной реализации работают на высокой тактовой частоте и потребляют умеренную мощность. В UltraScale хорошо зарекомендовавшая себя архитектура DSP48 получила очередной набор модификаций. Блок теперь получил обозначение DSP48E2. Его архитектура схематично показана на рис. 14.

Блок цифровой обработки сигналов DSP48E2

Рис. 14. Блок цифровой обработки сигналов DSP48E2

Основные особенности DSP48E2:

  • Блоки объединены попарно в компонент DSP slice с добавлением выделенных аппаратных ресурсов, облегчающих построение некоторых часто применяемых схем.
  • Умножитель 27×18 (вместо 25×18) бит.
  • 27-битный предварительный сумматор.
  • Добавлены возможные операнды для АЛУ (например, обратная связь по сигналу P), что расширяет функциональность этого блока при выполнении математических операций.
  • Добавлен блок XOR в АЛУ.
  • Введена возможность программируемой инверсии сигнала сброса.

В целом блоки DSP48E2 полностью соответствуют возможностям блоков предыдущего поколения, что позволяет переносить проекты, разработанные для серии 7 и более ранних. Можно отметить, что расширение разрядности умножителя позволяет выполнять операции над числами с плавающей точкой с привлечением меньшего количества блоков DSP48E2.

 

Блоки памяти

Блоки памяти BRAM в UltraScale в целом соответствуют аналогичным блокам серии 7. Ряд изменений перечислен в [5]:

  • При использовании в режиме Single Port Memory доступны все режимы записи: READ_FIRST, WRITE_FIRST, NO_CHANGE.
  • Есть возможность создания больших модулей памяти путем каскадирования нескольких блоков RAM в пределах одной колонки.
  • Добавлен сигнал «разрешение адреса».
  • Управление динамической составляющей потребляемой мощности: блок памяти может быть переведен в «спящее» состояние с сохранением данных.
  • Встроенное аппаратное FIFO и IP-ядро FIFO соответствуют друг другу насколько это возможно, что призвано облегчить переключение между аппаратной и программируемой реализацией в процессе проектирования.
  • Добавлена возможность каскадирования FIFO.
  • Добавлен вход синхронного сброса FIFO.
  • Изменено поведение флагов FIFO.
  • Поддерживается асимметрия портов FIFO: каждый из портов чтения и записи может быть независимо сконфигурирован как ×4, ×9, ×18, ×36 или ×72 для FIFO36E2 и как ×4, ×9, ×18, ×36 для FIFO18E
  • Добавлен конвейеризующий регистр для ECC.
  • Аппаратный контроллер FIFO более не является полностью совместимым с FIFO серии 7.

Графическое изображение примитива RAMB36E2 показано на рис. 15.

Графическое изображение примитива RAMB36E2

Рис. 15. Графическое изображение примитива RAMB36E2

 

Высокоскоростные последовательные приемопередатчики

Высокоскоростные последовательные приемопередатчики (Multi-Gigabit Transceivers, MGT) — один из компонентов, определяющих современную сферу применения FPGA. Большое количество аппаратных ядер приемопередатчиков на одном кристалле обеспечивает высокую пропускную способность в коммуникационных приложениях. Размещение на том же кристалле достаточного количества программируемых ресурсов позволяет реализовать различные виды обработки передаваемых данных, что делает FPGA привлекательной аппаратной платформой для реализации высокотехнологичного коммуникационного оборудования. Семейство UltraScale нацелено на системы класса 100G и 400G.

По сравнению с приемопередатчиками серии 7 семейство UltraScale получило в целом аналогичные по функциональности модули с ожидаемым вследствие нового техпроцесса улучшением производительности. Краткая характеристика приемопередатчиков в FPGA UltraScale приведена в таблице 4.

Таблица 4. Краткая характеристика приемопередатчиков в FPGA UltraScale

Характеристики

Kintex UltraScale

Virtex UltraScale

Название

GTH

GTH

GTY

Количество

16–64

20–52

0–52

Максимальная скорость передачи, Гбит/с

16,3

16,3

32,75

Минимальная скорость передачи, Гбит/с

0,5

0,5

0,5

Пример приложения

Backplane,

PCI Express Gen4

Backplane,

PCI Express Gen4

100 G+, Chip to Chip,

25 G+ Backplane

 

Аппаратный контроллер PCI Express

Все FPGA UltraScale имеют по крайней мере один аппаратный контроллер PCI Express, соответствующий спецификации стандарта 3.0. Контроллеры PCI Express размещались и в предыдущих поколениях FPGA Xilinx, обеспечивая не столько экономию программируемых ресурсов (ядро контроллера PCI Express оценивается приблизительно в 5000 ячеек), сколько гарантированные характеристики производительности, не зависящие от нюансов размещения проекта в кристалле. Обычно аппаратное ядро PCI Express может быть дополнено программируемыми ресурсами для обеспечения совместимости с более поздним стандартом спецификации. Согласно текущей документации ядро поддерживает одну, две, четыре или восемь линий и может работать со скоростью передачи 2,5, 5 и 8 Гбит/с.

 

Аппаратные блоки 100G Ethernet и Interlaken

В UltraScale впервые добавлены аппаратные контроллеры 100G Ethernet и Interlaken. Как и для PCI Express, эти контроллеры облегчают построение соответствующих интерфейсов, освобождая разработчика от необходимости выполнять настройку конфигурируемых решений и следить в процессе проектирования за соблюдением требований к относительному размещению компонентов. Блок 100G Ethernet поддерживает конфигурации 10×10,3125 или 4×25,78125 Гбит/с. Актуальность следующего поколения интерфейса Ethernet, по всей видимости, не подлежит сомнению.

Интерфейс Interlaken представляет собой масштабируемый протокол обмена chip-to-chip, работающий на скорости 10–150 Гбит/с. Так же, как и 100G Ethernet, Interlaken основан на использовании нескольких линий связи для достижения высокой суммарной скорости. Поддерживаются следующие режимы: 1–12 линий на 10,3125 Гбит/с, 1–12 линий на 12,5 Гбит/с и 1–6 линий на 25,78125 Гбит/с.

 

Применение

Можно обратить внимание на то, что для технологических процессов с нормами 20 и 14–16 нм не предполагается выпуск FPGA семейства Artix. Минимальный объем FPGA UltraScale оказывается довольно большим. Таким образом, можно говорить, что микросхемы UltraScale предназначаются в первую очередь для высокопроизводительных решений. Поскольку повышения тактовой частоты по сравнению с серией 7 не наблюдается, основное преимущество UltraScale ожидается в сфере улучшения трассируемости проектов большой сложности, содержащих множество тактовых подсетей.

В настоящее время можно указать несколько областей, которые могли бы получить преимущества от применения высокопроизводительных цифровых микросхем. Стоимость элементной базы в таких областях оказывается вторичным показателем, поскольку на первое место выходит необходимость обеспечения требуемой функциональности и производительности. На рис. 16 показаны потенциальные сферы применения UltraScale в соотношении с теми техническими характеристиками, которые могут обеспечить FPGA нового поколения.

Потенциальные сферы применения UltraScale

Рис. 16. Потенциальные сферы применения UltraScale

В области оптоволоконных сетей постоянный рост мирового трафика требует все большего повышения скорости передачи. В настоящее время состоявшейся можно считать скорость 100 Гбит/с. Для достижения такой скорости передачи используются несколько приемопередатчиков. Соответствующие решения имеются в виде IP-ядер Xilinx для FPGA серии 7. Для UltraScale указывается скорость 400 Гбит/с, относящаяся к следующему поколению оптоволоконных устройств связи. Ожидается, что развитие элементной базы ПЛИС будет способствовать реализации и следующего поколения оптоволоконных устройств связи, включая скорость в 1 Тбит/с.

В области цифрового видео на протяжении последних лет наблюдаются тенденции к постоянному росту разрешения дисплеев. При этом важно, что увеличение разрешения по каждой из сторон дисплея в 2 раза приводит к увеличению количества пикселей в 4 раза. Если на текущий момент на рынке в качестве «высокого разрешения» преобладают дисплеи стандарта High Definition, имеющие разрешение 1920×1080 (1080p, где «p» означает progressive scan, то есть построчную развертку), то в качестве следующего поколения дисплеев указываются, например, 4K2K (то есть имеющие приблизительно 4000×2000 пикселей) и далее до 8K (то есть примерно 8000×4000). При этом можно видеть, что количество пикселей на экране возрастает с 2 млн до 8 млн в формате 4K2K и даже 32 млн для 8K. Если добавить к этому возможности дополнительной обработки видео (например, фильтрацию, наложение эффектов), суммарный объем операций и передаваемых данных оказывается внушительным.

Похожие требования предъявляют беспроводная связь и радары. Улучшение таких показателей FPGA, как производительность в задачах ЦОС и пропускная способность памяти (накристальной и внешней), положительно сказывается на характеристиках устройств, обрабатывающих сигналы с небольшим отношением сигнал/шум.

 

Заключение

Как это было и с серией 7, анонс характеристик FPGA UltraScale не означает, что эти ПЛИС стали доступны для заказа в России непосредственно с момента помещения в свободном доступе технической документации. В связи с этим настоятельно не рекомендуется планировать выпуск изделий на базе UltraScale в течение 2014 года. Более важным представляется освоение методов проектирования цифровых систем для ПЛИС большого логического объема, подготовка инструментов и проведение моделирования на системном уровне, что позволит по мере доступности FPGA UltraScale переходить к следующим этапам разработки.

Литература
  1. Xilinx Ships Industry’s First 20nm All Programmable Product.
  2. Nick Mehta. Xilinx UltraScale Architecture for High-Performance, Smarter Systemshttp.
  3. UltraScale Architecture Configurable Logic Block. Advance Specification User Guide 
  4. UltraScale Architecture DSP Slice. Advance Specification User Guide
  5. UltraScale Architecture Memory Resources. Advance Specification User Guide
  6. UltraScale Architecture GTH Transceivers. Advance Specification User Guide 

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

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