Аппаратная реализация квадратного корня?
Я пытаюсь найти немного больше информации для эффективных алгоритмов квадратного корня, которые, скорее всего, реализованы на FPGA. Много алгоритмов уже найдено, но какой, например, от Intel или AMD? Под эффективностью я подразумеваю, что они либо очень быстрые, либо им не нужно много памяти.
РЕДАКТИРОВАТЬ: я, вероятно, должен упомянуть, что вопрос, как правило, является числом с плавающей запятой, и так как большая часть аппаратного обеспечения реализует стандарт IEEE 754, где число представляется в виде: 1 знаковый бит, 8-битная смещенная экспонента и 23-битная мантисса.
Спасибо!
2 ответа
Не полное решение, но пара указателей.
Я предполагаю, что вы работаете с плавающей запятой, поэтому точка 1 помнит, что с плавающей запятой хранится как мантисса и показатель степени. Показатель квадратного корня будет примерно вдвое меньше показателя исходного числа благодаря логарифмам.
Затем мантиссу можно аппроксимировать с помощью справочной таблицы, а затем вы можете использовать пару раундов Ньютона-Рафсона, чтобы придать некоторую точность результату из LUT.
Я не реализовывал ничего подобного уже около 8 лет, но я думаю, что именно так я и сделал и смог получить результат за 3 или 4 цикла.
Это отличный вариант для быстрого обратного корня.
Посмотрите на это здесь. Обратите внимание, что это в значительной степени о первоначальном предположении, довольно удивительный документ:)