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

Similar documents
World Class Verilog & SystemVerilog Training

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

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

Verilog for High Performance

INSTITUTE OF AERONAUTICAL ENGINEERING Dundigal, Hyderabad ELECTRONICS AND COMMUNICATIONS ENGINEERING

MLR Institute of Technology

St.MARTIN S ENGINEERING COLLEGE Dhulapally, Secunderabad

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

Digital VLSI Design with Verilog

Verilog Essentials Simulation & Synthesis

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

VHDL for Synthesis. Course Description. Course Duration. Goals

CSE140L: Components and Design Techniques for Digital Systems Lab

CSE140L: Components and Design

Synthesizable Verilog

EEL 4783: HDL in Digital System Design

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

Modular SystemVerilog

Logic Synthesis. EECS150 - Digital Design Lecture 6 - Synthesis

VERILOG QUICKSTART. Second Edition. A Practical Guide to Simulation and Synthesis in Verilog

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

FPGA for Software Engineers

Register Transfer Level in Verilog: Part I

structure syntax different levels of abstraction

Here is a list of lecture objectives. They are provided for you to reflect on what you are supposed to learn, rather than an introduction to this

Digital Design with SystemVerilog

Hardware Design Environments. Dr. Mahdi Abbasi Computer Engineering Department Bu-Ali Sina University

Verilog Tutorial. Verilog Fundamentals. Originally designers used manual translation + bread boards for verification

Verilog Tutorial 9/28/2015. Verilog Fundamentals. Originally designers used manual translation + bread boards for verification

ALTERA FPGA Design Using Verilog

CHAPTER - 2 : DESIGN OF ARITHMETIC CIRCUITS

EECS150 - Digital Design Lecture 5 - Verilog Logic Synthesis

ECE 551 Digital System Design and Synthesis. Instructor: Kewal K. Saluja. Midterm Exam

SystemVerilog Essentials Simulation & Synthesis

Lecture 32: SystemVerilog

R07. IV B.Tech. II Semester Supplementary Examinations, July, 2011

Lecture 15: System Modeling and Verilog

Digital Logic Design Lab

Verilog Nonblocking Assignments with Delays - Myths & Mysteries

VERILOG QUICKSTART. James M. Lee Cadence Design Systems, Inc. SPRINGER SCIENCE+BUSINESS MEDIA, LLC

Writing Circuit Descriptions 8

EECS150 - Digital Design Lecture 10 Logic Synthesis

Verilog Tutorial (Structure, Test)

VHDL Essentials Simulation & Synthesis

ECE 156A - Syllabus. Description

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

14:332:231 DIGITAL LOGIC DESIGN. Hardware Description Languages

A Verilog Primer. An Overview of Verilog for Digital Design and Simulation

Verilog. What is Verilog? VHDL vs. Verilog. Hardware description language: Two major languages. Many EDA tools support HDL-based design

: : (91-44) (Office) (91-44) (Residence)

Date Performed: Marks Obtained: /10. Group Members (ID):. Experiment # 11. Introduction to Verilog II Sequential Circuits

Chapter 4 :: Topics. Introduction. SystemVerilog. Hardware description language (HDL): allows designer to specify logic function only.

Verilog introduction. Embedded and Ambient Systems Lab

EECS150 - Digital Design Lecture 10 Logic Synthesis

Verilog Overview. Verilog Overview. Simple Example. Simple Example. Simple Example. Simple Example

PINE TRAINING ACADEMY

A Brief Introduction to Verilog Hardware Definition Language (HDL)

Chapter 4. Digital Design and Computer Architecture, 2 nd Edition. David Money Harris and Sarah L. Harris. Chapter 4 <1>

Chapter 4. Digital Design and Computer Architecture, 2 nd Edition. David Money Harris and Sarah L. Harris. Chapter 4 <1>

ECE 2300 Digital Logic & Computer Organization. More Sequential Logic Verilog

FPGA Design Challenge :Techkriti 14 Digital Design using Verilog Part 1

