Jump to content

    
Sign in to follow this  
Mad_kvmg

SystemVerilog для не-начинающих

Recommended Posts

Я пролистал описываемую книжку в русском варианте. Мне показалась очередной макулатурой, ну или книгой именно что для совсем новичков. Ну а статьи Клиффа Каммингза, которые Панчул рекомендует в конце, думаю, все, кто проектирует ASIC'и, и так знают.

Edited by one_eight_seven

Share this post


Link to post
Share on other sites
42 minutes ago, one_eight_seven said:

Я пролистал описываемую книжку в русском варианте. 

 

А что там пишут про functional coverage и assertions? 

Из статьи Панчула мне показалось, что как раз этим, в контексте использования FC и SVA RTL дизайнером, а не только верификатором, данная книга и представляет интерес.  

Share this post


Link to post
Share on other sites
10 minutes ago, Mad_kvmg said:

А что там пишут про functional coverage и assertions? 

Сейчас  этой книги под рукой нет,  но если правильно помню то что-то вроде полутора-двух страничек про functional coverage. Про SVA особо не заглядыал, так как не интересно, на эту тему отдельные труды есть. Никакого "контекста использования RTL дизайнером" не существует: если используется UVM тестбенч, то и использоваться будет uvm_coverage, если другая методология, то её методы, если вообще строите тестбенч без методологии, то будете ковергруппы инстанциировать и сэмплить. У верификаторов то же самое. Инструменты одни и те же, язык один и тот же и используется это одинаково.

Про SVA то же самое можно сказать, что и про ковергруппы.

Edited by one_eight_seven

Share this post


Link to post
Share on other sites
7 minutes ago, one_eight_seven said:

Никакого "контекста использования RTL дизайнером" не существует

А вот и существует :-)  Designers Assertions.

Верификтор видит RTL как "black box" с интерфейсами, соответственно, может сэмпировать только то, что формируется на входе и сам отклик.  

А внутр модуля много чего происходит, что хотелось бы включить в модель функционального покрытия или для спокойствия души обложить SVA.

 

Share this post


Link to post
Share on other sites
Quote

А внутр модуля много чего происходит, что хотелось бы включить в модель функционального покрытия или для спокойствия души обложить SVA.

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

Что нет контекста использования дизайнером - это про Coverage. Его в дизайн не вставляют, да и зачем?

Share this post


Link to post
Share on other sites
4 minutes ago, one_eight_seven said:

А в чём проблема сделать это?

Ну где-то так бывает, что есть спек от которого рождаются еще два спека: один для RTL дизайнера, а второй тест-план. Тогда проблема, что верификатор не имеет понятие о деталях RTL имплементации, да и вообще он программист :-)

Ну а где-то и спек сам и RTL сам и TB сам, тогда конечно проблем никаких :-)    

Share this post


Link to post
Share on other sites
5 minutes ago, Mad_kvmg said:

Ну где-то так бывает, что есть спек от которого рождаются еще два спека: один для RTL дизайнера, а второй тест-план. Тогда проблема, что верификатор не имеет понятие о деталях RTL имплементации, да и вообще он программист :-) 

Опять не вижу проблемы. Или у вас верификаторы $assetoff ставят, и отключают все SVA полностью? Ну так средствами языка это не решить.

Инструменты сбора покрытия собирают и покрытие по SVA, где детально можно увидеть, какие SVA не срабатывали. Каких-то действий для того, чтобы SVA работали (кроме $asserton) делать не нужно.

Edited by one_eight_seven

Share this post


Link to post
Share on other sites
10 minutes ago, one_eight_seven said:

Опять не вижу проблемы. Или у вас верификаторы $assetoff ставят, и отключают все SVA полностью? Ну так средствами языка это не решить.

Инструменты сбора покрытия собирают и покрытие по SVA, где детально можно увидеть, какие SVA не срабатывали. Каких-то действий для того, чтобы SVA работали (кроме $asserton) делать не нужно.

 

Я не про технику, я про суть вопроса.

Которая в следующем, очень хорошо если RTL дизайнер активно использует SVA! Это сильно облегчает дебаг! Было предположение, что в этой книге на русском автор хорошо подводит к вопросу как просто начать использовать RTL дизайнеру SystemVerilog Assetions. 

А так да, много других книг про SVA, мне нравится вот эта  https://www.springer.com/gp/book/9780387260495  

Share this post


Link to post
Share on other sites
36 minutes ago, Mad_kvmg said:

Которая в следующем, очень хорошо если RTL дизайнер активно использует SVA!

It depends...

Могу сказать что неправильный SVA может настолько сильно мешать, что всё, что он сделает - это создаст лишний пласт работ по его отключению везде, где возможно, т.е. в каждом дизайне, при каждом изменении иерархии к каждому инстансу будут прописывать $assertoff, что то ещё удовольствие, ведь в некоторых симуляторах разрешения значений переменных внутри $assertoff не поддерживается и в качестве значения вставляется имя переменной, строку тоже не применить; т.е. внутри generate for это не сделать.

А методику как выбирать где SVA будет нужен и правилен, а где - нет, я не встречал.

Edited by one_eight_seven

Share this post


Link to post
Share on other sites

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

P.S. всегда удивляет описание про  parallel/full case, кто-то еще этим пользуется?

Share this post


Link to post
Share on other sites
Quote

P.S. всегда удивляет описание про  parallel/full case, кто-то еще этим пользуется?

Почему нет? Например, при реализации One-Hot декодера.

P.S. На верилоге, конечно. В системверилоге есть @always_comb

Edited by one_eight_seven

Share this post


Link to post
Share on other sites

В SystemVerilog-e есть unique case, который к тому же является assertion.

Synosys в своём мануале для синтеза специально акцентирует внимание на то, что использование подобных конструкций может привести к ошибке.

 RTL Modeling with SystemVerilog For Simulation and Synthesis http://www.sutherland-hdl.com/books_and_guides.html#RTL Book как раз подробно расписывает все возможные варианты, с результатами синтеза.

Share this post


Link to post
Share on other sites

Я регулярно в обучающей литературе вижу конструкции языка, как на приведенной картинке. Почему это так? Почему не пишут просто - это же обучающая литература. При виде строк типа 17, 18, 32-36 вообще пропадает всякое желание читать и разгребать это всё.

Разработчики АСИК и ПЛИС действительно так пишут?

image.png.ddac2b8f78153663b8e84159e1e7485a.png

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this