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

Практический эксперимент

Для практической реализации идеи была взята подручная плата, с ПЛИС Spartan-3 400К (XC3S400-PQ208-4I) от одного из проектов. В обозначенном кристалле имеются следующие ресурсы:

Блочная память 18кБит

16

Умножители 18х18 бит

16

DCM

4

LUT

3584

Триггеры

7168

Для того, чтобы использовать все это хозяйство был создан проект fpga_burn, структурная схема которого получилась примерно такая:

Естественно проект я создал не с помощью схемотехнического редактора (подумать только, нарисовать 3584 LUT и в два раза больше триггеров!). Все получилось довольно элегантно, с помощью конструкций generate языка VHDL.

Параметры проекта (число триггеров, блоков памяти, умножителей) задаются в VHDL пакете global.vhd. Если кто по этому проекту измерит потребление ПЛИС на своей плате – буду весьма признателен, результаты размещу здесь, с ссылкой на вас.

Вы наверняка слышали расхожую фразу, что заполнять ПЛИС более, чем на 80% от емкости кристалла не есть гуд. Но для настоящего, сурового Чиповода не проблема забить кристалл на все 100%.

Вы спросите, а как же времянка? С логикой все было отлично. Результирующая частота глобального тактового сигнала (на котором висели луты и триггеры) составила около 400МГц (я почти в это поверил)! Память и умножители, расбросанные как корабли на карте морского боя конечно в серьезную времянку не укладывались, но тем не менее даже для них констрейны выполнялись почти до 200МГц.

Схема для измерения тока была очень не хитрая.

Итак результаты испытаний представлены в таблице ниже.

Fclk, МГц

40

50

100

150

200

250

300

320

ICC_INT, A

0,2

0,24

0,41

0,63

0,75

0,73

0,7

0,64

Как мы видим потребляемый ток ядра (Icc INT) линейно возрастает до частоты примерно 200МГц, а дальше констрейны перестают выполняться, реальная частота переключения ресурсов ПЛИС падает, падает и потребляемый ток. Ради интереса, я немного оптимизировал проект и добился выполнения констрейнов на частоте 250МГц, потребляемый ток составил 1.2А, что абсолютно точно укладывается в линейный график.

Расчет потребляемого тока плис. Xilinx Power Estimator (xpe)

Xilinx до сих пор поддерживает свою утилиту Xilinx Power Estimator, она представляет собой Excell скрипт, в котором нужно вбивать ручками объем занимаемого проекта (по пунктам: логика, регистры, блочная память и т.д), тактовую частоту проекта и коэффициент заполнения (toggle rate), после чего автоматом рассчитывается мощность. Результат можно смотреть в окошке.

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

Тоже интересная информация. Как мы видим больше всего потребляет логика, и это не удивительно, так как это основной ресурс ПЛИС. Блочная память на удивление потребляет очень мало, на уровне статического потребления (quiescent). В проекте использовалась однопортовая память, настроенная на постоянную запись. Двухпортовая память наверное прибавила бы в потреблени.