SystemVerilog Essentials Simulation & Synthesis

Similar documents
קורס SystemVerilog Essentials Simulation & Synthesis.. SystemVerilog

SystemVerilog For Design Second Edition

VHDL Essentials Simulation & Synthesis

Verilog Essentials Simulation & Synthesis

VHDL for Synthesis. Course Description. Course Duration. Goals

Verilog for High Performance

Sunburst Design - Comprehensive SystemVerilog Design & Synthesis by Recognized Verilog & SystemVerilog Guru, Cliff Cummings of Sunburst Design, Inc.

Course Profile SystemVerilog Design

ALTERA FPGA Design Using Verilog

Sunburst Design - Advanced SystemVerilog for Design & Verification by Recognized Verilog & SystemVerilog Guru, Cliff Cummings of Sunburst Design, Inc.

What, If Anything, In SystemVerilog Will Help Me With FPGA-based Design. Stuart Sutherland, Consultant and Trainer, Sutherland HDL, Inc.

Extending SystemVerilog Data Types to Nets

World Class Verilog & SystemVerilog Training

SystemVerilog Lecture 3. Prof. Gerald E. Sobelman Dept. of Electrical and Computer Engineering University of Minnesota Minneapolis, MN USA

Sunburst Design - Verilog-2001 Design & Best Coding Practices by Recognized Verilog & SystemVerilog Guru, Cliff Cummings of Sunburst Design, Inc.

UVM for VHDL. Fast-track Verilog for VHDL Users. Cont.

SystemVerilog 3.1: It s What The DAVEs In Your Company Asked For

List of Code Samples. xiii

Extending SystemVerilog Data Types to Nets

Unifying Design and Verification

EECS 470 Lab 6. SystemVerilog. Department of Electrical Engineering and Computer Science College of Engineering. (University of Michigan)

Verilog: The Next Generation Accellera s SystemVerilog Standard

Modular SystemVerilog


Lecture 8: More SystemVerilog Features

FPGA for Software Engineers

Creating PCI Express Links in Intel FPGAs

SystemC Synthesis Standard: Which Topics for Next Round? Frederic Doucet Qualcomm Atheros, Inc

C-LANGUAGE CURRICULAM

Taking Advantage of SystemVerilog for Design with ModelSim

Verilog for Synthesis Ing. Pullini Antonio

קורס VHDL for High Performance. VHDL

Introduction to the Qsys System Integration Tool

Quartus II Prime Foundation

Cadence Technical Analysis of System Verilog DECEMBER 2002

IMPORTANT QUESTIONS IN C FOR THE INTERVIEW

Introduction to Verilog

Can My Synthesis Compiler Do That?

Tokens, Expressions and Control Structures

Logic Synthesis. EECS150 - Digital Design Lecture 6 - Synthesis

Modular SystemC. In-house Training Options. For further information contact your local Doulos Sales Office.

A Tutorial Introduction 1

Bulletproofing FSM Verification Automated Approach to Detect Corner Case Issues in an FSM Design

ALTERA FPGAs Architecture & Design

Register Transfer Level in Verilog: Part I

EEL 4783: HDL in Digital System Design

EN2911X: Reconfigurable Computing Topic 02: Hardware Definition Languages

CSE140L: Components and Design Techniques for Digital Systems Lab

Synthesis vs. Compilation Descriptions mapped to hardware Verilog design patterns for best synthesis. Spring 2007 Lec #8 -- HW Synthesis 1

EECS150 - Digital Design Lecture 10 Logic Synthesis

System Verilog Tagged Unions and Pattern Matching

C Programming SYLLABUS COVERAGE SYLLABUS IN DETAILS

PG DIPLOMA COURSE IN VERIFICATION USING SYSTEMVERILOG & UVM NEOSCHIP TECHNOLOGIES

Axivion Bauhaus Suite Technical Factsheet MISRA

JVA-103. Java Programming

CSE140L: Components and Design

System Verilog Tagged Unions and Pattern Matching

Two HDLs used today VHDL. Why VHDL? Introduction to Structured VLSI Design

SystemVerilog For Design

ECE 353 Lab 4. Verilog Review. Professor Daniel Holcomb With material by Professor Moritz and Kundu UMass Amherst Fall 2016

Synthesis of Combinational and Sequential Circuits with Verilog

Verilog HDL. A Guide to Digital Design and Synthesis. Samir Palnitkar. SunSoft Press A Prentice Hall Title

EE 4755 Digital Design Using Hardware Description Languages

Review of the C Programming Language for Principles of Operating Systems

EEL 4783: HDL in Digital System Design

HDL Compiler Directives 7

2. Learn how to use Bus Functional Models (BFM) and write test cases for verifying your design.

Preface... (vii) CHAPTER 1 INTRODUCTION TO COMPUTERS

VHDL. VHDL History. Why VHDL? Introduction to Structured VLSI Design. Very High Speed Integrated Circuit (VHSIC) Hardware Description Language

EECS150 - Digital Design Lecture 5 - Verilog Logic Synthesis

Appendix. Grammar. A.1 Introduction. A.2 Keywords. There is no worse danger for a teacher than to teach words instead of things.

EECS150 - Digital Design Lecture 10 Logic Synthesis

University of California, Davis Department of Electrical and Computer Engineering. EEC180B DIGITAL SYSTEMS Spring Quarter 2018

SystemVerilog For Design. A Guide to Using SystemVerilog for Hardware Design and Modeling

The Pipeline Lab Copyright Bluespec Inc

Review of the C Programming Language

Oracle Database 11g: SQL and PL/SQL Fundamentals

101-1 Under-Graduate Project Digital IC Design Flow

RIZALAFANDE CHE ISMAIL TKT. 3, BLOK A, PPK MIKRO-e KOMPLEKS PENGAJIAN KUKUM. SYNTHESIS OF COMBINATIONAL LOGIC (Chapter 8)

System-On-Chip Architecture Modeling Style Guide


ENGN1640: Design of Computing Systems Topic 02: Lab Foundations

The Verilog Hardware Description Language

What, If Anything, In SystemVerilog Will Help Me With FPGA-based Designs?

C++ Important Questions with Answers

TSIU03, SYSTEM DESIGN LECTURE 2

ENGN1640: Design of Computing Systems Topic 02: Design/Lab Foundations

OVERVIEW: ============================================================ REPLACE

Synthesizable Verilog

Writing an ANSI C Program Getting Ready to Program A First Program Variables, Expressions, and Assignments Initialization The Use of #define and

Actel Libero TM Integrated Design Environment v2.3 Structural Schematic Flow Design Tutorial

Digital System Design with SystemVerilog

AXI4-Stream Verification IP v1.0

2. Mentor Graphics ModelSim and QuestaSim Support

ENGN1640: Design of Computing Systems Topic 02: Design/Lab Foundations

Verilog Design Entry, Synthesis, and Behavioral Simulation

EEL 5722C Field-Programmable Gate Array Design

Designing with ALTERA SoC Hardware

In our case Dr. Johnson is setting the best practices

Absolute C++ Walter Savitch

Transcription:

SystemVerilog Essentials Simulation & Synthesis Course Description This course provides all necessary theoretical and practical know-how to design programmable logic devices using SystemVerilog standard language. The course goes into great depth, and touches upon every aspect of the standard with directly connected to the topics needed in the industry today. The course combines 50% theory with 50% practical work in every meeting. The practical labs cover all the theory and also include practical digital design. SystemVerilog is a significant new enhancement to Verilog and includes major extensions into abstract design, testbench, formal, and C-based APIs. SystemVerilog also defines new layers in the Verilog simulation strata. These extensions provide significant new capabilities to the designer, verification engineer and architect, allowing better teamwork and co-ordination between different project members. The course goes into great depth, and touches upon every aspect of the standard with directly connected to the topics needed in the industry today. The course also teaches how to write test-bench programs and employ a simulation and synthesis tools. The course emphasizes the difference between testing code and synthesizable code. Course Duration 4 days Goals 1. Become familiar with SystemVerilog language 2. Use SystemVerilog declaration spaces 3. Use SytsemVerilog User-defined and Enumerated types 4. Use SystemVerilog arrays, structures and unions 5. Become familiar with SystemVerilog procedural blocks, tasks and functions

6. Use SystemVerilog new operators and loop statements 7. Model Finite State Machines with SystemVerilog 8. Design hierarchy with SystemVerilog 9. Become familiar with SystemVerilog interfaces Intended Users Hardware or software engineers who would like to design with SystemVerilog System engineers who would like to enhance their professional skills Previous Knowledge A basic background in digital logic, Verilog Course Material 1. Simulator: Modelsim or ActiveHDL 2. Synthesizer and Place & Route: Quartus II (ALTERA) or Precision (MentorGraphics)

Table of Contents Day #1 Introduction to SystemVerilog o SystemVerilog history and revisions o Key SystemVerilog enhancements for hardware design SystemVerilog Language New Declarations o Package Package definition Referencing package contents o $unit Coding guidelines SystemVerilog identifier search rules Source code order Coding guidelines for importing packages into $unit o Declarations in unnamed statement blocks o Simulation time units and precision SystemVerilog Literal Values & Built-in Data Types o Enhanced literal value assignments o `define enhancements o Variables Object types and data types 4-state variables 2-state variables Explicit and implicit variable and net data types o Using 2-state types in RTL models 2-satte type characteristics 2-state types versus 2-state simulation Using 2-state types with case statements o Relaxation of type rules o Signed and unsigned modifiers o Static and automatic variables

