Разработка цифровых систем на базе FPGA Xilinx начального уровня

PDF версия
Микросхемы с архитектурой FPGA часто воспринимаются только как дорогие высокопроизводительные устройства, которые достаточно сложны в применении, требуют проектирования многослойной печатной платы и не могут быть смонтированы без специального оборудования. Однако до сих пор компанией Xilinx выпускаются ПЛИС начального уровня, выполненные в корпусах TQFP и предназначенные для широкого диапазона цифровых устройств. Это два младших представителя семейства Spartan-6, и в настоящее время не потерявшего актуальности. В статье рассмотрены вопросы проектирования электронной аппаратуры с использованием данных микросхем и предложены практические рекомендации по проектированию печатной платы, организации системы питания, программированию и сопряжению с периферийными устройствами.

Введение

Семейство Spartan‑6 выполнено с соблюдением норм 45‑нм технологического процесса. В состав семейства входит несколько микросхем в диапазоне логической емкости от 4 до 150 тыс. эквивалентных логических ячеек. Семейство выпускается компанией Xilinx с 2008 года, с переходом на 28‑нм технологический процесс оно было заменено семейством Artix‑7. Однако с учетом комплекса технических характеристик Spartan‑6 до сих пор представляет интерес, в первую очередь в связи с наличием корпусов TQFP144 с шагом выводов 0,5 мм, которые допускают монтаж без специального оборудования, в том числе в условиях исследовательской, вузовской или даже домашней лаборатории (рис. 1). В настоящее время Xilinx предполагает продлить сроки изготовления семейства Spartan‑6 по крайней мере до 2020 года.

FPGA в корпусе TQFP144

Рис. 1. FPGA в корпусе TQFP144

В таблице приведены характеристики микросхем Spartan‑6 LX4 и LX9.

Таблица. Характеристики микросхем семейства Spartan‑6, доступных в корпусах типа TQFP144

Параметр

LX4

LX9

Секций

600

1430

Эквивалентных логических ячеек

3840

9152

Триггеров

4800

11440

Блоков памяти (18 кбит)

12

32

Блоков DSP48A1

8

16

Пользовательских выводов в корпусе TQ144

102

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

 

Мнение 1: ПЛИС — чрезмерно дорогие устройства для несложных изделий

В этой связи могут упоминаться совершенно не соответствующие действительности минимальные цены. Как правило, речь идет о сотнях и тысячах долларов США, что справедливо для FPGA верхнего ценового диапазона. Однако в данной статье речь идет о микросхемах, розничные цены на которые находятся в пределах $9–12.

Даже эта сумма превышает цены на микроконтроллеры начального и среднего уровня. Впрочем, необходимо сразу заметить, что стоимость компонентов (не говоря уже о стоимости разработки в целом) определяется стоимостью «главной» микросхемы не в полной мере. Если сравнивать аналогичные платы, основанные на МК с ценой в $1, и ПЛИС с ценой в $10, то совокупная стоимость компонентов не будет различаться в 10 раз. Интерфейсные микросхемы, разъемы, подсистемы питания также внесут свой вклад в общую стоимость элементной базы, и их цена практически не изменится при переходе с МК к ПЛИС.

Кроме того, в ряде случаев малая стоимость МК, особенно сформированная по принципу «стоимость МК этой серии — от NNN», при развитии проекта становится некоей ловушкой. Например, в практике автора был случай, когда предложенная заказчиком серия микроконтроллеров имела в своем составе микросхему со стоимостью меньшей, чем стоимость ПЛИС. Однако изучение ТЗ показало, что микросхема, имеющая минимальную цену, непригодна для этого проекта, поскольку требуемый набор периферийных устройств не мог быть одновременно задействован в корпусе минимального размера. Переход же к корпусу с большим числом выводов повлек за собой и продвижение по линейке МК, в результате самый дешевый из микроконтроллеров, подходящих для решения задачи, оказался вдвое дороже ПЛИС Spartan‑6LX9.

