Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Математическое и программное обеспечение устройств с программируемой логикой -- Фахми С.Ш., Соколов.pdf
Скачиваний:
72
Добавлен:
04.11.2020
Размер:
2.25 Mб
Скачать

3. ПРОГРАММИРУЕМЫЕ ЛОГИЧЕСКИЕ ИНТЕГРАЛЬНЫЕ СХЕМЫ

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

(Programmable Logic Devices), FPGA (Field Programmable Gate Arrays), ASIC

(Application Specific Integrated Circuit). Эти группы интегральных микросхем различаются между собой по быстродействию, емкости, определяемой количествомпростейших логических вентилей (элементы, выполняющие такие логические операции как «И» или «ИЛИ»), которое может содержать микросхема, и ряду архитектурных особенностей.

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

Преимуществом этой технологии является то, что при отключении питания микросхема сохраняет всю запрограммированную логику работы, поэтомупосле включенияпитанияповторноепрограммированиене требуется. В данный момент основным представителем этого семейства являются CPLD (Complex Programmable Logic Devices),названныетаквследствиеувеличенной емкости и улучшенной архитектуры.

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

41

конфигурацию при отключении питания, что приводит к необходимости применения внешней памяти [2].

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

ASIC (заказные интегральные микросхемы) содержат сотни миллионов логических вентилей и могут выполнять чрезвычайно сложные функции. Такой тип устройств разрабатывается для использования в составе специальных приложений, т. е. призван максимально эффективно решать ограниченный круг задач. Высокая сложность этого типа интегральных микросхем привелак делению их на основные подтипы: структурированные ASIC, схемы на стандартных элементах (Standard Cell) и полностью заказные интегральные схемы (Full Custom) [2]. Такое деление обусловлено сочетанием производительность/время разработки/стоимость, что позволяет выбрать оптимальные показатели для конкретного технического решения на этапе планирования.

Таким образом, FPGA занимают промежуточное положение между сравнительно простыми CPLD и сложными ASIC. Их функциональность может быть задана достаточно быстро без применения сложного технологического оборудования. Они могут содержать миллионы логических вентилей и, следовательно, реализовывать чрезвычайно сложные функции, которые изначально могли быть реализованы только с помощью ASIC. Такое положение FPGA позволяет использовать их в ряде важных технических решений [2]:

1.Прототипирование ASIC. Это решение позволяет оценить работу разрабатываемоймикросхемывреальныхусловиях,атакжевсотниразсократить время моделирования при ее тестировании.

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

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

врамках одного и того же проекта).

3.Создание специфических сопроцессоров для работы в составе системы совместно с ведущим процессором. Это решение используется как ап-

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

42

4. Цифровая обработка сигна-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

лов. Современные FPGA содержат ап-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Logic

 

 

 

 

 

 

 

 

 

Macro

 

 

паратные DSP-ядра (Digital Signal

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S

 

 

 

 

 

 

 

 

Cell

 

 

 

 

 

 

 

 

 

Cell

 

 

Processing), что в сочетании с боль-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

шими объемами внутренней опера-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

тивной памяти и возможностью ис-

 

 

S

 

 

 

 

 

S

 

 

 

 

S

 

 

пользования дополнительных логиче-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

скихфункцийдаетврядеслучаевпре-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

имущества над традиционными под-

 

Logic

 

 

 

 

S

 

 

 

Macro

 

ходами, которые предполагают ис-

 

 

Cell

 

 

 

 

 

 

 

 

 

 

Cell

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

пользование специально разработан-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ных DSP-процессоров.

 

Рис. 3.1. Схема принципиальной

5. Физический уровень передачи

 

 

 

 

структуры ПЛИС

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

данных. FPGA используются как связующее звено, выполняющее функцию

интерфейса, что в сочетании с аппаратными высокоскоростными приемопередатчиками позволяет реализовывать сетевые и коммуникационные функции в одном устройстве.

Принципиальная структура FPGA-устройства (рис.3.1) состоит из следующих компонент:

Logic Cell. Логическая ячейка обычно содержит небольшие комбинационные схемы с перестраиваемой конфигурацией и один или несколько триггеров D-типа;

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

S-блоки. Представляют собой программируемые переключатели. Логическая ячейка может быть сконфигурирована таким образом, чтобы

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

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

43

реализующих требуемое поведение. На последнем этапе проектирования этот файл используют для конфигурации некоторой целевой FPGA. Поскольку процесс конфигурации выполняют чаще всего в «полевых условиях», нежели на заводе, то и устройство получило название «программируемое в полевых условиях» (field-programmable).

3.1. Программируемые схемы со встроенным процессорным ядром

Архитектура. Процессор Nios II имеет RISC-архитектуру, в которой арифметические и логические операции выполняются над операндами, находящимися в регистрах общего назначения. Обмен информацией между регистрами ипамятью осуществляется выполнением команд Load и Store. Машинное слово процессора Nios II имеет ширину 32 бита, такой же размер имеют его регистры. Для адресации байтов в слове используется little-endian-стиль, при котором менее значимые байты расположены по меньшим адресам в ОП. Процессор имеет гарвардскую архитектуру, т. е. использует раздельные шины для данных и команд (рис. 3.2).

 

Пользовательские

Процессор

Модуль передачи

 

компоненты

(32 бита)

данных

ПЛИС

Коммуникационная логика

 

Порты ввода-

Память

Модуль передачи

 

вывода

данных

 

 

Сопроцессор Память

Рис. 3.2. Структурная схема ПЛИС со встроенным процессором

Традиционное построение систем. Системное проектирование обычно представляет собой трудоемкий и кропотливый процесс, так как различные узлы системы имеют свои интерфейсы (стандартные и нестандартные).

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

44

арбитраж всей периферии, причем эта дополнительная логика не дает преимуществ проекту – она просто необходима.

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

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

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

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

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

Существует несколько преимуществ использования стандартных интерфейсов по сравнению с индивидуальными пользовательскими интерфейсами:

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

иобеспечении контроля связи сигналов статуса и данных. Это приводит к сокращению числа ошибок.

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

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

45

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

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

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

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

Отдельно стоит упомянуть C-to-Hardware (C2H) Acceleration Compiller.

C2H – это утилита, позволяющая конвертировать часть ресурсоемкого программного кода в аппаратный блок, описанный на VHDL или Verilog HDL, и встроить его внутрь процессора Nios II. При этом утилита рассчитана исключительнонапрограммистов,такчтознанияHDL отпользователянетребуется. Хотя, конечно, желательно понимание того, что можно соптимизировать таким образом, а что не очень, и как это лучше описать на C, чтобы акселератор

46