Jump to content

    

Деление на VHDL

Уважаемые гуру! Столкнулся с задачей сделать преобразование координат, естественно с умножением и делением на переменные.
Преобразование за такт-слишком много ячеек задействует, не хватает.Дайте добрый совет, есть ли библиотеки, где эти преобразования можно сделать за 1000 - 1млн тактов. Время  у устройства есть.Заранее спасибо

Share this post


Link to post
Share on other sites

В столбик делить уже не модно? (да да, так как в школе, 4 класс средней школы)

Share this post


Link to post
Share on other sites
11 часов назад, andrei_moiseev сказал:

есть ли библиотеки, где эти преобразования можно сделать за 1000 - 1млн тактов

Ищите IP core делителя в своём САПРе.

 

Share this post


Link to post
Share on other sites

За миллион тактов проще на процессоре сделать. И быстрее выйдет и отлаживать проще.

Share this post


Link to post
Share on other sites

Зачем библиотеки?

Я давно делал деление  методом Ньютона-Рафсона на ПЛИС буквально за пару часов. Т.е. если функция X=1/D и надо найти X, то итеративная формула будет равна X(i+1) = Xi*(2-D*Xi). Начальный X0 выбираете сами исходя из своих условий. Нужна пара умножителей и за сотню тактов точно получаете нужное 1/x.

Но сейчас все используют Cordic и не парятся. Поищите, у вас должен быть в списке IP ядер. В Cordic, кстати,  должны быть сразу блоки для преобразований координат.

Share this post


Link to post
Share on other sites
On 12/4/2018 at 7:38 PM, syoma said:

Зачем библиотеки?

Я давно делал деление  методом Ньютона-Рафсона на ПЛИС буквально за пару часов. Т.е. если функция X=1/D и надо найти X, то итеративная формула будет равна X(i+1) = Xi*(2-D*Xi). Начальный X0 выбираете сами исходя из своих условий. Нужна пара умножителей и за сотню тактов точно получаете нужное 1/x.

Но сейчас все используют Cordic и не парятся. Поищите, у вас должен быть в списке IP ядер. В Cordic, кстати,  должны быть сразу блоки для преобразований координат.

 

On 12/4/2018 at 7:38 PM, syoma said:

Зачем библиотеки?

Я давно делал деление  методом Ньютона-Рафсона на ПЛИС буквально за пару часов. Т.е. если функция X=1/D и надо найти X, то итеративная формула будет равна X(i+1) = Xi*(2-D*Xi). Начальный X0 выбираете сами исходя из своих условий. Нужна пара умножителей и за сотню тактов точно получаете нужное 1/x.

Но сейчас все используют Cordic и не парятся. Поищите, у вас должен быть в списке IP ядер. В Cordic, кстати,  должны быть сразу блоки для преобразований координат.

 Отличное решение(100 000 циклов простой) , и универсальное, пробую провести. Спасибо!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now