С организационной точки зрения снижение цены при серийном выпуске изделий может быть получено при ранней регистрации проекта у официального дистрибьютора. Практика регистрации проектов поддерживается многими изготовителями элементной базы, поскольку существенно облегчает планирование дальнейшего производства. Компания Xilinx, работающая по принципу fabless, то есть не имеющая собственных фабрик, в довольно большой степени зависит от точности своих прогнозов по востребованности элементной базы тех или иных разновидностей, поэтому раннее уведомление о намерении рассмотреть ПЛИС Xilinx в проекте вознаграждается специальными скидками. Следует подчеркнуть, что такое уведомление не означает обязательство покупки определенного количества микросхем, и даже не означает, что разработчик уже уверен в использовании ПЛИС Xilinx, а не ПЛИС других производителей или даже микроконтроллера. Однако впоследствии при ссылке на данную регистрацию покупателю предоставляется ранее оговоренная фиксированная цена. Разумеется, речь идет только о приобретении у официального дистрибьютора — например, www.plis.ru.

 

Мнение 2: ПЛИС — чрезмерно медленные устройства с большим энергопотреблением

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

Если вести речь о скорости и потреблении, можно сразу отметить, что характеристики и сферы применения FPGA все чаще ориентированы на аппаратные ядра в таких микросхемах. Для Spartan‑6 это блочная память и секции DSP. Они способны работать на высокой тактовой частоте (275–325 МГц, в зависимости от класса скорости ПЛИС) и расходуют не больше энергии, чем аналогичные устройства в МК (что естественно, поскольку память и DSP представляют собой непрограммируемые модули). Вот почему говорить о снижении скорости и повышении потребляемой мощности имеет смысл в основном для той части проекта, которая выполнена на базе логических ячеек.

Важным преимуществом ПЛИС, нивелирующим недостатки программируемых ресурсов, является возможность организовать специализированные вычислительные блоки, построенные на базе секций DSP. Такие блоки могут работать полностью параллельно и обеспечивать суммарную производительность, превосходящую производительность не только МК, но и сигнальных процессоров. Например, 16 секций DSP, действующие на частоте 200 МГц (это вполне достижимо для многих модулей ЦОС), дают суммарную производительность, эквивалентную гипотетическому процессору с тактовой частотой 3,2 ГГц.

Потребление типичных проектов на базе ПЛИС Spartan‑6LX4/LX9 обычно составляет несколько сотен миллиампер. Это действительно больше, чем у многих МК, но не требует специального внимания к подсистеме питания и даже применения пассивного охлаждения. Исключением могут стать проекты с большим количеством интенсивно переключающихся триггеров, однако во избежание появления таких эффектов на поздних стадиях проекта можно воспользоваться утилитой XPower, входящей в состав САПР. Она достаточно точно оценивает потребляемую мощность, основываясь на количестве используемых в проекте ресурсов и заданной тактовой частоте.

 

Мнение 3: проектирование устройств на базе ПЛИС очень сложно и требует дорогостоящих средств разработки

В действительности уже более 10 лет Xilinx бесплатно предоставляет лицензию на САПР с регламентированным объемом ПЛИС. Однако ограничительная планка установлена на емкости, в десятки раз превышающей емкость ПЛИС, практически применимых в проектах начального уровня. Объем самого проекта (количество строк, IP-ядер, файлов и т. п.) не связан какими-либо рамками. Бесплатная версия САПР в действительности не существует как отдельный продукт — это та же версия САПР ISE, для которой генерируется специальный лицензионный файл, устанавливающий ограничения по типам доступных для проекта микросхем. САПР можно загрузить с официального сайта Xilinx www.xilinx.com.

Относительно справедливо мнение о том, что ПЛИС обладает существенно меньшим разнообразием накристальных периферийных устройств. Такие компоненты, как флеш-память или EEPROM, АЦП, ЦАП, USB, должны быть реализованы во внешних микросхемах.

 

Характеристики компонентов Spartan‑6

Логические ячейки представляют собой базовый строительный элемент цифровых систем. Упрощенная схема логической ячейки, состоящая из следующих основных элементов, показана на рис. 2.

Упрощенная схема логической ячейки ПЛИС Spartan 6

Рис. 2. Упрощенная схема логической ячейки ПЛИС Spartan 6

Логический генератор (LUT, Look-Up Table — таблица истинности) представляет собой статическую память, инициализируемую в процессе загрузки конфигурации FPGA. Графическое изображение логического генератора представлено на рис. 3.

