jenya7 0 20 ноября, 2019 Опубликовано 20 ноября, 2019 · Жалоба а может есть какой FPGA со встроенным FPU? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 27 20 ноября, 2019 Опубликовано 20 ноября, 2019 · Жалоба Приветствую! 1 hour ago, jenya7 said: Как мне такие вычисления перенести в VHDL? Либо делать все ручками - .... делать (или брать) готовые модули для real|float операций и лепить из них dataflow вычислений ... переводить все в fixed point и опят же ручками лепить dataflow вычислений Либо использовать HLS - пишете на C/C++ и генерите рабочий data-flow на VHDL Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexadmin 0 20 ноября, 2019 Опубликовано 20 ноября, 2019 · Жалоба 17 minutes ago, jenya7 said: нужно очень высокое быстродействие. поэтому решено всю математику перенести в FPGA. Так а сколько раз в секунду должны выполняться вычисления из первого сообщения? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 20 ноября, 2019 Опубликовано 20 ноября, 2019 · Жалоба 3 minutes ago, RobFPGA said: Приветствую! Либо делать все ручками - .... делать (или брать) готовые модули для real|float операций и лепить из них dataflow вычислений ... переводить все в fixed point и опят же ручками лепить dataflow вычислений Либо использовать HLS - пишете на C/C++ и генерите рабочий data-flow на VHDL Удачи! Rob. а где можно познакомиться с этой темой? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 20 ноября, 2019 Опубликовано 20 ноября, 2019 · Жалоба можно попробовать типа новый стандарт плавающей запятой https://habr.com/ru/post/462385/ https://posithub.org/ здесь вроде есть ссылки на реализации https://posithub.org/docs/PDS/PositEffortsSurvey.html Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 20 ноября, 2019 Опубликовано 20 ноября, 2019 · Жалоба 1 minute ago, alexadmin said: Так а сколько раз в секунду должны выполняться вычисления из первого сообщения? частота в секунду не высокая. но само вычисление должно быть очень быстрым. 2 minutes ago, Maverick_ said: можно попробовать типа новый стандарт плавающей запятой https://habr.com/ru/post/462385/ https://posithub.org/ ну это теория. а практическое решение? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexadmin 0 20 ноября, 2019 Опубликовано 20 ноября, 2019 · Жалоба Just now, jenya7 said: частота в секунду не высокая. но само вычисление должно быть очень быстрым. Так сколько, скажите, не таите. От этого принципиально зависит сложность задачи, требуемый объем ресурсов и пути решения. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 27 20 ноября, 2019 Опубликовано 20 ноября, 2019 · Жалоба Приветствую! 4 minutes ago, jenya7 said: а где можно познакомиться с этой темой? С какой темой? Как ручками dataflow рисовать? А про HLS смотреть на Xilinx или на Intel в зависимости от вашей FPGA. Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 20 ноября, 2019 Опубликовано 20 ноября, 2019 · Жалоба 4 minutes ago, jenya7 said: ну это теория. а практическое решение? я обновил свой пост выше... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 20 ноября, 2019 Опубликовано 20 ноября, 2019 · Жалоба 10 minutes ago, alexadmin said: Так сколько, скажите, не таите. От этого принципиально зависит сложность задачи, требуемый объем ресурсов и пути решения. нужно уложиться в 3 ms Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Nick_K 0 20 ноября, 2019 Опубликовано 20 ноября, 2019 · Жалоба 37 minutes ago, andrew_b said: Там есть специальные типы для этого. Вектор (N downto -M) содержит целую (N downto 0) и дробную части (-1 downto -M). Помнится, Xilinx, что-ли, не поддерживал векторы с отрицательными границами. Учитывая, в каком состоянии у них в целом поддержка VHDL'2008, не удивлюсь, если всё так и осталось. Патчноты для Vivado 2019 крест на пузе ставят, что ввели полную поддержку VHDL-2008 (11 лет опоздания всего ). Хочется верить, что в последней версии действительно всё пофиксили и работает. 43 minutes ago, jenya7 said: я потеряю точность. на что мне умножить 0.0000001234 Тут уж Вам решать. Или сделать точно, но не в потоке (быстродействие понятие условное) и я уверен что есть такие паузы, в которых можно обчислить процессором все значения. Или вы подходите не с той стороны. У меня была похожая проблема, когда делались преобразования значений с ADC в цифру в десятичном виде и потом нужно было делать некие вычисления и отправить на комп. В итоге оказалось, если выкинуть преобразование в десятичные числа - всё имеет намного компактнее вид и быстродействие, только в двоичном формате. Опять же, если нужно работать с числами +/-2.147кк в целой части и +/-2.328е-10 в десятичной, Вам достаточно будет использовать целое интегральное int для целых значений и целое интегральное int для значений после запятой (итого 64 бита). Выглядит вполне реально. Ну или найдите слабые места и оптимизируйте. 4 minutes ago, jenya7 said: нужно уложиться в 3 ms А данные как приходят? Прямо все сразу? неужели пока не дошёл остаток данных нельзя провести никакие начальные вычисления? За 3 ms можно не только вычисления сделать, но и крестики-нолики поиграть, если сделать предобработку потоковых данных. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 52 20 ноября, 2019 Опубликовано 20 ноября, 2019 · Жалоба 7 minutes ago, jenya7 said: нужно уложиться в 3 ms пару десятков умножений floatов (doublы вам там точно не нужны) даже 8ми битный АВР успеет сделать за 3мс. а уж если в целочисленную арифметику данные вычисления перевести... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 20 ноября, 2019 Опубликовано 20 ноября, 2019 · Жалоба 3 minutes ago, _pv said: пару десятков умножений floatов (doublы вам там точно не нужны) даже 8ми битный АВР успеет сделать за 3мс. а уж если в целочисленную арифметику данные вычисления перевести... там еще есть вычисления. это только часть. но в принципе может вы и правы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
quato_a 3 20 ноября, 2019 Опубликовано 20 ноября, 2019 · Жалоба 56 minutes ago, jenya7 said: я потеряю точность. на что мне умножить 0.0000001234. если нужна точность до 0.0000001234, то нужно умножать на степень 2 так, чтобы результат был больше 1 0.0000001234 * 2^23 = 1.035... значит нужно выделять минимум 23 бит после запятой для фиксированной точки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 20 ноября, 2019 Опубликовано 20 ноября, 2019 · Жалоба спасибо за информацию. думал что все гораздо проще. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться