billidean 0 15 августа, 2014 Опубликовано 15 августа, 2014 · Жалоба Добрый день всем. Инструменты работы: Циклон5Е, Квартус 13.0 Для реализации имеется некая формула, вернее набор последовательно вычисляемых формул, имеются операции умножения, деления, извлечение корня, и +,-,<>.. Аргументы при перемножении имеют довольно большие значения - до 200.000.000. При делении делитель имеет довольно малое значение - порядка 1е-8. Точности расчетов должны быть порядка 1е-8. Исходя из таких аргументов я принял решение реализации на плав.точке, при этом приходится использовать ядра Альтеры для проведения всех необходимых операций вычислений. Так вот, собственно, проблема в том, что эти ядра в кристалле занимают ОЧ.много ресурсов, и уже для расширения проекта приходится экономить на регистрах и памяти, и то места может и не хватить на будущее. Имеются ли в природе модули, выполняющие мат.операции с плав.точкой, занимающие меньше места чем Альтеровские? Если да, то кто ими пользовался, что можете сказать о них? Вариант перехода на фикс.точку я рассматривал, но при таком диапазоне аргументов и результатах вычислений у меня как-то не получилось это вытянуть. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
litv 0 15 августа, 2014 Опубликовано 15 августа, 2014 · Жалоба "Аргументы при перемножении имеют довольно большие значения - до 200.000.000. " А чему они равны до умножения ....? Те если у меня после ацп данные 16 бит, потом операция скажем фильтрации 16 *16 бит - то они потом должны уже 2^32 - я в Вашей логике не ошибаюсь ? Иначе Вам нужен при расчетах динамический диапазон 27 разрядов или 162 дБ. Космос ? Сильно сомневаюсь что все выше написанное Вами правда, хотя ..... Операции с фикс. точкой 2^27 - все реально. Богатые на динамический дипазон заказчики должны ставить дорогие кристаллы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
billidean 0 15 августа, 2014 Опубликовано 15 августа, 2014 · Жалоба Эти расчеты, точнее аргументы вычислений, никак не связаны с АЦП. Диапазон входных аргументов для операций как раз и указан в первом посте (1е-8 ... 200.000.000). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 15 августа, 2014 Опубликовано 15 августа, 2014 · Жалоба Добрый день всем. Для реализации имеется некая формула, вернее набор последовательно вычисляемых формул, имеются операции умножения, деления, извлечение корня, и +,-,<>.. Аргументы при перемножении имеют довольно большие значения - до 200.000.000. При делении делитель имеет довольно малое значение - порядка 1е-8. Точности расчетов должны быть порядка 1е-8. Исходя из таких аргументов я принял решение реализации на плав.точке, при этом приходится использовать ядра Альтеры для проведения всех необходимых операций вычислений. лучше попробуйте уточнить вопрос с точностью вычислений и алгоритмом вычислений с целью перехода целочисленное вычисления + переиспользование ресурсов как вариант можно запустить NIOS - и там сделать все вычисления с флоатом... какая скорость должна обеспечиваться? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SM 0 15 августа, 2014 Опубликовано 15 августа, 2014 · Жалоба как вариант можно запустить NIOS - и там сделать все вычисления с флоатом... Ну тут это не вариант. Уж лучше ПЛИС поставить с Cortex-A (там NEON/VFP, а то и две штуки). А плавучие инструкции NIOS + сам NIOS + софт для него будут однозначно больше, чем специализированный вычислитель, основанный на таком же float-блоке, что и в NIOS. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 15 августа, 2014 Опубликовано 15 августа, 2014 · Жалоба Ну тут это не вариант. Уж лучше ПЛИС поставить с Cortex-A (там NEON/VFP, а то и две штуки). А плавучие инструкции NIOS + сам NIOS + софт для него будут однозначно больше, чем специализированный вычислитель, основанный на таком же float-блоке, что и в NIOS. что да, то да. НО billidean ничего не сказал про плис и я подумал, что плис без встроенного процессора и вариант о дополнительной/замене плис на более емкую не рассматривается, т.к. ТС спрашивает Исходя из таких аргументов я принял решение реализации на плав.точке, при этом приходится использовать ядра Альтеры для проведения всех необходимых операций вычислений. Так вот, собственно, проблема в том, что эти ядра в кристалле занимают ОЧ.много ресурсов, и уже для расширения проекта приходится экономить на регистрах и памяти, и то места может и не хватить на будущее. Имеются ли в природе модули, выполняющие мат.операции с плав.точкой, занимающие меньше места чем Альтеровские? Если да, то кто ими пользовался, что можете сказать о них? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SM 0 15 августа, 2014 Опубликовано 15 августа, 2014 · Жалоба Ну мало ли... Так, в порядке информации. Вдруг кому пригодится. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
billidean 0 15 августа, 2014 Опубликовано 15 августа, 2014 · Жалоба Про точности я писал: Точности расчетов должны быть порядка 1е-8. ПЛИС - без АРМа. Другая ПЛИС - этот вариант не рассматривается, нужно именно в этой. Меня интересуют именно сторонние вычислительные модули с плав.точкой. Кто их использовал, где брали, как с ними обстоят дела.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SM 0 15 августа, 2014 Опубликовано 15 августа, 2014 · Жалоба Меня интересуют именно сторонние вычислительные модули с плав.точкой. Кто их использовал, где брали, как с ними обстоят дела.... Я сам писал, с четко нужной мне разрядностью, и без излишеств IEEE. Экономия от альтеровских где то до 25-50% по площади, смотря в какую сторону оптимизировать и сколько тактов на операцию допускается. Там сложного то ничего нет - баррелевский сдвигатель, вычислитель экспоненты (тоже ускоренный, схема типа баррелевской, только как бы наоборот), сумматоры и умножители, все тривиальное. Деление и корень, если без них никак, тут уже чуток посложнее, через Ньютона-Рафсона. Но, в общем, тоже уровень "средней школы" HDL-проектирования, то есть + неделька к сроку. Однако в виде отдельных IP их нету... Они просто в рамках проекта внутри него. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 15 августа, 2014 Опубликовано 15 августа, 2014 · Жалоба как Вы реализовали алгоритм? с перераспределением ресурсов (последовательно или частично паралельно) или делали по возможности с максимальной степенью паралеллизации? Сколько было использовано IP core? Вопросы к чему, что максимальное распаралеливание вычислений требует чаще всего много ресурсов, может Вам стоит сделать реализацию последовательно-паралельную или вообще последовательную, при этом использовав минимально-необходимое количество IP core. Естественно, тогда упадет скорость обработки... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
billidean 0 15 августа, 2014 Опубликовано 15 августа, 2014 · Жалоба У меня используется по одному ядру на каждый тип операций (+,-,*,/,..). Выполняется все последовательно-параллельно, т.е. однвременно выполняются только разнородные операции, например, одновременно провожу выполнение "*" и "+" и "-", и т.п. Стараюсь ресурсов использовать по-минимуму. Да, при таком подходе скорость обработки падает, но это все-таки не чисто последовательное вычисление, поэтому более-менее скорость устраивает. Повторюсь, проблема в нехватке ресурсов для расширения проекта. Поэтому хочется уйти от этих "полновесных" Альтеровских ядер. Кто-нибудь вообще использовал сторонние модули float-вычислений? Очень нужна инфа по ним. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
goodsoul 0 19 августа, 2014 Опубликовано 19 августа, 2014 · Жалоба немного не по теме, но вдруг на будущее пригодится: Altera Arria 10 содержит аппаратные floating point блоки. Т.е. в A10 теперь логика на плавучку расходоваться не будет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
billidean 0 19 августа, 2014 Опубликовано 19 августа, 2014 · Жалоба Ура, конечно же, но мне это не поможет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Enthusiast 0 27 августа, 2014 Опубликовано 27 августа, 2014 · Жалоба ... Вариант перехода на фикс.точку я рассматривал, но при таком диапазоне аргументов и результатах вычислений у меня как-то не получилось это вытянуть. "Матлаб" пробовали? Разрядность целых чисел при переводе из дробных там осуществляется почти автоматически и точность вычислений можно будет оценить наглядно. К тому же умножители можно будет подобрать таким образом, чтобы повторно их использовать, если потребуется. На бумажке давно уже никто не считает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Postoroniy_V 0 28 августа, 2014 Опубликовано 28 августа, 2014 · Жалоба http://caes.ewi.utwente.nl/index.php/resea...erial/sabrewing Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться