Свое изучение ПЛИС я начал с FPGA Altera Cyclone IV, с которой в комплекте шел копеечный USB ByteBlaster. В сторону Xilinx посматривал с опаской, если борода была не сильно дороже, то программатор начинался уже от 2 т.р. за копию на Алике, что от 10 раз дороже Альтеровского Бластера. Я прошел свой путь от относительно дорогих (не фирменные) до дешевых моделей и хочу с Вами поделиться изысканиями. Возможно, если бы я обладал этой информацией, то начал изучать Xilinx пораньше.


Про плату управления майнером EBAZ4205 не писал только ленивый, ее я и заказал первой на опыты с SOC XC7Z010. Поморгав диодами, заказал со второго раза специфичные разъемы для самодельной платы расширения (пришли только несколько дней назад), начал искать на просторах Али вариант поинтересней и главное, подешевле («а восемь шапок сможешь ?»). И вот, довольно быстро, ко мне пришла китайская слива, то бишь, встречаем Lichee Tang Hex.




Размеры, конечно поражали, такой минитиарюзации я не ожидал. Однозначно советовать вам ее не могу, но плюсы и минусы (с моим видением) расскажу. Ну а выбор, конечно, за Вами.


Во, первых, документация, из всех ссылок, что дал продавец (и то после пинка), рабочими и по этой плате были всего две. Привожу основную сайт SiPEED там вы найдете схему, примеры и Petalinux.


Кратко пробежимся по схеме, на плате стоят две DDR3 MT41K256M16TW 256Mx16 каждая, что дает целый Гигабайт 32bit ОЗУ. IO-pin катастрофически мало:



Из 26 контактов — четыре с напряжениями от 1.8V до Vin, пять земляных, два задумывались под PL_I2C, два под PS_UART, еще два под FAN SPEED и PWM. Осталось с гулькин нос: два PL_33_IO и 9 непонятных HASH_IO. Можно ли будет на этом собрать полноценный HDMI, покажет время. Снизу видим Flash MT29F2G16ABAEA на 2GB 8bit и 4bit MicroSD подключенную к PS части.



Сетевая часть выполнена на LAN9514 — это USB host на 4 порта объедененный с Usb-LAN мостом так что скорость ограничена 100Mbit. Неоднозначное удешевление, возникает вопрос «Оно того стоило ?». Источником выступает быстродействующий USB2.0 трансивер с ULPI интерфейсом на мс USB3320. Кварц на 33MHz тактирует только PS часть, так что без инициализации PS, логику PL вы не запустите. На EBAZ4205 есть хотя бы место под кварц. Светодиоды подключены к выводам AB1 GREEN и AB4 RED, единственная кнопка PL_SW подключена к W5.



А UART к MIO48 — MIO49 :



Чтобы помигать светодиодиком, необходимо подключить программатор, благо выводы подписаны, но не распаяны и даже в комплекте гребенки не нашел. Из бюджетных, существует относительно дорогой вариант DL10 на Lattice с Cypress, этот работает из коробки без бубна :



Если денег не так много, можно заказать плату FT232H на Ali, цена около 500 руб с быстрой пересылкой :



С этой придется повозиться. Скачайте с сайта FTDI Chip программу FT PROG, установите и запустите ее, просканируйте подключенные устройства, скорее всего память будет девственно чистой :



Во вкладке USB_Config_Description в поле Max Bus Power следует поставить значение 500mA.
Во вкладке USB_String_Description необходимо записать в полях:


  • Manufacturer — Digilent;
  • Product Description — Digilent USB Device;
  • Serial Number — 210249854606.

Во вкладке Hardware_Specific → Port_A → Hardware нужно установить галочку напротив 245 FIFO, а в
Hardware_Specific → Port_A → Driver — отметку напротив D2XX



После этого записываем в EEPROM изменения, но для работы в качестве программатора Xilinx этого мало, необходимо прошить UserMemory, необходимо воспользоваться функцией FT_EE_UAWrite из библиотеки D2XX API (пример использования этой функции приведен в AN_121_FTDI_Device) либо программой FTDI_User_Area_Writer, уважаемого Дмитрия aka ADA007 с github. Далее вынимаем и опять вставляем платку, смотрим диспетчер устройств: COM должен пропасть, а в Контроллерах USB остаться USB Serial Converter. Контакты для подключения к программатору приведены ниже, не забываем GND :


  • ADBUS0 — TCK;
  • ADBUS1 — TDI;
  • ADBUS2 — TDO;
  • ADBUS3 — TMS.


Питается плата от 12V DC5,5. Теперь, если запустить Vivado 2018 и старше, в Device Manager увидим программатор и нашу плату :



Также в качестве программатора можно использовать плату на FT2232H бонусом получаете еще COM, процесс описан в журнале Компоненты и технологии №3 2014 г. а подробно почитать как автор статьи прошел тернистый путь к результату на форуме Electronix.


Если нужен урок как помигать светодиодами — примеров в сети много от мануала по EBAZ4205 для "баранов" на fpga-systems.ru до вполне приличных статей, например 1 и 2, на habr.ru.


Конечно, я не претендую на истину в последней инстанции и могу, конечно, заблуждаться. Пишите — поправим.

