Friday 10 February 2012

Developing & Delivering KnowHow

Home > Training > Modular SystemVerilog

Modular SystemVerilog

Inhouse Trainingsoptionen

 In English

SystemVerilog (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®
Weitere Tools können auf Anfrage zur Verfügung gestellt werden. Bitte wenden Sie sich an Doulos, falls Ihre Tools hier nicht angeführt sind.

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 resources

Differences 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 names

Verilog 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 correctly

Combinational 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 synthesis

Sequential 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 machines

Other 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 $readmemh

Tasks and functions

Understanding tasks • task arguments • task synchronization • tasks and synthesis • functions

Test 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 modelling

Behavioural 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 assignment

Fundamentals 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 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

Fundamentals of SystemVerilog for Verification (½ day)

Key features of the SystemVerilog data type system

enum • typedef • struct • union • packed/unpacked • packages

Nets and variables

Key changes in Verilog-2005 and SystemVerilog

Testbench applications of interfaces

The interface construct • modports

SystemVerilog Assertions (½ day)

Introduction to assertions

Assertions, properties, sequences • clocking and sampling • property implication • uses of assertions • simulation of assertions • formal 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 ranges • 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 assertion-based IP

Module-based SystemVerilog Verification (1-day)

Verification for designers

Bus functional 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 (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 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 • running self-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 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 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

Adopter 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
Privacy Policy Site Map Contact Us