Перейти к содержанию
    

перемножители на ПЛИС

Есть мнение, что перемножители на ПЛИС, построенные на отдельных логических ячейках работают плохо, т.е. то работают, то не работают в зависимости от того как компилятор разведет связи внутри чипа. Поэтому мол надо использовать ПЛИС со встроенными специальными блоками перемножителей, которые есть например в STRATIX у ALTERA. Рабочий диапазон частот 100-150МГц. Что скажут на это уважаемые профессионалы?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хотя я и не дожил до уважения в профессиональном плане :), но выскажусь.

Плисоводство , по моему мнению, можно свести к двум правилам:

1) Синхронность.

В идеале у Вас одна глобальная тактовая с мизерным разбегом и задержкой. И все опрерации, включая и математические, разбиты и выполняются строго по своим тактам.

2) В случае нарушения п.1. описывать устройство исходя из возможностей констрейнов PAR-а.

Если придерживаться этих правил, то все должно быть нормально.

Теперь в частности.

На одном своем модуле (Spartan2) имею разветвленную структуру 8 разрядных умножителей, работает на 60 МГц. Все работает как надо.

Теперь по поводу встраиваемых умножителей.

Вы и сами знаете, что перемножение и сложение это фундамент для ЦОС. Ну и соответственно чем быстрее работают эти модули, тем лучше. Отсюда и мотив встраиваемых перемножителей. Перемножение на комбинаторке это порядка десяток наносекунд(зависит от кристалла), а на "модуле" порядка нескольких нс. Да и с ускоренным переносом в слайсах то же чего то мудрят (чтоб складывать быстрее).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Естесственно, что скорость работы уст-ва будет зависить от больщого количества факторов, одни из них это утилизация микросхемы, оптимизация синтезатора, оптимизация place&route. Поэтому при каждом новой итерации разработки этот параметрт будет меняться. А встроенные перемножители имеют детерминированную задержку, которая не зависит от от остальной части ПЛИС. Поэтому в общем можно сказать, что аппаратные перемножители лучше. А вообше, в некоторых случаях от распределнных перемножителей можно добиться схожих с аппаратными параметров.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня на Virtex-E перемножители 11*11 работают на 80 Мгц с конвеером. Соответственно съедено много площади. Работают стабильно. Если выбираешь кристал, то лучше аппаратный умножитель - и быстрее и площадь не отъедает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть мнение, что перемножители на ПЛИС, построенные на отдельных логических ячейках работают плохо, т.е. то работают, то не работают в зависимости от того как компилятор разведет связи внутри чипа. Поэтому мол надо использовать ПЛИС со встроенными специальными блоками перемножителей, которые есть например в STRATIX у ALTERA. Рабочий диапазон частот 100-150МГц. Что скажут на это уважаемые профессионалы?

 

у меня был небольшой опыт создания умножителей для Virtex-E, всё работало без особых проблем - конвейерный умножитель 12x12 около 80-90 МГц (если не ошибаюсь - давно это было), кроме того у Xilinx можно воспользоваться соответствующим IP core, при этом для того же Virtex-E 12x12 получалось около 130 Мгц.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если функция описана правильно, то она работает всегда, т.е. выдает правильный результат. Другое дело добиться заданной скорости выполнения, - это уже зависит от владения темой и управления компилятором, а также от возможностей последнего.

Для примера: 17бит * 16бит знаковый перемножитель с двумя внутренними ступенями конвейера на алюминиевом Апексе (где нет встроенных блоков умножения) имеет частоту порядка 80MГц

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если есть возможность организации конвеера - попробуйте это. Суть в том, что после некоторого количества математических операций ставятся защелки. Таким образом один большой блок с большим количеством уровней логики разбивается на несколько, с меньшим количеством уровней. Недостаток - результат появляется не сразу, а через один или несколько тактов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У нас в изделиях (делаем и продеам уже года четыри :cheers: )

в одном изделии в 600-ом VirtexeE 26 параллелно-последователных умножителей 16 на 16 бит и плюс один такой же 24 на 24 бита ну там еще всякая логика типа - интерфеса 32-х битного процессора, HDB-атели, E1 фреймер и т.д. и т.п.

в другом изделии в 50-ом VirtexeE 4 параллелно-последователных умножителей 16 на 16 бит и таже разношерстная шелуха.

Единственно что, умножители работают на частоте 26 МГц (там завязки к другим узлам схемы, этой частоты для выполнения фильтрами своей задачи вполне хватает) но работают стабильно.

Единственный редкий гемор :( это плохие кварцевые генераторы иногда они вносять в схему сбои, меняещь его и все :) , схема начинаеть работать стабильно. Обычно берем фирмы Golledge.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А сколько "потребителей" висят на выходе этого генератора? И какова длина линий?

У моего коллеги косяк выплыл: несколько ПЛИС грузятся с одного выхода. CCLK один на всех, его длина сантиметров 20. Самая последняя ПЛИС в цепочке грузиться не хотела, видимо при позванивании на этой линии один фронт воспринимался за 2. Вылечилось уменьшением SLEW RATE на интерфейсной ПЛИС. :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...