Как стать автором
Обновить

Комментарии 23

Что хочется сказать — первый незамутненный взгляд на FPGA лучше делать с помощью продукции Altera. Можно долго ломать копья Altera/Xilinx, но вряд ли кто будет отрицать факт того, что альтеровский софт (Quartus II) куда как дружелюбнее для новичков, чем софт Xilinx.
С этим поспорить сложно, однако начать не с Xilinx удается далеко не всем и не всегда. В моем же случае, я столкнулся с этим as is; грубо говоря, выбор был сделан до меня. Все-таки, надеюсь что мой пост окажется кому-нибудь полезным, тем более, что я планирую продолжить знакомить неискушенных хабраюзеров с продуктами Xilinx.
Полностью согласен, еще лучше начинать изучать с AHDL. он более очевиден для новичков.
Quartus II позволяет сделать весь проект от начала до конца в одном Cockpit'e.
Без базовых знаний радиотехники (понимание комбинаторной логики, автоматов, триггеров, счётчиков и т.д.) освоить AHDL всё же будет не просто. В этом плане верлог и систем верлог проще. И на мой взгляд перспективнее.
НЛО прилетело и опубликовало эту надпись здесь
Это вы нафантазировали. Пиши что на VHDL, что на AHDL — будет оптимально, если умеешь.
НЛО прилетело и опубликовало эту надпись здесь
Ну во первых модули памяти отлично описываются и на VHDL/Verilog (руками), во вторых непосредственно AHDL тут непричем — для подключения подобных вещей подключаются стандартные альтеровские примитивы, которые имеют равноценные интерфейсы и для AHDL, и для VHDL, и т.д.
НЛО прилетело и опубликовало эту надпись здесь
Собственно если говорить в терминах квартуса, то когда вы создаете компонент через MegaWizard, вам дают выбрать, на каком языке его генерировать — там будет AHDL (не для всех), Verilog, VHDL. И квартусу абсолютно без разницы, какой вы выберете. Разница будет для вас, когда вы попытаетесь воспользоваться каким-нибудь внешним средством (например внешним симулятором), и убедитесь, что AHDL jн не поддерживает.
Берешь, ищешь recommended coding styles для нужного тебе языка на сайте альтеры.
И там есть… Например, как описать на HDL конечный автомат так, чтобы квартус его опознал. Или блок плис(sram, например)
безусловно, знание — понимание цифровых устройств, принципов их работы является необходимым.

про SV я с вами согласен, но, к сожалению, он еще не достаточно хорошо поддерживается синтезаторами — стимуляторами.

некоторые конструкции не переносятся одними, а другими наоборот хорошо «прожовываются».

за частую проекты мигрируют с одной архитектуры (altera <=> xilinx) на другую, а также между людьми есть предпочтения в работе (aldec, modelsim, NCsim ). моя практика показывает, что наиболее полно все таки VHDL переносится. хотя есть тенденция относительно Verilog (который кстати за частую и быстрее синтезируется\моделируется ) в улучшении поддержки.

вообще если есть понимание принципов FPGA, то не принципиально на каком языке писать, особенно это касается синтезируемых конструкций.

Повезло, что в вузе были лабы по ПЛИС. Как раз на 3-ем спартане.
Потом, для меня нетривиальной задачей было реализовать на ПЛИС модуль обработки цифрового сигнала с GPS/Глонасс приемника (аля MAX2769 или подобного) и выдача координат в формате NMEA 0183.
Правда еще веселее было плату под 5-ый спартан разводить.
Для начала изучения (да и для простеньких поделок) рекомендую купить вот такую штуку www.ebay.com/itm/Altera-CycloneII-EP2C5T144-FPGA-Mini-Development-Board-/200625047715?pt=LH_DefaultDomain_0&hash=item2eb62f48a3 — и недорого, и жЫрно.
Хоть я и остаюсь приверженцем Lattice :)
Сразу хочется спросить: а что по поводу отладчика? Придется дозаказывать отдельно? И по поводу конфигурационной ПЗУ? Насколько я понимаю, при сбросе питания придется прошивать EP2C5T144 заново?
www.ebay.com/itm/Altera-CycloneII-EP2C5T144-FPGA-Board-USB-Blaster-JTAG-/190501213198?pt=LH_DefaultDomain_0&hash=item2c5ac1d40e — оно же со шнурком. Там все на борде запаяно, и конфигурациооное ПЗУ, и все источники питания
По опыту скажу, часто наступают на такие грабли: заказывают демоплату, а про отладчик забывают. В целом, достаточно неплохой low-cost вариант.
Вот чтобы это все не казалось адом, я и хочу в доступной для понимания форме расписать все ньюансы.
я только только занялся STM32. Надеюсь, что у меня никогда не возникнет необходимость разбираться с FPGA.

>Verilog, VHDL, Behavioral, Implementation — эти и многие другие слова могут свести с ума и надолго отпугнуть от разработки с использованием FPGA, однако иногда можно заменить кучу устаревшей рассыпухи с дюжиной древних МК на одну изящную микросхему и при этом получить огромное моральное удолетворение!

АААААААААААААААААААААААА! Спасите…
А представляете, как жутко hardware-инженерам слышать про лямбда выражения, буст и полиморфизм?
ООП уже давно используется в верификации (SystemVerilog), там есть и паттерное проектирование, и полиморфизм.
строго говоря FPGA может в себе содержать и ARM ядро, и даже некоторое количество RAM-ROM памяти, для программы. При этом внутри может быть спрятаны интерфейсы к периферии, а возможно какие то сложные алгоритмы обработки данных, такие как FIR, FFT, RS, BCH и др.
самое сложное это производить интеграцию проекта с CPU ядром, FPGA и кучей внешних интерфейсов (АЦП, ЦАП, PCIexpress). тут поистине аДъ :)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории