|
|
  |
Реализация умножителей на LE в Cyclone II |
|
|
|
Feb 1 2008, 08:06
|
Участник

Группа: Участник
Сообщений: 36
Регистрация: 24-01-08
Пользователь №: 34 374

|
Столкнулся с такой странностью: в некоторых случаях умножитель на LE дает большую Fmax, чем аналогичный умножитель с меньшей разрядностью! В частности это справедливо для Cyclone II-6 с умножителями 30х30(113МГц) и 28х28(94МГц). Замечено, что при этом существенно сокращается критический путь, но за счет чего? Пока мне не удалось найти никакой информации в AppNotes по этому поводу. Можеть кто-нибудь подскажет в чем дело?
|
|
|
|
|
Feb 8 2008, 06:21
|
Участник

Группа: Участник
Сообщений: 36
Регистрация: 24-01-08
Пользователь №: 34 374

|
Цитата(DmitryR @ Feb 1 2008, 11:56)  Разница в разрядности невелика, скорее всего - разница в раскладке. Поясните пожалуйста что Вы понимаете под раскладкой?
|
|
|
|
|
Feb 8 2008, 10:14
|
Участник

Группа: Участник
Сообщений: 36
Регистрация: 24-01-08
Пользователь №: 34 374

|
Цитата(DmitryR @ Feb 8 2008, 12:41)  Взаимное расположение элементов на кристалле. Возможно, но не похоже, чтобы это было просто результатом "удачного размещения". Описанная ситуация повторяется для нескольких серий ПЛИС, различных емкостей, градаций скорости и т.п. Такое впечатление, что в архитектуре или алгоритме синтеза заложен какой-то фокус, позволяющий существенно сократить критический путь при достижении некоторой разрязрядности умножителя.
|
|
|
|
|
Feb 12 2008, 07:00
|
Участник

Группа: Участник
Сообщений: 36
Регистрация: 24-01-08
Пользователь №: 34 374

|
Цитата(Artem_Petrik @ Feb 9 2008, 20:21)  Только что взял пустой проект и мегавизардом создал умножитель на LE, который сделал top level entity. результаты Longest tpd: 28*28 - 29.139ns 30*30 - 30.976ns оба unsigned, без конвеера. кристалл EP2C5F256C6 Quartus II 6.1
Может причина в другой части проекта? Прошу прощения, я не указал, что на входе умножителя стоят регистры (описаны на Verilog ), и на выходе также регистр (pipeline =1). Если интересно, прикрепляю файлы описаний. Полученные мною результаты: family CYCLONEII device EP2C35F484C6 Width: 22 x 22 LE Usage: 607 Fmax: 110.05 MHz ( period = 9.087 ns ) Width: 24 x 24 LE Usage: 714 Fmax: 105.88 MHz ( period = 9.445 ns ) Width: 26 x 26 LE Usage: 833 Fmax: 99.72 MHz ( period = 10.028 ns ) Width: 28 x 28 LE Usage: 948 Fmax: 94.75 MHz ( period = 10.554 ns ) Width: 30 x 30 LE Usage: 1,074 Fmax: 113.25 MHz ( period = 8.830 ns )
Прикрепленные файлы
mult.rar ( 1.73 килобайт )
Кол-во скачиваний: 33
|
|
|
|
|
Feb 14 2008, 20:03
|
Местный
  
Группа: Свой
Сообщений: 443
Регистрация: 22-07-06
Из: Украина, г. Харьков
Пользователь №: 19 006

|
Да, действительно, у меня примерно такая же картина, правда цифры немного другие. Смотрел структуру умножителя в RTL viewer-е, принципиальных различий не обнаружил. Однако должен отметить, что регистр Цитата и на выходе также регистр (pipeline =1) стоит совсем не на выходе, а примерно в середине структуры. Это и логично, самый длинный путь нужно разбить пополам. Так вот, видимо при 30 битном умножении этот регистр стоит ближе к середине, чем при 28 битном. Издержки универсальности описания видимо. Попробовал такой финт: умножитель описал как 30-битный, но младшие 2 бита установил в 0. Лишняя логика соптимизировалась, и получилось LE как в 28-битном, а скорость осталась как в 30-битном. Единственное, что нельзя гарантировать что эффективность такой "оптимизации" сохранится на последующих версиях квартуса, точнее мегафункции, хотя и маловероятно, что ее кто-то будет переписывать
|
|
|
|
|
Feb 17 2008, 15:05
|
Участник

Группа: Участник
Сообщений: 36
Регистрация: 24-01-08
Пользователь №: 34 374

|
Цитата(Artem_Petrik @ Feb 14 2008, 23:03)  Однако должен отметить, что регистр pipeline=1 стоит совсем не на выходе, а примерно в середине структуры. Это и логично, самый длинный путь нужно разбить пополам. Так вот, видимо при 30 битном умножении этот регистр стоит ближе к середине, чем при 28 битном. Издержки универсальности описания видимо. Огромное спасибо за подсказку!!! Получается, что я неправильно описал устройство, но за то получились интересные выводы... :-)
|
|
|
|
|
Feb 19 2008, 17:18
|
Участник

Группа: Участник
Сообщений: 36
Регистрация: 24-01-08
Пользователь №: 34 374

|
Похоже, что Artem_Petrik все же прав, без pipeline никаких скачков нет, все линейно: Width: 24 x 24 LE Usage: 756 Fmax: 62.96 MHz ( period = 15.882 ns ) Width: 28 x 28 LE Usage: 996 Fmax: 58.38 MHz ( period = 17.130 ns ) Width: 32 x 32 LE Usage: 1,265 Fmax: 53.01 MHz ( period = 18.866 ns ) Width: 36 x 36 LE Usage: 1,569 Fmax: 44.16 MHz ( period = 22.644 ns )
PS Virtal Pins тоже добавил, спасибо.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|