Блоки.
Block (*условие*)
*определение используемых данных - константы и переменные*
begin *описание процесса*
End block;
Процессы.
Process (*лист чувствительности*)
*область декларации*
Begin *VHDL операторы* *описание процесса*
End process;
В программе на VHDL может присутствовать множество процессов, отмеченных разными списками чувствительности. Данные процессы реализуются параллельно.
Компоненты.
Оператор определения компонент:
component *имя компонента* *порт (определение линий порта)*;
end component;
Существо выполняемых компонентом функций определяется дополнительно.
Указание линий передачи информации.
*Имя компонента*
Port map (*имя выходного порта в данном компоненте* => *название переменной куда будет записано значение выхода*,…);
Рассматривается классификация современных ПЛИС. Ряд существующих типов опущен ввиду их неиспользования. Рассматриваются такие типы, как CPLD (complex programmable logic device), FPGA (field-programmable gate array – программируемая пользователем вентильная матрица), ASIC (Application-specific integrated circuit - интегральная схема, специализированная для решения конкретной задачи). ASIC микросхемы являются полузаказными и изготовляются на заводе-изготовителе. Дальнейшее изменение ASIC больше невозможно.
Рисунок 32 - Использование ПЛИС CPLD.
Рисунок 33 - Использование ПЛИС FPGA.
FPSLIC (field programmable system level integrated circuit) – отличается от ПЛИС тем, что в рамках её кристалла реализовано ядро, осуществляющее функции вычислительного устройства с жёсткой логикой функционирования, т.е. микропроцессор.
Преимущества:
Для создания вычислительного ядра системы не используются ресурсы ПЛИС.
Недостаток:
Функциональность вычислительного ядра не может быть изменена пользователем.
|
В настоящее время микросхемы FPSLIC всё ещё дороги.
Лидером в построении системы FPSLIC, а также разработчиком этой архитектуры является фирма Atmel (AT94).
Виды внутренних ресурсов ПЛИС.
Самая минимальная ячейка ПЛИС – программируемая ячейка (макроячейка в случае CPLD, в случае FPGA – блок LUT. LUT (таблица перекодировки) + триггер).
Блок конфигурируемых логических ячеек (CLB). CLB состоит из множества соединённых друг с другом программируемой матрицы макроячеек (LUT). Весь набор базовых элементов (см. п1.) разделяется на равные подгруппы (как правило, 2 или 4 блока) с целью снижения сложности программируемой матрицы.
INPUT/OUTPUT блок. Блок, задающий подключение конкретных выводов микросхемы к разрабатываемому проекту. Кроме этого, блок задаёт вид логики, используемой для данного выхода (вид логики – уровни напряжений, а также инверсия сигнала).
PLL(PLD) – программируемая защёлка. PLL – программируемый делитель частоты, PLD – программируемый формирователь фазы сигнала. По существу, данные блоки – синонимы, на их вход приходит внешний, по отношению к ПЛИС тактовый импульс. На выходе данных блоков пользователь получает сетку частот. Блоки PLL могут как делить частоту, так и в определённых пределах умножать частоту.
Блочная память (BRAM) – представляет из себя блоки статического ОЗУ, организованные как битовые массивы. При этом, BRAM может быть сконфигурирована пользователем на требуемую разрядность. Память организована как двупортовая (на запись и на чтение информации). Функции чтении и записи могут осуществляться одновременно. Порт состоит из ША и ШД. BRAM имеет 2 ША и 2 ШД. Шины - однонаправленные.
|
Система шин (BUS). Внутренний состав ПЛИС приведён на рисунке 34. На рисунке изображены по 4 блока каждого вида, однако, их количество специфично для каждого типа микросхемы.
Рисунок 34 - Внутренний состав ПЛИС.
Программируемая логическая матрица «И-ИЛИ»
Рисунок 28 - Программируемая логическая матрица «И-ИЛИ».
В качестве входов в первую матрицу «И» используется линейка повторителей сигналов Х1,Х2,Х3… с парафазным выходом, т.е. элемент имеет 2 выхода, первый из которых повторяет сигнал на входе, а второй – инвертирует даны сигнал. ПЛМ «И-ИЛИ» состоит из двух подматриц: «И» и «ИЛИ». На решетчатой структуре подматрицы, пользователь, с помощью управляемых коммутаций может устанавливать или удалять соединения. Выходы столбцов матрицы подаются на многовходовые элементы «И» с парафазным выходом. В данном случае мы имеем линейку многовходовых элементов. Для более удачного изображения схемы, элементы «И» изображены на рисунке не по ГОСТ, т.е. развёрнутыми на 90*, а линии входов обозначены стрелочками линий столбцов. Выходы элементов «И» подаются на следующую матрицу – матрицу «ИЛИ». В данном случае показаны 3 входных сигнала – Х1, Х2, Х3. И 2 выходных сигнала – Y1, Y2. Между ними расположены 2 матрицы – «И» и «ИЛИ». Количество входов и выходов зависит от типа используемой микросхемы.
В современных микросхемах ПЛИС, матрица «ИЛИ» как правило, является вырожденной, те. Представляет из себя многовходовой элемент «ИЛИ», подключаемый по жёсткой логике. Точки подключения в матрице реализуются с помощью электронных ключей и плавких перемычек. Использование плавких перемычек позволяет повысить надёжность функционирования ПЛИС в определённых областях применения (высокое радиационное излучение, космический ветер и т.д.).
|
Преимущества точек соединения на плавких перемычках:
Устойчивы к воздействию случайно залетающих элементарных частиц
Недостаток – одноразовость. Нельзя изменить.
А в случае электронных ключей преимущества и недостатки – зеркальны.
Подключение электронных соединений осуществляется под управлением информации, записанной в конфигурационную память. В случае СPLD – ПЗУ, а в случае FPGA – ОЗУ. В ПЛМ может быть большое количество линий. Это приведёт к тому, что линии столбцов потребуют многовходовых элементов «И». В реальности, многовходовые элементы «И» строятся на основании принципа монтажного «И». Схема монтажного «И» самостоятельна.
Рисунок 29 - Многовходовой элемент И.
О правой части рисунка следует отметить использование диодов, которые предназначены для того, чтобы сигналы одной горизонтальной линии, подключенной к столбцу не влияли на сигнал другой горизонтальной линии. На данной части рисунка изображены как соединения на бае плавких перемычек, так и соединения на базе ключей. Это является примером – в реальных микросхемах такое невозможно.
В реальных микросхемах используются полученные таким образом многовходовые элементы «И». Структура ПЛМ примет вид как на рисунке 30. От рисунка 28 она отличается лишь количеством входов в элементах «И».
Лекция 12. Структура макроячейки ПЛИС CPLD.
Основным компонентом микросхема CPLD является т.н. макроячейка, содержащая, наряду с конфигурируемой логикой, элемент памяти. Данные функции в микросхемах FPGA является блок LUT и триггер. Отличия лишь в том, что в CPLD рассматривается всё в виде единого блока (макроячейка), а в FPGA – блок LUT+блок триггеров. Но функции в принципе те же самые.
Макроячейка состоит из:
конфигурируемой матрицы «И»
фиксированной матрицы «ИЛИ» (которая представляет из себя 1 многовходовой элемент «ИЛИ»)
управляемый инвертор, который выполнен в виде исключающего «ИЛИ» (один вход – информационный, другой – управляющий)
D-триггер, запись в который осуществляется либо сигналом матрицы «И», либо внешним тактовым импульсом, либо постоянным уровнем.
Выходная логика, которая показывает:
- следует ли подключать выход макроячейки к внешнему контакту микросхемы ПЛИС
- типа дополнительной функции (инверсия). Нужна или не нужна инверсия.
- тип логики (уровни логических сигналов) – выбор, с какими сигналами работать
В схеме присутствуют 4 управляющих линии (шины) – 2 одноразрядных, 2 многоразрядных.
Control1 (C1) – выбирает, какой сигнал записи в триггер будет использоваться.
Control2 (C2) – сигнал включения или выключения инверсии.
Control3 (C3) – включение триггера в работу/отключение. Сигнал с конфигурируемых матриц может выходить из макроячейки и без запоминания.
Control4 (C4) – сигнал управления выходной логикой.
На входы матрицы i подаются сигналы с выходов всех макроячеек CLB, в том числе и из выхода текущей макроячейки.
Рисунок 31 - Структура макроячейки ПЛИС CPLD.
Виды современных ПЛИС
CPLD – complex PLD, основано на блоках макроячеек. Информация о конфигурации данной микросхемы хранится во внутренней энергонезависимой памяти (ROM, EEPROM, flash)
Преимущества:
Не требуется дополнительной микросхемы памяти
Высокая защищённость проекта (данные микросхемы обладают возможностью запрета чтения информации из конфигурационного ПЗУ, что не даёт злоумышленнику кражи топологии(конфигурации) микросхем)
Недостатки:
Необходимость реализации ПЗУ на ПЛИС (дорого, низкотехнологично)
Небольшой объём реализуемых функций (32-7000 макроячеек), по сравнению с FPGA – намного меньше например.
2. FPGA – field-programmable gate array (Программируемая пользователем вентильная матрица)
Информация о конфигурации микросхемы FPGA хранится во внутренней энергозависимой памяти, реализованной как статическое ОЗУ. Каждый раз, при перезагрузке микросхемы во внутреннее конфигурационное ОЗУ, информация загружается из внешнего конфигурационного ПЗУ (CROM).
Преимущества:
Высокая сложность микросхемы, которая позволяет реализовывать широкий спектр функций
Возможность изменения функциональности микросхемы даже в процессе работы (однако, перезагрузка требуется). Можно изменить информацию в конфигурационном ПЗУ, перезагрузить систему и начать работать в системе с новыми конфигурациями.
Недостатки:
Дорогая
Необходимость внешней микросхемы памяти (зачастую стоимость CROM соизмерима, если не выше, со стоимостью ПЛИС) – падает надёжность.
Слабая защищённость проекта заключается в том, что злоумышленник может снять информацию в точке между CROM и FPGA, и на основании снятой информации, получить конфигурацию ПЛИС. Для минимизации этого недостатка используют различные методы, например:
Использование батарейного питания и отказ от конфигурационной памяти (CROM). Информация во внутреннюю RAM записывается при создании устройства, после чего напряжение питания этой памяти не пропадает никогда в процессе эксплуатации (каждый раз при перезагрузке не идёт передача информации с ПЗУ в ПЛИС- злоумышленникам неоткуда будет снимать поток). Недостаток – при повреждении батареи функциональность устройства пропадает.
Использование пары кодер-декодер по тому или иному криптографическому алгоритму, например, AES. Кодер находится в CROM, декодер – в FPGA.
Кроме применения в научной области и универсальных ЭВМ, СуперЭВМ, микросхемы FPGA используются в процессе прототипирования, т.е. в дальнейшем они могут быть созданы на микросхемах с жёсткой логикой функционировании.
ASIC (Application-specific integrated circuit) – интегральная схема, специфицируемая под специфику предметной области. Разрабатывается аналогично другим микросхемам ПЛИС, однако, изготавливается вплоть до фиксированных внутренних подключений на заводе-изготовителе интегральных схем. Полузаказная микросхема.
Завод имеет определённую структуру микросхем ASIC, список подключений которой ему передаёт пользователь, и завод изготавливает интегральную схему с жёсткой логикой функционирования.
Но недостатки ASIC – невозможность изменения и высокая стоимость, которая потом компенсируется при массовом выпуске микросхем.
CPLD и FPGA приведены на рисунках 32 и 33.
Лекция 13.Диаграмма Гайского-Кана (Y-диаграмма)
Рисунок 35 - Диаграмма Гайского-Кана или Y-диаграмма.
Диаграмма Гайского-Кана состоит из 3х ветвей, соединённые в виде Y: поведенческая, структурная и геометрическая.
Поведенческая ветвь рассматривает вопросы проектирования (описания) поведения разрабатываемого устройства. Поведение – это последовательность и взаимосвязь событий по переключению электронных сигналов.
Структурная ветвь предназначена для описания электрической структуры разрабатываемого устройства (от Э1 до Э4).
Геометрическая ветвь описывает внутреннюю геометрию интегральной схемы (расположение функциональных блоков, фотошаблоны)
Перпендикулярно ветвям диаграмма разделяется на 4 плана, изображаемых в виде концентрических окружностей. В точках пересечения этих концентрических окружностей ветвями появляются модули.
Планы:
Наружный план – архитектурный план – предназначен для решения задач построения архитектуры электронного устройства.
Алгоритмический план – решает вопросы построения алгоритмов функционирования.
Функциональный план решает вопросы реализации функций устройства
Логический план – решает вопросы построения логики электрических схем.
Таким образом, рассматривается 15 элементов (5 планов * 3 ветви) диаграммы Гайского-Кана:
Поведенческая ветвь:
Техническое задание
Алгоритмический план
Функциональный план
(регистровые пересылки описывают решаемую задачу в виде множества регистров и взаимоподключений между ними; схема на этом плане описывается на языке RTL)
Булевы уравнения
Дифференциальные уравнения
Структурная ветвь:
Процессорные блоки (например, вычислительное ядро AVR, MARK..)
Алгоритмический план (подсистемы: блоки памяти, телекоммуникационные блоки, вычислительные блоки)
Функциональный план (модули: RAM, CLL)
Вентили (определяют принципы построения результатов проектирования на предыдущих планах)
Переход на минимальные элементы – транзисторы.
3. Геометрическая ветвь.
3.1. Разделы интегральной схемы
3.2. Блоки – показывают, из каких элементов состоят разделы.
3.3. Компоновочный план – решает задачи взаимного расположения элементов
3.4. Ячейки – показывают, как расположены элементы компоновочного плана
3.5. Шаблоны – технологически определяют взаимную послойную геометрию кристалла интегральной схемы
Синтаксис - переход от поведения к структуре. Синтаксис присутствует в тех.задании. На основе его мы можем решить - какой процесс нам нужен, алгоритмы – синтезируем, какие нам подсистемы нужны для использования. Переход от структуры к геометрии – генерация.
Переход вдоль осей от внешних планов к центру диаграммы называется процессом детализации.
В процессе разработки устройства происходят последовательные переходы от одной ветви к другой с постепенным понижением плана разработки, т.е. происходит переход от внешней области диаграммы к её центру. Чёткий спиральный характер таких переходов необязателен.
Получить работоспособную версию микросхемы можно и не доходя до центральных планов. В этом случае, будет получен проект менее оптимальный.
При осуществлении процесса прототипирования, мы последовательно приближаемся к центру диаграммы. При создании первых прототипов используются микросхемы FPGA. При последующем уточнении и оптимизации проекта, по диаграмме Гайского-Кана, мы приближаемся к её центру, который соответствует микросхеме ASIC.
Проект начинается с использования симулятора на FPGA, и заканчивается получением интегральной схемы неизменной логикой функционирования ASIC.
Лекция 14-15.Маршрут проектирования конфигурации ПЛИС (design flow)
Маршрут проектирования представляет из себя граф, показывающий взаимовызов проектных функций. Типовой маршрут проектирования приведён на рисунке 36. На нём выделены следующий объекты и функции:
Cores (ядра) – модули конфигурации, созданные, как правило, третьесторонними разработчиками;
HDL-описание;
Схемотехническое описание;
Готовые проекты.
Рисунок 36 - Типовой маршрут проектирования конфигурации ПЛИС – I.
Блоки функций:
Блок проекта – ввод проекта. В плане реализации этой функции осуществляется построение схемы или описание устройства.
Разработка базы теста. Тесты могут представляться как в графической форме (примитивный уровень), так и в текстовом описании, на языках описания аппаратуры HDL, либо других языках (TCL/TK).
Компилятор. Выполняет функцию генерации диаграммы Гайского-Кана. Вполне возможно, что разработка базы тестов и компиляция могут происходить одновременно, в крупных проектах, например. Но в реальности всё это делает 1 человек.
Функциональное моделирование. Процесс, предназначенный для подтверждения работоспособности введённого устройства (проекта), его соответствие тех.заданию. В случае возникновения ошибок, происходит возврат на тап ввода проекта.
Трассировка. Процесс, осуществляющий размещение конкретных функциональных узлов проекта по элементам ПЛИС. В случае трассировки может возникнуть потребность оптимизации проекта (возврат на функцию ввода проекта).
Временное моделирование. Предназначено для определения временных характеристик проекта. При выполнении этой функции может быть выявлено несоответствие характеристик в требуемом техническом задании, что приводит к возврату на функцию ввода проекта.
Конфигурация ПЛИС (программирование ПЛИС) – запись в микросхему ПЛИС требуемых настроек и точек соединения в матрице.
Эксплуатация (использование)
Рисунок 37 - Типовой маршрут проектирования конфигурации ПЛИС – II.
Рис. 38. Области инструментального ПО процесса проектирования устройств на ПЛИС
Рис. 39. Маршрут проектирования конфигурации ПЛИС при построении программно-управляемых устройств
Рис. 40. Использование IP-блоков