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

Добрый день всем.

 

Инструменты работы:

Циклон5Е, Квартус 13.0

 

Для реализации имеется некая формула, вернее набор последовательно вычисляемых формул, имеются операции умножения, деления, извлечение корня, и +,-,<>..

Аргументы при перемножении имеют довольно большие значения - до 200.000.000.

При делении делитель имеет довольно малое значение - порядка 1е-8.

Точности расчетов должны быть порядка 1е-8.

Исходя из таких аргументов я принял решение реализации на плав.точке, при этом приходится использовать ядра Альтеры для проведения всех необходимых операций вычислений.

Так вот, собственно, проблема в том, что эти ядра в кристалле занимают ОЧ.много ресурсов, и уже для расширения проекта приходится экономить на регистрах и памяти, и то места может и не хватить на будущее.

 

Имеются ли в природе модули, выполняющие мат.операции с плав.точкой, занимающие меньше места чем Альтеровские? Если да, то кто ими пользовался, что можете сказать о них?

 

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

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


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

"Аргументы при перемножении имеют довольно большие значения - до 200.000.000. "

А чему они равны до умножения ....?

 

Те если у меня после ацп данные 16 бит, потом операция скажем фильтрации 16 *16 бит - то они потом должны уже 2^32 - я в Вашей логике не ошибаюсь ?

Иначе Вам нужен при расчетах динамический диапазон 27 разрядов или 162 дБ. Космос ?

Сильно сомневаюсь что все выше написанное Вами правда, хотя .....

 

Операции с фикс. точкой 2^27 - все реально. Богатые на динамический дипазон заказчики должны ставить дорогие кристаллы.

 

 

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


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

Эти расчеты, точнее аргументы вычислений, никак не связаны с АЦП.

 

Диапазон входных аргументов для операций как раз и указан в первом посте (1е-8 ... 200.000.000).

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


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

Добрый день всем.

 

Для реализации имеется некая формула, вернее набор последовательно вычисляемых формул, имеются операции умножения, деления, извлечение корня, и +,-,<>..

Аргументы при перемножении имеют довольно большие значения - до 200.000.000.

При делении делитель имеет довольно малое значение - порядка 1е-8.

Точности расчетов должны быть порядка 1е-8.

Исходя из таких аргументов я принял решение реализации на плав.точке, при этом приходится использовать ядра Альтеры для проведения всех необходимых операций вычислений.

лучше попробуйте уточнить вопрос с точностью вычислений и алгоритмом вычислений с целью перехода целочисленное вычисления + переиспользование ресурсов

как вариант можно запустить NIOS - и там сделать все вычисления с флоатом...

 

какая скорость должна обеспечиваться?

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


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

как вариант можно запустить NIOS - и там сделать все вычисления с флоатом...

 

Ну тут это не вариант. Уж лучше ПЛИС поставить с Cortex-A (там NEON/VFP, а то и две штуки).

А плавучие инструкции NIOS + сам NIOS + софт для него будут однозначно больше, чем специализированный вычислитель, основанный на таком же float-блоке, что и в NIOS.

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


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

Ну тут это не вариант. Уж лучше ПЛИС поставить с Cortex-A (там NEON/VFP, а то и две штуки).

А плавучие инструкции NIOS + сам NIOS + софт для него будут однозначно больше, чем специализированный вычислитель, основанный на таком же float-блоке, что и в NIOS.

что да, то да.

НО billidean ничего не сказал про плис и я подумал, что плис без встроенного процессора и вариант о дополнительной/замене плис на более емкую не рассматривается, т.к. ТС спрашивает

 

Исходя из таких аргументов я принял решение реализации на плав.точке, при этом приходится использовать ядра Альтеры для проведения всех необходимых операций вычислений.

Так вот, собственно, проблема в том, что эти ядра в кристалле занимают ОЧ.много ресурсов, и уже для расширения проекта приходится экономить на регистрах и памяти, и то места может и не хватить на будущее.

 

Имеются ли в природе модули, выполняющие мат.операции с плав.точкой, занимающие меньше места чем Альтеровские? Если да, то кто ими пользовался, что можете сказать о них?

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


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

Про точности я писал:

Точности расчетов должны быть порядка 1е-8.

 

ПЛИС - без АРМа.

 

Другая ПЛИС - этот вариант не рассматривается, нужно именно в этой.

 

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

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


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

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

 

Я сам писал, с четко нужной мне разрядностью, и без излишеств IEEE. Экономия от альтеровских где то до 25-50% по площади, смотря в какую сторону оптимизировать и сколько тактов на операцию допускается. Там сложного то ничего нет - баррелевский сдвигатель, вычислитель экспоненты (тоже ускоренный, схема типа баррелевской, только как бы наоборот), сумматоры и умножители, все тривиальное. Деление и корень, если без них никак, тут уже чуток посложнее, через Ньютона-Рафсона. Но, в общем, тоже уровень "средней школы" HDL-проектирования, то есть + неделька к сроку.

Однако в виде отдельных IP их нету... Они просто в рамках проекта внутри него.

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


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

как Вы реализовали алгоритм?

с перераспределением ресурсов (последовательно или частично паралельно) или делали по возможности с максимальной степенью паралеллизации?

Сколько было использовано IP core?

Вопросы к чему, что максимальное распаралеливание вычислений требует чаще всего много ресурсов, может Вам стоит сделать реализацию последовательно-паралельную или вообще последовательную, при этом использовав минимально-необходимое количество IP core. Естественно, тогда упадет скорость обработки...

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


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

У меня используется по одному ядру на каждый тип операций (+,-,*,/,..).

Выполняется все последовательно-параллельно, т.е. однвременно выполняются только разнородные операции, например, одновременно провожу выполнение "*" и "+" и "-", и т.п.

Стараюсь ресурсов использовать по-минимуму.

Да, при таком подходе скорость обработки падает, но это все-таки не чисто последовательное вычисление, поэтому более-менее скорость устраивает.

 

Повторюсь, проблема в нехватке ресурсов для расширения проекта. Поэтому хочется уйти от этих "полновесных" Альтеровских ядер.

 

Кто-нибудь вообще использовал сторонние модули float-вычислений? Очень нужна инфа по ним.

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


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

немного не по теме, но вдруг на будущее пригодится: Altera Arria 10 содержит аппаратные floating point блоки. Т.е. в A10 теперь логика на плавучку расходоваться не будет.

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


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

...

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

"Матлаб" пробовали? Разрядность целых чисел при переводе из дробных там осуществляется почти автоматически и точность вычислений можно будет оценить наглядно. К тому же умножители можно будет подобрать таким образом, чтобы повторно их использовать, если потребуется. На бумажке давно уже никто не считает.

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


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

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

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

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

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

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

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

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

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

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