Embedded Doka – Telegram
Embedded Doka
3.65K subscribers
1.02K photos
28 videos
52 files
470 links
Авторский канал инженера-радиотехника 🤓

Если хотите рассказать мне интересное 👉 @iDoka

Let's keep in touch:
▫️ http://linkedin.com/in/idoka
▫️ https://github.com/iDoka
Download Telegram
I know that feel bro
@embedoka
Embedded Doka
Semiconductors chips shortage Наверняка многие читали эту статью с кучей красивой инфографики. У меня же глаз зацепился за эту иллюстрацию (в оригинале она интерактивная - с выплывающими комментариями и цифрами). Так вот любопытно что крупные чипмейкеры…
Дальше, выше, сильнее..
"Градообразующее предприятие" вновь задаёт моду...

Но вот что интересно - в презентации люди бродят в офисе по опенспейсу со стационарными макинтошами, тут невольно возникает вопрос - как же они на макОСи чипы разрабатывают - ни в буткампе, ни нативно (macOS) не запустишь $CDNS и $SNPS 🤷‍♂️

@embedoka
Крайне разочарован работой комитета Bluetooth SIG. Ну как же так господа-стандартизаторы: столько версий BLE за последние 10 лет выкатили, а профиля UART в BLE как не было, так и нет 😭😭😭

Каждый вендор лепит свой велосипед. Особенно это заметно в автомобильных BLE-адаптерах (клонах ELM327), которые пытаются по-прежнему в АТ-команды, но это (древняя спека АТ-команд из такого же древнего даташита ELM327) единственное что их объединяет 🤷‍♂️

Забавный deadlock:
▫️ Железячники продолжают делать поддержку АТ-команд ELM327 потому что "каждая программа это поддерживает"
▫️ Программисты стонут от того, что помимо того что приходится тащить это дерьмо мамонта (АТ-команды ELM327) еще и приходится каждую железку тестировать и добавлять ручками, потому что в BLE без указоненного ( Bluetooth SIGом) UARTа - каждый железячник кто во что горазд

Пример outdated технологии, революцию в которой никто не смог/не захотел возглавить.

@embedoka
Forwarded from Serjio
Вообще, очень больная тема для меня, но имхо BLE это просто фиаско.

Кое что похожее уже было с USB, с его дескрипторами "контроллер симулятора полета магического ковра", но там всё обошлось без особых потерь. BLE же решил повторить, но в этот раз уже обосраться по полной, чтобы прям другим завидно было. Возможно наличие универсального battery profile прикольна, но примерно на этом всё и заканчивается. Была допущена тривиальная ошибка человека что "вчера стал мидлом" - провален свой технический долг, нагромождена туча бессмысленных и бесполезных абстракций, и тут уже не ясно, делали ли это неопытные дети что пытались потешить свое эго, либо специально сделали BLE настолько ужасным, чтобы все разработчики с IQ менее 9000 ушли в тильт и не могли работать. Стек BLE не для людей, он для пришельцев и для разработчиков BLE. Мне нужен просто 1) способ идентификации устройств и настройки соединения 2) поток байт + разумная его сегментация. 3) Какая-никакая ПРОСТАЯ стандартизация в духе HID была бы не лишней. ВСЁ. Пиздеть не мешки ворочать. Никому не сдались эти GAP GAT, жалкие потуги сделать универсальное решение что приведет только к боли, страданию и отчаянию. 90% разработчиков просто костылят свой последовательный порт поверх всего что есть. И имхо это архитектурно верное решение что уменьшает сложность, а следовательно время разработки, количество багов и сожженных нервов.

Возможно комитет это понимает и поэтому давит на свой альтернативный "правильный" подход со своими говенными характеристиками, вместо того чтобы просто сделать uart - разработчики бы пользовались исключительно им, сделав бесполезным всё что было нагромождено, включая сам комитет.
💯2🔥1
Эмейзинг Амазон факап

Сейчас занят тем, что переношу некоторый payload на AWS F1 (FPGA EC2 instance) и очень удивился, что по заветам ветерана отрасли в лице VCU1525 амазон таки-поставил 4 слота DIMM DDR4, но напрочь лишил свою F1 сетевых возможностей и даже порта UART (прости VCU1525!) 😱😱😱

Конфиг, в котором они предлагают 8хFPGA совершенно бестолковый: нет экономии по стоимости, а "быстрый" линк между FPGA в виду отсутствия всех сортов [Q]SFP[28] реализован "как смогли" (см.картинку).

Т.е. если мне надо разрезать дизайн на несколько FPGA, то вместо пересылки (почти в RAW) с минимальной задержкой через мультигигабитные трансиверы буду тратить LUTы на обслуживание PCIe стека 🙄

