Провели семинар по процессору на ПЛИС MIPSfpga в Национальном исследовательском университете «Московский институт электронной техники» ( ( bit.ly/mipsfpga_russia_2015_flier ) ). Получилось хорошо, уровень слушателей довольно высокий. Помимо меня, докладчика от Imagination Technologies, был докладчик из Макро Групп и MathWorks. Александр Филиппов из Макро Групп, официального представителя Xilinx в России, рассказал о Artix-7, Kintex-7 и UltraScale FPGA. Михаил Песельник, докладчик от MathWorks, рассказал о модели single-cycle реализации подмножества архитектуры MIPS в среде Simulink. Забыл попросить кого-нибудь меня сфотографировать, но остальные докладчики на фото ниже. Сегодня будет такой же семинар в МГУ, завтра в МИФИ.

Презентации использовавшиеся во время доклады от Imagination: panchul.com/dropbox/2014_10_26/presentations

Основной код для лабораторных работ: github.com/MIPSfpga/mipsfpga-plus
























Соединения плат и создание проекта в Xilinx Vivado:

mipsfpga_setup_on_nexys4_ddr_for_seminars_in_russia_20151021_010837

mipsfpga_setup_on_nexys4_ddr_for_seminars_in_russia_20151021_010905

mipsfpga_setup_on_nexys4_ddr_for_seminars_in_russia_20151021_010927

mipsfpga_setup_on_nexys4_ddr_for_seminars_in_russia_20151021_010936

mipsfpga_setup_on_nexys4_ddr_for_seminars_in_russia_20151021_010949

mipsfpga_setup_on_nexys4_ddr_for_seminars_in_russia_20151021_011009

mipsfpga_setup_on_nexys4_ddr_for_seminars_in_russia_20151021_011050

Screenshot 2015-10-25 11.38.32

Screenshot 2015-10-25 11.38.41

Screenshot 2015-10-25 11.38.48

Screenshot 2015-10-25 11.38.53

Screenshot 2015-10-25 11.38.58

Screenshot 2015-10-25 11.39.54

Screenshot 2015-10-25 11.40.08

Screenshot 2015-10-25 11.40.23

Screenshot 2015-10-25 11.40.30

Screenshot 2015-10-25 11.40.39

Screenshot 2015-10-25 11.40.46

Screenshot 2015-10-25 11.41.21

Screenshot 2015-10-25 11.41.34

Screenshot 2015-10-25 11.41.47

Screenshot 2015-10-25 11.42.42

Screenshot 2015-10-25 11.42.50

Screenshot 2015-10-25 11.52.33

Screenshot 2015-10-25 13.32.48

Screenshot 2015-10-25 13.32.57

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


  1. AlexanderS
    27.10.2015 09:26

    Ну и как в целом впечатление от нового софта?

    Я прошлые три года ездил. В этот — не получилось. Народу что-то мало в этот раз совсем)
    Когда первый раз демонстрировали виваду (года три назад вроде) с целью убедить инженеров в том, что всё нормально, что можно писать на Си, а потом будет нормальный синтез это не очень получилось, т.к. у докладчика схема не развелась, а потом САПР сглючила (сыровата видимо была) и… вообще я понял что работали мы на ISE — так и работать лучше дальше =)
    Но фишка в том, что ISE 14.7 последняя в линейке, очевидно, что новые ПЛИСы поддерживаться будут как раз в САПРах типа Vivado и от этого никуда не денешся.


    1. YuriPanchul
      27.10.2015 15:09
      +3

      Вы несколько перепутали. Семинар ( bit.ly/mipsfpga_russia_2015_flier ) был не про Vivado от Xilinx, а про MIPSfpga от Imagination. Представители Xilinx Макро Групп сделали на ней презентацию про Vivado и HLS, но это не было основной темой презентации. Народу совсем не мало, а наоборот, очень много, так как у нас ограничения на посадочные места и платы, и мы его превысили — желающих раза в три больше, чем мы в начале планировали.


      1. AlexanderS
        27.10.2015 16:50

        Да нет, про MIPSfpga я понял. Vivado я просто к случаю вспомнил)


  1. rPman
    27.10.2015 18:56

    Известно ли, что является главной причиной, почему FPGA сопроцессоры до сих пор не встраивают в потребительскую электронику, десктопные компьютеры и главное мобильные? Есть даже Zynq-Z7010/Z7020 ARM процессор (единственный известный мне десктопный компьютер с ним и адекватной ценой)


    1. AlexanderS
      27.10.2015 20:52

      Целесообразность использования: цена и времемя разработки.
      ПЛИСы могут выполнять обработку данных быстро, работать на очень высоких частотах, с информационными потоками высокой скорости. В потребительской электронике некуда торопиться: для большинства задач подойдут обычные массовые копеешные МК работающие на 1-20МГц, под которые есть куча библиотек и требуется больше программист, нежели инженер-схемотехник. На борту МК уже есть АЦП/ЦАП, библиотеки для организации интерфейсов и прочие вкусности и не надо все это подключать к ПЛИСу и разбираться с обменом на низком уровне всей этой периферии. Типичный пример: вот в этой статье я написал как делал для себя платку электроники на ПЛИСе от проекта Marsohod, я бы всё то же самое мог сделать на ардуине нано, купленной за 100р., ещё и код бы получился в 3 раза меньше.
      Конечно, не стоит совсем уж недооценивать микроконтроллеры. Есть и серьёзные вещи под серьёзные задачи.

      Разработка на ПЛИС это… как свободное творчество. Степень контроля совсем другая. Код не работает построчно, а за один такт выполняется весь код. Описывая схему нужно продумывать все мелочи, любое неточное описание работы схемы приведет к её непредсказуемому результату в целом, нужно контролировать каждый сигнал. Одно и то же действие можно написать так, что бы оно выполнялось максимально быстро или максимально экономно по ресурсам, но можно и варьировать.
      Но зато, разработка получается долгая. Для приёма по RS надо писать целый приёмник, который будет отсчитывать длину такта UART в зависимости от тактовой частоты, собирать этот байт побитно, проверять бит чётности, организовывать буфер, в который этот байт будет складываться и вычитываться по мере надобности следующей схемой. Т.е. надо ещё и физ. уровень UART понимать. Плюс предусмотреть если будут сбои при сборке байта — схема не должна испортиться и «вылечиться» на сборке следующего байта… А на ардуине написал Serial.read() и этот байт уже используешь дальше )))


      1. rPman
        27.10.2015 21:45

        Я категорически с вами не согласен практически по всем пунктам!
        ПЛИС нужна именно для энергоэффективной очень быстрой обработки данных, именно то, чего так нехватает в потребительской мобильной технике!

        ПЛИС — это не только эмулятор железа — но вполне подходит и для общих вычислений, но даже без этого, в список задач можно смело положить обработку видео с видеокамеры, 100500 задач, от превращения смартфона в беспроводной джойстик для игр на большом экране (очень точный контроль за положением) до таких задач как отслеживание слежения за направлением взгляда (технологии несколько лет но из-за слабого железа невозможна на текущем железе, а хардварщики не спешат добавлять это в каждое второе устройство, доступны единицы ноутбуков за неадекватные деньги).

        Все тут точно так же как и с развитием software, зачем делать под каждый чих новое устройство, когда можно разделять и властвовать — отдели сенсоры от анализа, и оставь последнее за процессором. А миллион программистов найдут еще 100500 необычных применений этим сенсорам.

        Проблема сложности разработки под ПЛИС — это сложность входа, как минимум из-за очень дорогих (неадекватно, в смысле необоснованно) отладочных плат. Если для изучения программирования ПЛИС будет достаточно обычного компьютера — програмистов появится на порядок больше, а за ними и инструментарий будет развиваться гораздо быстрее.

        Последний ваш абзац — один в один то, что происходило, когда разработчики писали на ассемблере… и кто теперь думает 'о байтах и битах' при разработке домашней странички дяди васи?


        1. UA3MQJ
          27.10.2015 23:26

          Со временем становится легче. ПЛИС программируются на обычном компьютере. Отладочная плата нормального уровня (3-5 тыс ячеек), стоит 1000р. Байты собирать самому тоже не надо. Разработка на ПЛИС происходит БЛОЧНО. Я лично, свой приемник RS232 не писал, а взял готовый модуль. Среды разработки (во всяком случае от Altera точно), позволяют не писать самому модули ЦОС, генераторов и прочее, предоставляя Cores. То есть вопрос разработки на ПЛИС — это соединение блоков. Это даже, как мне кажется, проще, чем ардуино. Одно плохо — развесистые алгоритмы. Их удобнее последовательным алгоритмом выполнять, на процессоре.


          1. AlexanderS
            27.10.2015 23:52

            Тут штука заключается ещё в том, что для использования некоторых блоков нужна полноценная лицензия на САПР, которая стоит явно подороже 1к рублей.
            Плюс еще надо все равно понимать схемотехнику хотя бы минимально. Блок обработки данных с АЦП, допустим, у вас есть. Допустим есть какая-то частота. А для АЦП её нужно понижать. Надо понимать что нужно ставить PLL/DCM и синтезированные такты по фазе подгонять. Да и вообще если часть схемы работает на исходных тактах, а другая на синтезированных, то нужно хорошо понимать как между ними переходить. Там вроде бы ничего сложного нет, но для новичка это неочевидно, а если непродумать переход, то можно схватить набор фееричных глюков и потом долго отлаживаться, т.к. подобные ошибки, как показывает практика, очень тяжело найти/понять.

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


        1. AlexanderS
          27.10.2015 23:44

          Эээ, я тут одно не учёл… надо дать определение «потребительская электроника» =)
          Я просто к тому — чем вас не устраивают ARM процессоры в этом сегменте? Тут я оговорюсь, что явно не влаею конкретно этой темой, но современные процессоры в топовых смартфонах разве не позволяют делать всё то, о чём вы написали выше?


          1. rPman
            28.10.2015 23:09

            Именно с видео — нет, доступ к сырому потоку данных практически отсутствует у всех, как класс.
            Так же, обработка видео, один из самых затратных процессов, и именно FPGA ставят для первичной обработки видеоданных. Например wii remote, intel realsence camera — стоят именно fpga.

            Отладочную плату за 1т.р. с 3к вентилей нет никакого смысла брать, поиграться можно и в эмуляторах, не так ли? Речь идет о полнофункциональном сопроцессоре (выше модель ссылку давал с 30к...80к вентилей), который можно использовать в неожиданных задачах и самое главное — чтобы это было доступно и популярно точно так же как сейчас доступны вычислительные ресурсы GPU с помощью технологий OpenCL (собственно я надеюсь что одним из вариантов использования FPGA будет тот же OpenCL или его функциональные аналоги, пусть компилятор думает об основных проблемах и сложностях).


    1. kay
      27.10.2015 21:49

      Вот есть презентация о вычислениях на ПЛИС.


  1. IlyaPodkopaev
    28.10.2015 12:15

    4338…