Графическое изображение логического генератора

Рис. 3. Графическое изображение логического генератора

Логический генератор (LUT) реализует любую функцию не более чем с 6 операндами. Кроме того, возможно использование LUT в режиме с частично совмещенными входами, когда память разбивается на два фрагмента по 32 бит, предоставляя возможность сформировать две логические функции не более чем с 5 операндами каждая. При этом, поскольку в самой LUT всего 6 входов, часть входов должна быть обобщена (рис. 4). Такой режим автоматически используется САПР по мере возможности.

LUT в режиме совместного использования входов

Рис. 4. LUT в режиме совместного использования входов

Логические генераторы также применяются в режимах распределенной памяти (distributed memory) и сдвиговых регистров. Поскольку логический генератор представляет собой элемент статической памяти, который хранит таблицу истинности в явном виде, его можно использовать по прямому назначению — в качестве обычного компонента памяти (рис. 5).

Графическое изображение элемента двупортовой распределенной памяти

Рис. 5. Графическое изображение элемента двупортовой распределенной памяти

Распределенная память работает в однопортовом или простом двупортовом (simple dual-port) режиме. У простого двупортового режима есть ограничение: только один порт может использоваться для чтения и записи, а второй предназначен лишь для чтения. Показанный на рис. 6 элемент распределенной памяти имеет следующие сигналы:

  • we— сигнал разрешения записи;
  • d— данные для записи;
  • wclk— вход тактового сигнала;
  • a— адрес для записи;
  • dpra— адрес для чтения, второй порт (dual port read address);
  • spo— выход первого порта (single port output);
  • dpo— выход второго порта (dual port output).

Временные диаграммы работы распределенной памяти показаны на рис. 6.

Временные диаграммы работы распределенной памяти

Рис. 6. Временные диаграммы работы распределенной памяти

На рис. 6 видно, что запись в память происходит синхронно (в момент времени 15 нс, когда данные d=1 записываются по адресу addr=00112=310), а чтение — асинхронно. В момент времени 23 нс изменение адреса на входе dpra приводит к соответствующему изменению выхода dpo. Этот момент (без фронта тактового сигнала) был выбран специально, чтобы продемонстрировать, что память реагирует на изменение адреса асинхронно. Аналогично, изменение состояния входа a немедленно приводит к появлению на выходе spo значения из ячейки с адресом a.

Распределенная память удобна для организации небольших блоков данных — буферов, линий задержки, небольших таблиц. Реализация крупных блоков на распределенной памяти в общем случае нецелесообразна из-за сильной фрагментации такого блока. Для объемов в 512 слов и больше удобнее использовать блочную память.

Тем не менее распределенная память обладает важным свойством, отсутствующим у блочной памяти, — она допускает асинхронное чтение.

Другой вариант применения логического генератора — реализация на его базе сдвигового регистра. Графическое изображение такого компонента показано на рис. 7.

Графическое изображение сдвигового регистра, реализованного на базе логического генератора

Рис. 7. Графическое изображение сдвигового регистра, реализованного на базе логического генератора

Сдвиговый регистр имеет следующие сигналы:

  • d— данные для записи в сдвиговый регистр;
  • clk— тактовый сигнал;
  • a— адресный вход;
  • q— выход данных.

В простейшем варианте сдвиговый регистр представляет собой модуль, задерживающий входной сигнал din на N тактов. Временные диаграммы работы 8‑разрядного сдвигового регистра показаны на рис. 8.

Временные диаграммы работы сдвигового регистра

Рис. 8. Временные диаграммы работы сдвигового регистра

LUT в режиме сдвигового регистра может использоваться совместно с триггером той же логической ячейки, увеличивая глубину сдвигового регистра на 1.

Логические ячейки FPGA содержат два триггера. Таким образом, каждая секция имеет 8 триггеров. Графическое изображение триггера (в одном из возможных вариантов) показано на рис. 9.

Графическое изображение триггера

Рис. 9. Графическое изображение триггера