Static and automatic variable initialization for automatic variables Guidelines for using static and automatic variables o Deterministic variable initialization Initialization determinism Initializing sequential logic asynchronous inputs o Type casting Static casting Dynamic casting o Constants SystemVerilog User-Defined & Enumerated Types o User-defined types Local typedef definitions Shared typedef definitions Naming convention for user-defined types o Enumerated types Enumerated type label sequences Enumerated type label scope Enumerated type values Base type of enumerated types Typed and anonymous enumerations Strong typing on enumerated type opertaions Casting expressions to enumerated types Special system task and methods for enumerated types Printing enumerated types SystemVerilog Arrays, Structures, and Unions o Structures Structures declarations Assigning values to structures Packed and unpacked structures Passing structures through ports Passing structures as arguments to tasks and functions o Unions Unpacked unions Tagged unions

Packed unions Using structures and unions o Arrays Unpacked arrays Packed arrays Using packed & unpacked arrays Initializing arrays at declaration Assigning values to arrays Copying arrays Copying arrays and structures using bit-stream casting Arrays of arrays Using user-defined types with arrays Passing arrays through ports and to tasks and functions Arrays of structures and unions Arrays in structures and unions o The foreach array looping construct o Array querying system functions o The $bits sizeof system function o Dynamic arrays, associative arrays, sparse arrays and strings Day #2 SystemVerilog Procedural Blocks o Verilog general purpose always procedural block o SystemVerilog specialized procedural blocks Combinational logic procedural blocks Latched logic procedural blocks Sequential logic procedural blocks SystemVerilog Tasks & Functions o Implicit task and function statement grouping

o Returning function values o Returning before end of tasks and functions o Void functions o Passing task/function arguments by name o Enhanced function formal arguments o Functions with no formal arguments o Default formal argument direction and type o Default formal argument values o Arrays, structures and unions as formal arguments o Passing argument values by reference instead of copy o Named task and function ends o Empty tasks and functions SystemVerilog Procedural Statement o New operators Increment and decrement operators Assignment operators Equality operators with don t care wildcards Set membership operator (inside) o Operand enhancements Operations on 2-state and 4-state types Type casting Size casting Sign casting o Enhanced for loops Local variables within for loop declarations Multiple for loop assignments Hierarchically referencing variables declared in for loops o Bottom testing do while loop o The foreach array looping construct o New jump statements The continue statement The break statement The return statement o Enhanced block names o Statement labels o Enhanced case statements

Unique case decisions Priority case statements Unique and priority versus parallel_case and full_case o Enhanced if else decisions Unique if else decisions Priority if decisions Day #3 SystemVerilog Finite State Machines Modeling o Representing state encoding with enumerated types o Reversed case statements with enumerated types o Enumerated types and unique case statements o Specifying unused state values o Assigning state values to enumerated type variables o Performing operations on enumerated type variables o Using 2-state types in FSM models o Synthesis guidelines SystemVerilog Design Hierarchy o Module prototypes Prototype and actual definition Avoiding port declaration redundancy o Named ending statements Named module ends Named code block ends o Nested module declarations Nested module name visibility Instantiating nested modules Nested module name search rules o Simplified netlists of module instances Implicit.name port connections Implicit.* port connection o Net aliasing Alias rules

Implicit net declarations Using aliases with.name and.* o Passing values through module ports All types can be passed through ports Module port restrictions in SystemVerilog o Reference ports Reference ports as shared variables o Enhanced port declarations Verilog-1995 port declarations Verilog-2001 port declarations SystemVerilog port declarations o Parameterized types SystemVerilog Interfaces o Interface concept Disadvantages of Verilog s module ports Advantages of SystemVerilog interfaces SystemVerilog interface contents Differences between modules and interfaces o Interface declarations Source code declaration order Global and local interface definitions o Using interfaces as module ports Explicitly named interface ports Generic interface ports o Instantiating and connecting interfaces o Referencing signals within an interface o Interface modports o Using tasks and functions in interfaces Interface methods Importing interface methods for interface methods Exporting tasks and functions o Using procedural blocks in interfaces o Reconfigurable interfaces o Verification with interfaces

Day #4 Behavioral & Transaction Level Modeling o Behavioral modeling o What is a transaction? o Transaction level modeling in SystemVerilog o Transaction level models via interfaces o Bus arbitration o Transactors, adapters, and bus functional models o More complex transactions Complete Design Modeled with SystemVerilog o Building small project that encapsulates most of the course contents