1Sergey1 0 29 февраля, 2008 Опубликовано 29 февраля, 2008 · Жалоба Здравствуйте. Кто-нибудь знает, как выполнить операцию квадратного корня на ПЛИС(алгоритмы и т.д.)? Существуют ли бесплатные работающие мегафункции этой процедуры? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yuri_d 0 29 февраля, 2008 Опубликовано 29 февраля, 2008 · Жалоба У Xilinx есть Cordic. Одна из функций - извлечение квадратного корня. Поищите в сети по этому имени. Алгоритм не сложный. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DmitryR 0 29 февраля, 2008 Опубликовано 29 февраля, 2008 · Жалоба Называется CORDIC в общем случае, у Xilinx и Altera есть корки бесплатные, на OpenCores есть пара платформенно-независимых. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
syoma 1 29 февраля, 2008 Опубликовано 29 февраля, 2008 · Жалоба А у меня программист поступил ваабще просто. Возвести в квадрат же намного проще, чем корень сделать, если на борту куча умножителей. Вот он и сделал простенький итерационный алгоритм типа такого max=x; min=0; precision=x*0.000001; while ((max-min)>precision) { mid=(max+min)/2; mid_2=mid*mid; if (mid_2 > x) max=mid; else min=mid; } return min; Рабоает медленно, но надежно. В ПЛИСине его тоже реализовать я думаю не сложно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BSACPLD 9 29 февраля, 2008 Опубликовано 29 февраля, 2008 · Жалоба Можно еще попробовать такой вариант: http://murid0.narod.ru/math/sqrt8.htm Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Leka 0 29 февраля, 2008 Опубликовано 29 февраля, 2008 · Жалоба // s = sqrt( a ), результат N бит за N тактов: for( s = 0, b = 2 << (2*N - 2), i = 0; i < N; i ++ ){ c = a - ( s | b ); s >>= 1; if ( c >= 0 ) { a = c; s = s | b }; b >>= 2; } Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lexey 0 1 марта, 2008 Опубликовано 1 марта, 2008 · Жалоба Кто-нибудь знает, как выполнить операцию квадратного корня на ПЛИС(алгоритмы и т.д.)? Существуют ли бесплатные работающие мегафункции этой процедуры? Могу порекоммендовать мануал по технологии 3Dnow! (ищите на www.amd.com) Там сначала по таблице берется первое приближение, а потом всего двумя итерациями ньютона-рафсона догоняется до одинарной точности. эта процедура дает 1/sqrt(x) (что на самом деле обычно и требуется), а потом если надо умножай на x (чтобы получить sqrt(x)) или возводи в квадрат (чтобы получить 1/x). В общем штука универсальная. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SAR 0 2 марта, 2008 Опубликовано 2 марта, 2008 · Жалоба Здравствуйте. Кто-нибудь знает, как выполнить операцию квадратного корня на ПЛИС(алгоритмы и т.д.)? Существуют ли бесплатные работающие мегафункции этой процедуры? Относительно кордика - хорошая мурзилка лежит тут: http://andraka.com/files/crdcsrvy.pdf две реализации были на опенкорах Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Voloshchenko 0 2 марта, 2008 Опубликовано 2 марта, 2008 · Жалоба Можно также построить матричное устройство на основе алгоритма извлечения квадратного корня без восстановления остатка. В приложении мое авторское свидетельство 1260951. Помимо прочего, оно имеет очень большое быстродействие. AC1260951.ZIP Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
eugen_pcad_ru 0 3 марта, 2008 Опубликовано 3 марта, 2008 · Жалоба В ПЛИСине его тоже реализовать я думаю не сложно. Думаю что всё-таки сложнее чем взять готовый;). 2SAR Есть Cordic на Altera, могу выслать. Куда? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
slog 0 3 марта, 2008 Опубликовано 3 марта, 2008 · Жалоба А в MegaWizard-e функция ALTSQRT что делает? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kuzmi4 0 3 марта, 2008 Опубликовано 3 марта, 2008 · Жалоба 2 eugen_pcad_ru - если не жалко, то вышлите есчё на [email protected] Спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RHnd 0 3 марта, 2008 Опубликовано 3 марта, 2008 · Жалоба А в MegaWizard-e функция ALTSQRT что делает? Не поверите, именно sqrt и делает. Использовал в одном проекте, все работало. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
syoma 1 3 марта, 2008 Опубликовано 3 марта, 2008 · Жалоба Думаю что всё-таки сложнее чем взять готовый;). Да, я понимаю, но когда попробывал Cordic для 1/х, он у меня сожрал столько ресурсов, что пришлось друго решение искать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
slog 0 4 марта, 2008 Опубликовано 4 марта, 2008 · Жалоба Не поверите, именно sqrt и делает. Использовал в одном проекте, все работало. Да я то верю. Интересно просто, зачем тут всю страницу исписали? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться