fa
Feedback
positive slack

positive slack

رفتن به کانال در Telegram

Just yelling at pieces of silicon until they do what I want. ASIC/FPGA, HDL, UVM, embedded, memes, thoughts, etc. Feedback: @esynr3z Longreads: esynr3z.github.io

نمایش بیشتر
519
مشترکین
اطلاعاتی وجود ندارد24 ساعت
اطلاعاتی وجود ندارد7 روز
اطلاعاتی وجود ندارد30 روز
آرشیو پست ها
Verilator + cocotb Тут буквально на днях случилось чудо. В релизе Verilator 5.006 пофиксили давнюю проблему с VPI, и теперь cocotb должен нормально работать с последним verilator. Cейчас пока что мейтенеры cocotb гоняют тесты против последней версии симулятора и осталось подождать совсем чуть-чуть. Но это уже мелочи - так то на самом деле больше чем джва года уже прошло с момента диагностики этой проблемы. #verificiation #cocotb #verilator @positiveslack

The 2022 Wilson Research Group Functional Verification Study Исследование почти полностью опубликовано. Обновил ссылки в ориг
+7
The 2022 Wilson Research Group Functional Verification Study Исследование почти полностью опубликовано. Обновил ссылки в оригинальном посте. В общем, в мире ASIC всё стабильно плохо - проекты почти никогда не укладываеются в расписание, половину рабочих мест и времени проекта съедают верификаторы, и всё равно куча логических багов приводит к 2-3 респинам =) P.s. посмотрите как лихо python ворвался в верификацию, моя ставка что в следующем исследовании его столбик будет выше раза в полтора минимум. #asic #design #verification @positiveslack

Awesome Open Hardware Verification A curated List of Free and Open Source hardware verification tools and frameworks. https://github.com/ben-marshall/awesome-open-hardware-verification #verification #awesome @positiveslack

Verilator и UVM [3] На днях в открытый доступ выложили видео "Open source SV UVM support" с недавней конференции CHIPS Alliance, о которой было в предыдущей серии. Кстати, ещё материал вышел и в виде статьи. Итак, самое главное что было добавлено в последний Verilator 5 - это режим event-driven simulation. При этом старый cycle-based подход не ломается и всё также быстр. Но самое интересное, что динамический планировщик написали на C++20 coroutines и он на удивление разработчиков оказался практически также быстр как оригинальный статический. Это большой шаг в сторону поддержки UVM и огромного пласта всяких поведенческих моделей на Verilog. Сами авторы утверждают что уже видно свет в конце туннеля и мы увидим первый UVM тестбенч бегущий на Verilator уже в 2023. Можно даже зайти на специальный дашборд и наблюдать как Verification Feature Log должен зеленеть днём за днем. Нужно сделать ещё тонну работы, но на текущий момент уже было добавлено/улучшено следующее: ▫️Классы в целом ▫️Виртуальные интерфейсы ▫️Параметризированные классы ▫️Concurrent assertions ▫️Constraints (на основе CRAVE библиотеки) ▫️Signal strength ▫️Semaphore, mailbox ▫️Ключевое слово with для find и других методов работы с массивами И last but not least, кроме функциональных фич, разработчики также пытаются улучшать скорость рантайма и потребления памяти, чтобы получать гораздо лучшую производительность при симуляции современных огромных дизайнов, что не может не радовать. #verilator #uvm #verification @positiveslack

FakePGA https://github.com/tvlad1234/FakePGA Очень медленная FPGA из RP2040 микроконтроллера: * Verilator компилирует синтезируемый RTL в C++ модель * Модель исполняется на RP2040 * Доступны IO * Максимальная частота работы модели 5кГц Собственно, why not? #fpga #rp2040 #verilator @positiveslack

SAWD: Systemverilog Assertions waveform based development tool И снова SVA. Кстати, это наверное единственная глава стандарта SV, которой целиком и полностью посвящают целые книги. Идея предложенного инструмента проста и элегантна. Вместо того, чтобы крутиться в цикле: - написать ассерт - посимулировать n часов - до-/переписать ассерт - посимулировать n часов - ... Предлагается просимулировать один раз, и на полученный vcd применять ассерты, и быстро получать результат. Наверняка, для любых ассертов и вейвов работать не будет. Но идея классная. Автор выступил на DVCon Europe 2022, и обещает заопенсорсить инструмент. Оригинальный paper пока тоже не нашёл, только мемный пересказ в блоге. #sva #system_verilog #tool #vcd @positiveslack

SVA и нейросети А вообще как будто ближайшим коммерческим тулом для верификаторов с нейросетями будет некий парсер/генератор
SVA и нейросети А вообще как будто ближайшим коммерческим тулом для верификаторов с нейросетями будет некий парсер/генератор English<->SVA. Вижу по Linkedin, что много кто играется с ChatGPT для этого, и часто оно даёт прям довольно точные результаты, но нестабильно конечно. На последнем DVCon 2022 USA даже был доклад Automatic Translation of Natural Language to SystemVerilog Assertions Авторы открыли сайт с результатами на поиграться после символического ввода почты. Работает получше chatgpt на мой поверхностный взгляд. https://ispec.ai/ Так что совсем не удивлюсь когда через год другой какой-нибудь Synopsys будет продавать уже production-ready тул с этим. #sva #neural_network #chatgpt @positiveslack

Me: Create 3 jokes about ASIC design and verification

ChatGPT:
1. What did the ASIC designer say when asked why he was so excited about RTL freeze? "It means I can finally start debugging!"

2.Q: What do you call an ASIC that doesn't verify correctly?
A: A fail-ic! 

3.Q: What did the ASIC Verification Engineer say when asked what he does for a living?
A: I spend my days checking that the same bugs don't keep coming back! 

Ладно, признаюсь - это не один ответ. Пришлось сделать с десяток прогонов, и выбрать что-то имеющее хоть капельку юмора или жизненности. #meme #chatgpt @positiveslack

playhdl https://github.com/esynr3z/playhdl Запилил тут свой локальный edaplayground на питоне. Небольшая cli утилита для быстрого поднятия симуляции маленьких кусочков HDL на локально доступных симуляторах. Никаких зависимостей, должна работать на любом линуксе с python 3.8+. Больше деталей в README. #python #tool #eda #hdl

Verilator и UVM [2] Продолжаю держать руку на пульсе опенсорсной поддержки UVM. Если кто пропустил, то не так давно вышла нов
Verilator и UVM [2] Продолжаю держать руку на пульсе опенсорсной поддержки UVM. Если кто пропустил, то не так давно вышла новая версия verilator 5.0. Самое главное что в ней случилось - это то, что ребята впилили новый динамический планировщик (PoC был показан ранее), а значит стали доступны конструкции управления временем и событиями #, wait, @, event. Cтолбик verilator всё зеленее и зеленее на SV-Tests. Теперь же проводится конференция CHIPS Alliance в Google, где в том числе пообсуждают эти нововведения: We will discuss the current capabilities, opportunities and the road ahead for this effort, including dynamic scheduling which is included in the Verilator 5.0 release, the UHDM SystemVerilog frontend as well as plans for supporting further SystemVerilog constructs and other HDL languages. Вроде как даже можно свободно зарегистрироваться на онлайн посещение, но надеюсь, что слайды и видео будут доступны на сайте/ютубе как это обычно бывает. #verilator #uvm #verification @positiveslack

open_circuits_wallpapers.zip26.65 MB

Open Circuits Пришел экземпляр почти спустя два месяца от заказа. Очень крутое качество - жёсткая обложка, отменное качество
Open Circuits Пришел экземпляр почти спустя два месяца от заказа. Очень крутое качество - жёсткая обложка, отменное качество печати и страниц. Эстетика на уровне. Подбил тут экономику при заказе через посредника: - $39.99 книга - $7.99 услуги посредника (оформить заказ на сайте и оплатить) - $3.99 доставка внутри США - $13.8 доставка до РФ Итого: $65.77. Ну в общем, не так чтобы сильно дёшево нынче бумажные книги собирать 🤷‍♂ Кстати, саму книгу можно уже найти на либгене, но там нету архива с некоторыми изображениями из книги в хайрезе. Это был бонус предзаказа. #book #electronics #components @positiveslack

Всем пятницы и работающих с первого раза корок #meme @positiveslack
Всем пятницы и работающих с первого раза корок #meme @positiveslack

Отладка микроконтроллера через Type-C кабель "Один type-c, чтобы править всеми". Гениально я считаю: A2 - JTAG TDI A3 - JTAG
Отладка микроконтроллера через Type-C кабель "Один type-c, чтобы править всеми". Гениально я считаю: A2 - JTAG TDI A3 - JTAG TMS/TMSC (SWDIO)[MOSI] A8, B8 - Boot (nTRST) A10 - Blink (для визуальной отладки) A11 - MCU reset (TRST, nSRST) B11 - UART RX B10 - UART TX B3 - JTAG TDO (SWDIO)[MISO] B2 - JTAG TCK/TCKС (SWCLK)[SCK] #usb #debug #typec #embedded @positiveslack

Why do you cry, Willy? Why? Все же любят задачки на нюансы работы SV? Так вот, если добавить в код такой пакет (uvm там просто для примера) и импортировать его где-либо, то симуляция упадет. Почему и как? package foobar; import uvm_pkg::*; task foo(uvm_reg_field field); uvm_reg parent_reg = field.get_parent(); parent_reg.reset(); endtask endpackage #system_verilog @positiveslack

The 2022 Wilson Research Group Functional Verification Study Кстати, тут недавно Wilson Research Group начали выкладывать традиционную серию постов с трендами FPGA/ASIC индустрии. Пока только есть первые три части: ▫️Part 1 – FPGA Design Trends ▫️Part 2 – FPGA Verification Effectiveness Trends ▫️Part 3 – FPGA Verification Effort Trends ▫️Part 4 – FPGA Verification Effort Trends (Continued) ▫️Part 5 – FPGA Verification Technology Adoption Trends ▫️Part 6 – FPGA Verification Language and Library Adoption Trends ▫️Part 7 – IC/ASIC Design Trends ▫️Part 8 – IC/ASIC Resource Trends ▫️Part 9 – IC/ASIC Verification Technology Adoption Trends ▫️Part 10 – IC/ASIC Language and Library Adoption Trends ▫️Part 11 – IC/ASIC Power Management Trends ▫️Part 12 – IC/ASIC Verification Results Trends Последний раз исследование было в 2020. #fpga #asic #design #verification @positiveslack

Pro tip: добавляйте "dave_59" к любому запросу в гугл по verilog/systemverilog/uvm, чтобы получать максимально качественные и
Pro tip: добавляйте "dave_59" к любому запросу в гугл по verilog/systemverilog/uvm, чтобы получать максимально качественные и подробные результаты. #meme @positiveslack

UVM verbosity control Заметки на полях про ручной контроль подробности печати отдельных компонентов. Нужно чтобы точечно подзаткнуть слишком говорливых, или дать слово только избранным компонентам при дебаге. ✅ Для компонентов (всё что наследуется от uvm_component, а точнее uvm_report_object) всё просто. ▫️ Установить уровень UVM_DEBUG для компонента foobar this.foobar.set_report_verbosity_level(UVM_DEBUG) ▫️Установить уровень UVM_DEBUG для компонента foobar, и всех входящих в него компоненов рекурсивно this.foobar.set_report_verbosity_level_hier(UVM_DEBUG) ▫️Сделать тоже самое, но через плюсарг можно с помощью +uvm_set_verbosity=component_name,id,verbosity,phase_name ⚠️ С объектами (всё что от uvm_object - сиквенсы, айтемы и прочее) сложнее. Они не присутствуют в дереве иерархии, и тут возможно только два способа, и оба включают знание точного ID печати. ▫️Через синглтон uvm_top, который можно взять из uvm_pkg или получить через uvm_root::get() uvm_top.set_report_id_verbosity("exact/print/id", UVM_DEBUG) ▫️Через плюсарг +uvm_set_verbosity, где компонентом указываем uvm_top 💡Но если задуматься об этом заранее, то можно ещё решить проблему структурно, задавая другой контекст для печати. ▫️ Создавать отдельный uvm_report_object где-бы то ни было и печатать через него ▫️ Печатать через ближайший доступный компонент, например сиквенсор для сиквенса #uvm #verification @positiveslack

Untangling Virtual Methods https://verificationhaven.blot.im/untangling-virtual-methods by @zvord Всё что вы хотели знать про виртуальные методы в SystemVerilog, но боялись спросить. #system_verilog @positiveslack

Wavedrom to SVA generator https://ahmedalsawi.github.io/posts/2022/10/wavedrom-to-sva-generator/ Что только люди не придумают, чтобы не писать ассерты 🤷‍♂️ #systemverilog #sva #wavedrom @positiveslack