Добрый день. При построении FSK демодулятора встретился с проблемой. Очень долго вычисляется квадратный корень. Пробовал аппаратную реализацию, как самую быструю:
unsigned int sqrt_user(unsigned long x){ unsigned long m = 0x40000000; unsigned long y = 0; unsigned long b; while(m){ b = y | m; y >>= 1; if( x >= b ){ x -= b; y |= m; } m >>= 2; } return y; }
Получилось 400 циклов. Пробовал Cordic алгоритм. Еще больше получается. Может быть есть у кого реализация, позволяющая уложится в 100 - 160 тактов?
Сообщение отредактировал alexsl - May 7 2008, 12:32
|