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

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

Здорово, вот только для неискушенного пользователя (который, к примеру, с PCIe работал только втыкая видяху в свой компьютер) было бы полезно более подробно расписать настройки ядра PCIe — чтоб не пугались.

И еще смущает момент «загрузить FPGA-прошивку, перезагрузиться». Как я понимаю, он связан с ограничением на время отклика PCIe устройства после подачи питания для того, чтобы «шина» его увидела? Т.е. если делать нормально — надо успевать откуда-то сконфигурировать FPGA при включении питания?
У Altera SOC, насколько я помню, ядро PCIe всегда активно независимо от «загруженности» FPGA и подобной проблемы нет.
Спасибо за отклик!
Прошивка в FPGA должна загрузиться раньше, чем загрузится компьютер. Для этого ее надо записать в загрузочную flash-память. Для демодизайна это не обязательно, к тому же я отлаживался, поэтому загружал прошивку программатором. В связи с этим приходилось перезагружаться.
Насчет конфигурирования ядра — наверное, можно было бы об этом написать, но это вопрос сугубо технический и не хотелось раздувать статью.
Плюсанул, но не совсем понимаю что.
вот как-то да.
Да, это явно не для домашней поделки на субботний вечерок, имхо. По крайней мере не видел ни одного живого человека, кто бы что-то свое сделал на PCIe. Хотя на электрониксе вроде кто-то что то ковыряет даж на альтерах, но в подробности я боюсь вдаваться. Кстати, а что такое Virtex? Тоже какое-нибудь лицензированное PCIe ядро?

За статью спасибо, ничего не понятно, но очень круто! Плюсанул.
Virtex — семейство FPGA от Xilinx
> По крайней мере не видел ни одного живого человека, кто бы что-то свое сделал на PCIe.
Ээ, а какие варианты если нужна коммуникация с PC?
Ethernet / USB не удобны тем что это получается внешнее устройство, а в современных компьютерах из generic-шин только PCIe и осталоась, редко уже увидишь PCI.
Понятно, что если нужна скорость, память — то PCIe без вариантов. Как мне это представляется — такие устройства не разрабатываются одним человеком. Как минимум какая-то маленькая лаба человек из трех, как максимум — большая корпорация или НИИ.

Если честно, я не очень даже представляю, зачем оно в радиолюбительской поделке все нужно. Зачем столько памяти, зачем такие огромные скорости. Как это все проверять с помощью китайского мультиметра, лог анализатора за 300 руб и хорошо если осциллографом до 1 МГц. Плюс это ж наверное BGA, а BGA это как минимум 4-ех слойка… Как ее паять эту BGA над газовой плитой? Понятно, что можно потом сборку и производство заказать, а если ты делаешь одно устройство для себя (которое мигает светодиодом)?

До сих пор удел любительских поделок — COM (RS232), LPT, USB 1.1, USB 2.0, но да — это все внешние получаются устройства. Внутренние — ну ISA понятно умерла давно, хотя какая чудесная шина была. Вроде есть аналог ISA в индустриальном исполнении, не помню как называется, но до сих пор вроде используется. По сигналам один в один, только сам разъем другой. И даже матери для core i7 с ISA печатают, правда стоят такие как самолет.
Остается PCI (обычный, не PCIe). Его можно еще найти кое-где. Конечно он (PCI) гораздо сложнее ISA, но тоже можно юзать, вплоть до простейших поделок на обычной логике, без ПЛИС или поделок посложнее с «маленькой» ПЛИС.

Кстати, а на PCIe можно сделать годный осциллограф-приставку?
> Зачем столько памяти, зачем такие огромные скорости. Как это все проверять с помощью китайского мультиметра, лог анализатора за 300 руб и хорошо если осциллографом до 1 МГц

Ээ, а как вообще всем этим работать? :)
Я любитель, но и у меня аппаратуры на пару килобаксов накопилось.
Мультиметр с допуском в 5%? Анализатор на 2.5 канала и полосой в килогерцы? Брр

> Если честно, я не очень даже представляю, зачем оно в радиолюбительской поделке все нужно
Ну я, к примеру, использую PCIe-карту как часть умного дома, воткнул в сервер её, и не нужно искать где разместить stand-alone коробку, как подвести питание, коммуникации с PC. WiFi конечно хорошо, но передавать несколько видеопотоков не очень здорово из одного истоника одному получателю.

> Как ее паять эту BGA над газовой плитой
Ээ, феном? Я паял только пару раз BGA, но выходило успешно. Главное спозиционировать верно.

> Плюс это ж наверное BGA
Не всегда, но часто, да. Всё же ножек много.