Комментарии (17)


  1. Sdima1357
    17.10.2021 12:55
    +3

    Про плату управления майнером EBAZ4205 не писал только ленивый

    Ну вообще то про нее здесь статей не было, кроме https://habr.com/ru/post/552200/ но и она не совсем про плату. И она хоть и подорожала, по прежнему самая бюджетная, дешевле чем Lichee Tang Hex раза в 3-4 например https://www.aliexpress.com/item/1005002675354264.html или https://www.aliexpress.com/item/1005001529057605.html .Кроме того все эти платки можно запускать с битстрима записанного на SD карте, насколько я помню.


  1. defecator
    17.10.2021 17:25

    Я с 1997-го года использую FPGA Altera (мой первый был FLEX10K), и вот такой фигни и геморроя с Альтерой, как описано в статье, не видел ни разу.

    Возможно, для Xilinx это норма ?


    1. e-zig
      17.10.2021 18:15
      +3

      Вообще то описан геморрой не с Xilinx, а с халявным программатором, да и геморроем это назвать как то странно - несколько тривиальных действий.


    1. Sdima1357
      17.10.2021 18:17

      1 Если купить нормальный фирменный программатор , то все гораздо проще.

      2 Zynq 7020- очень толстая за свою цену с железным микропроцессором(Dual-core ARM Cortex-A9). Похожая алтера выйдет Вам очень-очень дорого и не намного проще в программировании.(По мне, так то же самое)


      1. nerudo
        17.10.2021 21:16
        +2

        3. У Xilinx полностью бесплатный стек для разработки ПО. Altera предлагает для много чего использовать DS-5, который официально стоит 1k$


        1. JerleShannara
          18.10.2021 04:10

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


          1. nerudo
            18.10.2021 12:16

            Я давненько не пользовался, но перед написанием коммента зашел на www.intel.ru/content/www/ru/ru/software/programmable/soc-eds/arm-ds.html, увидел что теперь он называется просто DS, а не DS-5, но суть та же. Или все сложнее?


            1. JerleShannara
              18.10.2021 14:07

              Просто DS-5 выродилась в DS.


  1. malishich
    18.10.2021 07:51

    У Вас ошибка, DDR3 MT41J128M16JT 2Gbit x 16


    1. imax9 Автор
      18.10.2021 18:30

      Спасибо, поправил, правильное название MT41K256M16TW , вставил память от EBAZ.

      Но организация именно 256K x 16 бит, что в сумме 4Гигабит.


      1. imax9 Автор
        20.10.2021 00:31

        Но организация 256M x 16 бит, что в сумме 4Гигабит.


  1. bihuf404
    18.10.2021 18:31

    Ну-с, по порядку. Портов ввода-вывода не так много явно не причине наличия ОЗУ. В SoC Xilinx отдельный банк пинов под DDR, можете глянуть даташит. Это обусловлено, что выбранная плата сделана в форм-факторе малинки и служит как бы для ее замены. Поэтому расположение элементов и GPIO идентичны. Да и цена не сказал бы что дешевая. Та же Myir z-turn с идентичным процессором и большей периферией стоит примерно столько же. Lite версия и того дешевле. С загрузкой ПО все веселее. Фактически ПЛИС не хранит свою прошивку, она считывается при включении/сбросе. И тут есть несколько вариантов - начиная от запуска по JTAG, заканчивая QSPI в режимах мастер/слейв. И есть среди них весьма бюджетный способ - запуск с карты памяти. Кидаете на TF карточку boot.bin файл и запускаете. Правда тут есть нюанс. Режим загрузки выставляется аппаратно на схеме подтяжкой определенных пинов к 0/1 согласно даташита. Как правило на отладочных платах есть разъем для перемычек, либо переключатель для установки нужного пользователю. Так ято можно и без программатора вовсе обойтись. Ну и по поводу тактирования. Увидел на фото три кварца. Неужели ни одного нет подведенного к PL? Но даже если это так - тоже не беда. Если хотите просто поиграться со светодиодами, лиьо нет требования к конкретной частоте - можно реализовать кольцевой осциллятор


    1. imax9 Автор
      18.10.2021 18:51

      >Myir z-turn с идентичным процессором и большей периферией стоит примерно столько же.

      Минимум в 2 раза дороже, ткните носом где дешевле. С hdmi можно было на пару тысяч взять QMTech.

      > Увидел на фото три кварца

      33,3MHz- Z7020, 24MHz - USB3320, 25MHz- LAN9514

      >И тут есть несколько вариантов - начиная от запуска по JTAG, заканчивая QSPI в режимах мастер/слейв.

      Да в курсе, datasheet читал, вторая половина статьи больше о там как получить недорого программатор, да и для прошивки внешнего Flash он нужен. Кстати пока перепаивал резистор 0402 на EBAZ4205 два раза его терял ;)

      Насчет кольцевого осциллятора хочется поподробнее.


      1. bihuf404
        19.10.2021 12:58

        Цену смотрел на всем известном сайте. Указанная в статье плата порядка 100$, на оф сайте рекомендуемая цена 72$. Z-Turn стоит 99$, лайт версия 75$. Да, выходит немного дороже, но думаю не критично. Тем более на выходе имеем полноценный ethernet, usb otg, hdmi и кучу интересных плюшек, а-ля акселерометр. Кольцевой осциллятор - фактически логичекое "НЕ", в котором вход и выход закольцованы. Добавив пару триггеров - получаем метастабильный тактовый сигнал. Частота конечно неизвестна и будет плавать в некотором диапазоне. Для шин с требованиям по точности частоты (uart, usb) не пойдет. А вот для каких-нибудь i2c, spi - очень даже, достаточно прикрутить простейший делитель. Статей на эту тему много, поискать можно по запросу "ring oscillator fpga". Странно, почему разработчики не прокинули к PL тактовый сигнал, хотя бы выход тактирования с того же LAN9514


        1. imax9 Автор
          19.10.2021 19:45

          >Цену смотрел на всем известном сайте.

          Наверное, у нас разные интернеты, вот ссылка Lichee за 5230р :

          https://aliexpress.ru/item/32988738790.html

          Вот Z-Turn lite c Z7010 за 10700 :

          https://aliexpress.ru/item/32836668246.html

          >Кольцевой осциллятор - фактически логичекое "НЕ", в котором вход и выход закольцованы

          Понятно, недавно пользователь yamifa_1234 исследовал:

          https://habr.com/ru/post/552200/


  1. ovn83
    19.10.2021 13:01

    1. imax9 Автор
      19.10.2021 19:35

      Спасибо, читал, но программатор самый дорогой из бюджетных, у меня описан первым или Вы хотели что-то другое сказать ?