Вычислительная способность ПЛИС
- Studentka419
- beginner
- Сообщения: 29
- Зарегистрирован: 16 мар 2015, 12:06
- Версия LabVIEW: 2013
Вычислительная способность ПЛИС
Добрый день! Я работаю с платой Single-Board RIO 9636 с ПЛИС Spartan-6 фирмы Xilinx. И у меня возник такой вопросик: какое максимальное количество дифференциальных уравнений и какого порядка может одновременно решать данная ПЛИС? Просто я сейчас занимаюсь вопросом реализации математических моделей различных устройств на ПЛИС. И мне это необходимо знать. Подскажите, как это определить?
-
Andrew Lunev
- VIP
- Сообщения: 957
- Зарегистрирован: 11 дек 2010, 12:31
- Награды: 2
- Версия LabVIEW: 2014-2021
- Откуда: Москва
- Благодарил (а): 4 раза
- Поблагодарили: 10 раз
Re: Вычислительная способность ПЛИС
Очень сложный вопрос. Все зависит от самих уравнений, необходимой точности моделирования и требуемого шага по времени.
Главная проблема - ограниченное кол-во математических действий. Если переносить код уравнений напрямую из Simulink например, то влезет очень не много. Думаю максимум 10 интеграторов, тем более на Spartan.
Если же произвести декомпозицию уравнений и использовать один блок интегратора на FPGA для всех интеграторов в уравнениях, то можно и сотый порядок системы реализовать. Но в таком случае все интегрирования происходят последовательно и сильно проигрываете в скорости моделирования. Не получается использовать главное преимущество FPGA - параллельные вычисления.
Опять же, многое зависит от требуемой точности, а значит и разрядности чисел. Можно использовать целые числа, можно FXP, можно SGL. От этого используемые ресурсы FPGA будут отличаться в разы.
Так же многое зависит от сложности правых частей уравнений. Если в них есть степенные, тригонометрические или логарифмические функции, то на них так же уйдет много ресурсов FPGA.
В итоге, реализовать хотя бы десятый порядок можно только после того, как вы произведете вручную декомпозицию уравнений. Сами реализуете универсальный интегратор и определитесь с требуемой точностью разрядной сетки и шага по времени. Все это долгий процесс. Но в результате можете получить модель, которая работает в реальном времени с требуемой точностью.
Стандартных готовых решений для сложных уравнений в Labview FPGA нет...
Главная проблема - ограниченное кол-во математических действий. Если переносить код уравнений напрямую из Simulink например, то влезет очень не много. Думаю максимум 10 интеграторов, тем более на Spartan.
Если же произвести декомпозицию уравнений и использовать один блок интегратора на FPGA для всех интеграторов в уравнениях, то можно и сотый порядок системы реализовать. Но в таком случае все интегрирования происходят последовательно и сильно проигрываете в скорости моделирования. Не получается использовать главное преимущество FPGA - параллельные вычисления.
Опять же, многое зависит от требуемой точности, а значит и разрядности чисел. Можно использовать целые числа, можно FXP, можно SGL. От этого используемые ресурсы FPGA будут отличаться в разы.
Так же многое зависит от сложности правых частей уравнений. Если в них есть степенные, тригонометрические или логарифмические функции, то на них так же уйдет много ресурсов FPGA.
В итоге, реализовать хотя бы десятый порядок можно только после того, как вы произведете вручную декомпозицию уравнений. Сами реализуете универсальный интегратор и определитесь с требуемой точностью разрядной сетки и шага по времени. Все это долгий процесс. Но в результате можете получить модель, которая работает в реальном времени с требуемой точностью.
Стандартных готовых решений для сложных уравнений в Labview FPGA нет...
- Studentka419
- beginner
- Сообщения: 29
- Зарегистрирован: 16 мар 2015, 12:06
- Версия LabVIEW: 2013
Re: Вычислительная способность ПЛИС
Спасибо большое! То есть даже приблизительно это определить нельзя? А если речь идёт о линейных дифференциальных уравнениях первого порядка?
-
Andrew Lunev
- VIP
- Сообщения: 957
- Зарегистрирован: 11 дек 2010, 12:31
- Награды: 2
- Версия LabVIEW: 2014-2021
- Откуда: Москва
- Благодарил (а): 4 раза
- Поблагодарили: 10 раз
Re: Вычислительная способность ПЛИС
Самый простой вариант - взять и проверить. Сделайте программу на несколько уравнений и попробуйте их скомпилировать. Узнаете сколько ресурсов они используют. Для вашей реализации.
Как я уже писал, реализовать можно десятком разных способов. Если очень надо, то и сотню уравнений можно решить и даже больше. Но писать код придется с нуля.
Как я уже писал, реализовать можно десятком разных способов. Если очень надо, то и сотню уравнений можно решить и даже больше. Но писать код придется с нуля.
- Studentka419
- beginner
- Сообщения: 29
- Зарегистрирован: 16 мар 2015, 12:06
- Версия LabVIEW: 2013