И это при том, что для GPU инстансов у них всё чётенько спроектировано: для конфига из мульти-GPU они коннектятся to each other через NVLink:
▫️ up to 1600 GBit/s (Volta V100)
▫️ up to 4800 GBit/s (Ampere A100)

@embedoka
Embedded Doka
Как многие знают, Амазон в числе первых запустил FPGA-as-a-Service, благодаря чему сделал доступными даже для энтузиастов чипы с listed price >$40k (согласно дижикей), а недавно такая возможность появилась и в MS Azure. Так вот Амазон проапгрейдила шелл…
Пару слов об этом компактном шелле для AWS F1:

Сам шелл для интеграции в пользовательский проект поставляется (точнее скачивается скриптом с AWS S3) в виде файла Design CheckPoint as as 🤷‍♂️

В минималистичном сетапе компактный шелл занимает около 10% LUT (в VU9P, Карл!!!), выкинуты были:
▫️DDR4 ctrl
▫️XDMA (его там и не было, но предлагается альтернатива в виде SDE)
▫️VirtualJTAG, VIO, ILA
▫️IRQ logic

@embedoka
Media is too big
VIEW IN TELEGRAM
пятничный бонус:
П.Воля пиарит МЦСТ, Янд, Сколково
@embedoka
Audible Notification

Во всех этих многочасовых сборках проектов я наконец понял чего мне так не хватало на воркстейшен: чтобы из мейка проигрывался звук, что сборка готова (#WHF рулит!).

Поискал как из консоли проигрывать: есть play (из пакета sox), но он не понимает формата m4r/m4a, так что остаётся ffplay (только не пытайтесь делать ffplay --help!) - добавил последней строчкой в цель мейка.

Кстати говоря при сборке на AWS у Амазона есть возможность использовать уведомления на почту по факту окончания сборки - олдовенькое решеньице :-/

@embedoka
Audio
Directed By Robert B. Weide
ffplay -hide_banner -nodisp -autoexit directed_by_robert_b_weide.mp3 >/dev/null 2>&1

@embedoka
Еще один шажок экспансии FPGA в облака

На сей раз в амазон завезли Xilinx® Alveo U30 card для рилтайм-транскодинга видео (Amazon EC2 VT1).

Hardware-accelerated video-transcoding-as-a-service ✌🏻

@embedoka
Какие-то непонятки с DDR5 DIMM.
Везде пишут что вроде как ЕСС обязателен и "встроен", но на картинках самих модулей виден только встроенный DC-DC. Получается ЕСС в самих чипах?

А десктопные процы Интела 12го поколения имеют поддержку DDR5, но не поддерживают ЕСС 🤷‍♂️

Вот пытаюсь понять как это всё состыкуется, а то год от года с ростом ОЗУ даже на десктопе без ЕСС всё хуже и хуже.

@embedoka
Рубрика: идеи стартапа

Было бы круто иметь сервис, который по принципу социальной сети экспертов подбирал людей на основе компетенций для узкоспециализированных консультаций (конечно же - на основе нейросетей).

Вот кейс: допустим, у пользователя есть документ и нужен кто-то шарящий в предметной области, чтобы перевести с птичьего на человеческий, собственно за то, что понимание написанного занимает 5мин, а не час и платятся деньги. Сам эксперт подбирается из пула на основе парсинга документа и результата работы всяких NLP-like сеточек.

Потому что сегодня пожалуй потратишь больше времени на поиск человека с ключевой компетенцией, чем потребуется на самостоятельное раскуривание документа 🤷‍♂️

@embedoka
На заборе тоже DMA написано, а там дрова лежат 🤦🏻‍♂️
@embedoka
Новый уровень импортозамещения (всегда интересовало сколько это стоит).
Это вам не наклейки в подворотнях переклеивать!
@embedoka
Куча битстримов: бессмысленных и беспощадных

Вот о какой вещи думаю последние недели для связки FPGA+хост: В битстрим можно заимпринтить timestamp сборки и даже автоматический номер ревизии, но всё равно это неудобно, когда собираются версии с какими-то минорными изменениями и этих сборок много 😱.

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

Регистр в адресном пространстве содержимое которого задаётся статично препроцессором на синтезе. И значения эти определяются примерно так:

`ifdef CAPABILITY_OPT2
assign opt_reg = `SET_CAPABILITY(opt_reg,`CAPABILITY_OPT2);
`endif

Соответственно на хосте в рантайме считываем регистр с Capability и делаем либо разные ветки выполнения, либо просто печатаем весь список установленных в RTL фич (для сравнения потребления разных битстримов, например).

Велосипед или есть какое-то готовое решение?
Кто как решает проблему?

@embedoka