АННОТАЦИЯ

advertisement
АННОТАЦИЯ
В данной работе рассматриваются ПЛИС с архитектурой FPGA, их основные
технические характеристики, структура матрицы КЛБ, особенности конфигурирования
ПЛИС с данной архитектурой, а так же отличительные особенности от ПЛИС с другими
архитектурами. Цель данной работы - всесторонне проанализировать достоинства и
недостатки ПЛИС данной архитектуры. Задачи работы - рассмотреть основные технические
характеристики и особенности конфигурирования.
АННОТАЦИЯ
In this paper we consider the FPGA to the FPGA architecture, main technical
characteristics, the structure of the matrix OSC, especially configure the FPGA with this
architecture, as well as the distinctive features of the FPGA to the other architectures. The purpose
of this work is comprehensively evaluate the advantages and disadvantages of the FPGA
architecture. Tasks of the work is to consider the main technical characteristics and configuration
features.
1
СПИСОК УСЛОВНЫХ СОКРАЩЕНИЙ И ТЕРМИНОВ
ПЛИС
ПЛМ
МОП
– Программируемая логическая интегральная схема
– Программируемая логическая матрица
ПЗУ
– Металл — оксид — полупроводник
– Постоянное запоминающее устройство
FPGA
– Field Programmable Gate Array
LPGA
– Laser Programmable Gate Array
ОЗУ
– Оперативное запоминающее устройство
CPLD
IOB
TTL
– Сomplex programmable logic device — сложные программируемые логические
устройства
– Input output block блоки ввода вывода
– Transistor-transistor-logic— транзисторно-транзисторная логика
– Complementary-symmetry/metal-oxide semiconductor - комплементарная логика
на транзисторах маталл - оксид - полупроводник
LVDS
– Low-voltage differential signaling - Низковольтная дифференциальная передача
сигналов
LVPECL – Low-voltage positive emitter-coupled logic - Эмиттерно-связанная логика
CMOS
КЛБ
– Конфигурируемый логический блок
LUT
–
CS
– Chip Select
ГТМ
– Матрица программируемых транзисторных двунаправленных переключателей
ББВ
– Блоки ввода вывода
SRAM
– Static Random Access Memory
Look-Up Table
2
СОДЕРЖАНИЕ
СПИСОК УСЛОВНЫХ СОКРАЩЕНИЙ И
ТЕРМИНОВ..............................................................2
ВВЕДЕНИЕ.........................................................................................................................................5
1.Архитектура кристалла...................................................................................................................6
1.1. Блоки ввода/вывода.........................................................................................................8
1.2. Матрица КЛБ...................................................................................................................8
1.3. Блочная память..............................................................................................................10
1.4. Модули автоподстройки
задержки...............................................................................10
2. Отличительные особенности.......................................................................................................11
3. Процесс конфигурации................................................................................................................11
3.1. Конфигурирование кристалла в устройстве...............................................................12
3.2. Режимы конфигурирования..........................................................................................12
3.2.1. Подчиненный последовательный
режим......................................................13
3.2.2. Ведущий последовательный режим..............................................................15
3.2.3. Режим SelectMap.............................................................................................16
3.3. Запись..............................................................................................................................18
3.4. Преждевременное прекращение процедуры...............................................................20
3.5. Использование режима периферийного сканирования для конфигурирования
Virtex......................................................................................................................................21
3.6. Последовательность конфигурации.............................................................................22
3.7. Задержка конфигурирования........................................................................................22
3.8. Последовательность вхождения в штатный режим работы......................................23
3.9. Формат потока конфигурационных
данных................................................................24
3.10. Обратное считывание..................................................................................................24
4. Потребление энергии...................................................................................................................25
5. Корпуса..........................................................................................................................................25
6. Плис FPGA фирмы Xilinx............................................................................................................25
6.1. ПЛИС с архитектурой FPGA семейства
Virtex...........................................................25
6.1.1.Описание...........................................................................................................25
6.1.2.Особенности.....................................................................................................26
3
6.1.3. Матрица...........................................................................................................27
6.2. ПЛИС с архитектурой FPGA семейства SpartanTMII...............................................29
6.2.1. Описание..........................................................................................................29
6.2.2. Особенности....................................................................................................29
6.2.3. Матрица...........................................................................................................30
Выводы..............................................................................................................................................32
Список использованных
источников..............................................................................................33
4
ВВЕДЕНИЕ
Программируемые логические интегральные схемы (ПЛИС) появились полтора
десятилетия назад как альтернатива программируемым логическим матрицам (ПЛМ). От
последних ПЛИС отличаются как по архитектуре, так и по технологии изготовления.
ПЛМ представляет собой матрицу многовходовых (несколько десятков входов)
логических
элементов
с
триггерами,
в
которых
перемычками
программируются
конституенты единиц дизъюнктивных нормальных форм функций этих элементов. Вначале
перемычки выполнялись в виде пережигаемых тонких проводничков. Теперь перемычки
выполняются в виде МОП-транзистора с плавающим затвором, как в электрически
перепрограммируемом ПЗУ, т.е. ПЛМ изготовляются по технологии флэш-памяти. Большие
ПЛМ (CPLD) отличаются только тем, что несколько ПЛМ собраны на одном кристалле и
объединены программируемым полем связей.
ПЛИС представляет собой матрицу маловходовых (от двух до пяти входов)
логических элементов, триггеров, отрезков линий связи, соединяемых перемычками из
полевых транзисторов. Судя по английскому названию - Field Programmable Gate Array
(FPGA) - ПЛИС программируются изменением уровня электрического поля (field) в затворах
этих транзисторов. В отличие, например, от LPGA - Laser Programmable Gate Array. Затворы
всех "программирующих" полевых транзисторов подключены к выходам триггеров одного
длинного сдвигового регистра, который заполняется при программировании ПЛИС.
Некоторые из участков этого регистра могут также выполнять роль ячеек ПЗУ.
Прошивка обычно хранится в ПЗУ, стоящем рядом с ПЛИС и после включения
питания или по сигналу сброса она автоматически переписывается в программирующий
сдвиговый регистр ПЛИС. Этот процесс называется конфигурированием ПЛИС. Так как
основу ПЛИС составляют триггеры, хранящие прошивку, то ПЛИС изготавливаются по
технологии микросхем статического ОЗУ.
По сравнению с CPLD, ПЛИС выигрывают, во-первых, в неограниченном количестве
перепрограммирований, во-вторых, в логической емкости, в том числе в удельной емкости
вентилей на цент, в-третьих, в малом энергопотреблении.
Как правило, ПЛИС имеют на два - три порядка большую емкость в числе
эквивалентных логических вентилей, чем CPLD и также как статическое ОЗУ, почти не
потребляют энергии при отсутствии переключений. Кроме того, у ПЛИС на порядок выше
надежность (ниже интенсивность отказов), чем у CPLD.
К недостаткам относят необходимость внешнего ПЗУ прошивки, генератора
синхросерии. Но 8-выводовое ПЗУ занимает на плате значительно меньше места, чем сама
ПЛИС с многими сотнями выводов. То же касается генератора синхросерии.
5
Много сомнений у пользователей возникает с защитой проекта от копирования.
Действительно, прошивка ПЛИС хранится во внешнем ПЗУ, содержимое которого просто
копируется. Но изменить или расшифровать прошивку, например, для скрытия авторства
или восстановления схемы, практически невозможно, так как семантика битов в файле
прошивки - секрет фирмы, а неосторожное изменение ее может вывести ПЛИС из строя.
Если требуется защита, то загрузку программы выполняют с помощью внешней CPLD,
автомат
в
которой
обеспечивает
защиту
проекта.
В
ПЛИС
новых
поколений
предусматривается шифрование прошивки, например, с помощью встроенного шифрователя
DES с обеспечением сохранения ключа с помощью батарейки.
1. Архитектура кристалла
Важным отличием является внутренняя структура микросхем FPGA. На рис. 1.1
представлен пример, относящийся к типичному для технологии FPGA семейству Spartan.
Рис. 1.1. Структура ПЛИС FPGA семейства Spartan II
ПЛИС, выполненная по технологии FPGA, состоит из прямоугольной матрицы
конфигурируемых
логических
блоков
(CLB),
окруженных
блоками
ввода-вывода
(Input/Output Вlock, IOB). Между CLB располагаются программируемые трассировочные
линии (обозначенные на схеме как Routing Channels). От микросхем CPLD) представленный
пример отличается тем, что отдельные CLB не имеют индивидуальных выходов,
6
соединенных с внешними выводами ПЛИС. Вместо этого функции преобразования сигналов
выполняют выделенные ресурсы - IOB. Между матрицей CLB и блоками ввода-вывода
имеются отдельные межсоединения, которые и обеспечивают подключение внешних
сигналов. Такой подход весьма актуален ввиду значительно большей логической емкости
микросхем FPGA по сравнению с устройствами CPLD (для серии ХС9500 максимальный
логический объем в настоящее время составляет 288 макроячеек, тогда как устройства FPGA
могут содержать десятки тысяч CLB).
Действительно, попытка обеспечить индивидуальное соединение с выводами корпуса
для большого количества логических ячеек требует чрезмерного количества трассировочных
ресурсов, в то же время число пользовательских выводов даже в корпусах максимального
размера находится в пределах одной тысячи. Таким образом, наличие отдельного набора
блоков ввода-вывода, соединенных с основной матрицей логических блоков, соответствует
общей идеологии построения программируемых цифровых элементов.
Реализация элементов электрического интерфейса в отдельном блоке дает еще одно
весьма важное преимущество. В то время как возможности управления электрическим
интерфейсом в микросхемах CPLD серии ХС9500 ограничены установкой скорости
нарастания выходного сигнала, блок ввода-вывода FPGA, представляющий собой отдельный
элемент кристалла, как правило, обладает существенно большими возможностями.
Современные семейства ПЛИС поддерживают до 20 электрических интерфейсов
(включая TTL и СМOS со множеством разновидностей, а также высокоскоростные
дифференциальные интерфейсы, такие как, LVDS, LVPECL и др.). Тип интерфейса,
реализуемый в каждом блоке, может быть установлен индивидуально. При этом информация
о реализуемом блоком протоколе содержится в конфигурационной памяти и может быть
задана в процессе проектирования устройства на базе ПЛИС.
1.1. Блоки вводы/вывода
Блоки ввода/вывода поддерживают 19 сигнальных стандартов ввода/вывода, включая
дифференциальные стандарты LVDS, BLVDS и LVPECL. Дифференциальные стандарты
LVDS и BLVDS позволяют коммутировать ПЛИС семейства Spartan-II с другими
микросхемами на плате без использования дополнительных конверторов или трансляторов.
Помимо этого, дифференциальные стандарты более скоростные, чем однопроводные,
позволяют
снизить
энергопотребление
кристалла
и
шумы,
а
также
устраняют
электромагнитные наводки. В табл. 2 представлены все поддерживаемые стандарты
7
ввода/вывода. Совместимость по входу с 5-В логическими сигналами обеспечивается
подключением последовательного резистора на 100 Ом.
Таблица 1.1.1. Поддерживаемые Spartan-II стандарты ввода/вывода
Интерфейсы
межкристальноо обмена
Интерфейсы между платами
Интерфейсы между платами
LVTTL
PCI 33/66 MHz, 3,3 V
HSTL-I
LVCMOS2
GTL
HSTL-III & IV
LVCMOS18
GTL+
SSTL3-I & II
LVDS
AGP-2X
SSTL2-I & II
LVPECL
BLVDS
CTT
1.2. Матрица КЛБ
Микросхемы с организацией FPGA используют энергозависимую статическую память
для хранения конфигурационной информации. Основным элементом FPGA фирмы Xilinx
является конфигурируемый логический блок (CLB). Структура CLB ПЛИС семейства
Spartan приведена на рис. 1.1.
Базовая логическая ячейка микросхем FPGA несколько отличается от макроячейки
CPLD. Сравнение их структур выявляет два основных отличия:
• в состав CLB FPGA входят два триггера;
• вместо достаточно мощного распределителя термов (Product Term Allocator),
который в ПЛИС CPLD серии ХС9500 может работать с 36 входными переменными, в FPGA
используются 4 входовые логические генераторы, обозначенные на схеме LUT (Look-Up
Table, таблица истинности).
8
Рис. 1.1 Структура CLB семейства Spartan
Приведенная структура и ее свойства отражают основные особенности FPGA.
Поскольку в составе таких ПЛИС отсутствует флеш-память для хранения конфигурации, все
таблицы истинности логических элементов должны быть занесены в обычную статическую
память. Ее фрагментами и являются ШТ, которые представляют собой блоки памяти с
организацией 16x1. Это позволяет реализовать таблицу истинности любого 4 входового
логического элемента. Добавление еще одного входа к каждому логическому генератору
означает удвоение объема той части конфигурационной памяти, которая отвечает за
хранение таблиц истинности; таким образом, комбинаторная логика является в FPGA более
значимым ресурсом, чем в CPLD. В то же время наличие двух триггеров в составе CLB
позволяет реализовывать на базе микросхем FPGA более сложные устройства, насыщенные
регистрами, счетчиками и тому подобными узлами.
Следует отметить также, что, являясь по своей сути фрагментом памяти, каждая LookUp Table может быть использована как оперативное запоминающее устройство с
организацией 16x1 или как 16-разрядный сдвиговый регистр. Это дает возможность
использовать в проектах небольшие по объему блоки распределенной по кристаллу памяти.
В семействе Spartan можно выбрать количество портов (обычная или двупортовая память) и
тип интерфейса (синхронный либо асинхронный). В последующих семействах FPGA фирмы
Xilinx асинхронный интерфейс распределенной памяти не поддерживается.
9
1.3. Блочная память
Каждый блок памяти - это синхронная двухпортовая RAM с независимым
управлением для каждого порта. Размерность шины данных для обеих портов может быть
сконфигурирована независимо, что позволяет создавать преобразователи размерности шины.
В табл. 1.3.1 показаны возможные соотношения размерностей шин данных и адреса.
Таблица 1.3.1. Возможные соотношения размерностей шин данных и адреса
Разрядность
Глубина
Шина адреса
Шина данных
1
4096
ADDR<11:0>
DATA<0>
2
2048
ADDR<10:0>
DATA<1:0>
4
1024
ADDR<9:0>
DATA<3:0>
8
512
ADDR<8:0>
DATA<7:0>
16
216
ADDR<7:0>
DATA<15:0>
1.4. Модули автоподстройки задержки (DLL)
Полностью цифровая автоподстройка задержки (DLL) может устранять перекос
задержек между синхросигналом на входном контакте микросхемы и сигналами на тактовых
входах внутренних схем устройства. Дополнительная задержка вводится таким образом,
чтобы фронты сигналов синхронизации достигали внутренних триггеров в точности на один
период синхронизации позже их прихода на входной контакт. Эта система с обратной связью
эффективно устраняет задержку распределения сигналов синхронизации, гарантируя, что
фронты синхросигналов на входе микросхемы и на внутренних тактовых входах с большой
точностью синхронны.
Вдобавок, для устранения задержек, возникающих при распределении тактовых
сигналов, DLL создаёт новые возможности управления функциями синхронизации. Модуль
DLL может создавать четыре квадратурные фазы из исходного источника синхросигнала;
удваивать частоту синхросигнала или делить эту частоту на 1,5, 2, 2,5, 3, 4, 5, 8 или 16.
Модуль DLL также функционирует как тактовое зеркало. Путём вывода из микросхемы
сигнала с выхода DLL и последующего ввода этого сигнала снова внутрь кристалла, схема
DLL может устранить разбег фаз для тактовых сигналов на уровне печатной платы при
работе с несколькими микросхемами Spartan-II.
10
Чтобы гарантировать, что системная синхронизация будет нормально функционировать
до момента окончания конфигурирования системы и начала штатной работы, схема DLL
имеет возможность задерживать процесс конфигурирования до нормальной синхронизации с
системой.
2. Отличительные особенности
•
Внутренние буфера с возможностью переключения в высокоомное состояние и тем
самым позволяющие организовать системные двунаправленные шины
•
Индивидуальный контроль высокоомного состояния и времени нарастания фронта
выходного сигнала по каждому внешнему выводу
•
Наличие общего сброса/установки всех триггеров ПЛИС
•
Множество глобальных линий с низкими задержками распространения сигнала
•
Наличие внутреннего распределённого ОЗУ Xilinx, реализующегося посредством тех
же LUT - таблиц
•
Наличие внутреннего блочного ОЗУ, один блок имеет ёмкость 4 кбит или 18 кбит
взависимости от семейства
•
Наличие встроенных блоков умножителей 18х18
•
Наличие встороенных блоков DSP-48
•
Наличие встроенных блоков процессоров PowerPC-405
•
Наличие высокоскоростных последовательных приемо-передатчиков - MGT со
скоростью передачи данных 11 ГБит/с
3. Процесс конфигурации
Конфигурационная последовательность (bitstream) может быть загружена в ПЛИС
непосредственно в системе и перегружена неограниченное число раз. Инициализация ПЛИС
производится автоматически (из загрузочного ПЗУ Xilinx) при подаче напряжения питания
или принудительно по специальному сигналу. В зависимости от ёмкости ПЛИС процесс
инициализации занимает от 20 до 900 мс, в течение которых выводы ПЛИС находятся в
высокоомном состоянии (подтянуты к логической единице). Рассмотрим подробнее процесс
конфигурирования ПЛИС FPGA семейства Virtex.
3.1. Конфигурирование кристалла в устройстве
Микросхемы Virtex конфигурируются путем загрузки конфигурационных данных во
внутреннюю конфигурационную память. Часть специальных контактов, которые при этом
используются, не могут применяться для других целей, в то же время некоторые из них
могут после завершения конфигурирования служить в качестве контактов ввода-вывода
11
общего назначения.
К специальным контактам конфигурирования относятся следующие:
-
контакты режима конфигурирования (М2, Ml, М0);
-
контакт синхронизации процесса конфигурирования (CCLK);
-
контакт
-
контакт DONE;
-
контакты порта периферийного сканирования (TDI, ТОО,
;
TMS, ТСК).
В зависимости от выбранного режима конфигурирования контакт CCLK может быть
либо источником сигнала синхронизации, либо наоборот — приемником сигнала от
внешнего генератора синхросигналов.
3.2. Режимы конфигурирования
Virtex поддерживает следующие четыре режима конфигурирования:
— подчиненный последовательный режим (Slave-serial);
— ведущий последовательный режим (Master-serial);
— режим SelectMap;
— режим периферийного сканирования (Boundary Scan — JTAG).
Комбинация кодов на специальных входных контактах (М2, Ml, М0) позволяет
выбрать один из режимов конфигурирования, при этом четыре из восьми кодов
соответствуют «подтянутому» (pull-up) состоянию входов блоков ввода-вывода до начала
процедуры конфигурирования, и еще четыре комбинации состоянию неопределенного
потенциала блоков ввода-вывода. Соответствие этих кодов необходимому режиму
приведено в Табл. 3.2.1.
Таблица 3.2.1. Конфигурационные коды.
Режим
Разрядность Последовательный Контакты
данных
выход DOUT
«подтянуты»
0
Выход
1
Есть
Нет
1
1
Нет
Нет
0
Вход
8
Нет
Нет
1
Вход
1
Есть
Нет
0
Выход
1
Есть
Да
1
1
Нет
Да
0
Вход
8
Нет
Да
1
Вход
1
Есть
Да
микросхемы FPGA через порт периферийного сканирования
М2 М1 М0
Master-serial
0
0
Boundary-scan
1
0
SelectMAP
1
1
Slave-serial
1
1
Master-serial
1
0
Boundary-scan
0
0
SelectMAP
0
1
Slave-serial
0
1
Конфигурирование
CCLK
доступно всегда, независимо от значения этого кода. Задание кода отключает другие
режимы. Все три контакта режима конфигурирования имеют внутренние «подтягивающие»
12
резисторы и по умолчанию задают, таким образом, состояния высокого логического уровня,
если отсутствуют внешние подключения.
3.2.1. Подчиненный последовательный режим
В этом режиме FPGA принимает конфигурационные данные в последовательной
форме
от
последовательного
ПЗУ
или
от
другого
источника
последовательных
конфигурационных данных.
Данные последовательного битового потока (bitstream) должны быть установлены на
входе DIN незадолго до появления нарастающего фронта сигнала, генерируемого внешним
источником и подаваемого на вход CCLK.
Несколько микросхем FPGA могут быть соединены в цепочку для конфигурирования
от единого внешнего источника конфигурационных данных. После того как одна из
микросхем сконфигурирована, данные для следующей появляются на выходе DOUT.
Изменение данных на выходе DOUT происходит после нарастающего фронта сигнала на
входе CCLK.
Процесс стробирования данных, подаваемых на вход DIN по нарастающему фронту
CCLK, отличается от аналогичного процесса в старых семействах микросхем FPGA, но это
не приводит к возникновению проблем для смешанных конфигурационных цепочек. Такое
изменение сделано для увеличения скоростей последовательного конфигурирования цепочек
FPGA, состоящих только из микросхем Virtex.
На Рис.3.2.1.1 изображена полная схема, совмещающая подчиненные режимы и
ведущий режим. FPGA Virtex, конфигурируемые в подчиненном режиме, должны быть
подключены так же, как устройство, изображенное третьим слева.
Подчиненный последовательный режим выбирается заданием кода <111> на входах
режима конфигурирования (М2, Ml, М0). Внутренние высокоомные резисторы на режимных
контактах «подтягивают» данные входы в состояние высокого логического уровня и, таким
образом, задают этот режим по умолчанию, если выходы не имеют внешних подключений.
На Рис. 3.2.1.2 изображена временная диаграмма для данного режима.
13
Рис.3.2.1.1. Ведущий/последовательный режим конфигурации
Рис.3.2.1.2. Временная диаграмма подчиненного режима конфигурации
В Табл.3.2.1.1 содержится более подробная информация для величин, приведенных на
Рис.3.2.1.1. Для FPGA, соединенных в цепочку, процесс конфигурирования должен быть
задержан до тех пор, пока на контактах
всех микросхем цепочки не появится высокий
логический уровень.
14
Таблица 3.2.1.1. Параметры сигналов подчиненного и ведущего режимов
Параметр
Обозначение
min
max
Предустановка/удержание входного
сигнала DIN, подчиненный режим
Предустановка/удержание входного
сигнала DIN, ведущий режим
Значение
1/2*
5.0 нс/0 нс
1/2*
5.0 нс/0 нс
Задержка сигнала DOUT
3*
Длительность высокого уровня
4*
5.0 нс
Длительность низкого уровня
5*
5.0 нс
Частота
12 нс
66 МГц
3.2.2. Ведущий последовательный режим
В ведущем последовательном режиме с выхода CCLK FPGA сигнал подается на
соответствующий вход микросхемы ППЗУ, которая передает данные на DIN-вход той же
микросхемы FPGA. Прием данных в FPGA осуществляется по каждому нарастающему
фронту сигнала CCLK. После полного конфигурирования микросхемы, данные для
следующих устройств, соединенных цепочкой, появляются на выходе DOUT после каждого
нарастающего фронта сигнала CCLK. Данные конфигурирования, поступающие на все
микросхемы FPGA, соединенные в цепочку, обязательно начинаются с блока, называемого
преамбулой.
Интерфейс, поддерживающий этот режим, идентичен интерфейсу подчиненного
режима, за исключением того, что для генерации синхросигнала конфигурирования
используется внутренний осциллятор FPGA. Частота для этого синхросигнала может быть
выбрана из широкого диапазона значений, но по умолчанию всегда используется низкая
частота. Переключение на более высокую частоту происходит данными, которые
распознаются микросхемой в самом конфигурационном потоке, после чего оставшаяся часть
потока загружается уже с новой скоростью. Переключение снова на более низкую частоту
запрещается. Частота синхронизации CCLK устанавливается выбором ConfigRate в
программе генерации конфигурационного потока. Максимальная частота CCLK, которая
может быть выбрана — 60 МГц. Выбирая конкретную частоту CCLK, необходимо
15
убедиться, что используемые ПЗУ и все соединенные в цепочку микросхемы FPGA
рассчитаны на конфигурирование в таком темпе.
После включения питания, частота CCLK равна 2.5 МГц. Эта частота используется до
момента загрузки битов ConfigRate, после чего частота меняется на новое значение,
определенное этими битами. Если в проекте не задается другая частота, то используемая по
умолчанию частота равна 4 МГц.
На Рис.3.2.1.1 показана полная система, содержащая кристалл в ведущем и кристалл в
подчиненном режимах. В этой схеме крайнее левое устройство работает в ведущем
последовательном
режиме.
Остальные
последовательном режиме. На вход
устройства
работают
в
подчиненном
микросхемы ППЗУ подается сигнал с контактов
микросхемы FPGA. Аналогично, на вход
— с выхода DONE. При этом в
зависимости от выбранной стартовой последовательности существует конфликт потенциалов
на контакте DONE.
Для
последовательного
конфигурирования
микросхем
FPGA
необходимо
использовать последовательность, изображенную в виде алгоритма на Рис. 3.1.4.1.
Временная диаграмма для ведущего последовательного режима показана на Рис. 15.
Данный режим выбирается заданием кода <000> или <100> на входах М2, Ml, М0.
Необходимую временную информацию для этого режима содержит Табл. 3.1.3.1.
Время нарастания напряжения питания
допустимого значения
от уровня 1 В до минимально
не должно превышать 50 мс, в противном случае необходимо
удерживать сигнал
в состоянии низкого логического уровня до момента
достижения допустимого уровня
.
3.2.3. Режим SelectMAP
SelectMAP — самый быстрый режим конфигурирования. В этом режиме данные
записываются в FPGA побайтно с использованием флага BUSY, управляющего потоком
данных.
Внешний источник создаёт байтовый поток данных и сигналы CCLK, выбор
кристалла (Chip Select —
), запись (
). Если установлен высокий логический
уровень сигнала BUSY, данные должны удерживаться до тех пор, пока BUSY не будет
переведен в состояние низкого уровня.
Используя этот режим можно считать данные. Если сигнал
не установлен (т.е.
находится в состоянии высокого логического уровня), конфигурационные данные читаются
16
обратно из FPGA, как часть операции обратного считывания.
После окончания конфигурирования контакты порта SelectMAP могут использоваться
как дополнительные пользовательские входы-выходы.
Рис. 3.2.3.1. Алгоритм конфигурирования микросхем Virtex в последовательных режимах
17
Рис. 3.2.3.2. Временная диаграмма ведущего режима конфигурации
Можно
использовать
этот
порт
для
быстрого
8-битового
обратного
считывания
конфигурационных данных.
Сохранение такой возможности после конфигурирования реализуется на этапе
создания битового потока. Для сохранения такой возможности необходимо использовать
ограничения типа PROHIBIT, предохраняющие контакты порта SelectMAP от использования
в качестве пользовательских.
Несколько FPGA Virtex могут конфигурироваться в режиме SelectMAP, и далее
одновременно запускаться для штатного функционирования. Для конфигурирования
нескольких устройств таким способом, необходимо соединить параллельно индивидуальные
сигналы отдельных микросхем CCLK, Data,
и BUSY. Конкретные микросхемы
конфигурируются по очереди за счет поочередной подачи активного сигнала на контакт
выборки (
) этой FPGA и записи соответствующих ей данных. В Табл. 11 представлены
временные параметры сигналов режима SelectMAP.
3.3. Запись
Процедура записи
посылает пакеты
конфигурационных данных в FPGA.
Необходимо отметить, что конфигурационный пакет можно расщепить на несколько таких
последовательностей. Пакет не должен быть закончен за время одной активизации сигнала
, изображенной на Рис.3.3.1.
Последовательность операций:
1. Установить сигналы
Отметим, что если сигнал
CCLK, сигнал
и
в состояние низкого логического уровня.
активизируется во время уже функционирующего сигнала
должен оставаться неизменным. В противном случае, как описано
далее, будет инициировано преждевременное прекращение процедуры.
18
Таблица 3.3.1. Параметры сигналов режима SelectMAP.
Параметр
Значение
Обозначение
min
Предустановка/удержание входных
сигналов D0-D7
1/2*
5.0 нс/0 нс
3/4*
7.0 нс/0 нс
5/6*
7.0 нс/0 нс
max
Предустановка/удержание входного
сигнала
Предустановка/удержание входного
сигнала
Задержка распространения сигнала
7*
Частота
12.0 нс
66 МГц
Частота без подтверждения получения
50 МГц
данных
Рис.3.3.1. Операции записи
2. Данные подать на вход D[7:0]. Отметим, что для избежания конфликта между
данными от различных источников, информация не должна выдаваться во время, когда
сигнал
имеет значение ‘0’, a
— значение ‘1’. Также нельзя активизировать
больше одного CS, в то время когда сигнал WRITE имеет значение ‘1’.
3. Данные принимаются по нарастающему фронту CCLK при условии, что сигнал
BUSY при этом имеет значение ‘0’. В случае, если сигнал BUSY имел значение ‘1’ от
предыдущей записи, данные не принимаются. Данные снова будут приниматься по первому
19
же нарастающему фронту CCLK после перехода BUSY в состояние ‘0’; при этом данные
должны удерживаться до этого события.
4. Повторять шаги 2 и 3 до тех пор, пока не будут переданы все данные.
5. Перевести сигналы
и
в неактивное состояние.
Алгоритм процедуры записи показан на Рис.3.3.2. Отметим, что если сигнал CCLK
медленнее, чем
, FPGA не будет выставлять сигнал BUSY, в этом случае обмен
подтверждениями готовности после реального приема данных не нужен, и данные могут
просто вводиться в FPGA по каждому циклу сигнала CCLK.
Рис.3.3.2. Алгоритм процедуры записи в режиме SelectMAP
3.4. Преждевременное прекращение процедуры
После
установки
активного
уровня
сигнала
,
пользователь
не
может
переключаться с записи на чтение или наоборот. В противном случае такое действие
приведет к преждевременному прекращению текущей пакетной команды. Устройство будет
оставаться в состоянии BUSY (занято) до тех пор, пока прерванная процедура будет
завершена. После прекращения процедуры, для продолжения приема пакета, необходимо
20
повторить передачу того слова, которое было прервано не на границе слова.
Для того чтобы инициировать преждевременное прекращение процедуры записи,
необходимо перевести сигнал
в неактивное состояние. Как показано на Рис. 18,
прекращение процедуры начнется с приходом нарастающего фронта CCLK.
Рис.3.4.1. Преждевременное прекращение процедуры записи при режиме SelectMAP
3.5.Использование
режима
периферийного
сканирования
для
конфигурирования Virtex
Для конфигурирования в режиме периферийного сканирования используются только
специальные контакты порта тестового доступа (Test Access Port — ТАР) в соответствии со
стандартом IEEE 1149.1.
Конфигурирование через порт ТАР выполняется с помощью специальной команды
CFG_IN. Эта команда позволяет преобразовать входные данные, поступающие на вход TDI,
в пакет данных для внутренней шины конфигурирования.
Для конфигурирования FPGA через порт периферийного сканирования необходимо
выполнить следующие действия:
1. Загрузить команду CFG_IN во внутренний регистр команд (instruction register — IR).
2. Ввести состояние Shift-DR (SDR).
3. Выдать стандартный конфигурационный bitstream на TDI.
4. Возвратиться к состоянию Run-Test-Idle (RTI).
5. Загрузить в регистр IR команду JSTART.
6. Ввести состояние SDR.
7. Выдать ТСК для длины последовательности (длина программируемая).
8. Возвратиться к состоянию RT1.
21
Как отмечалось ранее, конфигурирование и обратное считывание всегда доступно в
режиме периферийного сканирования. Для выборки режима необходимо подать код <101>
или <001> на контакты М2, Ml, М0.
3.6. Последовательность конфигурации
Конфигурирование устройств Virtex -- процесс, состоящий из трех фаз. В первой фазе
конфигурирования
очищается
память.
Следующая
фаза
—
загрузка
данных
в
конфигурационную память. Наконец, активизируется логика (фаза Start-Up).
Обычно процесс конфигурирования запускается автоматически после подачи
напряжения питания, однако, как будет описано далее, он может быть задержан
пользователем. Конфигурационный процесс может также быть инициирован установкой
активного уровня сигнала
. Переход сигнала
в состояние ‘1’ означает
окончание фазы очистки памяти, а установка активного уровня сигнала DONE (‘1’) означает
окончание процесса в целом.
Временная диаграмма для конфигурационных сигналов после подачи напряжения
питания показана на Рис.3.7.1, а соответствующие временные характеристики — в
Табл.3.7.1.
3.7. Задержка конфигурирования
Конфигурирование FPGA может быть задержано удержанием сигнала на контакте
в, состоянии низкого логического уровня до момента готовности системы к
конфигурированию.
На
протяжении
фазы
очистки
конфигурационной
памяти
последовательность операций состоит из повторения цикла очистки памяти по всем адресам.
Эти операции продолжаются до окончания одного полного цикла очистки памяти по всем
адресам после установки сигнала на входе
в состояние ‘1’. Таким образом,
задержка процесса конфигурирования равнозначна продолжению фазы очистки памяти.
22
Рис.3.7.1 Временные диаграммы при подаче питания
Таблица 3.7.1. Значения временных параметров при подаче питания.
Значение
Параметр
min
max
2.0 мс
100 мкс
0.5 мкс
4.0 мкс
300 нс
Другой вариант — подача от источника с открытым стоком сигнала низкого уровня
на вход
. Источник сигнала с открытым стоком необходим потому, что контакт
—
двунаправленный и работает как выход, имеющий низкий логический уровень во время фазы
очистки памяти. Увеличение времени удержания низкого логического уровня на этом
контакте приводит, к тому, что конфигурационный автомат продолжает выполнять фазу
очистки памяти. Таким образом, процесс конфигурирования задерживается, не входя в фазу
загрузки данных.
3.8. Последовательность вхождения в штатный режим работы
При выполнении вхождения в штатный режим работы по умолчанию глобальный
сигнал управления третьим состоянием (global tristate - GTS) активизируется через один цикл
CCLK после перехода сигнала DONE в состояние ‘1’. Это позволяет выходам FPGA
включиться надлежащим образом.
Одним циклом CCLK позже активизируются сигнал глобальной установки/сброса
(Global Set/Reset — GSR) и глобального разрешения записи (Global Write Enable — GWE).
23
Это создает условия для начала нормальной работы внутренних запоминающих элементов.
Временная диаграмма для этих событий может быть изменена. Кроме того, события
GTS, GSR и GWE могут активизироваться после перехода всех выходов DONE в высокое
состояние при конфигурировании множественных устройств FPGA, что позволяет начинать
их работу в штатном режиме синхронно. Во время выполнения последовательности
допускается включение на любой фазе паузы до момента нормального захвата следящей
системы схемы автоподстройки задержки (DLL).
3.9. Формат потока конфигурационных данных
Кристаллы Virtex конфигурируются последовательной загрузкой в них фреймов
данных, которые объединены в двоичный поток (bitstream). В Табл.3.9.1 представлены
объемы конфигурационной последовательности для кристаллов Virtex.
Таблица 3.9.1 Размер конфигурационной последовательности для различных микросхем
семейства Virtex
Кристалл
Конфигурационные биты
XCV50
559 200
XCV100
781 216
XCV150
1 040 096
XCV200
1 335 840
XCV300
1 751 808
XCV400
2 546 048
XCV600
3 607 968
XCV800
4 715 616
XCV1000
6 127 744
3.10.Обратное считывание
Конфигурационные данные, записанные в конфигурационной памяти FPGA, могут
быть считаны обратно для выполнения верификации. Наряду с этими данными возможно
обратное считывание содержимого всех триггеров/защелок, LUTRAMs, BlockRAMs. Эта
возможность используется для выполнения отладки проектов в реальном масштабе времени.
24
4. Потребление энергии
Статическое потребление энергии достаточно мало и для некоторых серий составляет
единицы микроватт. Динамическое же потребление пропорционально возрастает с частотой
функционирования проекта и зависит от степени заполнения кристалла, характера
логической структуры проекта на кристалле, параметров режима внешних выводов ПЛИС и
т. д.
5. Корпуса
Для каждого отдельно взятого семейства ПЛИС Xilinx существует преемственность
кристаллов по типу корпуса и, соответственно, цоколёвке, то есть в одни и те же корпуса
упаковываются ПЛИС различного логического объёма, что позволяет разработчику,
задавшись на этапе проектирования печатной платы определённым типом корпуса, в
дальнейшем устанавливать ПЛИС наиболее подходящего размера.
6. Плис FPGA фирмы Xilinx
Наиболее перспективными семействами FPGA фирмы Xilinx являются ПЛИС серий
Spartan и Virtex. Первая из серий включает в себя недорогие устройства общего назначения,
пригодные для решения широкого класса задач цифровой обработки сигналов. Серия Virtex
обладает несколько более широкими возможностями за счет более развитой структуры
логических блоков, обеспечивает несколько большие рабочие частоты по сравнению с
ПЛИС Spartan , но и имеет более высокую стоимость в пересчете на один логический
вентиль.
В настоящее время обе серии, Spartan и Virtex, развиваются фирмой Xilinx
параллельно. В практике проектирования цифровых устройств общего назначения различия
между этими устройствами на самом деле не являются принципиальными, и ПЛИС серии
Virtex можно рекомендовать только в тех случаях, когда особенности их внутренней
структуры являются определяющими для успешной реализации проекта.
6.1. ПЛИС с архитектурой FPGA семейства Virtex
6.1.1.Описание
Семейство FPGA Virtex позволяет реализовать высокопроизводительные, большой
ёмкости,
цифровые устройства на одном кристалле. Резкое увеличение эффективности
реализаций достигнуто благодаря новой архитектуре, более эффективной для размещения и
трассировки элементов, а также производству кристаллов на основе 0.22 микронного
процесса с 5-ю слоями металлизации. Всё это позволяет использовать кристаллы Virtex как
25
альтернативу масочно программируемым вентильным матрицам. В состав семейства Virtex
входят девять микросхем, отличающихся логической ёмкостью
Созданное на основе опыта, приобретённого при разработках предыдущих серий
FPGA,
семейство Virtex является революционным шагом вперед, определяющим новые
стандарты в производстве программируемой логики. Сочетая большое разнообразие новых
системных свойств, иерархию высокоскоростных и гибких трассировочных ресурсов с
передовой технологией изготовления
“кремния”,
семейство Virtex
предоставляет
разработчику широкие возможности реализации быстродействующих, большой логической
ёмкости цифровых устройств, при значительном снижении времени разработки.
6.1.2.Особенности
•
Высокопроизводительные,
большой емкости, программируемые пользователем
логические интегральные схемы с архитектурой FPGA (Field Programmable Gate Arrays)
− Ёмкость от 50К до 1М системных вентилей
− Системная производительность до 200 МГц
− Совместимы с шиной PCI 66 МГЦ
− Поддерживают функцию Hot-swap для Compact PCI
• Поддержка большинства стандартов вводавывода (технология SelectIOTM)
− 16 высокопроизводительных стандартов ввода - вывода
− Прямое подключение к ZBTRAM устройствам
• Встроенные цепи управления тактированием
− Четыре встроенных модуля автоподстройки задержек (DLL - delay-locked loop) для
расширенного управления тактовыми сигналами как внутри кристалла, так и всего
устройства
− Четыре глобальные сети распределения тактовых сигналов с малыми разбегами
фронтов, плюс 24 локальные тактовые сети
• Иерархическая система элементов памяти
−
На базе 4-х входовых таблиц преобразования (4-LUT – Look-Up Table)
конфигурируемых либо как 16-ти битовая RAM (Random Access Memory), либо как
16-ти битовая двухпортовая RAM, либо как 16-ти битовый сдвиговый регистр
−
Встроенная блочная память,
каждый блок конфигурируется как синхронная
двухпортовая RAM ёмкостью 4 Кбит
− Быстрые интерфейсы к внешней высокопроизводительной RAM
• Гибкая архитектура с балансом быстродействия и плотности упаковки логики
26
− Специальная логика ускоренного переноса для высокоскоростных арифметических
операций
− Специальная поддержка умножителей
− Каскадируемые цепочки для функций с большим количеством входов
− Многочисленные регистры/защелки с разрешением тактирования и синхронные/
асинхронные цепи установки и сброса
− Внутренние шины с тремя состояниями
− Логика периферийного сканирования в соответствии со стандартом IEEE1149.1
− Датчик температуры кристалла
• Проектирование осуществляется пакетами программного обеспечения Foundation TM и
Alliance Series, работающими на ПК или рабочей станции
• Конфигурация кристалла хранится во внешнем ПЗУ, и загружается в кристалл после
включения питания автоматически или принудительно
− Неограниченное число циклов загрузки
− Четыре режима загрузки
• Производятся по технологии 0.22 мкм к-МОП с 5-ти слойной металлизацией на основе
статического ОЗУ
• 100% фабричное тестирование
6.1.3. Матрица
Программируемая пользователем вентильная матрица серии Virtex
показана на
Рис.7.1.3.1. Соединение между КЛБ осуществляется с помощью главных трассировочных
матриц - ГТМ. ГТМ - это матрица программируемых транзисторных двунаправленных
переключателей, расположенных на пересечении горизонтальных и вертикальных линий
связи.
Каждый КЛБ окружен локальными линиями связи (VersaBlock TM ),
которые
позволяют осуществить соединения с матрицей ГТМ.
Интерфейс ввода-вывода VersaRing
ресурсы по периферии кристалла.
создает дополнительные трассировочные
Эти трассы улучшают общую “трассируемость”
устройства и возможности трассировки после закрепления электрических цепей к
конкретным контактам.
Архитектура Virtex также включает следующие элементы, которые соединяются с
матрицей GRM:
• Специальные блоки памяти (BRAMs) размером 4096 бит каждый.
•
Четыре модуля автоподстройки задержек (DLL), предназначенных для компенсации
задержек тактовых сигналов, а также деления, умножения и сдвига фазы тактовых частот.
27
• Буферы с тремя состояниями (BUFT), которые расположены вблизи каждого КЛБ и
управляют горизонтальными сегментированными трассами. Коды,
записанные в ячейки
статической памяти, управляют настройкой логических элементов и коммутаторами трасс,
осуществляющих межсоединения в схеме. Эти коды загружаются в ячейки после включения
питания и могут перезагружаться в процессе работы,
если необходимо изменить
реализуемые микросхемой функции.
Рис. 7.1.3.1. Структура архитектуры Virtex
28
6.2. ПЛИС с архитектурой FPGA семейства SpartanTM-II
6.2.1. Описание
Семейство SpartanTM-II – второе поколение ПЛИС (Программируемые Логические
Интегральные Схемы), предназначенных для использования в
Архитектура семейства SpartanTM-II
крупно серийных проектах.
основана на архитектуре популярного семейства
VirtexTM. ПЛИС семейства SpartanTM-II могут применяться в проектах как альтернатива
специализированным интегральным схемам ёмкостью до 200 000 вентилей и системным
быстродействием до 200 МГц. Напряжение питания ядра кристалла семейства SpartanTM-II
составляет 2,5 В.
Стоимость
ПЛИС
SpartanTM-II
эквивалентна
стоимости
заказных
специализированных интегральных схем в партиях от 100 000 штук и в 3-4 раза меньше,
чем стоимость ПЛИС семейства VirtexTM при розничных объёмах. Такое снижение цены в
сравнении с семейством VirtexTM достигнуто благодаря использованию новой технологии
производства кремния и уменьшению номенклатуры корпусов.
Набор выполняемых
функций аналогичен семейству VirtexTM, но отсутствует термодиод.
Семейство состоит из 6-ти кристаллов, отличающихся логической ёмкостью.
6.2.2. Особенности
• Высокопроизводительные, программируемые пользователем логические интегральные
схемы с архитектурой FPGA (Field Programmable Gate Arrays)
− Ёмкость от 15 000 до 200 000 системных вентилей
− Системная производительность до 200 МГц
− Совместимость с шиной PCI 66 МГЦ
− Поддержка функции Hot-swap для Compact PCI
− Поддержка большинства стандартов ввода-вывода (технология SelectIOTM)
− 16 высокопроизводительных стандартов ввода-вывода
− Прямое подключение к ZBTRAM устройствам
− Корпусировка в наиболее дешевые корпуса
− Совместимость по выводам кристаллов разной ёмкости в одинаковых корпусах
• Встроенные цепи управления тактированием
− Четыре встроенных модуля автоподстройки задержек (DLL - delay-locked loop) для
расширенного управления тактовыми сигналами как внутри ПЛИС, так и всего
устройства
− Четыре глобальные сети распределения тактовых сигналов с малыми разбегами
фронтов, плюс 24 локальные тактовые сети
29
• Иерархическая система элементов памяти
− На базе 4-х входовых таблиц преобразования (4-LUT – Look-Up Table)
конфигурируемых либо как 16-ти битовая RAM (Random Access Memory), либо как
16-ти битовая двухпортовая RAM, либо как 16-ти битовый сдвиговый регистр
− Встроенная блочная память, каждый блок конфигурируется как синхронная
двухпортовая RAM ёмкостью 4 Кбит
− Быстрые интерфейсы к внешней высокопроизводительной RAM
• Гибкая архитектура с балансом быстродействия и плотности упаковки логики
− Специальная логика ускоренного переноса для высокоскоростных арифметических
операций
− Специальная поддержка умножителей
− Каскадируемые цепочки для функций с большим количеством входов
− Многочисленные регистры/защелки с разрешением тактирования и
синхронные/асинхронные цепи установки и сброса
− Внутренние шины с тремя состояниями
− Логика периферийного сканирования в соответствии со стандартом IEEE1149.1
• Проектирование осуществляется пакетами программного обеспечения FoundationTM и
Alliance Series, работающими на ПК или рабочей станции
• Конфигурация кристалла хранится во внешнем ПЗУ и загружается в ПЛИС после
включения питания автоматически или принудительно
− Неограниченное число циклов загрузки
− Четыре режима загрузки
• Производятся по гибридной технологии 0.18мкм/0.22мкм к-МОП с 6-ти слойной
металлизацией на основе статического ОЗУ
• 100% фабричное тестирование
6.2.3. Матрица
Основными
особенностями
архитектуры
кристаллов
семейства
SpartanTM-II
являются гибкость и регулярность. Кристаллы состоят из матрицы КЛБ (Конфигурируемый
Логический Блок), показанной на рис. 7.2.3.1, которая окружена программируемыми
блоками ввода-вывода (БВВ). Все соединения между основными элемента (КЛБ, БВВ)
осуществляются с помощью набора иерархических высокоскоростных программируемых
трассировочных ресурсов. Изобилие таких ресурсов позволяет реализовывать на ПЛИС
семейства SpartanTM-II даже самые насыщенные и сложные проекты.
30
Кристаллы семейства Spartan-II производятся на основе статического ОЗУ (Static
Random Access Memory – SRAM), поэтому функционирование кристаллов определяется
загружаемыми во внутренние ячейки памяти конфигурационными данными.
Конфигурационные данные могут загружаться в кристалл несколькими способами. В
ведущем последовательном режиме (Master Serial) загрузка осуществляется из внешнего
ПЗУ и полностью управляется самой FPGA SpartanTM-II. В других режимах управление
загрузкой осуществляется внешними устройствами
(подчиненный параллельный режим
(Slave Parallel), подчиненный последовательный (Slave Serial) и JTAG).
Конфигурационные данные создаются пользователем при помощи программного
обеспечения проектирования Xilinx Foundation TM и Alliance Series. Программное
обеспечение включает в себя модули схемного и текстового ввода, моделирования,
автоматического и ручного размещения и трассировки, создания, загрузки и верификации
конфигурационных данных.
Рис.7.2.3.1 Структура архитектуры Spartan-II
31
Выводы
В данной работе были рассмотрены ПЛИС на архитектуре FPGA, была описана
архитектура
кристалла
ПЛИС
,
так
же
основные
отличительные
особенности,
энергопотребление, цоколевка.
Одним из основных производителей ПЛИС на данной архитектуре является фирма
Xilinx. Одними из наиболее распространенных являются семейства Spartan и Virtex.
Основным различием этих семейств ПЛИС является их целевое предназначение и сильно
различающаяся ценовая категория.
Так же был рассмотрен режим конфигурировния ПЛИС семейства Virtex:
1. Последовательность режима конфигурации
2. Последовательности вхождения в штатный режим
3. Задержка конфигурирования
4. Режимы конфигурирования и алгоритмы записи данных в различных режимах
32
Список использованных источников
1. Тарасов И.Е. Разработка цифровых устройств на основе ПЛИС Xilinx с применением
языка VHDL, Горячая линия-Телеком, 2005.
2. Зотов В.Ю. Проектирование цифовых устройств на основе ПЛИС фирмы XILINX в САПР
WebPACK ISE, Горячая линия-Телеком, 2003.
3. Сергиенко А.С. Учебное пособие ПЛИС Xilinx, НФРА-М, 2003.
33
Download