Pull to refresh

Comments 20

Обсуждаемый вопрос, на мой взгляд, скорей относится к разработчику, чем к специалисту по верификации. Сужу по моему опыту участия в двух проектах в качестве инженера по верификации.

Он к верификации относится тоже. Когда вы строите асинхронное FIFO с счетчиками Грея итд - вам нужно верифицировать, что логика full/empty работает правильно, не происходит переполнения FIFO, переданые данные появляются в правильном такте итд. Когда вы добавляете к этому FIFO кредитные счетчики, их работу тоже нужно верифицировать. Для всего этого нужно написать на SystemVerilog тестовое окружение (testbench) c генерацией двух тактовых сигналов разной частоты, написать тесты, тестовое покрытие (functional coverage), утверждения темпоральной логики (concurrent assertions) и проверять соответствие между поведением RTL (реализацией схемы на уровне регистровых передач) и модели (на уровне транзакций). Это работа верификатора.

В моем случае модули представлялись как черные ящики, тесты были интеграционные и системные. В описываемом вами случае получается, что верификатор должен понимать, что "сваял" разработчик лучше самого разработчика, быть эдаким гуру.

Юрий, а предполагается дать всем доступ в гит с упражнениями? Если да, то можно попросить ссылку - я не смог отыскать. Спасибо.

Упражнения с CDC в репозитории Школы Синтеза вот здесь:

https://github.com/DigitalDesignSchool/ce2020labs/tree/master/next_step/Sylantiev/cdc_lab

Правда там нет про асинхронное FIFO, но код для асинхронного FIFO есть в статьях Клифа Каммингса

http://www.sunburst-design.com/papers/CummingsSNUG2002SJ_FIFO1.pdf

http://www.sunburst-design.com/papers/CummingsSNUG2002SJ_FIFO2.pdf

Львиная доля материалов в видео украдена из статьи Clifford E. Cummings, представленной на конференции SNUG-2008. Статья есть в открытом доступе здесь:
http://www.sunburst-design.com/papers/CummingsSNUG2008Boston_CDC.pdf

Вообще поразительно просто. Что в этой статье у Панчула нет ссылки на первоисточник, что в видео, думаю, ни одной ссылки тоже нет (поправьте меня, если это не так). Хотя нагло украдено все, даже картинки свои поленились нарисовать, а просто выдрали из статьи. Пиарить свои семинары, используя чужой материал, причем из 2008 года, без упоминания авторства, ну-ну, хороший подход.

А вы внимательно читали пост, глазами, а не попой?

Во-первых, я привел ссылку http://www.sunburst-design.com/systemverilog_training_schedule/ на семинар Клифа Каммингса в посте.

Во-вторых, я черным по белому написал "в России группа энтузиастов подготовила бесплатный семинар, на основе как открытых статей автора американского семинара Клифа Каммингса, так и практикума из МИЭТ и собственных лабораторных занятий.

В-третьих, я привел ссылку на две другие статьи Клифа Каммингса в комменте выше.

Но я согласен, что и ссылку на статью из SNUG-2008 тоже нужно было привести. Я думал что Александр Силантьев эту ссылку привел, но сейчас посмотрел в слайды и увидел, что там ее нет. Я скажу ему чтобы поставил. Спасибо.

Я пробежал глазами и ссылку на самую главную статью так и не увидел, о чем и написал и попросил поправить меня, если это не так. Статья, действительно, очень важная, а самое главное, что находится в открытом доступе, в отличие от платного американского семинара. Про российский семинар просто еще раз отмечу, что странно построить практически весь семинар на чужой статье, выдрав даже картинки, не упоминая ту самую статью в открытом доступе. Надеюсь, что Александр Силантьев ссылку добавит.

Обязательно добавит, я ему уже написал. При этом семинар построен, как я сразу сказал, не только на статье Клифа Каммингса, но и на лабах, которые я написал в 2019 году. Вот мой код, это не от Клифа Каммингса - я сначала показываю как без приемов CDC передача глючит, а потом с использованием приемов из статьи Клифа Каммингса, передача не глючит:

https://github.com/yuri-panchul/2019-examples/tree/master/next_step_examples/03_cdc/

Это же в репозитории школы:

https://github.com/DigitalDesignSchool/ce2020labs/tree/master/next_step/Sylantiev/cdc_lab