> Его можно еще найти кое-где
Предлагаете менять железо ради использования устаревшей шины? :)
Ну так-то да, можно и на TTL сделать адаптер.

> Кстати, а на PCIe можно сделать годный осциллограф-приставку?
Можно, только коммуникация с PC там только одна из проблем, существенная, но тем не менее, придётся решать ещё несколько вопросов с бутылочными горлышками.
Ну я, к примеру, использую PCIe-карту как часть умного дома, воткнул в сервер её, и

Не понял, вы сами ее (плату) разработали и изготовили, написали дрова и софт для нее? Или это просто какая-то покупная железка (плата видеозахвата), которая подошла под ваши задачи? Если первое, то снимаю шляпу. Фото было бы просто прекрасным дополнением того, как можно дома самому.
Конечно, сам.
Ну разве что изготавливал не я, всё же, вы правы, многослойные платы делать самому довольно сложно. Я попробовал разок, вышло ужасно. После этого, заказываю на стороне.

Драйвера тоже сам писал, для меня это было гораздо легче чем сделать плату.

> Фото было бы просто прекрасным дополнением того, как можно дома самому
Я думал статей несколько написать, но потом решил, что велосипедных умных домов и так пруд пруди. Правда большинство на всяких попсовых арудинках.
Почему не разрабатываются одним чеолвеком? Очень даже разрабатываются… Ничего сложного в этом нет, о чем и статья. Кстати, по моему опыту, сделать дизайн для PCIe проще, чем для USB. Годный осциллограф-приставку на PCIe сделать можно.
Этот девкит и не позиционируется для домашних поделок :)
В предыдущей статье автора ( habrahabr.ru/post/231007/ ) можно найти и цену на него и сферы применения)
Все отлично, кроме стоимости платформы — уж очень она кусается.
Планирую выпросить у Arrow вот такой кит для экспериментов, на первое время должно хватить.
Основное назначение платформы — прототипирование устройств для 100G Ethernet. Пока это удовольствие не из дешевых.
> Требуется слот PCIe x8 или шире
На скриншоте генерации IP-ядра же стоит 4 линии, зачем карта требует 8?
В принципе, можно и одной обойтись. Но разъем на плате широкий, не в каждый слот войдет. В дизайне действительно использовалось ядро PCIe v3 x4. PCIe v3 x8 тоже доступно.
А, именно физические размеры имелись в виду.
На обычный PCI в своё время существовали мосты, которые одной половиной втыкались в PCI а на другой получалась своеобразная ISA. Гугль говорит что такое существует и для PCIe:;
www.iwavesystems.com/pcie-isa-bridge.html
ISA Master Interface
The ISA Bridge implements a 16-bit data interface
Supports Bus clock of 8 MHz for ISA interface


Существует, но платное. В смысле не сама ПЛИС платная (это понятно), а корка эта платная, с не очевидным способом покупки. Был бы готовый чип, желательно еще бы и не BGA — было бы круто конечно.
На ПЛИС без разницы, с какой шиной работать. С PCIe думаю, даже проще, т.к. используется меньше пинов.
Предвкушаю следующий пост: мигаем светодиодом через Infiniband.
А есть ли готовые ядра, которые помимо самого PCIe реализуют кольца буфферных дескрипторов, DMA и прочую колдовскую магию?
В данном ядре все это есть. Я не стал описывать эту «колдовскую магию», поскольку хотел показать общий принцип, не усложняя описание излишними подробностями. Если конкретнее, в ПЛИС Achronix имплементировано PCI-ядро Expresso компании Noth-West Logic (NWlogic.com). С описанием ядра можно ознакомиться на сайте компании.
Из вашей статьи складывается впечатление, что весь инстументарий для работы с ПЛИС Achronix в том числе ядра PCI Express, даются бесплатно. Это действительно так?
Это не совсем так, а, точнее, совсем не так. Средства разработки поставляются вместе с отладочной платой и входят в ее цену. Но их можно приобрести отдельно (точнее, купить лицензию на использование). Можно получить бесплатную лицензию для тестирования ПО сроком от месяца до 3х. Все аппаратные ядра не требуют дополнительных лицензий и отчислений. Но если вам потребуется написать свой драйвер PCIe для компьютера, то будет необходимо купить документацию и пакет разработки от NWLogic. Для описываемого проекта мне удалось обойтись драйвером, поставляемым с демодезайном, поэтому дополнительных затрат удалось избежать. Диапазон цен за лицензии на ПО стандартный — несколько тысяч USD.
Ну да, я это и имел, что они прилагаются к devkit'у. А какие ядра там ещё есть помимо PCIe? Ethernet? RAM? RapidIO?
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.