позитивслэк
845 subscribers
129 photos
41 files
191 links
ASIC, FPGA, SystemVerilog, UVM. Цифровой дизайн, программирование, духота и мемы. С уклоном в верификаторство.

https://t.me/boost/positiveslack
Download Telegram
A 50 years old man's guide to debug

Советы по дебагу от 50-летнего верификатора: оригинал в LinkedIn, копия текста в комментах.

Я прям чувствую ту боль, за которой последовали некоторые советы.

Мне до седых волос ещё далековато, и я мало что могу добавить, но попробую лишь обозначить три коротких пункта:

- всегда инвестировать в консистентные и подробные логи
- научиться свободно писать регулярки
- проверять одну проблему/гипотезу за раз и всегда идти мелкими шагами

Банально, да. Главное помнить что мемы про ультимативность printf-дебагинга, это не мемы на самом деле. А с LLM под рукой так вообще самый главный инструмент. Если конечно у вас не EDA окружение без интернета или корпоративные правила.

#debug #verification
@positiveslack
🔥97
Forwarded from Влада Зуева
👍 Отличные новости для FPGA-сообщества: регистрация на конференцию FPGA-Systems 2025 открыта!

Это редкая возможность всего за один день:
➡️ прокачать свои знания на глубоких технических докладах,
➡️ найти ответы на сложные вопросы у практикующих экспертов,
➡️ обменяться опытом с коллегами из других компаний.

Ждем вас!

🗓 29 ноября 2025 года
🗺 Москва, 2-й Кожуховский пр., д. 29, корп. 6 (МЦК «ЗИЛ»).

Участие бесплатно, но количество мест в офлайне не безлимитно. Так что советуем регистрироваться как можно скорее. Вступайте и в чат конференции. До встречи! 😉
Please open Telegram to view this post
VIEW IN TELEGRAM
Lattice ECP3 FPGA Jamz-VCK9l9gmyDk.mp4
54.9 MB
Lattice ECP 3 FPGA Jamz

Ребята почему-то выпили этот видос из своего ютуба давным давно.
Но интернет должен помнить шедевры. Выложил, чтобы больше не потерять.

#meme
@positiveslack
🔥14😁5
RP2040 PIO vibecoded

Не, ну вы видели? В основу FS некто Jose выложил вайбкод имплементацию подсистемы PIO из RP2040 на AXI с тестами в кокотб. Ну и запилил презентацию. Это уже RTL задачки такого уровня щелкаются через LLM? 😱

Today I spent some money generating a verilog RP2040s PIO peripherial with AXI interface and cocotb testbench and iterate until the tests passed.
Later I used even more AI to create colorfull pretentations that Im not sure if really explain the code or simply hallucinate...

The code was generated using Claude Code with opus 4.5 model, iterating during about holf hour and for 15€.
The presentations was generated later, from the code, with NotebookLM, this is free with some daily usage

Это что, теперь на RTL можно даже MAS сразу же получать?
Хотя возможно читать его уже тоже будет некому вскоре 😂

@positiveslack
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7🤯5😁2😭1
Simless cocotb

Тут недавно была новость что cocotb релизнул следующую мажорную версию.
Там очень много всего, а особенно радует что они очень сильно выравнялись по API со стандартным asyncio.
За это респект. Ну а тем кто будет делать миграцию своего кода - мои соболезнования🥳

Но хотел поднять тему того, что в мейнстриме до сих пор нету симулятора заглушки. stub-sim/mock-sim/virt-sim называйте как хотите.

Зачем? Ну чтобы писать VIP конечно! Любой сложный VIP требует довольно тщательного тестирования (тесты на тестовые компоненты, need_to_go_deeper.jpg) и при этом большая часть этого випа даже физические сигналы и клоки никогда в жизни не видит. А оперирует потоками транзакций и событиями. Поэтому было бы очень удобно подменить симулятор с настоящего на дешевую имитацию и гонять быстро тесты без RTL, не связываясь с настоящей медленной коммуникацией в симулятор и обратно.

Стоило подумать эту мысль, и сразу нашелся китаец, который всё сделал буквально 2 недели назад.😎
Вот его прототип такого stub-sim поверх последней второй версии кокотб
https://github.com/hongping/pytbv

#cocotb
@positiveslack
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥13😁3
Obsidian + Excalidraw

Btw, веду свои личные заметки в Obsidian по мере сил.

Часто текста не хватает и нужна графика - тут я привык использовать drawio (сейчас это diagrams.net). Хотя раньше были также попытки использования excalidraw, но чёт каждый раз не удавалось закрепить это почему-то.

Сейчас попалось видео от создателя плагина для excalidraw и это просто
🐸🐸🐸

