- •Оглавление
- •Часть 1
- •Введение
- •Современные плис фирмы xilinx:серия virtex
- •Введение
- •Краткая классификация современных микросхем фирмы xilinx
- •Плис fpga
- •Отличительными системными особенностями являются:
- •Процесс конфигурации
- •Потребление энергии
- •Корпуса933
- •Серия Virtex
- •Серия virtex
- •Семейство Virtex-II
- •Семейство Virtex-II Pro
- •Семейство Virtex-4
- •Семейство Virtex-5
- •Серия Spartan
- •Семейство SpartanXl
- •Семейство Spartan-II
- •Семейство Spartan-iie
- •Семейство Spartan-3/3l
- •Плис фирмы Xilinx: семейство SpartanTm-3
- •Обзор архитектурных особенностей
- •Блоки ввода/вывода (бвв)
- •Конфигурируемые Логические Блоки (клб)
- •Блочная память
- •Блоки умножителей
- •Цифровые блоки управления синхронизацией
- •Линии связи
- •Конфигурирование в устройстве
- •Архитектура плис Spartan-6
- •Slice Spartan-6
- •Блочная память. (Block ram)
- •Потребляемая мощность плис. Эксперимент.
- •Практический эксперимент
- •Расчет потребляемого тока плис. Xilinx Power Estimator (xpe)
- •Xilinx xPower
- •Результат
- •Xilinx Documentation Navigator
Блочная память. (Block ram)
Тут особых изменений нет, за исключением того, что ее, конечно, стало больше.
|
Spartan-6 |
Spartan-3 |
Spartan-3A DSP |
Число блоков |
180 |
104 |
126 |
Размер блока |
18 Кбит |
18 Кбит |
18 Кбит |
Общий объем |
4824 КБит |
1872КБит |
2268кБит |
Fmax |
320МГц |
250МГц |
320МГц |
Аппаратные блоки умножения
Блоки DSP-48, которые появились в Spartan-3A DSP практически не претерпели изменений, но существенно увеличилась их максимальная тактовая частота. Они по-прежнему содержат два аппаратных умножителя 18х18бит и 48-битный аккумулятор. На их архитектуру хорошо ложатся КИХ фильтры.
|
Spartan-6 |
Spartan-3 |
Spartan-3A DSP |
Тип |
DSP-48A1 |
18×18 MULT |
DSP-48A |
Fmax |
390МГц |
250МГц |
287МГц |
Число |
180 |
104 |
124 |
Контроллер памяти (Memory Controller Block)
Очень полезное нововведение, теперь ПЛИСы Spartan-6 содержат аппартные контроллеры, позволяющие подключать внешнюю память DDR, DDR-2, DDR-3, LPDDR (Low power DDR). Так что реализовать SDRAM контроллер можно, теперь с помощью MIG Generator за несколько шагов. Почему-то в Virtex-6 данный контроллер отсутствует в принципе.
PCI Express Core
Тоже новомодное новшество от Xilinx. Все ПЛИС Spartan-6 LXT содержат 1 аппаратное ядро PCI Express v.1.1, которое позволяет организовать интерконнект не только с компьютером, но и между двумя ПЛИС. В серии LX такого кора нет.
Гигабитные приемопередатчики. (Gigabit Transceiver)
Одна из сильных сторон ПЛИС – возможность организации скоростного обмена данными, для этого и предназначены данные трансиверы. Серия Spartan-6 LXT содержит от 2 до 8 таких приемопередатчиков. Каждый из которых позволяет организовать передачу данных по последовательному дифференциальному интерфейсу со скоростью до 3.125Гбит/с. Такие штуки появились у Xilinx еще в серии Virtex-II Pro, теперь вот Spartan дорос.
Блоки ввода-вывода.
В Spartan-6 появились сериалазеры/десериалайзеры (IOSERDES) с распараллеливанием до 4:1, каскадируется до 8:1.
MicroBlaze для Spartan
Программный процессор MicroBlaze по-прежнему активно поддерживается Xilinx. Регулярно обновляются версии IP-ядер, среда XPS-EDK становится все более и более навороченной. Новостью стало то, что Xilinx скооперировалось с ARM по части интеграции ARM процессоров в свои ПЛИСы. И уже есть результаты: Xilinx начала активно продвигать ARM-овскую шину AXI и пересаживать всех пользователей MicroBlaze на эту шину. В ISE v13.1 шины OPB уже нет, PLB умирает, зато сплошное засилье AXI. А еще нам обещают новое семейство Zyng-7000, в котором будет каленым железом вырезано два аппаратных ядра ARM со всей их периферией и рассыпана логика вокруг.
Потребляемая мощность плис. Эксперимент.
Провел небольшой технический эксперимент, связанный с измерением потребляемой мощности ПЛИС и решил поделиться его результатами. Цели эксперимента были следующие:
1) Сравнить потребляемый ток ПЛИС с расчетной цифрой, получаемой в среде разработки (ISE – для Xilinx, Quartus – для Altera).
2) Оценить зависимость потребления мощности от частоты проекта
Как известно потребляемая мощность современных микросхем определяется в основном динамическими характеристиками. Поскольку энергия тратится при переключении из одного логического состояния в другое и уходит, в основном, на перезарядку паразитных емкостей.
Расчет тока потребляемого ПЛИС необходим для проектирования схемотехники устройств с их применением. От потребляемой мощности зависит выбор микросхемы источника питания, расчет теплоотвода для нее, цепей обвязки. Сильно завышенные данные приведут к нерациональному увеличению занимаемой площади на печатной плате, в то время как недостаточный выходной ток приведет к еще худшим результатам – возможны просадки питающего напряжения, которые вызовут сбои. Поэтому разработчики придерживаются обычно правила брать источники питания с большим запасом. Но одно дело, когда речь идет о токе в 1-2 ампер, в этом случае можно смело брать 2. И совсем другое, когда потребляемый ток может быть 10-20 ампер. Приходится гадать: либо 10, либо 20. А как хорошо, когда все можно рассчитать заранее.
Производители ПЛИС обычно не указывают в даташитах потребляемую мощность своих микросхем. Их можно понять, при полной нагрузке и высокой частоте проекта, ПЛИС кушают очень много, в статике очень мало. Указать максимальное – все шарахнутся, минимальное – будут плеваться, среднее – закидают тапками. Для расчета потребляемой мощности ПЛИС наши основные плисофермы предлагают свои программы.
В свою очередь производители микросхем источников питания помогают разработчикам тем, что выпускают микросхемы специально рассчитанные для питания ПЛИС. Из апликэйшен нотес для данных микросхем можно почерпнуть и сведения о потребляемой мощности ПЛИС. Например фирма intersil сделала такие guide для Xilinx,Altera,Actel. Например, вот такие данные потребления Spartan-3 приводит Intersil, по вышеупомянутой ссылке на xilinx.
В своих рассчетах я пользовался этими гайдами, проблем не было, но к сожалению, на сегодняшний день они совсем устарели. Кое-что можно почерпнуть из конструктора для подбора микросхем питания у фирмы National. Если кто знает другие источники – не сочтите за спам, отпишите в комментариях.
Для оценки потребляемой мощности ПЛИС была сгенерирована нехитрая идея – забить по максимуму (желательно добиться 100% заполнения) кристалл ПЛИС и заставить проект работать на максимальной тактовой частоте. Чтобы при этом не уронить тактовой частоты, неплохо иметь представление о внутренней структуре, о чем я писал в своей предыдущей статье, где рассказывал об архитектуре ПЛИСSpartan-6, попутно сравнивая со Spartan-3.
Итак, если мы посмотрим на структуру Slice для ПЛИС (конкретное семейство не важно), мы увидим что внутри слайса имеется несколько таблиц LUT, выход, которых подключен к триггеру, для хранения результата. Схема забивки кристалла становится очевидной – я соединил выходы LUT со входом D триггера, выход Q, которого подключил ко входу следующего LUT. Для того, чтобы заставить LUT переключаться из одного логического состояния в другое, можно запрограммировать их как инверторы входного сигнала. При этом вход первого LUT надо соединить с выходом первого регистра, в таком случае мы получим автоматическое переключение из одного состояния в другое. Таким образом мы получим цепочку из лутов и регистров и заставим каждый из ее элементов переключаться из одного состояния в другое по каждому тактовому сигналу.
Кроме слайсов в ПЛИС имеются и другие ресуры: блочная память, умножители и т.д, их мы тоже задействуем по максимуму.