Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
глава 7 готово.doc
Скачиваний:
13
Добавлен:
15.09.2019
Размер:
1.67 Mб
Скачать

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» и других].

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]