- •Глава7 программируемая логика и ее применение в микропроцессорных системах
- •7.1. Общие сведения, классификация
- •7.1.1. Уровень интеграции интегральных схем (ис) и его влияние на качество цифровой аппаратуры и ее проектирование.
- •7. 1. 4. Области применения микросхем с программируемой логикой
- •7.2. Первые поколениямикросхем с программируемой структурой
- •7.2.1. Программируемые логические матрицы и программируемая матричная логика
- •7.2.2. Базовые матричные кристаллы
- •7.3. Типичные фрагменты схемотехники ис пл. Общие свойства ис пл
- •7.3.1. Типичные схемотехнические решения
- •7.3.2. Свойства ис пл, важные для их применения в составе систем
- •7.4. Fpga-программируемые пользователем вентильные матрицы
- •7.4.1. Архитектура и блоки fpga
- •7.4.2. Популярные fpga фирмы «xilinx»
- •7.5. Cpld - сложные программируемые логические устройства
- •7.5.1. Архитектура и блоки cpld
- •7.5.2. Популярные cpld фирмы «altera»
- •7.6. Сбис пл комбинированной архитектуры
- •7.6.1. Общие сведения
- •7.6.2. Сбис пл комбинированной архитектуры flex10k
- •7.7. Сбис программируемой логики типа «система на кристалле»
- •7.7.1. Общие сведения
- •7.7.2. Сбис пл с конфигурируемостью всех областей кристалла
- •7.7.3. Сбис пл класса «система на кристалле» с блочной архитектурой
- •7.8. Конфигурирование бис/сбис программируемой логики
- •7.9. Методика оценки параметров ис пл
- •7.9.1. Вводные замечания
- •7.9.2. Об оценке сложности микросхем программируемой логики
- •7.9.3. Об оценке быстродействия микросхем программируемой логики
- •7.9.4. Параметры популярных семейств микросхем программируемой логики
- •7.10. Аналоговые программируемые микросхемы
- •7.10.1 Общие сведения
- •7.10.2. Практические разработки
7.7.3. Сбис пл класса «система на кристалле» с блочной архитектурой
В СБИС ПЛ класса «система на кристалле» с блочной архитектурой выделяются специализированные области (аппаратные ядра), проектируемые методами заказных схем. Достоинства и недостатки применения блочных архитектур обсуждались ранее, в п. 7.7.1. По субъективному мнению авторов, использование микросхем с блочной архитектурой является весьма перспективным направлением.
Первые объявленные СБИС, в которых процессор, память и FPGA размещены на одном кристалле - семейство FPSLIC (Field Programmable System Level Integration Chips) фирмы «Atmel», одной из крупных фирм-разработчиков цифровых микросхем, в том числе микросхем программируемой логики. До появления семейства FPSLIC, выход которого на рынок датируется серединой 2000 г., фирмой «Atmel» были разработаны хорошо известные процессоры AVR и FPGA семейства АТ40К. В микросхемах семейства FPSLI как раз и совмещены процессорное ядро AVR, FPGA типа АТ40К и блоки статической памяти SRAM. Такая «комплектация» соответствует возможностям построения системы на кристалле. При закреплении функций процессора и памяти за соответствующими ядрами на программируемую логику возлагаются все остальные функции, необходимые для построения системы (например, функции управления памятью и/или внешними устройствами, создание проблемно-ориентированных сопроцессоров, реализация интерфейсных функций тех или иных шин и т. д.). В СБИС FPSLIC FPGA рассматривается как «большое внешнее устройство» с разнообразными заказными или общеупотребительными функциями, к которому процессор обращается для выдачи ему команд и исходных данных и получения результатов.
На рис. 7.32 представлена обобщенная структура микросхем семейства FPSLIC. Микросхемы имеют напряжение питания 3,3 В, изготовляются технологическими процессами с топологической нормой 0,35 мкм, имеют несколько режимов пониженного энергопотребления
AVR - 8-разрядное процессорное ядро производительностью более 30 MIPS (при тактовой частоте 40 Мгц) с RISC-архитектурой, имеющее систему команд, содержащую около 120 инструкций. Особенностями микроконтроллера с ядром AVR в первую очередь являются выполнение команд, извлекаемых непосредственно из статической памяти SRAM, что значительно ускоряет работу микроконтроллера, и наличие в АЛУ умножителя MPL для.аппаратной реализации операции умножения, широко используемой в процессах
цифровой обработки сигналов (ЦОС). Архитектура AVR оптимизирована для разработки приложений на языке С, ядро имеет регистровый файл из 32 регистров.
С ядром AVR связан ряд устройств, характерных для микроконтроллеров: два универсальных асинхронных программируемых связных адаптера (UARTs), два 8-разрядных и один 16-разрядный таймер-счетчик, два программируемых порта ввода/вывода. Дополнительно введен специальный аппаратный интерфейс I2 С для обеспечения связи с внешней энергонезависимой памятью типа EEPROM, используемой для конфигурирования микросхем FPSLIC.
Блок статической памяти общей емкостью 36 Кбайт - двухпортовая память с временем доступа 15 не содержит фиксированные области памяти программ (с организацией 10К 16) и памяти данных (с организацией 4К 8) и, кроме того, область, которую при конфигурации схемы можно по желанию разработчика полностью или частями добавить к памяти программ или к памяти данных. Предписание по использованию не фиксированной области памяти содержится в специальном регистре конфигурации в контроллере памяти микросхемы (Memory Controller).
В блоке FPGA используются стандартные структуры микросхем АТ40К, работающие на системной частоте 100 Мгц, сложностью от 10 до 40К используемых эквивалентных вентилей с емкостью встроенной памяти от 2048 до 18 432 бит. В основных чертах эти структуры типичны для FPGA, хотя и имеют некоторые оригинальные особенности (рис. 7.33). Основа блока - симметричная матрица идентичных логических ячеек, в каждую из которых входят несколько программируемых мультиплексоров, триггер типа D, буфер с тремя состояниями и два табличных функциональных преобразователя (LUT). Функциональные преобразователи воспроизводят функции трех переменных (одних и тех же для обоих преобразователей) и могут быть объединены для выработки любых функций четырех переменных. Для логических ячеек предусмотрены несколько стандартных режимов (конфигураций), а именно следующие:
реализации функций одноразрядного сумматора (арифметический режим);
выполнения операции умножения (режим DSP/Multiplier);
реализации разряда счетчика;
выполнения функций мультиплексоров с буферами на три состояния (режим Tristate/MUX).
Перечисленные режимы, как видно, ориентированы на проекты с интенсивными вычислениями, такие как реализация цифровых фильтров, быстрых преобразований Фурье, конвольверов, криптографических алгоритмов и многих других мультимедийных задач. На основе блока FPGA реализуются и общеупотребительные интерфейсные функции (UARTs, PCI и др.).
Топологически логическая ячейка трактуется как восьмиугольник и с восемью ближайшими соседями она имеет прямые связи (Direct Connects), проходящие по матрице ячеек в ортогональных и диагональных направлениях. Благодаря прямым связям, в частности, строятся ультрабыстродействующие матричные множительные устройства.
Массив FPGA имеет шесть внешних и две внутренних линии тактирования. Для внутренних линий тактирования источником сигналов служит ядро AVR, причем одна из этих линий принадлежит системной линии тактирования микроконтроллера, а вторая может быть запрограммирована на соединение с одним из нескольких источников тактовых сигналов, генерируемых внутри AVR (таймеров и др.).
Ядро АТ40К имеет свою статическую память, называемую FreeRam. Время доступа к данным этой памяти составляет 10 не. Благодаря наличию FreeRAM функции памяти в создаваемых на основе FPGA устройствах реализуются без затрат логических ресурсов FPGA. Возможны различные варианты организации памяти FreeRAM: синхронный или асинхронный, одно- или двухпортовый для RAM, FIFO и др. Варианты организации создаются инструментальными средствами макрогенерации функций.
Система межсоединений элементов FPGA иерархична и включает в себя локальные шины и экспресс-шины. С восемью ближайшими соседями, как уже отмечалось, логические ячейки имеют прямые связи. Сегменты локальных шин покрывают расстояния в четыре ячейки, экспресс-шин - в восемь. Шины соединяются через повторители (Repeaters), подключаемые к двум соседним сегментам. Повторители регенерируют сигналы и выполняют также некоторые функции их коммутации. В системе межсоединений используются программируемые пасс-вентили (Pass gates), с помощью которых формируются шины с тремя состояниями.
Интерфейс FPGA с ядром AVR предусматривает для FPGA 16 входных линий декодированного адреса от AVR, 16 выходных линий запросов прерываний с различными приоритетами для AVR. Таким образом, каждому устройству, реализованному в FPGA и имеющему адрес в адресном пространстве ввода/вывода AVR, придается возможность иметь собственный запрос прерывания.
Кроме того, AVR определяет направление передачи данных, посылая для FPGA сигналы стробов чтения и записи. Эти сигналы управляют двунаправленной шиной данных, образуемой из линий Express Lines системы межсоединений FPGA. Таким образом, ядро микроконтроллера взаимодействует с устройствами, созданными в FPGA, принципиально подобно тому, как обычно процессор взаимодействует с внешними устройствами.
Для функций заказной периферии, реализуемой в FPGA, существует макробиблиотека, что существенно упрощает проектирование. Автоматическая генерация макросов, которую способна выполнять FPGA AT40K, минимизирует также риски проектирования, так как дает возможность пользоваться уже хорошо проверенными схемными решениями.
Другой аспект взаимодействия AVR и FPGA состоит в том, что они имеют общий доступ к двухпортовой памяти SRAM с временем доступа 15 не (рис. 7.34). Между FPGA и AVR размещены 36 Кбайт этой памяти, которая в первую очередь используется микроконтроллером, подсоединенным к одному из портов, для хранения команд и данных. Порт, подсоединенный к FPGA, используется во время загрузки конфигурации, чтобы загрузить память программ и память данных микроконтроллера. FPGA может обращаться к SRAM одновременное AVR. Разделяемая память позволяет реализовать различные варианты буферного обмена между FPGA и AVR (буферы FIFO, LIFO или др.).
У порта SRAM, подключенного к FPGA, нет сигнала разрешения чтения, т. е. чтение данных для FPGA всегда разрешено. Для предотвращения конфликтов при обращениях FPGA и AVR в одно и то же время к одному и тому же адресу требуется позаботиться о логике арбитража (чаще всего специальный управляющий регистр микроконтроллера при необходимости ограничивает доступ к памяти со стороны FPGA).
Важная особенность микросхем семейства FPLIC - способность реализовать концепцию кэш-логики (Cache Logic), впервые введенную фирмой «Atmel». Понятие кэш-логики отражает достижения в области развития адаптивных систем. Кэш-логика позволяет производить полное или частичное реконфигурирование системы «на лету», без потери имевшихся данных и нарушения работы неизменяемой части устройств. Сохраняются данные, которые были получены к моменту перестройки той или иной части системы. Та часть аппаратуры, в которой в данный момент происходит обработка информации, представлена схемой соответствующей конфигурации в FPGA, а пассивная часть системы представлена данными, сохраняемыми в недорогих устройствах памяти. В результате экономно выполняются логические преобразования. Когда активизируются новые операции, новая конфигурация записывается «поверх старой».
Та или иная решаемая задача может быть разложена на множество операций низшего иерархического уровня, таких как сдвиг, счет, сложение, умножение, мультиплексирование и т. д. Ясно, что каждая из подобных функций может быть использована многократно в разных ситуациях, причем в каждый момент времени активна только малая часть функций. Исключая избыточность и контролируя условия появления каждой операции, можно так организовать систему, что сложные функции будут воспроизводиться с помощью небольшого числа несложных и, следовательно, дешевых схем программируемой логики. В одном из примеров требуемая задача решалась обычным способом с помощью 10 000 вентилей, а применение кэш-логики позволило применить микросхему программируемой логики сложностью всего 2000 эквивалентных вентилей, причем остальные 8000 вентилей удалось исключить, используя «кэширование», т. е. запоминание неизменной в данное время информации в более дешевой системной памяти.
Концептуально выделяют предопределенную (predermined) и динамическую кэш-логику. Первая подразумевает использование предопределенных функций и макросов, хранимых во внешней энергонезависимой памяти (EPROM, EEPROM, диск, CD-ROM). Эти функции уже проработаны, размещены и трассированы и имеют ранее сгенерированные битовые потоки (Bit streams) конфигурирования. Выполнением их управляют средства самой кэш-логики или внешние средства (программы процессора). При загрузке новых функций данные в регистрах не теряются даже в модифицируемой части системы.
Второй тип кэш-логики подразумевает определение требуемых функций, размещение и трассировку схем их реализации и генерацию битовых потоков настройки программируемой логики в реальном масштабе времени. Такая кэш-логика ассоциируется с разработкой адаптивных систем и в настоящее время существует лишь как концепция, еще не имеющая законченной физической реализации.
Применение кэш-логики снижает сложность программируемой части аппаратуры и, в конечном счете, удешевляет аппаратуру и улучшает такие ее характеристики, как надежность (вследствие уменьшения числа физически существующих схемных компонентов), потребляемую мощность и др. Область перспективного применения кэш-логики достаточно широка: это портативная аппаратура с ее высокими требованиями к снижению потребляемой мощности и габаритных размеров, системы с интенсивными вычислениями (компьютерная графика, распознавание образов и речи и многое другое).
Микросхемы семейства FPSLIC имеют механизм конфигурирования FPGA под управлением AVR, который может загружать кэшевую память FPGA, имея прямой доступ к шине данных SRAM-конфигурации. При обычной загрузке конфигурации кэшевый доступ в память конфигурации блокируется. При кэшевом доступе AVR использует три регистра для формирования адреса и один регистр для данных. Типовое назначение этого режима для AVR - принять последовательные данные через UART и направить их в качестве данных конфигурации в FPGA, вызывая таким образом загрузку или разрешая системную реконфигурацию, при которой структура FPGA алгоритмически видоизменяется.
Разработчики таких сложных СБИС, как FPSLIC, подчеркивают, что подобные микросхемы с их впечатляющими возможностями не следует рассматривать как просто микроконтроллеры с программируемой проектировщиком периферией, поскольку для этой относительно ограниченной цели могут найтись более простые решения (например, с применением микросхем программируемой пользователем периферии фирмы WSI). С точки зрения технико-экономических показателей, эффект достигается в первую очередь при достаточно полном использовании новых функциональных возможностей, присущих такой качественно новой продукции как микросхемы семейства FPSLIC и им подобные [уже объявлено о выпуске блочных СБИС типа «система на кристалле» фирмой «Triscend» (Triscend E5, Configurable System-on-Chip) ожидаются подобные разработки и от фирмы «Altera» и других].