Кроме этого Александр Силантьев переносил это на FPGA, этого тоже нет у Клифа Каммингса, это потом он добавит в репозиторий.

Правильно ли я понимаю, что это всё-таки не разработки 2008 года, а сильно раньше? Эта статья всё-таки "научно популярная", так?

Юрий, как всегда, большое спасибо за вашу деятельность, несмотря на определённую критику.

Кстати, с учётом того, что OSS сильно уменьшает риски, стоит ли ждать открытых аналогов всего того софта, который вы используете для работы? То есть, надеяться, что ваша область придёт к тому же, к чему пришло компиляторостроение, когда наилучшие по качеству профессиональные инструменты открыты, а не закрыты.

Ждать не нужно, нужно брать и поддерживать - переносить свои проекты на Yosys/NextPNR увеличивая базу пользователей, дописывать софт и сопутствующие утилиты, реверсить ПЛИСы. Само ничего не народиться.

*** Правильно ли я понимаю, что это всё-таки не разработки 2008 года, а сильно раньше? Эта статья всё-таки "научно популярная", так? ***

Материалы Клифа Каммингса и мои с Александром Силантьевым примеры - это результат находок разных инженеров за последние 30 лет. Внутри каждой крупный электронной компании в каждой группе проектирования есть библиотека примитивов и асинхронные FIFO, как и другие блоки для CDC в них всегда есть. То есть это не научно-популярная статья и не изобретение Клифа Каммингса, а набор приемов и рецептов, который является ноу-хау всей индустрии.

*** стоит ли ждать открытых аналогов всего того софта, который вы используете для работы? ***

К сожалению сейчас открытый софт (Yosys , OpenLANE итд) находится примерно в таком же состоянии, в котором Linux находился по отношении к Windows а начале 1990-х. В обычных условиях пользоваться им имело смысл только для исследователей и аспирантов. Но в современных условиях России, когда санкции могут быть несколько лет, имело бы смысл сделать как российский аналог синтеза для FPGA, так усилить open-source ASIC design tools чтобы хоть как-то выкрутиться, производя микросхемы на зеленоградском Микроне. Тут нет ничего невозможного, но потребуется много сильных алгоритмически мыслящих программистов с пониманием хардвера и автоматизации проектирования, при плотной поддержке фаба.

А картинки по метастабильности честно стырены с хабра, одна лично мной нарисована (про сетап и холд). Но не суть важно, просто в целом, с учетом вышесказанного, впечатление слегка подпорчено.

Кстати, по явлению метастабильности плохо написано, мне кажется, автор не до конца понимает материал. В часности, в западных лекциях обязательно рассказывается о MTBF, и чем специальные селлы-синхронизаторы отличаются от просто цепочки из защелок или флопов.

Ну напишите Силантьеву чтобы вставил ссылку на вас - там должен быть контакт - я ему скажу при следущей беседе. MTBF нужен, но 1) про это учащиеся в принципе могу прочесть в Харрис & Харрис, 2) в данной лекции есть ограничение на время.

Вот это Вы кстати зря. Я довольно давно уже пользуюсь опенсорсным тулчейном для ice-40, и пока нареканий он у меня не вызывал. А вот фирменный пакет от Lattice в 2014-м мне преподнес сюрприз. Дома у меня всё работало, все тесты на железе проходили как надо. Приношу проект заказчику, он собирает, загружает в плату и нихрена не работает. Мистика. Оказалось что версия под линукс, с которой я работал дома, собирала нормально. А версия под винду(которой пользуются все психически здоровые люди), содержала ошибку.

P.S. Кстати если будет создаваться команда по созданию такого софта, мог бы поучаствовать. Квалификации вполне достаточно и в C/C++ и в понимании задачи. На хабр-карьере я вот https://career.habr.com/eugenk

Юрий, а не подскажете, статьи или хотя бы видео на ютубе будут выкладываться ? Мне бы тоже хотелось, но в Сколково сейчас ездить не могу.

Юрий, спасибо, это я тут немного затупил. Читал по диагонали после ночи жесткого секса на троих - iverilog, gtkwave и я :))) Болел тут модной болезнью, сейчас приходится аврально нагонять проект. Обязательно приму участие, хотя бы удаленно. Я разработчик достаточно высокой квалификации, но дополнительное обучение не помешает :)))

Sign up to leave a comment.

Articles