Триггер имеет следующие сигналы:

  • С — вход тактового сигнала;
  • D — вход данных;
  • CE — вход разрешения записи (clock enable);
  • CLR — вход асинхронного сброса (clear);
  • PRE — вход асинхронной установки в логическую единицу (preset);
  • R — вход синхронного сброса (reset);
  • S — вход синхронной установки в логическую единицу (set);
  • Q — выход данных.

Физически существует только один сигнал сброса/установки SR. Сброс, установка (синхронные или асинхронные) реализуются путем комбинирования триггера с другими ресурсами ячейки.

Дополнительные компоненты секции — это цепи ускоренного переноса и мультиплексоры. Цепи ускоренного переноса служат для построения сумматоров и вычитателей. Поскольку операции сложения и вычитания широко используются в цифровой схемотехнике, для них в ячейку добавлены специальные компоненты, которые вычисляют сумму и передают бит переноса на следующий аналогичный компонент соседней секции. Синтезаторы автоматически поддерживают такие конструкции, поэтому выражения вида a+b будут реализованы с использованием цепей ускоренного переноса. Не следует пытаться описывать сумматоры с помощью эквивалентных логических выражений, так как в этом случае они будут выполнены в виде таблиц истинности в LUT, а не на базе специализированных цепей.

Дополнительные мультиплексоры F7MUX объединяют выходы двух LUT. Эти блоки полезны в ряде случаев, уменьшая количество LUT, требуемых для построения логического узла. Например, схема с 7 входами может быть реализована не на двух LUT, а на связке LUT + F7MUX. Такие преобразования автоматически выполняются синтезатором и обычно не требуют специального внимания разработчика.

Конфигурируемый логический блок

Конфигурируемый логический блок (КЛБ, также CLB, Configurable Logic Block) — это своеобразная «молекула» в FPGA, состоящая из «атомов»-ячеек (logic cells). Для начала рассмотрим семейство Spartan‑6, поскольку именно в нем появилось заметное нововведение в виде трех разновидностей логической ячейки. Полезной особенностью FPGA Xilinx традиционно являлась возможность использования логического генератора в режимах распределенной памяти 16×1 или сдвигового регистра. Впоследствии число таких универсальных ячеек было сокращено, и появились секции SliceM и SliceL (символы M и L означают Memory и Logic соответственно, то есть ряд ячеек мог реализовывать функцию памяти, а остальные — только логику). Вместе с тем оба типа секций располагались в рамках каждого КЛБ — другими словами, секции, способные реализовать память и сдвиговые регистры, равномерно распределялись по всей матрице КЛБ. В Spartan‑6 появился третий тип — SliceX. Это менее мощная разновидность секции, поскольку в ней отсутствует цепь ускоренного переноса, и такая секция не может служить для организации сложения или вычитания.

В итоге в КЛБ Spartan‑6 оказываются следующие секции:

  • SliceM — универсальная секция с LUT, конфигурируемыми во всех режимах, а также линиями ускоренного переноса;
  • SliceL — LUT конфигурируется только как логический генератор, есть цепи ускоренного переноса;
  • SliceX — LUT конфигурируется только как логический генератор, нет цепей ускоренного переноса.

Из двух КЛБ один содержит пару секций SliceL+SliceX, а другой — SliceM+SliceX. Блоки, соответственно, называются CLB_LX и CLB_MX (рис. 10).

Состав CLB семейства Spartan 6

Рис. 10. Состав CLB семейства Spartan 6

Данное нововведение следует трактовать как формальное ухудшение функциональности. Но в то же время нужно указать и на позитивные факторы — упрощение ячеек, а следовательно, повышение производительности и уменьшение стоимости. В практических проектах можно рассчитывать на то, что цепи ускоренного переноса понадобятся не в 100% цифровых узлов, так что САПР будет иметь возможность поместить имеющиеся в проекте арифметические блоки в те секции, в которых есть цепи ускоренного переноса.

Блоки ввода/вывода

Блоки ввода/вывода связывают FPGA с внешними устройствами. Они представляют собой двунаправленные цифровые выводы, которые программируются как по направлению (вход, выход, выход с третьим состоянием, двунаправленный вывод), так и по типу электрического интерфейса (ТТЛ, КМОП, LVDS и т. д., всего более 40 типов интерфейсов, включая дифференциальные). Упрощенная структурная схема блока ввода/вывода показана на рис. 11. Блоки могут попарно объединяться для реализации дифференциальных интерфейсов (например, LVDS). Необходимо учитывать, что выводы не образуют пары в произвольном порядке — каждая пара строго фиксирована.

