Comprehensive SystemVerilog
5 jours
Télécharger le descriptif au format pdf
Présentation
SystemVerilog (IEEE 1800™) est un nouveau langage basé sur le langage de description de matériel Verilog. Les extensions de SystemVerilog améliorent
le langage Verilog dans un certain nombre de secteurs, fournissant des améliorations de productivité pour les concepteurs RTL, les ingénieurs de
vérification et tous ceux qui sont impliqués dans l'architecture et la conception système.
Comprehensive SystemVerilog est un programme de formation complet et intégré qui répond à la demande des ingénieurs de vérification et de
tous ceux qui veulent évaluer SystemVerilog pour ses applications de conception et de vérification. Ce cours est conçu pour mettre en valeur
et faciliter l'utilisation de toutes les possibilités de SystemVerilog pour la conception et la vérification. Cela répond aux besoins des ingénieurs
de vérification qui veulent utiliser le potentiel de la vérification basée sur les classes et les techniques orientées objet utilisant SystemVerilog
aussi bien que du code RTL, des Assertions et des test benches. Les ingénieurs de conception qui n'ont pas l'intention d'utiliser la vérification
basée sur les classes devraient s'orienter vers une session plus courte :
SystemVerilog for Design Group qui partage le même contenu : les 3 premiers
jours du cours Comprehensive SystemVerilog.
Doulos étant une société indépendante, les participants peuvent utiliser les outils de conception de leur choix durant les applications pratiques,
qui occupent 50% du temps de la formation. Ces applications sont présentées sous forme d'exercices soigneusement préparés, afin de faciliter
l'acquisition des connaissances.
Objectifs pédagogiques
• A deeper understanding of the Verilog language and how to apply it, enabling you to troubleshoot Verilog simulation and synthesis problems
more easily.
• Utiliser les possibilités de vérification basées sur les classes pour le développement des test benches.
• Apprendre SystemVerilog pour la conception RTL.
• Mettre en place une méthode de vérification pilotée par la couverture basée sur SystemVerilog.
• Transfert de langage de vérification et de génération de Test bench précédemment utilisé vers la vérification basée sur les classes de SystemVerilog.
• Évaluer les possibilités de SystemVerilog pour la conception et la vérification.
• Analyser comment les équipes de développement peuvent améliorer leur productivité grâce à l'utilisation de SystemVerilog dans la conception et la vérification.
Connaissances requises
Une connaissance pratique du langage Verilog est nécessaire.
Pour les participants sans connaissance ou expérience HDL, avoir participé au cours Comprehensive Verilog (ou équivalent) est une nécessité.
Pour les participants sans connaissance de Verilog mais avec une expérience d'utilisation de VHDL, nous proposons un cours rapide Fast-Track pour
les utilisateurs VHDL qui permet aux participants d'acquérir les fondations nécessaire pour suivre le cours SystemVerilog.
Pour les cours sur site, on peut combiner les différents modules de SystemVerilog pour fournir un cours répondant aux besoins spécifiques.
Qu'apprendrez-vous ?
Le cours est structuré en différents secteurs distincts :
• Fundamentals of SystemVerilog for Design apprend à utiliser SystemVerilog pour la conception de RTL synthétisable, et aborde l'utilisation du
langage pour la vérification.
• SystemVerilog Assertions enseigne les principes de la conception et de la vérification basée sur le langage d'assertions, les caractéristiques
du langage d'assertion de SystemVerilog pour créer ses propres assertions, et comment packager les bibliothèques de vérificateur.
• Module-based SystemVerilog Verification montre comment utiliser SystemVerilog pour construire des test benches bâtis sur une architecture de
test bench à base du langage Verilog.
• Class-based SystemVerilog Verification décrit comment écrire des Test benches orientés objet, utilisant les possibilités d'automatisation de
SystemVeriog qui supporte une méthodologie de génération aléatoire ou pilotée par la couverture. Ces possibilités permettent d'écrire à un niveau
d'abstraction plus élevé et d'être plus productif qu'avec un langage de description hardware standard.
Supports de cours
Les manuels de cours Doulos sont réputés pour être les plus détaillés et les plus faciles d'utilisation. Leur style, leur contenu et leur
exhaustivité sont uniques dans le monde de la formation HDL. Ils sont souvent utilisés comme référence après avoir suivi les cours de formation;
Sont compris dans la formation :
• Les notes de cours indexées constituant un manuel de référence Verilog concis.
• Le cahier d'applications rempli d'exemples et d'applications pratiques pour vous aider à mettre en oeuvre vos connaissances.
• Le "Doulos Golden Reference Guide" aide-mémoire SystemVerilog complet et pratique (syntaxe, sémantique et astuces).
Structure et contenu
SystemVerilog for Design Groups (days 1-3)
Fundamentals of SystemVerilog for Design (day 1 and day 2 morning)
The SystemVerilog data type system
enum•typedef•struct•union•packed/unpacked•packages and $unit•using arrays in SystemVerilog•
array and structure literals•assignment patterns
Nets and variables
Key changes in Verilog-2005 and SystemVerilog•continuous assignment to variables•modified driver and connection rules•
data types on ports and nets
Modules and processes
Port connection shorthand•type parameters•synthesis idioms for processes•miscellaneous improvements to the language
Design applications of interfaces
The interface construct•interfaces to encapsulate communication•modports•synthesis of interfaces and modports•
imported functions for design
SystemVerilog Assertions (Day 2 afternoon)
Introduction to assertions
Assertions, properties, sequences•clocking and sampling•property implication•uses of assertions•simulation of assertions •
format tools
Assertion methodology
Methodology consequences of assertion-based design and verification•assertion and assumption•benefits of assertions to the designer•
protocol checkers
A brief introduction to SVA syntax
Writing simple assertions of your own •sequences and the ## operator•repetition and time rangers•sequence fusion•
overview of temporal operators•local variables and actions in assertions
Packaging assertions
Assertions in interfaces and modules•the bind construct•deploying verification IP, particularly asserion-based IP
Module-based SystemVerilog Verification (Day 3)
Verification for design groups
Bus fonctional models•testbench architecture in classic Verilog•stimulus and response timing
Using SystemVerilog to construct module-level testbenches
Clocking blocks to manage timing•testbench applications of interfaces•task and function enhancements in SystemVerilog•
decoupling test cases from the testbench
Dynamic data types
strings•queues•dynamic arrays•associative arrays•queue and array methods•foreach loop
Testbench automation
Introduction to testbench automation concepts•randomisation, checking and coverage•the need for constraints •
randomisation of stimulus data using std::randomize and traditional Verilog distribution functions•
procedural randomisation: randcase, randsequence•collecting functional coverage data
Class-based SystemVerilog Verification (Days 4 and 5)
Introducing classes
SystemVerilog's class syntax•describing stimulus data and a stimulus generator•randomization of class members (without constraints)•
objects and references•constructors and new•shallow copy using new•writing a custom copy method
Hooking classes to the DUT
Dynamically-constructed test environment vs. statically-elaborated DUT and test harness•using virtual interface and class-based BFMs•
the role of clocking and program blocks•appropriate structure for DUT, clock generators and other structural elements•
constructing and launching the test environment using program+initial•simple class-based testbench architecture
Varying the Stimulus
Generator template objects•introduction to constraints•implication constraints•derived classes•
upcasting and the is-a relationship•virtual methods
Components and Channels
FIFO channels to decouple components•base class for transaction data•downcasting and $cast•
parameterized classes and macros for specialization•runningself-contained components with fork...join
Reusable Testbench Components
Maintaining a component instance hierarchy•virtual base class for components•launching a task with fork...join_none•
testbench component architecture•preview of standard methodologies (OVM, VMM)
Monitor and Check Components
Passive monitors and unbounded FIFOs•checker components and scoreboards•stopping the test cleanly•semaphore for mutual exclusion
Coverage in Classes
Coverage-driven TBA methodology•coverage planning as the first step in a verification process•analysing and interpreting coverage data•
SystemVerilog coverage constructs in detail•covergroup sampling•per-instance coverage in testbench components•covergroup options•
transition and cross coverage•controlling bins structure•coverage reports
Haut de Page