Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ekzamen_Vnukov_POI / Lektsii_POI_2013.docx
Скачиваний:
131
Добавлен:
10.02.2015
Размер:
2.91 Mб
Скачать

Блочная память. (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 надо соединить с выходом первого регистра, в таком случае мы получим автоматическое переключение из одного состояния в другое. Таким образом мы получим цепочку из лутов и регистров и заставим каждый из ее элементов переключаться из одного состояния в другое по каждому тактовому сигналу.

Кроме слайсов в ПЛИС имеются и другие ресуры: блочная память, умножители и т.д, их мы тоже задействуем по максимуму.