EITF35: Introduction to Structured VLSI Design

register:a group of binary cells suitable for holding binary information flip-flops + gates

Schematic design. Gate level design. 0 EDA (Electronic Design Assistance) 0 Classical design. 0 Computer based language

Digital System Design with SystemVerilog

A Tutorial Introduction 1

Midterm Exam Thursday, October 24, :00--2:15PM (75 minutes)

The Verilog Hardware Description Language

RTL HARDWARE DESIGN USING VHDL. Coding for Efficiency, Portability, and Scalability. PONG P. CHU Cleveland State University

PG Certificate. VLSI Design & Verification (RTL using Verilog, FPGA Design Flow & Verification) (Live Project)

CAD for VLSI Design - I. Lecture 21 V. Kamakoti and Shankar Balachandran

Spiral 1 / Unit 4 Verilog HDL. Digital Circuit Design Steps. Digital Circuit Design OVERVIEW. Mark Redekopp. Description. Verification.

N-input EX-NOR gate. N-output inverter. N-input NOR gate

Lecture 1: Introduction Course arrangements Recap of basic digital design concepts EDA tool demonstration

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

430 Index. D flip-flop, from nands, 189, 191, 192 D flip-flop, verilog, 37

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

EE 4755 Digital Design Using Hardware Description Languages

Verilog 1 - Fundamentals

קורס VHDL for High Performance. VHDL

Laboratory Exercise 3 Davide Rossi DEI University of Bologna AA

In this lecture, we will go beyond the basic Verilog syntax and examine how flipflops and other clocked circuits are specified.

CSCB58 - Lab 3. Prelab /3 Part I (in-lab) /2 Part II (in-lab) /2 TOTAL /8

EE 4755 Digital Design Using Hardware Description Languages

Introduction to Verilog

HDLs and SystemVerilog. Digital Computer Design

Digital VLSI Design with Verilog

ECE Digital System Design & Synthesis Exercise 1 - Logic Values, Data Types & Operators - With Answers

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

The Verilog Hardware Description Language, Fifth Edition

Sequential Logic Design

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

Nonblocking Assignments in Verilog Synthesis, Coding Styles That Kill!

VERILOG HDL. (and C) 1 ENGN3213: Digital Systems and Microprocessors L#5-6

Lecture #1: Introduction

Recommended Design Techniques for ECE241 Project Franjo Plavec Department of Electrical and Computer Engineering University of Toronto

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

Speaker: Kayting Adviser: Prof. An-Yeu Wu Date: 2009/11/23

Synthesis of Combinational and Sequential Circuits with Verilog

Why Should I Learn This Language? VLSI HDL. Verilog-2

Transcription:

World Class Verilog & SystemVerilog Training Sunburst Design - Verilog-2001 Design & Best Coding Practices by Recognized Verilog & SystemVerilog Guru, Cliff Cummings of Sunburst Design, Inc. Cliff Cummings is the only Verilog & SystemVerilog Trainer who helped develop every IEEE & Accellera Verilog, Verilog Synthesis and SystemVerilog Standard. 3 Days 50% Lecture, 50% Lab Basic - Intermediate Level Course Objective Simply stated, to give engineers world class Verilog training using award winning materials developed by renowned Verilog & SystemVerilog Guru, Cliff Cummings Upon completion of this course, students will: have a detailed understanding of the important Verilog-2001 language features understand the necessary constructs for o design, synthesis and verification o simulation of gate-level netlists know how to write and simulate o complex hardware models o simple synthesizable models o self-checking testbenches know how to run efficient Verilog simulations be immediately productive at modeling and simulating complex Verilog designs Course Overview Sunburst Design - Verilog-2001 Design & Best Coding Practices is a 3-day fast-paced intensive course on the IEEE 1364-2001 Verilog Hardware Description Language and its usage for hardware design and verification. This course is designed to emphasize important RTL modeling and efficient testbench techniques while teaching the important Verilog-2001 syntax. Unlike traditional Verilog courses that start with gate-level design and work towards behavioral coding styles, the Verilog-2001 Design course focuses on important behavioral design and synthesis coding styles first, along with high-level verification techniques, to instill and reinforce good coding habits early and often during the entire 34-day course.

This course includes 40+ slides and a copy of Cliff's first award winning paper on nonblocking assignments to offer a comprehensive introduction to blocking vs. nonblocking assignments along with important coding guidelines related to design styles aimed at preventing Verilog simulation race conditions. Another 40+ slides help to demonstrate multiple efficient Finite State Machine (FSM) coding styles. An EISA bus arbiter lab is designed to reinforce FSM concepts developed in class (no silly traffic-light controllers or soda pop change machines in this course!) A detailed 600+ page student guide and 49-page Verilog-2001 HDL Quick Reference Guide supplement the lecture and provide excellent resources for after-class reference. Numerous exercises and labs reinforce the principles presented, with about 50% of class time devoted to lab work, culminating with a 4-hour final DSP design lab on the last day of class. The final lab utilizes all of the techniques learned in earlier labs and reinforces how all aspects of Verilog are used in a large design project. Target Audience Sunburst Design - Verilog-2001 Design & Best Coding Practices is intended for new and selftaught Verilog design and verification engineers that require a good working knowledge of the capabilities of the Verilog-2001 language. This is both a design and language class. This course also fulfills all of the prerequisites for the Sunburst Design - Advanced Verilog-2001 for Synthesis & Verification course; a course that focuses specifically on Verilog-2001 techniques for design, synthesis and advanced verification. Prerequisites (mandatory) A knowledge of digital design engineering. The ability to create files and efficiently use the editors on the operating system used in labs. Without the above skills, students cannot fully benefit from this course. Students will be writing Verilog models for basic and advanced digital circuits such as adders, multiplexers, flip-flops, and shift registers, barrel shifters and a simple DSP processor. The Sunburst Design - Advantage Who is teaching your "expert" and "advanced" classes? Most companies will not tell you because their instructors might not have much design experience or may never have participated on any of the Verilog Standards groups or presented at industry recognized conferences. Go to our web site and read about the Sunburst Design - Instructors - they are simply the best at what they do and they have the experience and qualifications to offer Course Customization? - Sunburst Design courses can be customized to include your company's coding guidelines or to modify the course for a different audience. Sections can be added or deleted from a course to meet you company's needs.

Course Syllabus Comparing this 3-day Class to the 4-day Comprehensive Verilog Class This 3-day class is intended to cover all of the same important Verilog RTL concepts as the 4- day class but removes the lecture and labs on infrequently used behavioral topics as well as indepth discussion of gate primitives, switch primitives, User Defined Primitives (UDPs) and specify blocks, which are rarely used in modern Verilog designs. Most Verilog design and verification engineers are probably better served by this more condensed Verilog Training course. Day One Overview of Verilog Resources Introduction to Verilog Modeling - An introduction and overview of major Verilog-2001 modeling basics. Modules Port and net declarations V2K1 ANSI-C style module headers Instantiation with positional and named ports Procedural blocks: initial & always Hierarchy Introduction to synthesis design flows Power-user guidelines (presented in section 1 - detailed in later sections) Verilog HDL Syntax & Semantics - Detailed instruction of important Verilog-2001 (V2K1) language syntax. Good formatting = fewer bugs & better documentation Comments V2K1 attributes Identifier names Name scopes Language tokens Numbers and logic values Net & variable types Scalars & vectors Multi-dimensional arrays Port declaration styles Parameters Verilog's 4+ logic values

