view dates and locations
In English
Expert Verilog® ist ein 4-tägiges fortgeschrittenes Anwendungstraining. Ingenieuren wird vermittelt, wie sie die Produktivität durch Ausbau ihrer Verilog-Codierungs- und -anwendungsfähigkeiten steigern können. Untergliedert in zwei Module stehen im Mittelpunkt Sprache und Synthese, Design-Re-Use, Testbenches und aktuellste Verifikationstechniken. Darüber hinaus beinhaltet das Training eine Einführung in die Annahmen-basierte Verifikation. In beiden Modulen wird auf SystemVerilog eingegangen inklusive einer Einschätzung Ihres Nutzens für sowohl Design als auch Verifikation.
Die Module können als Komplettkurs oder einzeln besucht werden. Sie bauen auf dem Doulos Industriestandard-Kurs „Comprehensive Verilog“ auf. Sorgfältig ausgearbeitete Workshops machen 50% der Unterrichtszeit aus und ermöglichen den Ingenieuren, das Erlernte im Kontext der neuesten Verilog-Designtools, -verfahren und -methoden anzuwenden.
Alle Kursteilnehmer müssen Erfahrungen mit Verilog mitbringen, die einer aktiven Anwendung von Verilog in einem realen Ingenieurprojekt von mindestens 6 Monaten entspricht.
Die Doulos Kursunterlagen sind für ihren umfassenden Informationsgehalt und die äußerst benutzerfreundliche Präsentation allgemein bekannt. In ihrem Aufbau, Inhalt und ihrer Themenbehandlung sind sie einzigartig im HDL-Schulungsbereich, was sie zu begehrten Nachschlagewerken hat werden lassen. Die Kursunterlagen umfassen:
Appreciating the finer points of syntax directed translation • Incomplete assignment, latches and re-circulation • Using blocking and non-blocking assignments • Asynchronous inputs to clocked processes • Inference versus instantiation • The limits of combinational, register and arithmetic optimisation • Using hierarchy to control synthesis • Timing constraints, area constraints, and optimisation options • Multiple clock edges and partitioning clock domains • Synthesis methodology for large designs • Coding styles for efficient and maintainable designs • Implementing sequential algorithms in RTL • Bit-serial processing, pipelining and speed/space trade-offs
Language level re-use • Standard component re-use • General re-use • Economic payback from re-use • Re-use culture • Packaging IP for re-use • Documenting IP, including test cases • Impact of IP on design flow planning • Impact of IP on revision control, bug tracking, archiving • Writing re-usable Verilog • RTL Verilog style for capturing IP • Hierarchy and partitioning • Isolating tool and technology dependencies • Readability and maintainability • Comments and meaningful names • Identifying generalisable properties • Language facilities for re-use, including Verilog-2001 improvements
Why use assertions in your designs? • Introduction to Properties • Property languages • Property Specification Language (PSL) • Introduction to temporal operators
A tutorial review of the major new features of Verilog-2001 that are relevant to design
A tutorial review of the SystemVerilog and its impact.
Verification flow • Black and white box testing styles • Code analysis to guide testing • Techniques for stimulus generation and output checking
Fine-grain concurrency with fork/join • The Verilog simulation cycle and its impact on coding style • Non-determinism and race hazards • Understanding the effect of delayed signal assignments
Structuring test fixtures with tasks and functions • Tactics for packaging code for maintainability and re-use • Advanced stimulus generators: serial data, complex timing • Software encapsulation: modules, local variables, multiple hierarchies
Bus functional models • Techniques for layering your test fixtures • Using Verilog modules like OO classes • Transaction generation using bus functional models • Re-use and flexibility of test fixture code
Specify blocks • Built-in timing checks • Strobing inputs and sampling outputs • Measuring delays • Storing inputs/outputs in a buffer • Collecting and filtering diagnostic data • Simple data visualisation techniques
Uses of component modelling • Component modelling methods • Choosing a component model • Structure of a component model • Handling asynchronous inputs • Storing inputs/outputs and sampling outputs • Measuring delays
Modelling memories • Imitating dynamic allocation in Verilog • Using public domain PLI applications to model large memories • Modelling external analogue subsystems • Signature analysis and other techniques for regression testing • Varying the timing of stimulus • Modelling communcations channels • Random and directed-random tests
(note: no prior experience of C is assumed)
Incorporating PLI applications into your simulations • What the PLI can and can’t do • Two generations of the PLI – which to use? • Types of PLI application: functions, stimulus generators, file access, component models • Pointers to functions in C • Function pointer tables • PLI application integration in various simulators
A tutorial review of recent changes in the Verilog language that are relevant to verification • Preview of SystemVerilog verification extensions
To meet varying specialist interests for team-based training, one or more of these optional modules can be integrated with the course by prior agreement with Doulos. These options are not available on scheduled public courses.
Verilog drive strengths • Modelling I/O primitives such as open-drain and pullup • Verilog switch primitives • Simulating the external analogue world using real numbers and sampled-time
Review of Verilog-1995 file I/O mechanisms • Verilog-2001 file I/O model and file reading functions • Reading structured data from text files • File-driven test fixtures
The PLI option requires a working knowledge of the C programming language.
PLI jargon • VPI and TF/ACC routines • Creating a simple PLI application • Linking PLI code to your Verilog simulation • Callback functions • Stimulus generators • Making PLI applications sensitive to input changes • Writing component models in the PLI