SystemVerilog Design für Verilog Anwender
Schulungsdaten und -orte
In English
Wie Viel SystemVerilog Training brauchen Sie? Bitte sehen Sie sich das Video an!
SystemVerilog (IEEE 1800™), der Nachfolger von Verilog®, ist zu dem dominierenden Sprachstandard für funktionale Verifikation geworden. SystemVerilog verbessert die Fähigkeiten von Verilog in vielen Bereichen erheblich, bietet den RTL Designern Verbesserungen für mehr Produktivität, sowie dem Verifikationsingenieur Assertions und zufallsbasierte Stimulusgenerierung.
SystemVerilog for Designers bietet ein an die Erfordernisse eines Hardware-Design-Ingenieurs angepasstes kompaktes und konzentriertes Trainingsprogramm. Es ist so strukturiert, dass es Ingenieuren ermöglicht, ihre Fähigkeiten unter Ausnutzung von SystemVerilog-Funktionen für übliche Design- und Verifikationsanforderungen zu erweitern, einschließlich RTL-Kodierung, Assertions und Testbenches. In diesem Training wird nicht intensiver auf die Bedürfnisse von Verifikationsspezialisten eingegangen, die das Potential der klassenbasierten Verifikation und objektorientierte Techniken mit SystemVerilog ausschöpfen möchten. (Dies wird hingegen an Tag 4 und 5 des Doulos „Comprehensive SystemVerilog“-Trainings behandelt, welches den Inhalt des Trainings „SystemVerilog for Designers“ in den ersten drei Tagen umfasst.)
Die Workshops nehmen ca. 50% der Unterrichtszeit ein und basieren auf sorgfältig ausgearbeiteten Übungen, welche die neu erworbenen Kenntnisse herausfordern, um das Erlernte zu untermauern und zu festigen.
Da Doulos herstellerunabhängig ist, profitieren die Kursteilnehmer 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:
Weitere Tools können eventuell auf Anfrage zur Verfügung gestellt werden. Bitte wenden Sie sich an Doulos, falls Ihre Tools hier nicht aufgeführt sind.
Es wird das Fundament für das Erlernen von SystemVerilog für Design und Verifikation gelegt (¾ Tag); außerdem werden die folgenden Punkte behandelt:
Fundierte praktische Grundkenntnisse in Verilog sind unerlässlich.
Ingenieure, die keine Vorkenntnisse in einer Hardwarebeschreibungssprache haben, müssen vor der Teilnahme an diesem Training den Doulos-Kurs Comprehensive Verilog oder ein vergleichbares Training besuchen.
Für diejenigen, die zwar keine Verilog-Vorkenntnisse haben, aber fundierte Erfahrung mit VHDL, bietet Doulos den Kurs Fast Track Verilog for VHDL Users an, der die perfekte Grundlage für das Training SystemVerilog bietet. Der Fast-Track-Kurs findet normalerweise kurz vor dem „Comprehensive SystemVerilog“ Training am selben Ort statt. Bitte werfen Sie einen Blick auf Course Schedule, um die aktuelle Kursplanung zu sehen.
Für ein Inhouse-Training können wir das Vorbereitungs-Training zu Verilog auf Ihre speziellen Teambedürfnisse zuschneiden und mit den passenden SystemVerilog-Modulen kombinieren, so dass Ihr Team genau das erlernt, was es braucht (siehe auch Modular SystemVerilog).
Bitte wenden Sie sich an Doulos, um Ihre individuellen Bedürfnisse zu besprechen.
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:
What is SystemVerilog? • Language Evolution • SystemVerilog Language Features • Caveats • The UVM Family Tree • Books and Resources
Logic Type • Reg, Logic, and Bit • Nets versus Variables - Refresh • Wire versus Var
C-Like Language Features • Static vs Automatic Variables • Static vs Automatic Tasks • ++, --, and Assignment Operators • Labeling • Time Units • Do While Loop • Immediate Assertions • join_none and join_any • Enhanced Tasks and Functions • Task and Function Arguments • Void Functions • Argument and Return Types • Type string • $sformat and $sformatf
Simple Module-Based BFM • Testbench using BFM • Separate Test from Test Harness
4-state and 2-state Types • Initial Values • Caveats with Signed Types • Enumerations • Type-Checking of Enumerations • struct • typedef struct • Packed Struct • Packed and Unpacked Arrays • Indexing Multidimensional Arrays • Packages • Packages and Ports
Simple Interface • Package versus Interface • Instantiating an Interface • Accessing Interface Members • Ports and Parameters on Interfaces • Pin-Level Interface • Modports • Generic Interface Ports • Task/Function in Interface • Calling Task through Interface Port
SystemVerilog RTL
SystemVerilog and RTL Synthesis • Combinational Logic • Clocked Processes • always_comb, always_latch, always_ff • Synthesis-Friendly If / Case • priority case • unique if • unique case • Wild Equality Operators • case inside • inside Operator
Synthesizable Data Types • Enums for Finite State Machines • Base Types and Values • Rules for Overriding the Enum Values • Packed Struct (Review) • Packed Union • Multidimensional Arrays • Nets, Ports and Data Types • Types and Packages • Type Parameters • Synthesis of Interfaces • Multiple Drivers on a Bus • How to Differentiate Connections? • Modport Expressions • Modport Expressions with Generate
SystemVerilog Assertions
What are Properties? • Property versus Assertion • Benefits Of Assertions • Who Writes Properties? • Immediate and Concurrent Assertions • Immediate Assertions • Assertion Failure Severity • Concurrent Assertions • Temporal Behaviour • Clocks and Default Clocks • Holds and Implication • Non-overlapped Implication • Simulation of Assertions • Assertion Coverage • Simulation and Cover Property • Binding
Implication • Properties are checked on every clock • |=> and |-> • $rose() and $fell() • $rose() vs posedge • $past() • $sampled() • Properties using Expressions • Named Properties • Sequences – Basic Syntax • Concatenation • Repetition • Consecutive Repetition • Unbounded Repetitions • Zero Repetitions • Non-Consecutive and Goto Repetition • Sequence versus Implication • $rose() and $fell() versus Sequence
Sequence Operators • Sequence Or • Sequence and • Non-Length-Matching and • Sequence Length-Matching and • Throughout • Within • first_match • Property Operators • Beware Negating Implications • Operator Precedence • Named Sequences and Properties • Sequence Completion • Variables and Procedures in Sequences • Detecting the Endpoint of a Sequence • Turning Assertions Off
Module-based SystemVerilog Verification
Clocking Block Syntax • Input and Output Skew • Creating a Clocking Block • Testbench and Clocking Block • Cycle Delays and Clocking • Input and Output Skew Syntax Summary • Scheduler Regions • Stimulus and Response • Signal Aliasing • Multiple Clocking Blocks • Driving a Net • Clocking Blocks in Interfaces • Clocking Blocks versus Programs
Constrained Random Verification • Random Numbers in SystemVerilog • std::randomize • Constraint Syntax • Seeding and Random Stability • Saving & Restoring Seeds • Random Sequence of Valid Actions • Randcase • Randsequence
Functional Coverage • Coverage Bins • Further Options • Transition Coverage • Cross Coverage • Adjusting Stimulus Using Coverage
Dynamic Arrays • Queues • Working with Queues • Queue Methods • Nesting, Assignment Patterns, and %p • Array-like Containers • Associative Arrays • Associative Array Methods • Foreach
$root and $unit • Enumeration Methods • Arrays for Multidimensional Structures • Initializing an Unpacked Array • Replication in an Assignment Pattern • Packed Arrays and Structures • Pass-by-Copy • Pass-by-Reference • const ref • Array Querying Functions • $bits • Bit-stream Casting • Array Manipulation Methods • Array Locator Methods • Array Ordering Methods • Array Reduction Methods • Other IEEE 1800-2009 Features
DPI Simulation Flow • Command-line Switches • Importing a C Function • Changing the Imported Function Name • Mapping Data Types of Arguments • Exporting a Function to C • Sandwiches and Transparency • Importing and Exporting Tasks • Scalar Bit and Logic Arguments • Packed Arrays • Decoding the Canonical Representation • String Arguments • Open Array Arguments • Task Return Values • Task Disable Flow • Pure and Context
Course Dates: | |||
---|---|---|---|
April 29th, 2019 | San Jose, CA | Course has started | |
June 3rd, 2019 | Munich, DE | Enquire | |
June 24th, 2019 | Austin, TX | Enquire | |
July 15th, 2019 | Ringwood, UK | Enquire | |
July 15th, 2019 | Boston, MA | Enquire | |
July 15th, 2019 | Chicago, IL | Enquire | |
July 22nd, 2019 | Munich, DE | Enquire | |
August 5th, 2019 | Ankara, TR | Enquire | |
August 12th, 2019 | San Jose, CA | Enquire | |
August 26th, 2019 | Sacramento, CA | Enquire | |
August 26th, 2019 | San Diego, CA | Enquire | |
September 16th, 2019 | Munich, DE | Enquire | |
September 16th, 2019 | Denver, CO | Enquire | |
September 23rd, 2019 | Austin, TX | Enquire | |
September 30th, 2019 | San Jose, CA | Enquire | |
October 21st, 2019 | Milwaukee, WI | Enquire | |
October 28th, 2019 | Columbia, MD | Enquire | |
November 4th, 2019 | Ringwood, UK | Enquire | |
November 11th, 2019 | Copenhagen, DK | Enquire | |
November 11th, 2019 | Stockholm, SE | Enquire | |
November 11th, 2019 | Munich, DE | Enquire | |
December 16th, 2019 | San Jose, CA | Enquire | |
indicates CONFIRMED TO RUN courses. |