Лучшая платформа для превращения программного обеспечения в VHDL/Verilog для FPGA
Я смотрю на разработку на FPGA, но мне было бы легче написать код на Python или Scala и преобразовать его в VHDL или Verilog.
Я хочу, чтобы к датчику было подключено много датчиков, и по мере поступления данных вычисления выполняются очень быстро, поэтому их можно отобразить на видеостене, чтобы на ПЛИС входили десятки датчиков и несколько видеоконтроллеров для стены.
Это библиотека для кода, написанного на Scala. Для этого мне любопытно, если код написан на Java и Scala повлияет на то, что он генерирует.
http://simplifide.com/drupal6/
Это преобразователь Python в VHDL.
С обоими из них мне любопытно относительно ограничений.
Я бы предпочел упрощение, так как я сильнее в Scala, чем в Python, но кажется, что myhdl может быть более надежной платформой, хотя бы с некоторой базовой точки зрения.
ОБНОВИТЬ:
Причиной использования FPGA является то, что она может выполнять несколько задач одновременно очень хорошо, поэтому, когда данные поступают, в зависимости от потребностей пользователей, на основе эксперимента, было бы легко изменить код на FPGA, чтобы способен адаптироваться к потребностям.
Так, например, если у вас есть 8 х 3 разных погодных датчика на каждом этаже офисного здания, значит, есть температура, скорость ветра, барометрические датчики (по 8 каждого датчика по одному на каждом этаже), и добавьте датчики для проверки деформации стены, а затем интерфейс в реальном времени, чтобы читать их в то же время и постоянно обновлять визуальный дисплей может быть полезным.
Это вымышленный пример, но он объясняет, почему FPGA будет полезна, в противном случае мне понадобится много разных DSP, а затем вставит их в компьютер для визуального отображения, тогда как FPGA может сделать это быстрее, поскольку это аппаратное обеспечение. с меньшими потребностями в энергии.
Есть две библиотеки с открытым исходным кодом, которые могут помочь сделать это проще в разработке, но я не уверен, что будет лучшей платформой для преобразования программы в VHDL/Verilog.
Это только один пример. Если я хочу выполнить моделирование квантовых цепей на ПЛИС, как предлагает эта статья ( http://www.cc.gatech.edu/computing/nano/documents/Radecka%20-%20FPGA%20Emulation%20of%20Quantum%20Circuits.pdf) тогда было бы проще сделать это как программу, чем создавать большую схему вручную.
5 ответов
Если вы можете себе это позволить, я не думаю, что что-то сделает вашу жизнь проще, чем дополнение FPGA от National Instruments для LabView. Визуальная среда LabView подходит для программирования на ПЛИС и заботится о многих досадных деталях (если только вы не беспокоитесь о них как о части алгоритма, например, создавая конвейеры, чтобы достичь заданных тактовых частот). Кроме того, вы можете обнаружить, что решения NI в реальном времени (не FPGA) или DSP, DAQ или другие решения соответствуют вашим потребностям.
Да, есть HDL в стиле питона, и он бесплатный. MYHDL
Это сгенерирует VHDL или verilog . Он также может имитировать код и вывод.VDI, и вы можете посмотреть, что в gtkwave
поочередно, если вы хотите редактировать код VHDL, вы можете использовать GHDL. Google это вы получаете много ресурсов. Доступна ОС Fedora Electronics Lab, в которой есть все инструменты для разработки современной электроники.
Все это с открытым исходным кодом. Создайте и смоделируйте, используя эти инструменты. Чтобы перейти на FPGA, вам нужны цепочки инструментов xilinx или Altera для генерации битовых потоков и их прошивки. Всего наилучшего!
Я думаю, что вы ищете какой-то инструмент, который Modaë Technologies предлагает здесь. Вы можете начать с кода на Ruby или Python, на алгоритмическом / поведенческом уровне. Их инструменты способны автоматически определять типы данных и преобразовывать код в HDL (в настоящее время VHDL) на уровне RTL.
Это вымышленный пример, но он объясняет, почему FPGA будет полезна, в противном случае мне понадобится много разных DSP, а затем вставит их в компьютер для визуального отображения, тогда как FPGA может сделать это быстрее, поскольку это аппаратное обеспечение. с меньшими потребностями в энергии.
Это полностью зависит от точной природы алгоритмов, которые вам нужно выполнить.
Есть две библиотеки с открытым исходным кодом, которые могут помочь сделать это проще в разработке, но я не уверен, что будет лучшей платформой для преобразования программы в VHDL/Verilog.
Это только один пример. Если я хочу выполнить моделирование квантовых цепей на ПЛИС, как предлагает эта статья (http://www.cc.gatech.edu/computing/nano/documents/Radecka%20-%20FPGA%20Emulation%20of%20Quantum%20Circuits.pdf) тогда было бы проще сделать это как программу, чем создавать большую схему вручную.
Похоже, вы ищете инструмент синтеза высокого уровня, который ни один из них не является. Для генерации RTL для алгоритмов могут определенно помочь генераторы кода, но вам все равно придется запачкать свои руки HDL для других целей.
Один или два года назад я работал с MyHDL и LabVIEW. Я написал HDL в MyHDL, экспортировал его как VHDL и импортировал как внешний IP в LabVIEW.
LabView
Это хорошо для разработки FPGA, потому что вы можете отслеживать часы, потребляемые каждой последовательной ветвью из-за ее графического представления. Конвейерная обработка и разделение вашего алгоритма на графические элементы очень важны, чтобы убедиться, что правильные значения обрабатываются вместе. Однако, когда дело доходит до генерации констант, списков инициализаторов или генерации рекурсивных структур, при таком подходе от визуального к реальному аппаратному обеспечению этот… неоптимальный
MyHDL
Это в основном python, но синтаксис очень похож на Verilog с декораторами, предназначенными для использования в качестве операторов @always и т. Д. Вы можете использовать любой код, допустимый для Python, в своем коде HDL. Для целей тестирования может быть целесообразно написать тестовую функцию с помощью python, прежде чем на практике реализовать ее на уровне передачи регистров (RTL). При генерации рекурсивных структур у вас есть обычные операторы for. Нужна таблица соответствия (LUT) для вашего алгоритма? Одна строка понимания списка: Готово. Полный список функций см. На веб-сайте.
Резюме
LabVIEW отлично подходит для начала, потому что вы можете сосредоточиться на реальной реализации. Как только вы научитесь думать параллельно и на RTL и изучать реализацию более сложных алгоритмов, MyHDL может оказаться лучше в
- управление вашим IP без привязки к проприетарной платформе
- тестирование вашего кода с полной мощью Python
- совместное использование, управление версиями и т. д.