реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Квадратный корень на ПЛИС
1Sergey1
сообщение Feb 29 2008, 15:03
Сообщение #1





Группа: Новичок
Сообщений: 2
Регистрация: 29-02-08
Пользователь №: 35 497



Здравствуйте.
Кто-нибудь знает, как выполнить операцию квадратного корня на ПЛИС(алгоритмы и т.д.)? Существуют ли бесплатные работающие мегафункции этой процедуры?
Go to the top of the page
 
+Quote Post
yuri_d
сообщение Feb 29 2008, 15:09
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 292
Регистрация: 28-01-05
Из: МО, Мытищи
Пользователь №: 2 274



У Xilinx есть Cordic. Одна из функций - извлечение квадратного корня.

Поищите в сети по этому имени. Алгоритм не сложный.
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Feb 29 2008, 15:14
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Называется CORDIC в общем случае, у Xilinx и Altera есть корки бесплатные, на OpenCores есть пара платформенно-независимых.
Go to the top of the page
 
+Quote Post
syoma
сообщение Feb 29 2008, 17:21
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 817
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368



А у меня программист поступил ваабще просто. Возвести в квадрат же намного проще, чем корень сделать, если на борту куча умножителей. Вот он и сделал простенький итерационный алгоритм типа такого
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;
Рабоает медленно, но надежно. В ПЛИСине его тоже реализовать я думаю не сложно.
Go to the top of the page
 
+Quote Post
BSACPLD
сообщение Feb 29 2008, 18:41
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 371
Регистрация: 24-07-05
Из: Москва
Пользователь №: 7 056



Можно еще попробовать такой вариант:
http://murid0.narod.ru/math/sqrt8.htm
Go to the top of the page
 
+Quote Post
Leka
сообщение Feb 29 2008, 19:51
Сообщение #6


Профессионал
*****

Группа: Участник
Сообщений: 1 075
Регистрация: 30-09-05
Пользователь №: 9 118



// 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;
}
Go to the top of the page
 
+Quote Post
Lexey
сообщение Mar 1 2008, 13:50
Сообщение #7





Группа: Новичок
Сообщений: 5
Регистрация: 6-07-06
Пользователь №: 18 646



Цитата(1Sergey1 @ Feb 29 2008, 17:03) *
Кто-нибудь знает, как выполнить операцию квадратного корня на ПЛИС(алгоритмы и т.д.)? Существуют ли бесплатные работающие мегафункции этой процедуры?


Могу порекоммендовать мануал по технологии 3Dnow! (ищите на www.amd.com)
Там сначала по таблице берется первое приближение, а потом всего двумя итерациями ньютона-рафсона догоняется до одинарной точности. эта процедура дает 1/sqrt(x) (что на самом деле обычно и требуется), а потом если надо умножай на x (чтобы получить sqrt(x)) или возводи в квадрат (чтобы получить 1/x). В общем штука универсальная.
Go to the top of the page
 
+Quote Post
SAR
сообщение Mar 2 2008, 01:28
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 29-07-07
Из: Украина
Пользователь №: 29 444



Цитата(1Sergey1 @ Feb 29 2008, 17:03) *
Здравствуйте.
Кто-нибудь знает, как выполнить операцию квадратного корня на ПЛИС(алгоритмы и т.д.)? Существуют ли бесплатные работающие мегафункции этой процедуры?



Относительно кордика - хорошая мурзилка лежит тут:
http://andraka.com/files/crdcsrvy.pdf

две реализации были на опенкорах
Go to the top of the page
 
+Quote Post
Волощенко
сообщение Mar 2 2008, 14:04
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 347
Регистрация: 16-02-06
Из: г.Николаев, Украина
Пользователь №: 14 377



Можно также построить матричное устройство на основе алгоритма извлечения квадратного корня без восстановления остатка. В приложении мое авторское свидетельство 1260951. Помимо прочего, оно имеет очень большое быстродействие.
Прикрепленные файлы
Прикрепленный файл  AC1260951.ZIP ( 1.24 мегабайт ) Кол-во скачиваний: 110
 
Go to the top of the page
 
+Quote Post
eugen_pcad_ru
сообщение Mar 3 2008, 06:08
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 642
Регистрация: 15-11-07
Пользователь №: 32 353



Цитата(syoma @ Feb 29 2008, 20:21) *
В ПЛИСине его тоже реализовать я думаю не сложно.

Думаю что всё-таки сложнее чем взять готовыйwink.gif.
2SAR
Есть Cordic на Altera, могу выслать. Куда?


--------------------
Правильно сформулированый вопрос содержит в себе половину ответа.
P.S.: Некоторые модераторы в качестве ответа так навязчиво предлагают посетить свой сайт, что иначе как саморекламу такие действия интерпретировать сложно.
Go to the top of the page
 
+Quote Post
slog
сообщение Mar 3 2008, 07:01
Сообщение #11


Знающий
****

Группа: Свой
Сообщений: 961
Регистрация: 28-11-05
Пользователь №: 11 489



А в MegaWizard-e функция ALTSQRT что делает?


--------------------
В действительности всё не так, как на самом деле.
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение Mar 3 2008, 08:29
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



2 eugen_pcad_ru - если не жалко, то вышлите есчё на
kuzma_@ua.fm

Спасибо.
Go to the top of the page
 
+Quote Post
RHnd
сообщение Mar 3 2008, 16:13
Сообщение #13


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Цитата(slog @ Mar 3 2008, 10:01) *
А в MegaWizard-e функция ALTSQRT что делает?

Не поверите, именно sqrt и делает. Использовал в одном проекте, все работало.
Go to the top of the page
 
+Quote Post
syoma
сообщение Mar 3 2008, 16:47
Сообщение #14


Профессионал
*****

Группа: Свой
Сообщений: 1 817
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368



Цитата(eugen_pcad_ru @ Mar 3 2008, 08:08) *
Думаю что всё-таки сложнее чем взять готовыйwink.gif.


Да, я понимаю, но когда попробывал Cordic для 1/х, он у меня сожрал столько ресурсов, что пришлось друго решение искать.
Go to the top of the page
 
+Quote Post
slog
сообщение Mar 4 2008, 06:56
Сообщение #15


Знающий
****

Группа: Свой
Сообщений: 961
Регистрация: 28-11-05
Пользователь №: 11 489



Цитата(RHnd @ Mar 3 2008, 19:13) *
Не поверите, именно sqrt и делает. Использовал в одном проекте, все работало.

Да я то верю.
Интересно просто, зачем тут всю страницу исписали? biggrin.gif


--------------------
В действительности всё не так, как на самом деле.
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th June 2025 - 06:45
Рейтинг@Mail.ru


Страница сгенерированна за 0.01471 секунд с 7
ELECTRONIX ©2004-2016