Упрощенная структурная схема блока ввода/вывода

Рис. 11. Упрощенная структурная схема блока ввода/вывода

Непосредственно в блоках ввода/вывода расположены и регистры с возможностью работы в режиме DDR (Double Data Rate). Они предназначены для организации соответствующих интерфейсов с памятью DDR и некоторыми другими типами микросхем (в частности, высокоскоростными АЦП). Также в блоках предусмотрены аппаратные сериализаторы/десериализаторы. Они позволяют преобразовать параллельно загружаемые данные в последовательный поток, передаваемый на увеличенной частоте (вплоть до 1:7). К примеру, на тактовой частоте 100 МГц скорость передачи составит до 700 Мбит/с, что недостижимо при выводе данных из матрицы логических ячеек. Максимальная скорость передачи для дифференциальной пары достигает 1050 Мбит/с. Этого достаточно, скажем, для построения интерфейсов DVI или HDMI.

Базовые варианты блоков ввода/вывода реализуются в проекте автоматически, без дополнительного участия разработчика. Достаточно указать на верхнем уровне проекта направление выводов, чтобы САПР установила соответствующий буфер. Тип электрического интерфейса определяется проектными ограничениями в отдельном файле (User Constraints File). Для сложных вариантов интерфейсов, например с использованием сериализаторов, предпочтительнее генератор интерфейсов SelectIO Interface Wizard, входящий в состав библиотеки IP-ядер (рис. 12).

Диалоговое окно мастера настройки блоков ввода/вывода

Рис. 12. Диалоговое окно мастера настройки блоков ввода/вывода

Корпуса типа QFP не позволяют использовать некоторые аппаратные возможности Spartan‑6. К основным ограничениям относятся:

  • отсутствие аппаратных контроллеров памяти DDR2/3 (такие контроллеры имеются в FPGA Spartan‑6 в корпусах BGA);
  • объединенное питание банков ввода/вывода.

В документе http://www.xilinx.com/support/documentation/user_guides/ug385.pdf приводятся условные графические изображения корпусов FPGA с отмеченными типами выводов. На этих изображениях указаны выводы различных типов, что облегчает подключение питания, специальных выводов и т. д. На рис. 13 изображен корпус TQFP144. Этот рисунок может облегчить проектирование печатной платы, если вывести его на дополнительный монитор (или хотя бы распечатать).

Изображение корпуса TQFP144

Рис. 13. Изображение корпуса TQFP144

Блочная память

Блочная память является показательным примером встроенного аппаратного ресурса, повышающего эффективность ПЛИС при решении типовых задач схемотехники. Блок памяти занимает гораздо меньше места, чем аналогичный по емкости блок, выполненный на распределенной памяти логических ячеек, и к тому же обладает предсказуемо высокими характеристиками производительности. Память является «истинно двупортовой» (true dual-port). Это означает, что она имеет два набора сигналов, допускающих проведение операций чтения или записи одновременно. Альтернативой является разновидность simple dual-port, когда только один порт допускает и чтение, и запись, а второй работает в режиме «только чтение».

Память в Spartan‑6 размещается блоками по 18 кбит. Графическое представление компонента блочной памяти показано на рис. 14.

Графическое представление компонента блочной памяти

Рис. 14. Графическое представление компонента блочной памяти

При одновременном доступе к ячейке памяти по двум портам, когда один из портов производит запись, а другой — чтение, возможны следующие режимы работы:

  • чтение перед записью (read before write) — порт, выполняющий чтение, выдает старое значение ячейки памяти, в которую производится запись по другому порту;
  • чтение после записи (read after write) — порт, выполняющий чтение, выдает значение, которое записывается по другому порту;
  • нет чтения при записи (no read on write), состояние порта не изменяется.

В последнем случае речь идет не об отсутствии записи в ячейку, а о сохранении состояния выходного регистра модуля памяти.

Временные диаграммы работы блочной памяти показаны на рис. 15.

Временные диаграммы работы блочной памяти

Рис. 15. Временные диаграммы работы блочной памяти

Секции DSP48A1

Секция DSP48A1 содержит аппаратный умножитель независимых 18‑разрядных операндов, 48‑разрядный аккумулятор и вспомогательные компоненты. Несмотря на то, что операция умножения может быть реализована и на базе логических ячеек, такое применение для универсального программируемого ресурса несколько расточительно. Операция умножения достаточно распространена, чтобы можно было размещать на кристалле ПЛИС специализированные умножители, которые работают быстрее, занимают меньше места и потребляют меньшую мощность, чем такая же схема на программируемых ячейках. Для упрощения реализации основных операций цифровой обработки сигналов умножитель совмещен с аккумулятором. Структурная схема блока DSP48A1 показана на рис. 16.

Структурная схема блока DSP48A1

Рис. 16. Структурная схема блока DSP48A1

На схеме представлены дополнительные конвейеризующие регистры, способные повысить тактовую частоту в определенных случаях, однако они необязательны к использованию.

Синтезаторы автоматически применяют блоки DSP48A1, включая и вспомогательные компоненты. Например, выражение

sum <= sum + a × b

будет реализовано именно в виде «умножитель + аппаратный аккумулятор».

Предсказуемость характеристик аппаратных умножителей делает их удобными для реализации систем цифровой обработки сигналов. Так, цифровые фильтры, которые можно сконструировать в специальном приложении FIR Compiler, входящем в состав САПР ISE (рис. 17), используют только компоненты DSP48. Результатом работы этого инструмента является готовый компонент цифрового фильтра с конечной импульсной характеристикой, не требующий дополнительного вмешательства разработчика.

Диалоговое окно инструмента FIR Compiler

Рис. 17. Диалоговое окно инструмента FIR Compiler

Тактовые ресурсы

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

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

В ПЛИС Spartan‑6 предусмотрены специальные буферы для распространения тактового сигнала, однако они расположены только в определенных блоках ввода/вывода, помеченных в документации. Тактовые сигналы следует подать на такие входы, однако этого недостаточно для равномерного распространения фронта по всему кристаллу. Для этой задачи необходимо использовать модули, подстраивающие задержку выходного сигнала, — DCM (Digital Clock Manager) или PLL (Phase-Locked Loop). Оба компонента имеются на кристалле FPGA и объединены в так называемый Clock Management Tile. В последующих публикациях будет рассмотрен процесс настройки этих компонентов для формирования требуемого в проекте тактового сигнала.

Модуль DeviceDNA

Специальный модуль DNA (в переводе — ДНК, по аналогии с ДНК-кодом живых организмов) предназначен для организации защиты интеллектуальной собственности. Этот модуль содержит 57‑битный код, уникальный для каждого экземпляра ПЛИС. Код может быть произвольно использован разработчиком для проверки уникальности устройства. Если проект содержит проверку DNA-кода устройства, несанкционированное копирование конфигурации станет бессмысленным, поскольку конкретный конфигурационный файл будет пригоден для работы в единственном экземпляре ПЛИС. Разработчик может самостоятельно выбрать реакцию своего проекта на несовпадение кода. На рис. 18 показан компонент DeviceDNA.

Схематическое представление компонента DeviceDNA

Рис. 18. Схематическое представление компонента DeviceDNA

 

Заключение

Представляется, что в настоящее время разработчики могут дополнительно обратить внимание на ПЛИС малой стоимости, которые не предъявляют высоких требований к системам питания, печатной плате, не требуют для отладки дорогостоящего оборудования или программного обеспечения, но при этом способны привнести в проект множество дополнительных возможностей. Важно, что вследствие малой логической емкости ПЛИС Spartan‑6 не нуждаются в оформлении экспортной лицензии, поэтому относительно оперативно поставляются в Россию. Вопросы проектирования с применением ПЛИС для специалистов, не знакомых с данной элементной базой, рассмотрены в учебных курсах Xilinx (www.plis.ru/training).

Литература
  1. Spartan‑6 FPGA Packaging and Pinouts Product Specification.
  2. Spartan‑6 FPGA Clocking Resources.
  3. Spartan‑6 FPGA Configuration. 

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

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