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

Помогите оптимизировать схему

Доброго времени суток!

 

Хочу выжать максимум из прикрепленной ниже схемы, к сожалению, обратная связь не позволяет произвести конвейеризацию. Может есть какой-то способ (и даже если есть, будет ли от этого толк) на этапе суммирования параллельно определить какая из сумм будет больше. Конечно, в таком случае придется жертвовать ресурсами ПЛИС, но конечная цель - поднять планку максимальной тактовой частоты, на которой будет способна работать эта схема. А пока удалось достичь 240 МГц на Virtex 5.

post-17409-1268915292_thumb.jpg

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


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

А исходного кода нет?

 

Что мешает поставить регистры после сумматоров?

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


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

Что мешает поставить регистры после сумматоров?

немного добавлю и поставить мультиплексор на выходе этих регистров?

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


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

А исходного кода нет?

 

Что мешает поставить регистры после сумматоров?

 

Код есть конечно, на VHDL, ну он элементарный в принципе.

 

Регистры после сумматоров мешает поставить обратная связь. Сумма на выходе используется для вычисления следующей суммы уже в следующем такте.

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


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

Регистры после сумматоров мешает поставить обратная связь.

это вам кажется что мешает %) регистры на выходы сумматоров, мультиплексор с выхода регистров в вашу ОС. С учетом того что в хилом слайсе люты стоят до сумматоров все хорошо ляжет

 

UPD. Это кстати ретайминг в чистом виде %)

UPD2. И единственный тормоз в этой схеме это будет формирование сигнала мультиплексирования и его доведение до люта.

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


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

Доброго времени суток!

 

Хочу выжать максимум из прикрепленной ниже схемы, к сожалению, обратная связь не позволяет произвести конвейеризацию. Может есть какой-то способ (и даже если есть, будет ли от этого толк) на этапе суммирования параллельно определить какая из сумм будет больше. Конечно, в таком случае придется жертвовать ресурсами ПЛИС, но конечная цель - поднять планку максимальной тактовой частоты, на которой будет способна работать эта схема. А пока удалось достичь 240 МГц на Virtex 5.

ваши рассуждения - не правильные...

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

а есть еще и микроархитектура. это когда вместо одного регистра делается набор регистров. А потом по некоторым признакам определяется из какой ветви надо брать данные. У Танненбаума есть книга об архитектуре компьютеров...

Удачи!

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


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

а есть еще и микроархитектура. это когда вместо одного регистра делается набор регистров. А потом по некоторым признакам определяется из какой ветви надо брать данные. У Танненбаума есть книга об архитектуре компьютеров...

Удачи!

 

А если я скажу, что таких элементарных блоков в архитектуре несколько десятков, и выход, скажем первого, используется на входе 24-го? Все они естественно выстроены параллельно. Это ж сколько мне наборов регистров придется поставить, чтобы потом определить из какой ветви надо брать данные?

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


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

Положите сумматоры в DSP slice . Как раз должен занят всего одну штуку (если разрядность у вас не более 18 на входе)

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


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

Положите сумматоры в DSP slice . Как раз должен занят всего одну штуку (если разрядность у вас не более 18 на входе)

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

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


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

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

это грамотный подход. но раз вы хотите скорости, то нужно пользоваться ресурсами кристалла , т.е аппаратными умножителями.

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

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


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

..

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

 

 

..а как в для xilinx указать атрибут для модуля , чтобы синтезатор использовал аппаратные умножители ?

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


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

Это ж сколько мне наборов регистров придется поставить, чтобы потом определить из какой ветви надо брать данные?

Применяйте файловые регистры...

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


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

..а как в для xilinx указать атрибут для модуля , чтобы синтезатор использовал аппаратные умножители ?

 

XST User Guide , раздел USE DSP48 (для версии 10.1 - страница 430)

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


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

это вам кажется что мешает %) регистры на выходы сумматоров, мультиплексор с выхода регистров в вашу ОС. С учетом того что в хилом слайсе люты стоят до сумматоров все хорошо ляжет

 

UPD. Это кстати ретайминг в чистом виде %)

UPD2. И единственный тормоз в этой схеме это будет формирование сигнала мультиплексирования и его доведение до люта.

 

Супер! Удалось повысить производительность на 35 МГц. Спасибо!

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


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

Супер! Удалось повысить производительность на 35 МГц. Спасибо!

 

А, все-таки, если не секрет, можно ваш код "до" и "после"?

 

 

А то на целых 35 Мгц у меня самого поднять частоту не получилось (получилось лишь на 18) :)

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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