Modular SystemVerilog
Inhouse Trainingsoptionen
In EnglishSystemVerilog (IEEE 1800™) ist eine bedeutende neue Sprache, die auf der weitverbreiteten Hardwarebeschreibungssprache Verilog® basiert. Die SystemVerilog-Spracherweiterungen verbessern Verilog in verschiedenen Bereichen und ermöglichen damit Proiduktivitätssteigerungen für RTL Designer, Verifikationsingenieure und Architektur- und System-Designer.
Modular SystemVerilog besteht aus verschiedenen Modulen, die zu einem ganzheitlichen Programm kombiniert und auf individuelle Team-Bedürfnisse angepasst werden können.
Die Workshops nehmen ca. 50% der Unterrichtszeit ein und basieren auf sorgfältig ausgearbeiteten Übungen, die die Kursteilnehmer in ihren neu erworbenen Kenntnissen herausfordern und das Erlernte untermauern.
Doulos ist ein erfahrener und herstellerunabhängiger Trainingssanbieter, der seit 2003 im Bereich Trainingsentwicklung und Projektsupport für SystemVerilog aktiv ist und mit unterschiedlichen Anbietern kooperiert. Damit haben Kursteilnehmer die Möglichkeit, den gesamten Funktionsumfang von SystemVerilog kennenzulernen, ohne dabei an ein bestimmtes Tool gebunden zu sein. Die Teilnehmer profitieren von objektivem Training und üben das Gelernte gleichzeitig mit den Tools und Methoden ihrer Wahl. In diesem Training werden u. a. folgende Tools unterstützt:
- Simulation: Cadence Incisive®, Mentor Graphics Questa™Sim, Synopsys VCS®
- Synthese: Mentor Graphics Precision™, Synopsys Design Compiler®, Synplicity Synplify®
Zielgruppe
- Ingenieure und Vorgesetzte, die SystemVerilog für ASIC- oder FPGA-Design oder Verifikation nutzen oder bewerten möchten
- EDA Support-Ingenieure, die verstehen möchten, wie ihre Kunden mit SystemVerilog arbeiten
Kursmodule
- Verilog for VHDL Users (1-3 Tage) bietet eine gute Grundlage in der klassischen Verilog-Sprache und ermöglicht Designern, die überwiegend VHDL-Erfahrung haben, maximalen Nutzen aus den SystemVerilog Trainingsmodulen zu ziehen.
- Fundamentals of SystemVerilog for Design (1 ½ Tage) erklärt den praktischen Gebrauch von SystemVerilog für synthesisable RTL Design.
- Fundamentals of SystemVerilog for Verification (½ Tag) stattet Verifikationsingenieure mit dem notwendigen SystemVerilog-Hintergrundwissen aus, das sie für die weiteren Verifikationsmodule benötigen.
- SystemVerilog Assertions (½ Tag) erklärt die Grundsätze von Assertion-based Verifikation und Design, die Haupteigenschaften der SystemVerilog Assertion-Sprache zur Erstellung von individuellen Assertions, sowie die Packaging und Gebrauch von Assertion Checkers Libraries.
- Module-based SystemVerilog Verification (1 Tag) erklärt den Gebrauch von SystemVerilog für den Bau effektiver Block-Level Testbenches. Diesem liegt Best-practice Testbench-Architektur zu Grunde, die auf Verilog-Modulen basiert.
- Class-based SystemVerilog Verification (2 Tage) erklärt, wie man mit Hilfe von SystemVerilogs Testbench-Automatisierungs-Fähigkeiten anspruchsvolle objektorientierte Testbenches entwickelt, die eine Constrained Random Coverage-gesteuerte Methode unterstützen. Diese Eigenschaften ermöglichen es, Testbenches auf einer höheren Abstraktionsebene zu entwickeln und produktiver als mit Standard-Hardwarebeschreibungssprachen zu arbeiten. Das Trainingsmaterial basiert auf der langjährigen Erfahrung von Doulos mit Trainings zu objektorientierten Verifikationskonzepten. Die anspruchsvollen Themen sind optimal für Entwickler mit unterschiedlichstem Hintergrund aufbereitet und stellen eine ideale Vorbereitung auf die Anwendung
- Adopter Classes (2 Tage) enthalten wesentliche zusätzliche Informationen, Code-Beispiele und Knowhow, die es ermöglichen, gängige von Tool-Vendors vorgestellte Verifikationsmethoden, wie z.B. OVM (Mentor & Cadence), VMM (Synopsys), and UVM (Universal Verification Methodology), anzuwenden.
Voraussetzungen
Fundierte praktische Grundkenntnisse in Verilog sind unerlässlich.Ingenieure, die bereits Erfahrung in VHDL haben, können das zweitägige Training Fast-track Verilog for VHDL Users besuchen, um die erforderlichen Verilog-Voraussetzungen zu erfüllen. Für Ingenieure mit anderem Vorwissen kann Doulos individuell zugeschneidertes Verilog-Training anbieten - entweder als separaten Kurs oder in ein maßgescheidertes Trainingsprogramm integriert. Bitte kontaktieren Sie Doulos, um Ihre individuellen Bedürfnisse zu besprechen.
Kursmodul-Kombinationen
Das Modul-Baukasten-Training ermöglicht Doulos, flexibel mit Ihnen zusammen zu arbeiten, um ein maßgeschneidertes Trainings anzubieten, das genau auf Ihre speziellen Bedürfnisse abgestimmt ist. Wir haben daher zwei Standard-Tracks entwickelt, die auf die Hauptbedürfnisse des Marktes abgestimmt sind. Diese Tracks dienen als Diskussionsgrundlage für die Zusammenstellung eines individuellen Trainingsprogramms für Ihr Team.Design Group Track (3-5 Tage)
Dieser Track ist für RTL-Design-Teams bestimmt, die SystemVerilog zur Verbesserung ihrer Designs nutzen möchten und planen, designspezifische Modul-Level-Testbenches zu schreiben, um ihre Verifikationsproduktivität und -qualität zu verbessern.- Verilog for VHDL Users (wenn nötig)
- Fundamentals of SystemVerilog for Design
- SystemVerilog Assertions
- Module-based SystemVerilog Verification
Verification Specialist Track (4-7 Tage)
Dieser Track konzentriert sich auf die Bedürfnisse von Verifikationsteams, die mit SystemVerilog ihre Verifikation um moderne Testbench-Automation-Techniken erweitern möchten oder deren Ziel es ist, andere Testbench-Ansätze mit SystemVerilog zu ersetzen. Fundiertes VHDL- oder Verilog-Grundwissen wird vorausgesetzt. Sollten Sie über dies nicht verfügen, kontaktieren Sie bitte Doulos.- Verilog for VHDL Users (wenn nötig)
- Fundamentals of SystemVerilog for Verification
- SystemVerilog Assertions
- Module-based SystemVerilog Verification
- Class-based SystemVerilog Verification
- Adopter Class (optional)
Kursunterlagen
Die Doulos Kursunterlagen sind für ihren umfassenden Informationsgehalt und Ihre Benutzerfreundlichkeit allgemein bekannt. In ihrem Aufbau, Inhalt und ihrer Themenbehandlung sind sie einzigartig im HDL-Trainingsbereich, was sie zu begehrten Nachschlagewerken hat werden lassen. Im Kurspaket sind enthalten:- Kursskripte mit vollständigem Stichwortverzeichnis, die ein umfassendes Referenzhandbuch darstellen
- Ein Arbeitsbuch mit vielen praktischen Beispielen und Lösungen als Unterstützung bei der Wissensanwendung
- Doulos SystemVerilog Golden Reference Guide für Sprache, Syntax, Semantik und Tipps
Struktur und Inhalt
Fast-track Verilog for VHDL Users (1-3 days)
Introduction
What is Verilog? • brief history and current status • the PLI • scope of Verilog • design flow • Verilog-2001 • SystemVerilog • Verilog books and Internet resourcesDifferences between VHDL and Verilog
"Philosophy" • red tape • strong typing • determinism • data abstraction • dtructure vs behaviour - nets vs registers • language structure - architecture, packages, configurations, files • identifiers • output ports • implicit wires • arrays • aggregates • signedness • operators • signal vs variables/nets • process vs initial/always • if, case, loop differences • file i/o • hierarchical namesVerilog basics
Modules & ports • continuous assignments • comments • names • nets and strengths • design hierarchy • module instances • primitive instances • text fixtures • $monitor • initial blocks • logic values • vectors • registers • numbers • output formatting • timescales • always blocks • $stop and $finish • using nets and variables correctlyCombinational logic
Event control • if statements • begin-end • incomplete assignment and latches • unknown and don't care • conditional operator • tristates • case, casez and casex statements • full_case and parallel_case directives • for, repeat, while and forever loops • integers • self-disabling blocks • combinational logic synthesisSequential logic
Synthesising flip-flops & latches • avoiding simulation race hazards • nonblocking assignments • asynchronous & synchronous resets • clock enables • synthesizable always templates • designing state machines • state machine architectures • Verilog code-based FSM strategy • state encoding • unreachable states & safe design practices • one-hot machinesOther features of Verilog
Verilog operators • part selects • concatenation & replication • shift registers • conditional compilation • parameterisation and generate • hierarchical names • arithmetic operators and their synthesis • signed and unsigned values • memory arrays • RAM modelling and synthesis • $readmemb and $readmemhTasks and functions
Understanding tasks • task arguments • task synchronization • tasks and synthesis • functionsTest fixtures
File I/O - writing to files; file access using MCDs; reading from files • automated design verification using Verilog • force and release • gate-level simulation • back annotation using SDF • "traditional" Verilog libraries • configuration and libraries • command-line options • behavioural modellingBehavioural Verilog
Algorithmic coding • synchronization using waits & event control • concurrent-disabling of always blocks • named events • fork & join • high-level modelling using tasks, implicit FSMs and concurrent-disabling • understanding intra-assignment controls • overcoming clock skew • blocking and nonblocking assignments • continuous procedural assignmentFundamentals of SystemVerilog for Design (1 ½ days)
The SystemVerilog data type system
enum • typedef • struct • union • packed/unpacked • packages and $unit • using arrays in SystemVerilog • array and structure literals, assignment patternsNets and variables
Key changes in Verilog-2005 and SystemVerilog • continuous assignment to variables • modified driver and connection rules • data types on ports and netsModules and processes
Port connection shorthand • type parameters • synthesis idioms for processes • miscellaneous improvements to the languageDesign applications of interfaces
The interface construct • interfaces to encapsulate communication • modports • synthesis of interfaces and modports • imported functions for designFundamentals of SystemVerilog for Verification (½ day)
Key features of the SystemVerilog data type system
enum • typedef • struct • union • packed/unpacked • packagesNets and variables
Key changes in Verilog-2005 and SystemVerilogTestbench applications of interfaces
The interface construct • modportsSystemVerilog Assertions (½ day)
Introduction to assertions
Assertions, properties, sequences • clocking and sampling • property implication • uses of assertions • simulation of assertions • formal toolsAssertion methodology
Methodology consequences of assertion-based design and verification • assertion and assumption • benefits of assertions to the designer • protocol checkersA brief introduction to SVA syntax
Writing simple assertions of your own • sequences and the ## operator • repetition and time ranges • sequence fusion • overview of temporal operators • local variables and actions in assertionsPackaging Assertions
Assertions in interfaces and modules • the bind construct • deploying verification IP, particularly assertion-based IPModule-based SystemVerilog Verification (1-day)
Verification for designers
Bus functional models • testbench architecture in classic Verilog • stimulus and response timingUsing 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 testbenchDynamic data types
strings • queues • dynamic arrays • associative arrays • queue and array methods • foreach loopTestbench 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 dataClass-based SystemVerilog Verification (2-days)
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 methodHooking 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 architectureVarying the Stimulus
Generator template objects • introduction to constraints • implication constraints • derived classes • upcasting and the is-a relationship • virtual methodsComponents and Channels
FIFO channels to decouple components • base class for transaction data • downcasting and $cast • parameterized classes and macros for specialization • running self-contained components with fork…joinReusable Testbench Components
Maintaining a component instance hierarchy • virtual base class for components • launching a task with fork…join_none • testbench component arhitecture • 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 exclusionCoverage 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 reportsAdopter Classes
Each of these classes provides a quick-start, practical introduction to one of the vendor-advocated verification methodology approaches that are rapidly gaining popularity in the SystemVerilog verification community. They can be presented as a 2-3day class giving hands-on experience of the chosen methodology, or ½ to 1-day overview to introduce the key ideas and benefits. They are designed for use within the context of Doulos team-based SystemVerilog verification training, but can also be used stand-alone.- OVM Adopter Class
- UVM Adopter Class
- VMM Adopter Class
No public course dates are currently scheduled
Please contact Doulos to schedule a public course to suit you, or to discuss onsite training.
Back to top





