ПЛИС класса FPGA представляет собой матрицу маловходовых (от двух до пяти входов) логических элементов, триггеров, отрезков линий связи, соединяемых перемычками из полевых транзисторов. Судя по английскому названию - Field Programmable Gate Array (FPGA) - ПЛИС программируются изменением уровня электрического поля в затворах этих транзисторов. Затворы всех "программирующих" полевых транзисторов подключены к выходам триггеров одного длинного сдвигового регистра, который заполняется при программировании ПЛИС.
Прошивка обычно хранится в ПЗУ, стоящем рядом с ПЛИС и после включения питания или по сигналу сброса она автоматически переписывается в программирующий сдвиговый регистр ПЛИС. Этот процесс называется конфигурированием ПЛИС.
На сегодняшний день перспективными сериями микросхем архитектуры FPGA фирмы Xilinx являются:
- серия ПЛИС FPGA Virtex;
- серия ПЛИС FPGA Spartan;
Остановим свой выбор на семействе микросхем Spartan-II (семейства Spartan и Spartan XL в настоящее время выпускаются, и будут еще выпускаться в течение длительного времени, но они не рекомендованы для применения в новых проектах). Стоимость ПЛИС Spartan-II эквивалентна стоимости заказных специализированных интегральных схем в партиях от 100 000 штук и в 3-4 раза меньше, чем стоимость ПЛИС семейства Virtex при розничных объёмах. Такое снижение цены в сравнении с семейством Virtex достигнуто благодаря использованию новой технологии производства кремния и уменьшению номенклатуры корпусов. Набор выполняемых функций аналогичен семейству Virtex, но отсутствует термодиод.
ПЛИС семейства Spartan-II могут применяться в проектах как альтернатива специализированным интегральным схемам ёмкостью до 200 000 вентилей и системным быстродействием до 200 МГц. Напряжение питания ядра кристалла семейства Spartan-II составляет 2,5 В.
Сравнительные параметры микросхем серии представлены в таблице.
Таблица 3.4. - Основные характеристики семейства Spartan-II.
Исходя из требований логической емкости кристалла (результат логического синтеза проекта) объема необходимой блочной памяти (см. раздел 3) оптимальным выбором (с запасом) будет микросхема XC2S100.
3.11 Краткое описание архитектуры микросхем серии Spartan-II
На площади кристалла ПЛИС размещены матрица конфигурируемых логических блоков (КЛБ или CLB), матрица отрезков линий межсоединений, покрытых матрицами из полевых транзисторов - перемычек. По краям кристалла размешены блоки настраиваемых ОЗУ - BlockRAM. По периметру кристалла размещены блоки ввода-вывода сигналов (IOBs), а также периферийный канал линий межсоединений, называемый Versaring, предназначеный для соединения КЛБ с произвольным IOB линией связи с малой задержкой. На рисунке 3.20 приведена структура архитектуры Spartan-II
Рисунок 3.20 - Структура архитектуры Spartan-II
3.11.1 Быстродействие
Проекты могут работать на системных частотах до 200 МГц и частотах внутри кристалла, превышающих 350 МГц. Блоки ввода-вывода Spartan-II полностью соответствуют спецификациям Bluetooth.
3.11.2 Блоки ввода-вывода
Основным отличительным свойством БВВ семейства Spartan-II является поддержка широкого спектра стандартов сигналов ввода-вывода, что позволяет сопрягать Spartan-II с большинством быстродействующих элементов памяти и шинных интерфейсов. На рисунке 3.21 представлена структурная схема БВВ. В таблице 3.5 перечислены поддерживаемые стандарты.
Таблица 3.5 - Поддерживаемые стандарты В/В
Некоторые из указанных выше стандартов требуют подключения напряжения VCCO и/или VREF. Эти внешние напряжения подключаются к контактам микросхемы, которые функционируют группами, называемыми банками.
Как показано на рисунке 3.21, каждая кромка микросхемы разделена на два банка. Каждый банк имеет несколько контактов VCCO , но все они должны быть подключены к одному и тому же напряжению. Это напряжение определяется выбранным для данного банка стандартом выходных сигналов.
Стандарты для выходных сигналов конкретного банка могут быть различными только в том случае, если они используют одинаковое значение напряжения VCCO. Совместимые стандарты показаны в таблице 3.6.
Рисунок 3.21 - Структурная схема блока ввода-вывода
Некоторые стандарты требуют подачи соответствующих пороговых напряжений VREF на входные каскады. При этом определенные БВВ автоматически конфигурируются как входы, соответствующие напряжению VREF. Приблизительно один контакт из шести в каждом банке может выполнять эту роль.
Таблица 3.6 - Совместимые стандарты ввода вывода
Рисунок 3.22 - Банки ввода-вывода Spartan-II
3.11.3 Конфигурируемый логический блок
Базовым элементом КЛБ является логическая ячейка - ЛЯ (Logic Cell - LC). ЛЯ состоит из 4-х входового функционального генератора, логики ускоренного переноса и запоминающего элемента. Выход каждого функционального генератора каждой логической ячейки подсоединен к выходу КЛБ и к D-входу триггера. Каждый КЛБ серии Spartan-II содержит четыре логические ячейки, организованные в виде двух одинаковых секций (Slice), Одна секция показана на рисунке 3.23.
В дополнение к четырем базовым логическим ячейкам, КЛБ серии Spartan-II содержит логику, которая позволяет комбинировать ресурсы функциональных генераторов для реализации функций от пяти или шести переменных. Таким образом, при оценке числа эквивалентных системных вентилей для микросхем семейства Spartan-II, каждый КЛБ приравнивается к 4,5 ЛЯ.
Рисунок 3.23 - Одна секция логической ячейки КЛБ серии Spartan-II
3.11.4 Блочная память
В FPGA Spartan-II встроена особая блочная память (Block SelectRAM) большой ёмкости. Она создана в дополнение к распределенной памяти небольшой ёмкости (SelectRAM), реализованной на таблицах преобразования (Look Up Table RAM - LUTRAM).
Блоки памяти Block Select RAM организованы в виде столбцов. Все кристаллы Spartan-II содержат два таких столбца, по одному вдоль каждой вертикальной кромки. Эти колонки увеличивают полный размер кристалла. Каждый блок памяти равен по высоте четырем КЛБ, таким образом, микросхема Spartan-II, имеющая 8 КЛБ по высоте, содержит 2 блока памяти на колонку и 4 блока памяти в целом.
Каждый блок памяти, как показано на рисунке 4.5, это полностью синхронная двухпортовая RAM с независимым управлением для каждого порта. Размерность шины данных для обеих портов может быть сконфигурирована независимо, что позволяет создавать преобразователи размерности шины. В кристаллах Spartan-II созданы специальные трассировочные ресурсы для связи блочной памяти с блоками CLB и другими блоками блочной памяти.
Рисунок 3.24 - Блок памяти
3.11.5 Программируемая трассировочная матрица
Быстродействие проекта, рассчитанного для наихудшего случая, ограничивает величина задержки для наиболее длинной трассы. Поэтому архитектура трассировочных ресурсов и программы размещения и трассировки созданы с учетом использования их в едином процессе оптимизации. Этот совместный процесс оптимизации минимизирует наиболее длинные пути и, таким образом, создает проект с наилучшей системной производительностью.
3.11.6 Распределение сигналов синхронизации
Spartan-II имеет высокоскоростные, с малыми искажениями трассировочные ресурсы для распределения сигналов синхронизации на всем пространстве микросхемы. Типичное распределение цепей синхронизации показано на рисунке 3.25.
В микросхему встроено четыре глобальных буфера, два - в середине верхней части микросхемы, два - в середине нижней части. Эти буферы через первичные глобальные сети могут подводить сигналы синхронизации на любой тактовый вход.
Для каждого глобального буфера имеется соответствующий, примыкающий к нему контакт микросхемы. Сигнал на вход глобального буфера может подаваться как с этих контактов, так и от сигналов, трассируемых ресурсами общего назначения.
Рисунок 3.25 - Глобальные цепи синхронизации
3.12 Конфигурирование кристалла в устройстве
Конфигурирование - это процесс загрузки битовой последовательности, полученной с помощью программного обеспечения проектирования, во внутреннюю конфигурационную память кристаллов FPGA. Spartan-II может загружаться как побитно (ведущий/подчиненный последовательные режимы и JTAG), так и побайтно (подчиненный параллельный режим).
Конфигурационные данные при выключенном питании должны храниться во внешнем устройстве статической памяти. Для этого применяются ПЗУ Xilinx серии XC1700 (однократно программируемые) или XC1800 (перепрограммируемые в системе). Очевидно, для нашего проекта необходимо использовать перепрограммируемое ПЗУ. Для ПЛИС XC2S100 необходима микросхема - XC18V01 (объем конфигурационной последовательности 1 000 000 бит) .
Рисунок 3.26 - Ведущий режим конфигурации
В свою очередь конфигурационный файл, предназначенный для загрузки в ПЛИС, загружается в ПЗУ посредством стандартного канала JTAG.
В качестве режима конфигурирования выберем ведущий последовательный режим, так как он требует наименьшего количества соединений ПЛИС с микросхемой ПЗУ. Комбинация кодов на специальных входных контактах (M2, M1, M0) позволяет задать режим конфигурирования.
В нашем случае контакты микросхемы M2, M1, M0 = 0.
В ведущем последовательном режиме загрузкой управляет микросхема FPGA и её контакт CCLK является выходом, то есть источником синхросигнала для внешней памяти, где хранится конфигурационный файл. За один такт CCLK загружается 1 бит конфигурационных данных.
На рисунке 3.26 изображена схема ведущего режима последовательной конфигурации.
3.13 Конфигурация ввода-вывода
Блоки ввода-вывода Spartan-II полностью соответствуют спецификациям технологии Bluetooth. Для настройки выводов микросхемы для режима работы Bluetooth на контакты Vcco необходимо подать напряжение 3.3 В (таблица 4.2). Планируется использовать микросхему в корпусе PQ208, в которой все контакты Vcco соединены вместе. Следовательно, ко всем из них должно быть подключено одно и тоже напряжение.
Под Bluetooth контролер выделим банки ввода-вывода - 4,3,2,1. Под интерфейс связи с радиомодемом - банк 5. Назначение выводов микросхем содержится в таблицах на соответствующий корпус .
3.14 Питание микросхемы
Напряжение питания ядра кристалла семейства Spartan-II составляет 2,5 В. Напряжение питания контактов Vcco - 3.3 В. Напряжение питания микросхемы ПЗУ - 3.3 В. Таким образом на интерфейсной плате нам необходимо значения напряжения.
ПЛИС XC2S100 будет потреблять не более 150 мА (2.5 В) и еще меньше по напряжению 3.3 В (Vcco).
4. Моделирование
Разработка любого радиоэлектронного устройства сопровождается физическим или математическим моделированием. Целью моделирования является проверка принятых системотехнических и схемотехнических решений при проектировании.
4.1 Модель системы передачи информации с квадратурным формированием и обработкой ЧМн-сигнала
В разделе 2.2 ВКР описана структурная схема приемо-передающего модуля, в которой основным элементом является квадратурный модулятор/демодулятор. Смоделируем процесс формирования радиосигналов с частотной манипуляцией путем амплитудной модуляции в квадратурных каналах и соответствующей демодуляцией. Исследуем влияния различных параметров передатчика, приемника и канала связи (статистических характеристик помех) на помехоустойчивость моделируемой системы связи.
Поставленную задачу решим с помощью среды визуального программирования Simulink . Данный пакет является приложением к пакету MATLAB. При моделировании с использованием Simulink реализуется принцип визуального программирования, в соответствии с которым, пользователь на экране из библиотеки стандартных блоков создает модель устройства и осуществляет расчеты. Работая с программой Simulink, можно создавать модели линейных и нелинейных, аналоговых, дискретных и смешанных (аналогово-дискретных) цепей и систем, изменять параметры блоков непосредственно во время процесса моделирования и сразу же наблюдать реакцию моделируемой системы.
4.1.1 Квадратурная реализация ЧМн модулятора
При частотной манипуляции каждому возможному значению передаваемого символа сопоставляется своя частота. В течение каждого символьного интервала передается гармоническое колебание с частотой, соответствующей текущему символу. В нашем случае используется бинарная частотная манипуляция, где символу 1 - соответствует частота 2402 МГц, символу 0 - 2403 МГц. Мгновенная частота определяется как:
, (4.1)
где - несущее колебание,
,
- круговая частота рад/с.
Полная фаза высокочастотного колебания находится путем интегрирования :
, (4.2)
Здесь - произвольная постоянная интегрирования.
Наконец, сам ЧМн сигнал имеет следующий вид:
. (4.3)
С другой стороны, любой реальный полосовой сигнал можно представить в комплексной форме как :
, (4.4)
где - комплексная огибающая:
. (4.5)
В формуле (7.4) - это полосовое сообщение, или данные в комплексной форме, а - несущая в комплексной форме. Произведение этих двух величин представляет операцию модулирования, а , действительная часть произведения, - это переданный сигнал. Следовательно, можно выразить следующим образом:
. (4.6)
Таким образом, нам необходимо установить закон изменения синфазной и квадратурной составляющей полосового сообщения для бинарной ЧМн.
Представим модулирующую функцию в форме комплексной огибающей: