Приветствую тебя, читатель! Меня зовут Сергей и я основатель канала VFA (Verification For All). Здесь я простым языком рассказываю о сложном процессе верификации цифровых устройств.
В данном канале будут публиковаться записи лекций, статьи, заметки, разборы кода, обзоры новостей и многое другое. Будет интересно, оставайся!
В данном канале будут публиковаться записи лекций, статьи, заметки, разборы кода, обзоры новостей и многое другое. Будет интересно, оставайся!
Media is too big
VIEW IN TELEGRAM
Какие подходы применяются для функциональной верификации RISC-V ядер в настоящее время?
В каких случаях используется каждый из них?
Для чего используются интерфейсы RVFI и RVVI?
Как помогут SystemVerilog Assertions?
Эти и другие темы отражены в лекции "Особенности современных подходов к верификации RISC-V ядер".
В каких случаях используется каждый из них?
Для чего используются интерфейсы RVFI и RVVI?
Как помогут SystemVerilog Assertions?
Эти и другие темы отражены в лекции "Особенности современных подходов к верификации RISC-V ядер".
В данном канале периодически будут публиковаться небольшие заметки, где я доступным языком объясняю концепции, относящиеся к верификации.
Сегодняшняя посвящена виртуальному интерфейсу.
SystemVerilog и виртуальный интерфейс. Связь статического и динамического мира симуляции.
Как вам такой формат?
Хорошего дня!🤝
Сегодняшняя посвящена виртуальному интерфейсу.
SystemVerilog и виртуальный интерфейс. Связь статического и динамического мира симуляции.
Как вам такой формат?
Хорошего дня!🤝
Telegraph
SystemVerilog и виртуальный интерфейс. Связь статического и динамического мира симуляции.
Вместе с большим количеством нововведений несинтезируемого подмножества (class, fork-join, randomize(), queue, ...) SystemVerilog "порадовал" инженеров новыми синтезируемыми конструкциями. Одной из них являлся интерфейс (interface). Задумка здесь очень простая.…
Верификация на SystemVerilog. "Я же все правильно написал, почему не работает?" или "гонки" сигналов на симуляции.
На лекции в Школе синтеза цифровых схем я обещал разобрать явление "гонок" сигналов в ходе симуляции. Слово держу. Приятного чтения и хорошего дня!
На лекции в Школе синтеза цифровых схем я обещал разобрать явление "гонок" сигналов в ходе симуляции. Слово держу. Приятного чтения и хорошего дня!
Telegraph
Верификация на SystemVerilog. "Я же все правильно написал, почему не работает?" или "гонки" сигналов на симуляции.
Вступление Приветствую тебя, читатель! Проверить 8-битный последовательностный сумматор. Казалось бы, что может быть проще? Но есть нюансы. Входные данные Итак, имеем дизайн:
"Клондайк" знаний по верификации или статьи Clifford Cummings (часть 1).
Доброго времени суток, дорогие единомышленники! Мне нравится слово единомышленники, потому что, так или иначе, в этом канале нас с вами объединяет стремление к знаниям в сфере верификации. А значит, мы смотрим в одном направлении.
Хочу поделиться с вами набором статей, которые в свое время, лично для меня,стали открытием и "глотком свежего воздуха". Это будет большой, но, однозначно, полезный пост в 2 частях.
Речь пойдет о статьях, вероятно, известного части из вас Clifford Cummings. Человека с более чем 40 годами опыта проектирования и верификации цифровых устройств, основателя компании Sunburst Design, реализующей обучение инженеров по всему миру. Клиффорд публикует обучающие статьи несколько десятков лет, большинство из них находятся в открытом доступе.
В данном посте я сформировал свой "золотой набор" публикаций Клиффорда по верификации, которые однозначно заслуживают внимания каждого из вас. К каждой из них добавил ремарку, чтобы вы сразу определились, интересна вам публикация или нет.
А вот и 1 часть списка:
SystemVerilog Event Regions,Race Avoidance & Guidelines. Стопроцентная база о регионах выполнения SystemVerilog. Статья посвящена очередности обработки событий современных SystemVerilog симуляторов. Поможет инженеру в понимании того, что "под капотом" у симулятора, и как вообще моделируется работа устройства в ходе тестирования. Рекомендую всем и каждому.
SystemVerilog's Virtual World - An Introduction to Virtual Classes, Virtual Methods and Virtual Interface Instances. Прекрасная публикация, "проливающая свет" на виртуальный мир SystemVerilog и не только. Достаточно подробно разбираются классы, но основной упор делается на принципы ООП, разбираются виртуальные методы, полиморфизм, особенности переопределения. Особое место отводится виртуальным интерфейсам. Если начали изучать ООП в SystemVerilog - это ваша статья!
SystemVerilog Virtual Classes, Methods, Interfaces and Their Use in Verification and UVM. Публикация разбирает практически те же концепции, что и статья выше, но уже в разрезе UVM и применимости концепций ООП в данной методологии. Содержит лучшее объяснение upcasting/downcasting, которое я вообще встречал, а также полезнейшие рекомендации по использованию виртуальных интерфейсов в UVM, взаимодействию с ними через базу конфигурации (
UVM Transactions - Definitions, Methods and Usage. Основательная статья о "грамотном" использовании UVM-транзакций. Разбирается базовый класс транзакции (
UVM Analysis Port Functionality and Using Transaction Copy Commands. Публикация о мониторинге дизайна в UVM и анализе получаемых данных. Разбираются базовые концепции отслеживания, а также достаточно подробно разбирается UVM TLM 1.0. Не знаете, что это такое? - фатальная ошибка. Самое время прочитать эту статью. Особое внимание уделяется необходимости копирования транзакций при отслеживании. Советы из статьи могут избавить вас от часов отладки нерабочего кода. Присутствует разбор TLM FIFO, сравнение
P.S. В посте указаны прямые ссылки на статьи, однако оригинальные pdf-файлы также будут прикреплены в комментарии, чтобы у вас был альтернативный источник.
Доброго времени суток, дорогие единомышленники! Мне нравится слово единомышленники, потому что, так или иначе, в этом канале нас с вами объединяет стремление к знаниям в сфере верификации. А значит, мы смотрим в одном направлении.
Хочу поделиться с вами набором статей, которые в свое время, лично для меня,стали открытием и "глотком свежего воздуха". Это будет большой, но, однозначно, полезный пост в 2 частях.
Речь пойдет о статьях, вероятно, известного части из вас Clifford Cummings. Человека с более чем 40 годами опыта проектирования и верификации цифровых устройств, основателя компании Sunburst Design, реализующей обучение инженеров по всему миру. Клиффорд публикует обучающие статьи несколько десятков лет, большинство из них находятся в открытом доступе.
В данном посте я сформировал свой "золотой набор" публикаций Клиффорда по верификации, которые однозначно заслуживают внимания каждого из вас. К каждой из них добавил ремарку, чтобы вы сразу определились, интересна вам публикация или нет.
А вот и 1 часть списка:
SystemVerilog Event Regions,Race Avoidance & Guidelines. Стопроцентная база о регионах выполнения SystemVerilog. Статья посвящена очередности обработки событий современных SystemVerilog симуляторов. Поможет инженеру в понимании того, что "под капотом" у симулятора, и как вообще моделируется работа устройства в ходе тестирования. Рекомендую всем и каждому.
SystemVerilog's Virtual World - An Introduction to Virtual Classes, Virtual Methods and Virtual Interface Instances. Прекрасная публикация, "проливающая свет" на виртуальный мир SystemVerilog и не только. Достаточно подробно разбираются классы, но основной упор делается на принципы ООП, разбираются виртуальные методы, полиморфизм, особенности переопределения. Особое место отводится виртуальным интерфейсам. Если начали изучать ООП в SystemVerilog - это ваша статья!
SystemVerilog Virtual Classes, Methods, Interfaces and Their Use in Verification and UVM. Публикация разбирает практически те же концепции, что и статья выше, но уже в разрезе UVM и применимости концепций ООП в данной методологии. Содержит лучшее объяснение upcasting/downcasting, которое я вообще встречал, а также полезнейшие рекомендации по использованию виртуальных интерфейсов в UVM, взаимодействию с ними через базу конфигурации (
uvm_config_db
). Начали изучать UVM? Эта статья - must have.UVM Transactions - Definitions, Methods and Usage. Основательная статья о "грамотном" использовании UVM-транзакций. Разбирается базовый класс транзакции (
uvm_sequence_item
), встроенные методы этого класса. Сравниваются различные подходы по копированию транзакций, их сравнению, выводу информации о полях. Даются советы, которые помогут ускорить процесс симуляции. По моему мнению, статья немного перегружена и сложна для восприятия новичку. Но если уже есть некоторый опыт в UVM, то это отличный источник новых знаний.UVM Analysis Port Functionality and Using Transaction Copy Commands. Публикация о мониторинге дизайна в UVM и анализе получаемых данных. Разбираются базовые концепции отслеживания, а также достаточно подробно разбирается UVM TLM 1.0. Не знаете, что это такое? - фатальная ошибка. Самое время прочитать эту статью. Особое внимание уделяется необходимости копирования транзакций при отслеживании. Советы из статьи могут избавить вас от часов отладки нерабочего кода. Присутствует разбор TLM FIFO, сравнение
queue
с mailbox
.P.S. В посте указаны прямые ссылки на статьи, однако оригинальные pdf-файлы также будут прикреплены в комментарии, чтобы у вас был альтернативный источник.
"Клондайк" знаний по верификации или статьи Clifford Cummings (часть 2).
2 часть списка:
OVM/UVM Scoreboards - Fundamental Architectures. Прекрасная статья об архитектуре чекера/компаратора/scoreboard. Одним словом об архитектуре класса проверки в UVM. Разбираются основные подходы к проектированию. Обозначаются преимущества и недостатки. Приводится краткий разбор и пример макроса
Applying Stimulus & Sampling Outputs ‐UVM Verification Testing Techniques. Must have статья для тех, кто хочет в полной мере освоить методы взаимодействия с портами дизайна. В том числе при верификации с учетом физических задержек распространения сигнала. Тут тебе и про нулевые задержки, и про минимально-возможный шаг симуляции (
OVM & UVM Techniques for Terminating Tests. Достаточно всеобъемлющая статья про фазы UVM-симуляции, способы выбора тестового сценария, его завершения и не только. Частично разбирается иерархия классов UVM, класс
Using UVM Virtual Sequencers & Virtual Sequences. Абсолютно базовая публикация про виртуальные последовательности в UVM и хорошие практики для их запуска. Объясняются причины, по которым использование виртуальных последовательностей порой сильно упрощает жизнь инженеру. Разбирается виртуальный секвенсер (virtual sequencer). Очень нравится рассказ про
UVM Reactive Stimulus Techniques. Публикация, раскрывающая основные концепции взаимодействия
The Untapped Power of UVM Resources and Why Engineers Should Use the uvm_resource_db API. Статья 2023 года, которая досконально разбирает базу данных UVM, ее внутреннее устройство и методы для взаимодействия с ней. Сравниваются API для доступа к базе данных:
Yikes! Why is My SystemVerilog Still So Slooooow?
Завершающая список публикация. Очень полезна для общего кругозора в нашей с вами области. Содержит огромное количество советов по ускорению симуляции кода при помощи "хороших практик". Разбираются примеры "плохих" и "хороших" реализаций по итерированию, созданию и рандомизации классов, выводу отладочной информации в UVM и т.п. Аналогов данной статьи не находил, очень полезно. Единственный минус - часть примеров используют UVM. Тем не менее, советую абсолютно всем.
2 часть списка:
OVM/UVM Scoreboards - Fundamental Architectures. Прекрасная статья об архитектуре чекера/компаратора/scoreboard. Одним словом об архитектуре класса проверки в UVM. Разбираются основные подходы к проектированию. Обозначаются преимущества и недостатки. Приводится краткий разбор и пример макроса
uvm_analysis_imp_decl
, позволяющего проводить параллельную обработку потоков транзакций одного типа. Отличная публикация для структурирования знаний о UVM.Applying Stimulus & Sampling Outputs ‐UVM Verification Testing Techniques. Must have статья для тех, кто хочет в полной мере освоить методы взаимодействия с портами дизайна. В том числе при верификации с учетом физических задержек распространения сигнала. Тут тебе и про нулевые задержки, и про минимально-возможный шаг симуляции (
#1step
), и про гонки в нулевой момент времени симуляции (time-0 race conditions), и про отслеживание асинхронных событий между фронтами тактового сигнала. Множество советов и хороших практик. Ни в одной статье не видел ничего похожего. К минусам можно отнести, что примеры с использованием UVM, так что хотя бы минимальное понимание этой библиотеки все таки нужно.OVM & UVM Techniques for Terminating Tests. Достаточно всеобъемлющая статья про фазы UVM-симуляции, способы выбора тестового сценария, его завершения и не только. Частично разбирается иерархия классов UVM, класс
uvm_root
и случаи обращения к нему. Статья также освещает UVM Objections и задачу запуска теста (run_test
). Публикация интересна прежде всего тем, что объясняет, почему лучше всего использовать UVM Objections для контроля выполнения тестового сценария. Объем большой, у меня вопросы вызывает 6 раздел, он перегружен по моему мнению. Тем не менее статья будет полезна для инженеров, уже имеющих базовый опыт написания UVM-окружений.Using UVM Virtual Sequencers & Virtual Sequences. Абсолютно базовая публикация про виртуальные последовательности в UVM и хорошие практики для их запуска. Объясняются причины, по которым использование виртуальных последовательностей порой сильно упрощает жизнь инженеру. Разбирается виртуальный секвенсер (virtual sequencer). Очень нравится рассказ про
m_sequencer
и p_sequencer
, а также разницу между ними. От себя замечу, что для запуска последовательностей в примерах используется два подхода: через макрос uvm_do_on
и через встроенный в последовательность метод start()
. Я советую всегда использовать start()
. Статью рекомендую инженерам с опытом в UVM.UVM Reactive Stimulus Techniques. Публикация, раскрывающая основные концепции взаимодействия
uvm_driver
и uvm_sequencer
, в особенности так называемый Reactive Stimulus, то есть подачу входных значений на дизайн, в зависимости от того, какие значения на выходах. Приведен отличный пример верификации FIFO различными тестовыми сценариями, поведение которых зависит от статусных сигналов дизайна. Советую всем, кто планирует осваивать UVM на хорошем уровне.The Untapped Power of UVM Resources and Why Engineers Should Use the uvm_resource_db API. Статья 2023 года, которая досконально разбирает базу данных UVM, ее внутреннее устройство и методы для взаимодействия с ней. Сравниваются API для доступа к базе данных:
uvm_config_db
и uvm_resource_db
. Рассматриваются преимущества и недостатки. Делается вывод в пользу uvm_resource_db
. Статья уникальна в том, насколько глубоко разбирается работа базы конфигурации. Ничего подобного не встречал больше нигде. Рекомендую инженерам с опытом в UVM.Yikes! Why is My SystemVerilog Still So Slooooow?
Завершающая список публикация. Очень полезна для общего кругозора в нашей с вами области. Содержит огромное количество советов по ускорению симуляции кода при помощи "хороших практик". Разбираются примеры "плохих" и "хороших" реализаций по итерированию, созданию и рандомизации классов, выводу отладочной информации в UVM и т.п. Аналогов данной статьи не находил, очень полезно. Единственный минус - часть примеров используют UVM. Тем не менее, советую абсолютно всем.
Кодовое покрытие в функциональной верификации: все говорят, но никто не использует.
Доброго времени суток, дорогие читатели!
Сегодня делюсь своими мыслями по поводу кодового покрытия (англ. code coverage). Да не просто мыслями, там и примеры есть с командами для их воспроизведения, набор хороших практик и даже небольшой бенчмарк. Приятного чтения!
P.S. Начиная с этой публикации, все сопроводительные материалы к постам будут размещаться в GitHub репозитории VFA.
Доброго времени суток, дорогие читатели!
Сегодня делюсь своими мыслями по поводу кодового покрытия (англ. code coverage). Да не просто мыслями, там и примеры есть с командами для их воспроизведения, набор хороших практик и даже небольшой бенчмарк. Приятного чтения!
P.S. Начиная с этой публикации, все сопроводительные материалы к постам будут размещаться в GitHub репозитории VFA.
Teletype
Кодовое покрытие в функциональной верификации: все говорят, но никто не использует.
Приветствую тебя, дорогой читатель! Данная заметка посвящена кодовому покрытию (англ. code coverage). Это одна из метрик, определяющая...
Media is too big
VIEW IN TELEGRAM
SystemVerilog и функциональное покрытие. Дорога длиной в 3 часа.
Доброго времени суток, дорогие читатели! Некоторые из вас уже знают, что я веду курс лекций в школе синтеза цифровых схем. Запланировано 9 лекций, 8 из которых уже прочитано (ссылки в комментариях). В будущем записи я планирую перенести и в этот канал как альтернативный источник. Но теперь к делу.
Делюсь с вами еще не опубликованной и дополненной мной записью лекции по функциональному покрытию. В каждое занятие я стараюсь вкладывать, как бы это патетично не звучало, душу. И эта лекция - не исключение. Почти 3 часа теории и примеров. Начиная с самых азов, и заканчивая тонкостями достаточно высокого уровня. В русскоязычном сегменте подобных открытых материалов я не нашел. В скором времени запись будет опубликована и на YouTube канале школы синтеза.
Забирайте себе, изучайте, распространяйте! Буду признателен за замечания и дополнения.
Спасибо за ваше внимание! Каждой записью, опубликованной здесь, я буду доказывать, что вы не зря его уделяете.
Доброго времени суток, дорогие читатели! Некоторые из вас уже знают, что я веду курс лекций в школе синтеза цифровых схем. Запланировано 9 лекций, 8 из которых уже прочитано (ссылки в комментариях). В будущем записи я планирую перенести и в этот канал как альтернативный источник. Но теперь к делу.
Делюсь с вами еще не опубликованной и дополненной мной записью лекции по функциональному покрытию. В каждое занятие я стараюсь вкладывать, как бы это патетично не звучало, душу. И эта лекция - не исключение. Почти 3 часа теории и примеров. Начиная с самых азов, и заканчивая тонкостями достаточно высокого уровня. В русскоязычном сегменте подобных открытых материалов я не нашел. В скором времени запись будет опубликована и на YouTube канале школы синтеза.
Забирайте себе, изучайте, распространяйте! Буду признателен за замечания и дополнения.
Спасибо за ваше внимание! Каждой записью, опубликованной здесь, я буду доказывать, что вы не зря его уделяете.
SystemVerilog IEEE 1800-2023. Обзор нововведений.
Доброго времени суток, дорогие читатели! Не могу пройти мимо значительного события в сфере микроэлектроники, а уж в сфере её верификации и подавно.
28 февраля 2024 года была опубликована новая версия стандарта языка SystemVerilog 2023. Итак, что же стандарт 2023 года принесёт нового в существующий "уклад" инженеров? Давайте разбираться!
Данный пост представляет собой краткий авторский обзор нововведений. Обзор каждого нововведения будет содержать читать далее
Доброго времени суток, дорогие читатели! Не могу пройти мимо значительного события в сфере микроэлектроники, а уж в сфере её верификации и подавно.
28 февраля 2024 года была опубликована новая версия стандарта языка SystemVerilog 2023. Итак, что же стандарт 2023 года принесёт нового в существующий "уклад" инженеров? Давайте разбираться!
Данный пост представляет собой краткий авторский обзор нововведений. Обзор каждого нововведения будет содержать читать далее
Teletype
SystemVerilog IEEE 1800-2023. Обзор нововведений.
Доброго времени суток, дорогие читатели! Не могу пройти мимо значительного события в сфере микроэлектроники, а уж в сфере её верификации...
Доброго времени суток, дорогие единомышленники! После некоторого затишья у меня для вас 🆕новостной пост🆕.
Вот чем я хочу с вами поделиться:
1. На днях в канале выйдет заметка про использование параметризованных интерфейсов в верификационном окружении. На эту тему я видел уже не одно обсуждение (например, тут и тут). Решил максимально просто и доступно осветить эту тему.
2. Теперь для подавляющего большинства примеров из моих заметок будут предоставляться скрипты для запуска при помощи открытых Verilator и/или Icarus Verilog. Я делаю это с целью "отвязать" читателя от проприетарных симуляторов. Напомню, что примеры располагаются в репозитории на GitHub.
3. Как некоторые из вас знают, я работаю и преподаю в НИУ МИЭТ. Рад сообщить, что в этом месяце я запустил на мощностях ВУЗа факультатив по функциональной верификации. Основан на материалах школы синтеза, которые сейчас неспешно мной дорабатываются. Для меня это знаковое событие, так как моей целью является преподавание целого набора дисциплин по верификации в университете. Страница факультатива на GitHub (загляните в раздел Pull Requests, чтобы увидеть рабочий процесс).
4. В рамках грантового конкурса от российского альянса RISC-V я занимаюсь созданием небольшого курса по функциональной верификации RISC-V ядер. Курс будет построен полностью на открытом ПО и будет содержать практические занятия, которые каждый желающий сможет выполнить. Уже на следующей неделе постараюсь опубликовать ссылку на страницу курса в этом канале. Вы, дорогие читатели, первыми сможете его опробовать.
P.S. Сегодня (01.06.24) я очно буду на конференции FPGA-Systems 2024.1 в Москве. Буду рад пообщаться🤝
Вот чем я хочу с вами поделиться:
1. На днях в канале выйдет заметка про использование параметризованных интерфейсов в верификационном окружении. На эту тему я видел уже не одно обсуждение (например, тут и тут). Решил максимально просто и доступно осветить эту тему.
2. Теперь для подавляющего большинства примеров из моих заметок будут предоставляться скрипты для запуска при помощи открытых Verilator и/или Icarus Verilog. Я делаю это с целью "отвязать" читателя от проприетарных симуляторов. Напомню, что примеры располагаются в репозитории на GitHub.
3. Как некоторые из вас знают, я работаю и преподаю в НИУ МИЭТ. Рад сообщить, что в этом месяце я запустил на мощностях ВУЗа факультатив по функциональной верификации. Основан на материалах школы синтеза, которые сейчас неспешно мной дорабатываются. Для меня это знаковое событие, так как моей целью является преподавание целого набора дисциплин по верификации в университете. Страница факультатива на GitHub (загляните в раздел Pull Requests, чтобы увидеть рабочий процесс).
4. В рамках грантового конкурса от российского альянса RISC-V я занимаюсь созданием небольшого курса по функциональной верификации RISC-V ядер. Курс будет построен полностью на открытом ПО и будет содержать практические занятия, которые каждый желающий сможет выполнить. Уже на следующей неделе постараюсь опубликовать ссылку на страницу курса в этом канале. Вы, дорогие читатели, первыми сможете его опробовать.
P.S. Сегодня (01.06.24) я очно буду на конференции FPGA-Systems 2024.1 в Москве. Буду рад пообщаться🤝
⚡️Открытый ознакомительный курс по функциональной верификации RISC-V ядер⚡️
Доброго времени суток, дорогие читатели! Еще в прошлом посте я рассказывал вам о том, что разрабатываю курс по верификации RISC-V ядер. И рад поделиться, что сегодня я завершил его первую версию.
В настоящее время курс размещен на GitHub и открыт для каждого. Делюсь с вами ссылкой на репозиторий.
Вас там ждет много интересного. Например:
- напишем собственную тестовую программу
- запустим симуляцию в Verilator
- проанализируем временные диаграммы в GTKWave
- напишем 3 версии тестового окружения на SystemVerilog!
- протестируем генератор случайных инструкций
- "пощупаем" программную модель RISC-V Spike
Моим искреннем желанием является сделать курс доступным максимальному количеству людей. Поэтому в нем используется только открытое ПО и предоставляется виртуальная машина, на которой можно сразу начать работу.
Взаимодействуйте с репозиторием, оставляйте обратную связь. Открывайте Pull Requests, создавайте Issue.
Всего вам самого наилучшего!🤝
Доброго времени суток, дорогие читатели! Еще в прошлом посте я рассказывал вам о том, что разрабатываю курс по верификации RISC-V ядер. И рад поделиться, что сегодня я завершил его первую версию.
В настоящее время курс размещен на GitHub и открыт для каждого. Делюсь с вами ссылкой на репозиторий.
Вас там ждет много интересного. Например:
- напишем собственную тестовую программу
- запустим симуляцию в Verilator
- проанализируем временные диаграммы в GTKWave
- напишем 3 версии тестового окружения на SystemVerilog!
- протестируем генератор случайных инструкций
- "пощупаем" программную модель RISC-V Spike
Моим искреннем желанием является сделать курс доступным максимальному количеству людей. Поэтому в нем используется только открытое ПО и предоставляется виртуальная машина, на которой можно сразу начать работу.
Взаимодействуйте с репозиторием, оставляйте обратную связь. Открывайте Pull Requests, создавайте Issue.
Всего вам самого наилучшего!🤝
⚡️Время обновлений! Дорогие читатели, хочу поделиться с вами двумя интересными и важными новостями об улучшении существующих материалов.
▶️ Добавление раздела Bug Hunting в открытый курс по верификации RISC-V ядер.
✔️ Анализируя материалы данного курса, я пришел к выводу, что упустил важный нюанс. В нем отсутствовали разборы реальных (или приближенных к реальности) ситуаций обнаружения и исправления ошибок в RTL процессорных ядер.
✔️ Я кардинально изменил ситуацию, добавив особый раздел, в котором на примере ядра с открытым исходным кодом MIRISCV разбираются подобные ситуации.
✔️ Специально для разработанного раздела я внес пять уникальных багов в тестируемое ядро. В репозитории они находятся в соответствующих именных ветках.
✔️ На момент написания поста новый раздел содержит подробный разбор ситуации исправления и обнаружения одного из багов. Со временем раздел будет дополняться, следите за обновлениями в репозитории!
▶️ Все статьи в одном месте. Миграция на GitHub Pages + MDBook.
✔️ Как вы могли заметить, часть моих статей размещена в Telegraph, часть в Teletype. Ни один из ресурсов меня полностью не устраивал.
✔️ Было принято решение о переносе исходных файлов всех существующих статей в GitHub-репозиторий канала. Теперь информация локализована в одном месте. Каждый из вас может использовать её на свое усмотрение.
✔️ Важной особенностью является то, что мне удалось настроить сборку всех статей в единый сборник при помощи GitHub Pages и MDBook! Выглядит просто отлично, я считаю.
✔️ Новые статьи теперь будут размещаться только в репозитории канала. Доступ к существующим статьям в Telegraph и Teletype сохраняется.
UPD: Обнаружил, что сборник статей прекрасно отображается в мобильной версии. Можете убедиться сами, нажав по одной из кнопок внизу на мобильном устройстве🤝
▶️ Добавление раздела Bug Hunting в открытый курс по верификации RISC-V ядер.
✔️ Анализируя материалы данного курса, я пришел к выводу, что упустил важный нюанс. В нем отсутствовали разборы реальных (или приближенных к реальности) ситуаций обнаружения и исправления ошибок в RTL процессорных ядер.
✔️ Я кардинально изменил ситуацию, добавив особый раздел, в котором на примере ядра с открытым исходным кодом MIRISCV разбираются подобные ситуации.
✔️ Специально для разработанного раздела я внес пять уникальных багов в тестируемое ядро. В репозитории они находятся в соответствующих именных ветках.
✔️ На момент написания поста новый раздел содержит подробный разбор ситуации исправления и обнаружения одного из багов. Со временем раздел будет дополняться, следите за обновлениями в репозитории!
▶️ Все статьи в одном месте. Миграция на GitHub Pages + MDBook.
✔️ Как вы могли заметить, часть моих статей размещена в Telegraph, часть в Teletype. Ни один из ресурсов меня полностью не устраивал.
✔️ Было принято решение о переносе исходных файлов всех существующих статей в GitHub-репозиторий канала. Теперь информация локализована в одном месте. Каждый из вас может использовать её на свое усмотрение.
✔️ Важной особенностью является то, что мне удалось настроить сборку всех статей в единый сборник при помощи GitHub Pages и MDBook! Выглядит просто отлично, я считаю.
✔️ Новые статьи теперь будут размещаться только в репозитории канала. Доступ к существующим статьям в Telegraph и Teletype сохраняется.
UPD: Обнаружил, что сборник статей прекрасно отображается в мобильной версии. Можете убедиться сами, нажав по одной из кнопок внизу на мобильном устройстве🤝
🔹Доброго времени суток, дорогие читатели! Спустя несколько месяцев затишья делюсь с вами уникальным контентом. А именно — целым циклом статей, посвященным подробному разбору основных концепций библиотеки универсальной методологии верификации (UVM). Я решил назвать его Demystifying UVM.
🔹Подавляющее большинство инженеров (в том числе и автор) при знакомстве с UVM задавали себе множество вопросов. Например о том, как работает
🔹Всем нам искренне хотелось найти ответы. Но ворох рабочих задач постепенно гасил энтузиазм, и мы просто начинали пользоваться конструкциями, не задумываясь об их содержании. Но теперь у вас, дорогие читатели, есть возможность рассеять туман над исходным кодом библиотеки UVM и вместе со мной проанализировать то, что находится "под капотом". Нам предстоит долгий путь.
🔹Первые две статьи цикла будут посвящены механизмам создания компонентов и переопределению их типов. За данный функционал в UVM в наибольшей степени отвечает класс фабрики (UVM factory), который и будет фигурировать в названиях статей. Первая уже доступна по ссылке ниже.
⚡️Demystifying UVM: Фабрика, часть 1⚡️
🔹Все исходные файлы статьи, а также код примеров и скрипты для их запуска при помощи QuestaSim и Verilator расположены в репозитории канала и доступны абсолютно всем. Выход же второй статьи планируется в течение ближайших двух недель! Читайте, распространяйте, делитесь впечатлениями, предлагайте улучшения! Всего вам самого наилучшего!🤝
🔹Подавляющее большинство инженеров (в том числе и автор) при знакомстве с UVM задавали себе множество вопросов. Например о том, как работает
type_id::create()
и почему нельзя просто использовать new()
? Или зачем нужно включать в тело класса макрос uvm_component_utils
? Почему у конструктора два аргумента: name
и parent
? Все эти вопросы так или иначе "мерцали" в недрах разума.🔹Всем нам искренне хотелось найти ответы. Но ворох рабочих задач постепенно гасил энтузиазм, и мы просто начинали пользоваться конструкциями, не задумываясь об их содержании. Но теперь у вас, дорогие читатели, есть возможность рассеять туман над исходным кодом библиотеки UVM и вместе со мной проанализировать то, что находится "под капотом". Нам предстоит долгий путь.
🔹Первые две статьи цикла будут посвящены механизмам создания компонентов и переопределению их типов. За данный функционал в UVM в наибольшей степени отвечает класс фабрики (UVM factory), который и будет фигурировать в названиях статей. Первая уже доступна по ссылке ниже.
⚡️Demystifying UVM: Фабрика, часть 1⚡️
🔹Все исходные файлы статьи, а также код примеров и скрипты для их запуска при помощи QuestaSim и Verilator расположены в репозитории канала и доступны абсолютно всем. Выход же второй статьи планируется в течение ближайших двух недель! Читайте, распространяйте, делитесь впечатлениями, предлагайте улучшения! Всего вам самого наилучшего!🤝
🔹Доброго времени суток, дорогие читатели! Вышла вторая статья цикла Demystifying UVM, посвященная фабрике UVM. В ней подробно разобран исходный код, отвечающий за создание компонентов и переопределение их типов.
⚡️Demystifying UVM: Фабрика, часть 2⚡️
🔹Обратите внимание на раздел Playground, в котором упоминается возможность запуска простейших примеров (и их модификации) на основе авторской версии библиотеки UVM, которая для данной статьи доступна в соответствующей директории.
🔹Все исходные файлы, а также код примеров и скрипты для их запуска при помощи QuestaSim и Verilator все так же расположены в репозитории канала и доступны абсолютно всем.
🔹Данная статья завершает разбор фабрики UVM, а для двух следующих темы уже определены, автор скоро приступит к работе над ними. О чем же в них пойдет речь? Иерархия, фазы, может быть, база ресурсов? Следите за обновлениями!
🔹Читайте, распространяйте, делитесь впечатлениями, предлагайте улучшения! Всего вам самого наилучшего!🤝
⚡️Demystifying UVM: Фабрика, часть 2⚡️
🔹Обратите внимание на раздел Playground, в котором упоминается возможность запуска простейших примеров (и их модификации) на основе авторской версии библиотеки UVM, которая для данной статьи доступна в соответствующей директории.
🔹Все исходные файлы, а также код примеров и скрипты для их запуска при помощи QuestaSim и Verilator все так же расположены в репозитории канала и доступны абсолютно всем.
🔹Данная статья завершает разбор фабрики UVM, а для двух следующих темы уже определены, автор скоро приступит к работе над ними. О чем же в них пойдет речь? Иерархия, фазы, может быть, база ресурсов? Следите за обновлениями!
🔹Читайте, распространяйте, делитесь впечатлениями, предлагайте улучшения! Всего вам самого наилучшего!🤝
🔸Доброго времени суток, дорогие читатели! Любите ли вы делиться знаниями? Рассказывать о событиях в жизни, которые оказали на вас влияние и помогли в будущем?
🔸Профессия — часть жизни. Поделиться накопленным опытом и предупредить ошибки — именно эти цели я преследую, запуская цикл статей SystemVerilog Gotchas, Tips and Tricks.А еще я выигрываю себе время на разработку очередной части Demistifying UVM😁
🔸В данном цикле я буду делиться с вами интересными особенностями языка SystemVerilog и тем, как они могут проявляться в ходе функциональной верификации и как по возможности избежать негативных последствий этих проявлений. Первая часть уже доступна по ссылке ниже.
⚡️SystemVerilog Gotchas, Tips and Tricks, часть 1⚡️
🔸Рассказал в ней про параллельные процессы, concurrent assertions, упаковку массивов и еще нескольких особенностях языка SystemVerilog.
🔸В процессе подготовки примеров обнаружил некоторые несоответствия Verilator'а стандарту SystemVerilog и создал issues в официальном репозитории (подробнее о них — в статье). Возможно, стану contributor'ом одного из самых популярных open-source симуляторов!
🔸Читайте, распространяйте, делитесь впечатлениями, предлагайте улучшения! Всего вам самого наилучшего!🤝
📈Вас, дорогие единомышленники, уже почти 1000 человек в канале. Выражаю вам искреннюю благодарность за уделяемое внимание! После достижения заветной цифры планируется особое нововведение. Следите за обновлениями!
🔸Профессия — часть жизни. Поделиться накопленным опытом и предупредить ошибки — именно эти цели я преследую, запуская цикл статей SystemVerilog Gotchas, Tips and Tricks.
🔸В данном цикле я буду делиться с вами интересными особенностями языка SystemVerilog и тем, как они могут проявляться в ходе функциональной верификации и как по возможности избежать негативных последствий этих проявлений. Первая часть уже доступна по ссылке ниже.
⚡️SystemVerilog Gotchas, Tips and Tricks, часть 1⚡️
🔸Рассказал в ней про параллельные процессы, concurrent assertions, упаковку массивов и еще нескольких особенностях языка SystemVerilog.
🔸В процессе подготовки примеров обнаружил некоторые несоответствия Verilator'а стандарту SystemVerilog и создал issues в официальном репозитории (подробнее о них — в статье). Возможно, стану contributor'ом одного из самых популярных open-source симуляторов!
🔸Читайте, распространяйте, делитесь впечатлениями, предлагайте улучшения! Всего вам самого наилучшего!🤝
📈Вас, дорогие единомышленники, уже почти 1000 человек в канале. Выражаю вам искреннюю благодарность за уделяемое внимание! После достижения заветной цифры планируется особое нововведение. Следите за обновлениями!