реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Как заставить Макс-10 использовать перемножители?
escmar
сообщение Mar 17 2017, 20:38
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 87
Регистрация: 12-01-12
Из: Мурманск
Пользователь №: 69 307



Здравствуйте
Не смог разобраться сам.
Использую "Квартус-15"
Есть конструкция на Верилоге типа такой:

always....

a[10:0] <= b[9:0] * c[9:0];

Компилирую для "Циклона-5", он подстёгивает аппаратный перемножитель.
Когда переделал проект на "Макс-10", Квартус упорно поедает логические ячейки, а перемножители не трогает.
Поскольку таких умножений у меня много, то становится совсем грустно.
Понимаю, что структуры ячеек "Циклона-5" и "Макса-10" отличаются, но
если подстёгиваю альтеровскую IP функцию то всё как надо делается.

Как заставить Квартус использовать аппаратные перемножители?
Go to the top of the page
 
+Quote Post
Alex11
сообщение Mar 17 2017, 22:12
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 011
Регистрация: 23-10-04
Из: С-Петербург
Пользователь №: 965



Может ему разрядность не нравится. Попробуйте сделать, чтобы четко ложилась на разрядность аппаратных перемножителей.
Go to the top of the page
 
+Quote Post
iosifk
сообщение Mar 18 2017, 08:41
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 3 570
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(escmar @ Mar 18 2017, 00:38) *
Понимаю, что структуры ячеек "Циклона-5" и "Макса-10" отличаются, но
если подстёгиваю альтеровскую IP функцию то всё как надо делается.

Как заставить Квартус использовать аппаратные перемножители?

Я бы использовал в проекте не a*b, а примитивы аппаратных умножителей, которые имеются в данных ПЛИС. Наверняка есть и у Альтеры библиотека примитивов с их описаниями.. Тем более, что мне всегда проще вручную разобраться с конвейерами и латентностью. Потому как при a*b исходно не понятно, сколько и куда компилятор навтыкает регистров конвейера...


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
blackfin
сообщение Mar 18 2017, 09:48
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 629
Регистрация: 18-04-05
Пользователь №: 4 261



Цитата(escmar @ Mar 17 2017, 23:38) *
a[10:0] <= b[9:0] * c[9:0];

Как заставить Квартус использовать аппаратные перемножители?

Используйте атрибут "multstyle":

a[10:0] <= b[9:0] * (* multstyle = "dsp" *) c[9:0];
Go to the top of the page
 
+Quote Post
escmar
сообщение Mar 19 2017, 11:13
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 87
Регистрация: 12-01-12
Из: Мурманск
Пользователь №: 69 307



Спасибо всем кто откликнулся
С разрядностью пробовал играться, не помогло.
Теперь есть направление куда копать
Go to the top of the page
 
+Quote Post
escmar
сообщение Mar 25 2017, 15:00
Сообщение #6


Частый гость
**

Группа: Участник
Сообщений: 87
Регистрация: 12-01-12
Из: Мурманск
Пользователь №: 69 307



Цитата(blackfin @ Mar 18 2017, 14:48) *
Используйте атрибут "multstyle":


Спасибо
В самый раз помогло.
Приходится самому теперь следить за ресурсами, но это занятие полезное.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th August 2017 - 15:38
Рейтинг@Mail.ru


Страница сгенерированна за 0.01388 секунд с 7
ELECTRONIX ©2004-2016