Перейти к содержанию
    

Я как-то работал с floating-point в матлабе system generator. В железе данная модель работала хорошо. По ресурсам уже не помню. Там переход делался с помощью блока convert. 

 

DSC_0077.JPG

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

12 минут назад, quato_a сказал:

если нужна точность до 0.0000001234, то нужно умножать на степень 2 так, чтобы результат был больше 1

0.0000001234 * 2^23 = 1.035...

значит нужно выделять минимум 23 бит после запятой для фиксированной точки.

Я бы сказал, что точность до 0.0000001234 подразумевает ошибку как минимум на +-0.5 в младшей цифре, т.е. разрядов 10...11 надо бы еще накинуть:)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 minutes ago, Skryppy said:

Я как-то работал с floating-point в матлабе system generator. В железе данная модель работала хорошо. По ресурсам уже не помню. Там переход делался с помощью блока convert. 

 

DSC_0077.JPG

чтоб данная модель работала в железе вы генерировали ее в VHDL?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, я же говорю в железе нормально работала. В чипскопе данные смотрели. Но после извлечения корня стоит второй конвертор, который переводит в fixed-point 32 бита.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

11 minutes ago, Самурай said:

Я бы сказал, что точность до 0.0000001234 подразумевает ошибку как минимум на +-0.5 в младшей цифре, т.е. разрядов 10...11 надо бы еще накинуть:)

тогда уточню

для работы со значением с размахом +/-700 и точностью 0.0000001234 потребуется 23 бита дробной части после запятой, 10 бит целой части (для обеспечения +/-700) и 1 бит знак

fix34_23

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В принципе, для ваших чисел и fixed point 32 бита хватает. Вот набросал по-быстрому модель. Поиграйтесь с разрядностью, выберите нужную вам по точности.

DSC_0078.JPG

floating_point.rar

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Приветствую!

Модель в Matlab  тоже один из вариантов  ручного пути вкупе с неким сервисом что позволяет легче оптимизировать вычисления по ресурсам. 

 HLS  же удобен тем что через 5 мин можно получить работающую железку - но естественно за счет "жирности" в реализации.

Ради прикола - загнал ваш код в Vivado HLS. Без всякой оптимизации получил время вычисления  ~350 тактов на ~140 MHz.  при 110 штуках DSP :unknw:  Можно в продакшен пихать. :biggrin:

Удачи! Rob.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

21 минуту назад, quato_a сказал:

тогда уточню

для работы со значением с размахом +/-700 и точностью 0.0000001234 потребуется 23 бита дробной части после запятой, 10 бит целой части (для обеспечения +/-700) и 1 бит знак

fix34_23

Подозреваю терминологическую нестыковку:) Как я понял вопрос ТС, его интересовало, сколько нужно двоичных разрядов на точное представление константы 0.0000001234. Не хватит для этого 23-х бит, минимум 31 нужно в данном конкретном случае, а в общем случае для погрешности +-0.5e-10 и все 34 бита нужно. А вот если нужна именно погрешность +-1е-7 то да, 23 бит хватит, но погрешность с точностью 3-х знаков после запятой обычно не задают:)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 minutes ago, Самурай said:

Подозреваю терминологическую нестыковку:) Как я понял вопрос ТС, его интересовало, сколько нужно двоичных разрядов на точное представление константы 0.0000001234. Не хватит для этого 23-х бит, минимум 31 нужно в данном конкретном случае, а в общем случае для погрешности +-0.5e-10 и все 34 бита нужно. А вот если нужна именно погрешность +-1е-7 то да, 23 бит хватит, но погрешность с точностью 3-х знаков после запятой обычно не задают:)

а ну да)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

48 minutes ago, Skryppy said:

В принципе, для ваших чисел и fixed point 32 бита хватает. Вот набросал по-быстрому модель. Поиграйтесь с разрядностью, выберите нужную вам по точности.

 

floating_point.rar

спасибо. это мне надо привлечь человека который матлабом занимается. не уверен что он меня не пошлет куда подальше :)

Изменено пользователем jenya7

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

44 minutes ago, RobFPGA said:

Ради прикола - загнал ваш код в Vivado HLS. Без всякой оптимизации получил время вычисления  ~350 тактов на ~140 MHz.  при 110 штуках DSP :unknw:  Можно в продакшен пихать. 

Чуть более 35 микросекунд. В ограниченные рамки ТС вписывается :biggrin: Но как я и говорил, Виртекс бы для 110ти DSP, да пожирнее).

UPD А это для double или для float'ов?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Приветствую!

Just now, Nick_K said:

... Но как я и говорил, Виртекс бы для 110ти DSP, да пожирнее)

Так это  без оптимизации - если покрутить прагмами  чтобы  например использовать по минимум float|double корки операций то и меньше по объему получится.

Удачи! Rob.  

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

58 minutes ago, RobFPGA said:

Приветствую!

Модель в Matlab  тоже один из вариантов  ручного пути вкупе с неким сервисом что позволяет легче оптимизировать вычисления по ресурсам. 

 HLS  же удобен тем что через 5 мин можно получить работающую железку - но естественно за счет "жирности" в реализации.

Ради прикола - загнал ваш код в Vivado HLS. Без всякой оптимизации получил время вычисления  ~350 тактов на ~140 MHz.  при 110 штуках DSP :unknw:  Можно в продакшен пихать. :biggrin:

Удачи! Rob.

а в квартусе куда его загонять?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Приветствую!

Just now, jenya7 said:

а в квартусе куда его загонять?

Гусары молчать!  :biggrin: 

У Intel  вроде есть  свое HLS   но я с ним толком еще не работал. 

Удачи! Rob.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...