Как стать автором
Обновить
-20
0
Кравченко Станислав Иванович @StanKra

гуляю сам по себе

Отправить сообщение

Один способ вычисления логарифма по основанию 2

Время на прочтение5 мин
Количество просмотров27K
Вычисление логарифмов довольно распространённая операция в цифровой обработке сигналов. Чаще пожалуй приходится считать только свёртки (умножение с накоплением) и амплитуды с фазами. Как правило для вычисления логарифмов на FPGA применяется алгоритм CORDIC в гиперболическом варианте, требующий только таблицы и простых арифметических операций. Однако это не всегда бывает удобно, особенно если проект большой, кристалл маленький и начинаются танцы с оптимизацией. Именно с такой ситуацией и пришлось мне однажды столкнуться. Оба порта блока RAM (Cyclone IV) уже плотненько были в работе, не оставляя свободных окон. Использовать ещё один блок под гиперболический CORDIC не хотелось. Зато был умножитель, для которого во временной диаграмме получалось приличное свободное окно. Денёк подумав, я сочинил следующий алгоритм, в котором не используется таблиц, но есть умножение, точнее возведение в квадрат. И поскольку схемотехнически возведение в квадрат проще общего случая умножения, возможно этот алгоритм представляет интерес для специализированных микросхем, хотя для FPGA разницы конечно нет. Подробнее под катом.
Читать дальше →
Всего голосов 77: ↑77 и ↓0+77
Комментарии36

Информация

В рейтинге
Не участвует
Откуда
Калининград (Кенигсберг), Калининградская обл., Россия
Зарегистрирован
Активность