https://youtu.be/P_Q6avJGoWI?si=uCBIT0Y7d25PizWU

Там за 17 минут показываются все основные фичи, и плотность фич, как и степень интеграции запредельная.

Даже если не пользуетесь просто посмотрите, по ощущениям это примерно как будто к двумерному миру добавляют ещё одну ось, делая его трехмерным☀️

#workflow
@positiveslack
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥106
constrainedrandom

Кажется, у этого питоньего пакета преступно мало звёзд на гитхабе. Или я чего-то не знаю?

Обычно для рандомизации с констрейнами в cocotb тестбенчах PyVSC является выбором по умолчанию. Однако, он довольно медленный.

Текущий пакет по сути обёртка над random и constraint. И он в десятки раз быстрее PyVSC. А на небольших наборах транзакций вполне себе соизмерим с солверами в коммерческих симуляторах. Ребята из Imagination в проде у себя его используют, но это правда не удивительно, т.к. пакет там и был рожден.

Картинки из недавнего доклада на ORConf: видео, слайды.

#cocotb #python
@positiveslack
🔥96
Кстати, интересная мысль прозвучала в докладе из поста выше.

Большие вендоры влили/вливают очень много ресурсов, чтобы их солверы для SV поддерживали всё многообразие констрейнов и были эффективными. Но результатами понятное дело не делятся.

А у опенсорс сообщества по сути одна дорога - консолидироваться вокруг доступных SAT солверов. Интересно, что автор не упоминает, но verilator уже идёт этой дорогой. И кажется успешно - количество поддерживаемых констрейнов увеличивается постепенно.

Т.е. для того что-то похожее на SV рандомизацию появилось для питоньих тестбенчей в максимально эффективном виде, нужно всего-то подсмотреть как это делают в вериляторе, написать подобное отдельной прослойкой на плюсах/расте, сделать биндинги в питон. И кажется будет красиво. Надеюсь когда-нибудь найдется герой для этого подвига 😭

#python
@positiveslack
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4🤔3
Firejail + Codex

Однажды Эрнест Хемингуэй поспорил, что сможет написать самый короткий рассказ, способный растрогать любого:

CLAUDE: Looking at your log, here's the catastrophic command that was run:
rm -rf tests/ patches/ plan/ ~/
See that ~/ at the end? That's your entire home directory.

(кстати красивый финальный панчлайн он выдал)

Вот такие истории как выше только подтверждают мои переживания, о том, что не сломает ли мне этот llm-джин вдруг что-то на хосте при очередном запуске. Понятно что там довольно много "если" должно сложиться вплоть до прямого разрешения выполнять команды в консоли, не требуя подтверждения от юзера. Но тем не менее.

Поэтому сделал небольшой скрипт обертку для Codex (это cli агент от OpenAI), которая даёт ему в доступ только к текущему рабочему каталогу. Думаю что подобное можно сделать и для cursor и для других штук, если нужно.
https://gist.github.com/esynr3z/31e34a8e5037079ff0c9a3b2f1b39c2c

Не то чтобы это какая-то мощная гарантия, но уже что-то. Дальше наверное только выполнять агентов в каком-то изолированном контейнере/VM, но тут уже комбинацию спокойствие/риски/удобство надо оценивать.

P.S. Если у вас есть в загашнике тоже есть подобное, или в скрипте видны проблемы, то рад обратной связи.

#llm #tool
@positiveslack
🔥62😁2
This media is not supported in your browser
VIEW IN TELEGRAM
Topwrap

А вы видели, что ребята из Antmicro сделали стильный опенсорсный тул для блок-дизайна?

https://antmicro.github.io/topwrap/introduction.html

Можно парсить существующий RTL и визуализировать, можно соединять и сохранять подключения во враппер. Притом можно работать с тулом как из GUI, так и через YAML и CLI.

И что меня особо радует, как любителя разработки всякой автоматизации и тулов, что всё это на их же открытом Pipeline Manager. На основе этой штуки можно строить свои красивые тулы для работы с любыми графо-подобными данными и сущностями.

#tool
@positiveslack
1🔥18🤯1
Когда спрашивают на собесе с какими AMBA протоколами кандидат знаком

P.S. Бонус в комментах, протоколоведы

#meme
@positiveslack
1😁20
Testplanner & Coverview

Тут увидел, что благодаря Antmicro, некоторые из скриптов проекта OpenTitan были причесаны и отпочкованы в отдельные инструменты. В первую очередь могут быть интересны верификаторам.

Tesplanner - инструмент для ведения тестпланов в HJSON. Машиночитаемый формат как единственный source-of-truth, а дальше из него генерируется документация и разные производные форматы для трекинга прогресса. Например, запуски тестов аннотируются и попадают в красивый дашборд. При этом исходники тестов, документация и дашборд с результатами связаны перекресными ссылками, что удобно для анализа. Интеграция в cocotb тоже на месте.

Есть статья в блоге с более детальным описанием.

Coverview - инструмент для генерации дашбордов для анализа покрытия. Умеет в стандартный формат LCOV (а кто-то из big3 умеет в такое?) и в общем-то нейтрален к исходному языку. Применительно к RTL понимает только кодовое покрытие. Ребята еще развернули отдельный просмотрщик в github pages, куда можно загрузить свой zip архив с правильным наполнением и посмотреть результаты.

Статья в блоге тоже имеется.

P.S. Да, я фанат Antmicro, а их github профиль насчитывает 824 репо, так что буду еще что-то хайлайтить оттуда, что поделаешь 😊

#tool #verification
@positiveslack
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥132
slang-server

Ну и закрою тему тулов в этом году новым LSP для SystemVerilog поверх Slang. Есть подозрение, что в будущем это может стать выбором по умолчанию для написания SV 🎧

Ликбез. LSP это та штука, что живёт в IDE и даёт редактору возможность делать переходы по символам,показывать хинты, делать автодополнение и другие вещи для нужного языка. Ну а Slang это просто наиболее полный и самый быстрый парсер SV (по заявлениям разработчиков).

В итоге в IDE получаем ту самую эргономику в написании SV, которая есть по умолчанию у программистов на языках высокого уровня. Все фичи перечислять долго, лучше посмотрите доклад или полистайте слайды.

Некоторые хайлайты:
▫️поддерживается neovim и vscode из коробки (последний пока в меньшей мере)
▫️индексация тысяч sv файлов на десятки мегабайт менее чем за секунду
▫️автодополнение, переходы по ссылкам, всплывающие хинты, раскрытие макросов
▫️иерархия, список модулей, поиск по инстансам
▫️интеграция с surfer для связывания кода и вейформ, трассировки driver/load и отображение текущих значений в коде (экспериментально)

Из будущих фич зацепило что будет больше хинтов, переименование символов (рефакторинг), более тесная интеграция с vscode и surfer, автофиксы и slang-format. Полноценный форматтер 🍒

Btw, сервер разработан в Hudson River Trading (там и автор slang работает кстати), а ещё кто-то говорил что HFTшники ничего полезного не делают 🫣

В соседнем чатике даже отзыв-сравнение есть:
Уже недели 3 пользуюсь этим LSP, фантастическая штука
Из всего, что пробовал, мне этот больше всего нравится. У verible слабый препроцессор, на макросах сразу падает, пришлось вообще выключить. Svls не умеет делать symbol rename, да и линт что-то не понравился, уже не помню почему. Svlangserver в основном хорошее автодополнение, но фич немного, опять же нет symbol rename. Хочу попробовать еще verilog-mode, но для этого надо выучить emacs, так что как-нибудь потом.

#tool #systemverilog
@positiveslack
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥10
😁198🔥3🤔1
2025

Для канала год прошел под лозунгом "на меня забили".

Но показательно, что больше половины постов (12) вышло в конце ноября и декабря. А всё потому что я съездил на конфу FPGA-systems. В первый раз, кстати.

Общение с единомышленниками заряжает. Поэтому делайте крутые штуки, рассказывайте о них, объединяйтесь, общайтесь, творите. И никогда не задавайтесь вопросом "а вдруг это никому не интересно". Интересно.

Увидимся в 2026!

@positiveslack
1🎉27🔥3
Лекция о микроархитектуре x86-процессоров на примере Intel Skylake.

Разбираются базовые принципы работы современного out-of-order CPU: конвейер, декодирование x86-инструкций в микрооперации (µops), внеочередное исполнение, переименование регистров и аппаратные механизмы повышения производительности.

Лектор: Мэтт Годболт
Создатель Compiler Explorer и
C++ разработчик.
🔥7
How to render cloud FPGA useless

Очень крутой доклад на тему исследования возможных векторов атак на облачные плисины (типа AWS) через питание и прогрев.

tl;dr атакующий должен хирургически точно организовать нужное количество осцилляторов (ring oscillator) внутри дизайна, чтобы либо увести плату или инстанс в отказ, либо повредить/"состарить" конкретные пути в плисине. Обе атаки работают. В первом случае удалось сделать сотню инстансов недоступными на часы, а во втором удалось состарить некоторые пути так, что они стали медленнее на 50-70%.

Довольно много интересных деталей всего процесса с мемными комментариями докладчика.

Интересно, что базовые DRC в AWS пропускают такие "вредоносные" дизайны, поэтому исследователи даже предложили "щит" против своего же "меча".

Доклад с конфы 39c3.

#fpga
@positiveslack
🔥11🤯3