Verilog Essentials Simulation & Synthesis

Similar documents
ALTERA FPGA Design Using Verilog

VHDL Essentials Simulation & Synthesis

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

Verilog for High Performance

VHDL for Synthesis. Course Description. Course Duration. Goals

FPGA for Software Engineers

SystemVerilog Essentials Simulation & Synthesis

קורס VHDL for High Performance. VHDL

INSTITUTE OF AERONAUTICAL ENGINEERING Dundigal, Hyderabad ELECTRONICS AND COMMUNICATIONS ENGINEERING

CHAPTER - 2 : DESIGN OF ARITHMETIC CIRCUITS

A Tutorial Introduction 1

MLR Institute of Technology

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

The Verilog Hardware Description Language

St.MARTIN S ENGINEERING COLLEGE Dhulapally, Secunderabad

EECS150 - Digital Design Lecture 10 Logic Synthesis

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

EECS150 - Digital Design Lecture 10 Logic Synthesis

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

Contents. Appendix D Verilog Summary Page 1 of 16

Computer Aided Design Basic Syntax Gate Level Modeling Behavioral Modeling. Verilog

Synthesis of Language Constructs. 5/10/04 & 5/13/04 Hardware Description Languages and Synthesis

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

Digital VLSI Design with Verilog

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

CSE140L: Components and Design Techniques for Digital Systems Lab

Logic Synthesis. EECS150 - Digital Design Lecture 6 - Synthesis

Programmable Logic Devices Verilog VII CMPE 415

CSE140L: Components and Design

ALTERA FPGAs Architecture & Design

EN2911X: Reconfigurable Computing Lecture 05: Verilog (2)

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

Register Transfer Level in Verilog: Part I

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

EEL 4783: HDL in Digital System Design

Introduction to Verilog

Introduction to Verilog HDL

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

Course Topics - Outline

In the previous lecture, we examined how to analyse a FSM using state table, state diagram and waveforms. In this lecture we will learn how to design

In the previous lecture, we examined how to analyse a FSM using state table, state diagram and waveforms. In this lecture we will learn how to design

Course Topics - Outline

World Class Verilog & SystemVerilog Training

Index. A a (atto) 154 above event 120, 207 restrictions 178

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

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

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

EN164: Design of Computing Systems Lecture 06: Lab Foundations / Verilog 2

PINE TRAINING ACADEMY

EECS150 - Digital Design Lecture 5 - Verilog Logic Synthesis

ECE 353 Lab 4. Verilog Review. Professor Daniel Holcomb UMass Amherst Fall 2017

EN2911X: Reconfigurable Computing Topic 02: Hardware Definition Languages

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

Course Topics - Outline

Quartus II Prime Foundation

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

Verilog introduction. Embedded and Ambient Systems Lab

Lab #1. Topics. 3. Introduction to Verilog 2/8/ Programmable logic. 2. Design Flow. 3. Verilog --- A Hardware Description Language

Lecture 3: Modeling in VHDL. EE 3610 Digital Systems

ECE 4514 Digital Design II. Spring Lecture 7: Dataflow Modeling

Lecture 7. Standard ICs FPGA (Field Programmable Gate Array) VHDL (Very-high-speed integrated circuits. Hardware Description Language)

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

Lecture #2: Verilog HDL

Online Verilog Resources

Chapter 2 Using Hardware Description Language Verilog. Overview

Synthesis of Combinational and Sequential Circuits with Verilog

XST User Guide

LAB 1: Combinational Logic: Designing and Simulation of Arithmetic Logic Unit ALU using VHDL

Hardware Description Languages (HDLs) Verilog

Verilog Behavioral Modeling

Verilog HDL Introduction

תכן חומרה בשפת VERILOG הפקולטה להנדסה

Laboratory Exercise 3 Davide Rossi DEI University of Bologna AA

Introduction. Why Use HDL? Simulation output. Explanation

101-1 Under-Graduate Project Digital IC Design Flow

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

Speaker: Shao-Wei Feng Adviser: Prof. An-Yeu Wu Date: 2010/09/28

THE VERILOG? HARDWARE DESCRIPTION LANGUAGE

The Verilog Hardware Description Language, Fifth Edition

Graduate Institute of Electronics Engineering, NTU Design of Datapath Controllers

Verilog Design Entry, Synthesis, and Behavioral Simulation

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

INTRODUCTION TO VLSI DESIGN

Verilog Sequential Logic. Verilog for Synthesis Rev C (module 3 and 4)

Control in Digital Systems

EECS 270 Verilog Reference: Sequential Logic

Logic Optimization Techniques for Multiplexers

HIERARCHICAL DESIGN. RTL Hardware Design by P. Chu. Chapter 13 1

Outline HIERARCHICAL DESIGN. 1. Introduction. Benefits of hierarchical design

VHX - Xilinx - FPGA Programming in VHDL

Combinational Logic II

Course Topics - Outline

EECS150 - Digital Design Lecture 20 - Finite State Machines Revisited

Verilog Module 1 Introduction and Combinational Logic

Module 4. Design of Embedded Processors. Version 2 EE IIT, Kharagpur 1

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

ECEN 468 Advanced Logic Design

Don t expect to be able to write and debug your code during the lab session.

ECE 353 Lab 3 (Verilog Design Approach)

Experiment 18 Full Adder and Parallel Binary Adder

Transcription:

Verilog Essentials Simulation & Synthesis Course Description This course provides all necessary theoretical and practical know-how to design programmable logic devices using Verilog 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. The course begins with an overview of the current programmable logic devices and their capabilities, continues with an in-depth study of VHDL language with all of its structures, involves writing test-bench programs and employ a simulation tool. The course ends with a synthesis overview and emphasizes the difference between testing code and synthesizable code. Course Duration 5 days Goals 1. Become familiar with FPGA and CPLD families and their capabilities 2. Understand the design process from specification up to programming and final verification on board 3. Implement combinational and sequential processes 4. Build a hierarchy (bottom-up and top-down) 5. Write test-benches 6. Write generic code for design reuse 7. Understand coding style considerations for synthesis Intended Users Hardware engineers who would like start developing FPGA or CPLD System engineers who would like to upgrade their professional skills

Previous Knowledge A basic background in digital logic Course Material 1. Simulator: Modelsim or ActiveHDL 2. Synthesizer and Place & Route: Quartus II (ALTERA) or Precision (Mentor Graphics) 3. Demonstration on ALTERA Evaluation board Table of Contents Day #1 Introduction to Programmable Logic Devices o CPLD architecture and design consideration o FPGA architecture LUT FF PLL DSP Block Embedded RAM Embedded Processor FPGA Programming process Introduction to Verilog Language o Verilog history o Digital design o FPGA design flow Simulation Synthesis Place & Route Programming Verification o Advantages of Verilog o Simulation & Synthesis o Demonstration of whole process on board

Hierarchical Modeling Concept o Top down and bottom up o Modules o Instances o Components of a simulation o Design example of a counter Introduction to Verilog Basic Concepts o Lexical conventions (white space, comments, operatos, number specification, unsized numbers, X or Z values, negative numbers, underscore characters and question marks, strings, identifiers and keywords, escaped identifiers) o Data types (value set, nets, registers, vectors, integer, real, time register, arrays, memories, parameters, strings) o System tasks and compiler directives (displaying information, monitoring information, stopping and finishing in simulation, compiler directives) Modules and Ports o Modules o Ports o Port connection rules (inputs, outputs, inouts, width matching, unconnected ports) o Connecting ports to external signals (connected by ordered list, connecting ports by name) o Hierarchical names Gate Level Modeling Day #2 o Gate types (and/or gates, buf/net gates, array of instances) o Gate delays (rise, fall, turn-off, min/typ/max values) Dataflow Modeling o Continuous assignments (implicit continuous assignment, implicit net declaration) o Delays (regular assignment delay, implicit continuous assignment delay, net declaration delay) o Expressions, operators and operands

o Operator types (arithmetic, logical, relational, equality, bitwise, reduction, shift, concatenation, replication, conditional, operator precedence) Putting All Together o Small project Day #3 Behavioral Modeling o Initial statement (combined variable declaration and initialization, combined port/data declaration and initialization, combined ANSI C style port declaration and initialization) o Always statement (always block) o Blocking assignments o Non-blocking assignments o Timing controls (delay based, regular delay control, intra-assignment, zero delay control, event based timing control, named event control, event OR control, level sensitive timing control) o Conditional statements (if-else, case, casex, casez, while loop, for loop, repeat loop, forever loop) o Sequential and parallel blocks (block types, parallel blocks, nested blocks, named blocks, disabling named blocks) o Generate blocks (generate loop, genvar, generate conditional, generate case) Day #4 Tasks and Functions o Differences between tasks and functions o Tasks (task declaration and invocation, task examples, automatic tasks) o Functions (function declaration and invocation, function examples, recursive functions, constant functions, signed functions)

Modeling Finite State Machines o FSM concept o Mealy & Moore Models o Verilog coding style o State encoding Sequential Johnson One Hot Two Hot Defined by user Defined by synthesis o Handling the unused states o Reset & Fail Safe Behavior o Interactive State Machines Unidirectional Bi-Directional Useful Modeling Techniques o Procedural continuous assignments (assign and deassign, force and release) o Overriding parameters (defparam statement, module_instance parameter values) o Conditional compilation and execution o Time scales o Useful system tasks (file output, $fopen, $fdisplay, $fwrite, $fmonitor, $fstrobe, display hierarchy, strobing, random number generation, initializing memory from file, value change dump file) Day #5 Timing and Delays o Distributed delay o Lumped delay o Pin-to-pin delays o Path delay modeling (specify blocks, parallel connection, full connection, edge sensitive paths, specparam statements, conditional

path delays, rise, fall and turn-off delays, min, max and typical delays, handling x transitions) o Timing checks ($setup and $hold checks, $width check) User Defined Primitives (UDP) o UDP basics (parts of UDP definition, UDP rules) o Combinational UDPs (definition, state table entries, shorthand notation for don t cares, instantiating UDP primitives) o Sequential UDPs (definition, level sensitive, edge sensitive) o Guidelines for UDP design Programming Language Interface (PLI) o What is PLI? o Uses of PLI o Linking and invocation of PLI tasks o Internal data representation o PLI library routines Introduction to Synthesis o What is Synthesis o Synthesis tools o Verilog programs for synthesis versus for simulation o Coding style and pitfalls o Demonstration Day #6 (optional) Practical exercises on ALTERA EVM o Description of evaluation board main components o Programmer configuration o Seven segment and LED exercises o Counters, PLL,clock switch on the fly o External memory interface o Place & Route process o Pins configuration