Design Verification & Running Simulations - An introduction to writing Verilog testbenches and running Verilog simulations. Strength basics Simulation times, delays, timescales and time formatting Writing Verilog testbenches Repeat-loop & forever loop Important compiler directives Display and formatting commands System tasks for simulation control Using multiple Verilog source files & Verilog command files Running a Verilog simulation Lab: basic testbench development Continuous Assignments & Operators - Detailed discussion of continuous assignments with design examples, followed by an overview of Verilog-2001 operators, also with examples. Continuous assignments Procedural continuous assignments (do not use these!) Required net declarations?: conditional operator Programming Statements & Timescales - Detailed discussion of blocking and nonblocking assignments, followed by an overview of Verilog-2001 programming statements with examples. This section concludes with a discussion of Verilog timescales and their impact on simulation efficiency. Verilog operators - arithmetic, bitwise, logical, unary reduction, more Sequential & parallel statement groups Blocking & nonblocking assignments (introduced) Time delays Level-sensitive timing controls Edge-sensitive timing controls Sensitivity lists (V2K1) If-else & case statements For, while, repeat & forever loops Tasks, functions and automatic (V2K1) Rise, fall, min, max delays `timescale & $timeformat Lab: (optional) `timescale & $timeformat capability and efficiency

Day Two Combinational Logic Modeling - Behavioral & synthesizable coding styles for modeling combinational logic. Includes multiple Verilog-2001 enhancements. Sensitivity lists Continuous assignments Procedural combinational blocks V2K1 comma-separated and @* sensitivity lists Inertial & transport delays Correct methods for adding behavioral timing delays Sequential Logic Modeling - Behavioral & synthesizable coding styles for modeling sequential logic Sensitivity lists Flip-flops and latches Synchronous and asynchronous inputs Where to add timing delays Lab: model and verify an 8-bit ALU Lab: model and verify a pipeline Lab: (optional) extra labs RAM and ROM Modeling - Behavioral coding styles for modeling RAMs and ROMs Modeling memories Array declarations System tasks to load memories Preferred coding style for read operations Preferred coding style for write operations Testing bi-directional ports Basic timing constraints Lab: model and verify a RAM

Structural Netlists - How to construct a hierarchical Verilog netlist. Design hierarchy Module instantiation Port & net mismatches Parameterized models Redefining parameters V2K1 Multi-dimensional arrays Arrays of Instance Generate statements Lab: model and verify a hierarchical design Verilog Gates & SDF Timing - Introduction to gate primitives, User Defined Primitives, specify blocks and SDF backannotated timing. Component models Gate primitives Time delays User Defined Primitives (UDPs) Specify blocks Timing checks SDF back annotation - $sdf_annotate command Optional Lab: SDF Backannotation Optional Lab: UDP (User Defined Primitive)

Day Three Blocking vs. Nonblocking Assignments - Detailed instruction about Verilog blocking and nonblocking assignments. Detailed description of how the Verilog event queue works. Coding guidelines using blocking & nonblocking assignments. After using blocking and nonblocking assignments for two days, now we are ready to give the details for the guidelines already presented. Different types of blocking assignments Different types of nonblocking assignments Explanation of Verilog event scheduling Assignment execution order Pipeline examples Delay line modeling Common misconceptions about nonblocking assignments Blocking & nonblocking assignment guidelines State Machine Design - Detailed description and guidelines for coding Verilog state machines. Moore, Mealy, binary & onehot state machines State machine coding style guidelines Parameter states vs. `define states (do not use `define) Two always block state machine coding style One always block state machine coding style Three always block, registered output, coding style Lab: EISA bus arbiter state machine design Verilog Wizardry (Lab Intensive Project) - This is the final project for the course. Students will use all aspects of the Verilog language in an actual design flow. Students will draw upon what they have learned in the previous two and a half days to model, simulate and verify a complete Digital Signal Processor design. Lab: model and verify a synthesizable Digital Signal Processor Classroom Details Training is generally conducted at your facilities. For maximum effectiveness, we recommend having one workstation or PC for every two students, with licenses for your preferred Verilog simulator (we often can help provide the simulator and temporary training licenses). For more information, contact: Cliff Cummings - cliffc@sunburst-design.com - Sunburst Design, Inc. - 801-960-1996