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

Size: px
Start display at page:

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

Transcription

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

2 VERILOG QUICKSTART A Practical Guide to Simulation and Synthesis in Verilog Second Edition James M. Lee SEVA Technologies KLUWER ACADEMIC PUBLISHERS New York / Boston / Dordrecht / London / Moscow

3 ebook ISBN: Print ISBN: Kluwer Academic Publishers New York, Boston, Dordrecht, London, Moscow Print 1999 Kluwer Academic / Plenum Publishers New York All rights reserved No part of this ebook may be reproduced or transmitted in any form or by any means, electronic, mechanical, recording, or otherwise, without written consent from the Publisher Created in the United States of America Visit Kluwer Online at: and Kluwer's ebookstore at:

4 TABLE OF CONTENTS LIST OF FIGURES LIST OF EXAMPLES LIST OF TABLES 1 INTRODUCTION Framing Verilog Concepts The Design Abstraction Hierarchy Types of Simulation Types of Languages Simulation versus Programming HDL Learning Paradigms Where To Get More Information Reference Manuals Usenet Talk Verilog 2 INTRODUCTION TO THE VERILOG LANGUAGE Identifiers Escaped Identifiers White Space Comments Numbers Text Macros Modules Semicolons Value Set Strengths Numbers, Values, and Unknowns xii xiv xx

5 vi 3 STRUCTURAL MODELING Primitives Ports Ports in Primitives Ports in Modules Instances Hierarchy Hierarchical Names Connect by Name Top-Level Modules You Are Now Ready To Run Your First Simulations Exercise 1 The Hello Simulation Exercise 2 The 8-Bit Hierarchical Adder Verilog Quickstart BEHAVIORAL MODELING Starting Places for Places for Blocks of Behavioral Code The initial Keyword The always Keyword Delays begin-end Blocks fork-join Blocks System Tasks for Printing Out Results What Is a System Task? $display and Its Relatives Other Commands To Print Results Writing to Files Setting the Default Radix Exercise 3 Printing Out Results from Wires Buried in the Hierarchy Special Characters Suppressing Spaces in Your Output Data Objects in Verilog Nets Ranges Implicit Nets Registers Memories Initial Value of Regs Integers and Reals Time and Realtime Parameters Events Strings Multi-Dimensional Arrays Accessing Words and Bits of Multi-Dimensional Arrays

6 vii Procedural Assignments Ports and Registers 5 OPERATORS Binary Operators Unary Operators Reduction Operators Ternary Operator Equality Operators Concatenations Logical versus Bit-wise Operations Operations That Are Not Legal on Reals Working with Strings Combining Operators Sizing Expressions Signed Operations Signed Constants 6 WORKING WITH BEHAVIORAL MODELING Continuous Assignment Event Control The always Block for Combinatorial Logic Event Control Explained The if Statement The case Statement Exercise 4 Using Expressions and case Loops The forever Loop The repeat Loop The while Loop The for Loop Procedural Continuous Assignments tasks functions Exercise 5 Functions and Continuous Assignments A Reminder about Ports and Registers Modeling with inout Ports Named Blocks The disable Statement When is a Simulation Done? 7 USER-DEFINED PRIMITIVES

7 viii Combinatorial UDPs Optimistic Mux Pessimistic Mux The Gritty Details Sequential UDPs UDP Instances The Final Details Exercise 6 Using UDPs 8 PARAMETERIZED MODULES n-bit Mux n-bit Adder n By m Mux n By m Ram Using Parameterized Modules Parameter Passing by Name Parameter Passing By Order Parameter Passing by Names List Values of Parameters in Module Instances 9 STATE MACHINES State Machine Types State Machine Modeling Style State Encoding Methods Default Conditions Implicit State Machines Registered and Unregistered Outputs Factors in Choosing a State Machine Modeling Style 10 MODELING TIPS Modeling Combinatorial Logic Combinatorial Models Using Continuous Assignments Combinatorial Models Using the always Block and regs Combinatorial Models Using Functions Modeling Sequential Logic Sequential Models Using always Sequential Models Using initial Sequential Models Using tasks Modeling Asynchronous Circuits Modeling a One-Shot Modeling Asynchronous Systems Special-Purpose Models Verilog Quickstart

8 ix Two-Dimensional Arrays Z-Detectors Multiplier Examples A Proven, Successful Approach to Modeling 11 MODELING STYLE TRADE-OFFS Forces That Influence Modeling Style Evolution of a Model Modeling Style and Synthesis Is It Synthesizable? Learning From Other People s Mistakes When To Use UDPs Blocking and Non Blocking Asssignments 12 TEST BENCHES AND TEST MANAGEMENT Introduction to Testing Model Size versus Test Volume Functional Testing Regression Testing Self-Checking Test Benches Sign-Off System Test versus Unit Tests Response-Driven Stimulus Test Benches for Inouts Loading Files into Verilog Memories Test Benches with No Test Vectors Using a Script To Run Test Cases Modeling BIST The Surround and Capture Method 13 COMMON ERRORS Mismatched Ports Missing or Incorrect Declarations Missing Registers Missing Widths Reversed Ranges Improper Use of Procedural Continuous Assignments Missing initial or always Blocks Zero-Delay always Loops initial Instead of always Missing Initialization Overly Complex Code Unintended Storage

9 x Verilog Quickstart Timing Errors Negative Setup Time Zero-Delay Races 14 DEBUGGING A DESIGN Overview of Functional Debugging Where Are the Errors? Universal Techniques Printing Out Messages I am here. Values The Log File Using Waveforms Interactive Debugging Going Interactive The Prompts Special Keys in Interactive Mode Command History The Key File Traversing and Observing Back-Tracing Fan-In Using force and release Waveforms, Graphic User Interfaces, and Other Conveniences Catching Problems Later in a Simulation Isolating Differences in Models Summary of Debugging Appendix A GATE LEVEL DETAILS Primitive Descriptions Logic Gates AND NAND OR NOR XOR XNOR Buffers BUF NOT BUFIF0 BUFIF1 NOTIF0 NOTIF1 PULLDOWN

10 xi PULLUP Switches NMOS and RNMOS PMOS and RPMOS CMOS and RCMOS TRAN and RTRAN TRANIF0 and RTRANIF0 TRANIF1 and RTRANIF1 Instance Details Delays Delay Units Printing Out Time and the Timescale Strengths Displaying strengths with %v Strength reduction of switch primitives Appendix B EXAMPLE SUMMARY INDEX

11 xii Verilog Quickstart LIST OF FIGURES Figure 1-1 Design Abstraction Hierarchy Figure 1-2 Gate-Level Model Mux Schematic Figure 2-1 Number Format Figure 2-2 The Mux Example Figure 2-3 Three-State Buffer Figure 2-4 Two Three-State Buffers Figure 3-1 AND Gate Primitives Figure 3-2 Gate-Level Model Mux Schematic Figure 3-3 Connecting Two Muxes Figure 3-4 Hierarchical 4-Bit Mux Figure 3-5 Mux4 Hierarchy Expanded Figure 3-6 Syntax for Connect by Name Figure 3-7 Adder Schematic Figure 3-8 Adder2 Schematic Figure 3-9 Adder4 Schematic Figure 3-10 Adder8 Schematic Figure 6-1 Connecting 4 Registers to a Wire Figure 6-2 Rotate Left Figure 6-3 Logical Shift Left with 0 Fill Figure 6-4 Rotate Right Figure 6-5 Logical Shift Right with 0 Fill Figure 6-6 ALU Test Vector File alu_test.vec Figure 6-7 Relationships of Ports and Regs Figure 7-1 Adder Using Five Built-In Primitives Figure 7-2 Adder Using Two UDPs Figure 9-1 Moore State Machine Figure 9-2 Mealy State Machine Figure 10-1 State Diagram for Alarm System Figure 11-1 Forces That Act on Modeling Style Figure 11-2 Synthesizablility Flowchart Figure 12-1 Test Bench for an inout Figure 12-2 Logic Surrounded by BIST Figure 12-3 Surround and Capture Method Figure A-1 AND Gate Figure A-2 NAND Gate Figure A-3 OR Gate Figure A-4 NOR Gate Figure A-5 XOR Gate Figure A-6 XNOR Gate Figure A-7 BUF Gate Figure A-8 NOT Gate Figure A-9 BUFIF0 Gate

12 xiii Figure A-10 BUFIF1 Gate Figure A-11 NOTIF0 Gate Figure A-12 NOTIF1 Gate Figure A-13 Pulldown Figure A-14 Pullup Figure A-15 NMOS or RNMOS Transistor Figure A-16 PMOS or RPMOS Transistor Figure A-17 CMOS or RCMOS Transistor

13 xiv Verilog Quickstart LIST OF EXAMPLES Example 1-1 Abstract Model of a Phone Example 1-2 Verilog for Gate-Level Mux Example 2-1 Simple Hello Module Example 2-2 Hello Module without White Space Example 2-3 Hello Module with Extra White Space Example 2-4 Illegal Use of White Space Example 2-5 Comments Example 2-6 Numbers Example 2-7 Specifying a Text Macro Example 2-8 Using a Text Macro Example 2-9 Gate-Level Mux Verilog Code Example 3-1 Verilog Code for the 2-Input and 4-Input AND Gates Example 3-2 Verilog for Gate-Level Mux Example 3-3 Hierarchical 2-Bit Mux Example 3-4 Hierarchical 4-Bit Mux Example 3-5 Hierarchical Names Example 3-6 Mux Connected by Name Example 3-7 Hello Verilog Example 3-8 Adder Test Module Example 4-1 An initial Block Example 4-2 An always Block Example 4-3 Three initial Statements Example 4-4 Three initial Statements with Delay Example 4-5 Simple begin-end Block Example 4-6 begin-end Block with Delay Example 4-7 Multiple begin-end Blocks Example 4-8 fork-join Blocks Example 4-9 Combining begin-end and fork-join Blocks Example 4-10 Displaying a String Example 4-11 Displaying a Single Value Example 4-12 Displaying Multiple Values Example 4-13 Using Format Specifiers with $display Example 4-14 Two $display Statements Example 4-15 Combining $write and $display Example 4-16 Writing to a File Example 4-17 Writing to Multiple Files Example 4-18 $display with $time Example 4-19 Leading Spaces in $monitor with $time Example 4-20 Spaces used to print an 8-Bit value Example 4-21 Suppressing Leading Spaces and Zeroes Example 4-22 Net Declarations Example 4-23 Incorrect Net Declaration

14 xv Example 4-24 Setting Default Net Type Example 4-25 Register Declarations Example 4-26 Selecting Bits and Parts of a Register Example 4-27 Memory and Register Declarations Example 4-28 Selecting Bits in Registers and Words in Memories Example 4-29 Reg Declaration with Initialization Example 4-30 Declaring Integers and Reals Example 4-31 Declaring Variables of Type time Example 4-32 Parameters Example 4-33 Events Example 4-33 Strings Example 4-35 Multi-Dimensional Arrays of Nets Example 4-36 Multi-Dimensional Arrays of Regs Example 4-37 Accessing Multi-Dimensional Arrays Example 4-38 Simple Procedural Assignments Example 4-39 Procedural Assignments with fork-join Example 4-40 fork-join with Intra-assignment Delays Example 4-41 fork-join with Multiple Delays Example 4-42 fork-join with Simplified Delays Example 4-43 Effect of Intra-assignment Delays on Time Flow Example 4-44 Nonblocking Assignments Example 4-45 Output as a Register Example 5-1 Using Operators Example 5-2 Distinguishing between Bit-wise and Logical Operators Example 5-3 Using Reduction Operators Example 5-4 Ternary Operator Example 5-5 Using the Ternary Operator for a Three-State Buffer Example 5-6 Module To Test an Operator Example 5-7 Concatenations Example 5-8 Bit-wise and Logical operations Example 5-9 Operators and Strings Example 5-10 Combinations of operators for Exclusive-NOR Example 5-11 Signed Declarations Example 5-12 Signed Constants Example 5-13 Effect of Signed Constants Example 6-1 Three-State Buffer Using a Continuous Assignment Example 6-2 A 128-Bit Adder in a Continuous Assignment Example 6-3 Continuous Assignment Multiplier Example 6-4 Connecting Four Registers to a Wire Example 6-5 Alternate Form of Continuous Assignment Example 6-6 Many Forms of Continuous Assignments Example 6-7 Waiting for an Event Example 6-8 Mux Using Continuous Assignment Example 6-9 Mux Using always Block Example 6-10 Always Block Using Comma

15 xvi Verilog Quickstart Example 6-11 Combinatorial Always Block Example 6-12 Incorrect Mux Example 6-13 Using the event Data Type Example 6-14 Using Events To Simplify Modeling Example 6-15 always Explained Example 6-16 Using wait Example 6-17 Using wait To Detect an Unknown Example 6-18 Using always To Detect an Unknown Example 6-19 Simple if Example 6-20 if with else Example 6-21 Nested if with else Example 6-22 The case Statement Example 6-23 case Matching x and z Example 6-24 Using casez Example 6-25 Test Bench for the ALU Example 6-26 Oscillator Using always Example 6-27 Oscillator Using forever Example 6-28 Repeating Hello Verilog Example 6-29 Using repeat in a State Machine Example 6-30 A while Loop Example 6-31 A Simple for Loop Example 6-32 A for Loop with Expressions Not Referencing the Same Variable Example 6-33 A Simple Flip-Flop Example 6-34 A Flip-Flop with a Bad Reset Example 6-35 A Flip-Flop with Reset Example 6-36 A Flip-Flop with Incorrect Set and Reset Example 6-37 A Flip-flop with Correct Set and Reset Example 6-38 Incorrect Mux Example 6-39 Mux with PCA Example 6-40 Hello Verilog Tasks Example 6-41 task with Inputs, Outputs, and External References Example 6-42 Effect of task Port Size Example 6-43 Accessing a task Local Variable from Outside the task Example 6-44 Task Local and Module Items with the Same Name Example 6-45 Read Cycle task Example 6-46 Re-Entrant Task Example 6-47 Count Bits Function Example 6-48 Mux with Function and Continuous Assignment Example 6-49 Divide Function Returning Two 8-Bit Values Example 6-50 inout Port Connected to a Register Example 6-51 Register with Controllable Connection to inout Port Example 6-52 Named Blocks Example 6-53 The disable Statement Example 6-54 disable Used To Model Reset Example 6-55 Controlling When a Simulation Finishes

16 xvii Example 7-1 Optimistic Mux UDP Example 7-2 Pessimistic Mux UDP Example 7-3 One-Line UDP Example 7-4 Level-Sensitive D Latch Example 7-5 Edge-Sensitive D Flip-Flop Example 7-6 Flip-Flop Using Explicit Edge Definitions Example 7-7 initial Block in a UDP Example 8-1 parameter Statements Example 8-2 n-bit Wide 4-to-1 Mux Example 8-3 Parameterized Width Adder Example 8-4 Mux with Parameterized Width and Number of Inputs Example 8-5 Parameterized RAM Example 8-6 The defparam Statement Example 8-7 Using Parameterized Modules Example 8-8 Parameter Passing by Order Example 8-9 Parameter Passing by Named List Example 9-1 Style 1 Moore State Machine Example 9-2 Style 1 Mealy State Machine Example 9-3 Style 2 Moore Machine Example 9-4 Style 2 Mealy Machine Example 9-5 Style 3 Mealy Machine Example 9-6 Style 4 Moore Machine Example 9-7 Style 5 Moore Machine Example 9-8 Implicit State Machine Style Example 9-9 Combinatorial Outputs Example 9-10 Registered Outputs Example 10-1 A 2-to-1 Mux Using Continuous Assignment Example 10-2 A 4-to-1 Mux Using Continuous Assignment Example 10-3 Alternate 4-to-1 Mux Using Continuous Assignment Example 10-4 An 8-Bit Adder Using Continuous Assignment Example 10-5 Latch Using Continuous Assignment Example 10-6 The 2-to-1 Mux Using always Example 10-7 The 4-to-1 Mux Using always Example 10-8 The 8-Bit Adder Using always Example 10-9 Simplified 8-Bit Adder Using always Example Mux with Continuous Assignment and Function Example Simple Counter Example A Counter without always Example Sequential Stimulus Block Example Clock Source Example Memory Exerciser Example Tasks for Sequential Code Example Basic One-Shot Example Retriggerable One-Shot Example Behavioral Description of the Alarm

17 xviii Verilog Quickstart Example Alarm Test Bench Example Partial Implementation of Alarm Example Two-Dimensional Array Example Behavioral Z-detector Example Structural Z-Detector Example An 8-by-8 Booth Multiplier Example Wallace 8-by-8 Multiplier Example A 16-by-16 Multiplier Example A 16-by-16 Wallace Multiplier for Signed Numbers Example 11-1 Normal D Flip-Flop Example 11-2 Modified D-Hip-Flop Example 11-3 Bad Register Example 11-4 Improved Register Example 11-5 Tweaked Register Example 11-6 Bad Adder Example 11-7 Improved Adder Example 11-8 Adder Reduced to a Continuous Assignment Example 11-9 Bad Mux Example Improved Mux Example Bad Barrel Shifter Example Improved Barrel Shifter Example Blocking vs. Non Blocking Assignments Example 12-1 Adder Test Module Repeated Example 12-2 Using Verilog To Calculate Responses Example 12-3 Simplifying the Test Bench with a task Example 12-4 Using a Second Module To Check the Results Example 12-5 Generating x's for Miscompare Example 12-6 Printer Abstraction Example 12-7 Printer Test Bench with Guessed Timing Example 12-8 Response-Driven Printer Test Bench Example 12-9 Test Bench for a RAM Example Memory Declaration Example Reversed Memory Declaration Example Memory File adder8. vec Example Adder Test Bench Reading from a File Example PROM Data File prom.dat Example Simple PROM Example Test Bench with No Vectors Example LFSR Example Testing the ALU with a LFSR and MISR Example ALU Modified Capture of Inputs and Outputs Example ALU Test Bench Repeated Example 13-1 Missing Initialization Example 13-2 Negative Setup Time Example 13-3 Corrected Register

18 xix Example 14-1 Initial Block To Create VCD Wave File Example 14-2 Initial Block To Create SHM Wave File Example 14-3 Interactive Verilog Module Example 14-4 Single-Stepping Example 14-5 always Loop Module Example 14-6 my.key Command File Example 14-7 Hierarchical 8-Bit Adder Example A-1 Delays in Primitive Instances Example A-2 Time Scales Example A-3 Strength Declarations

19 xx Verilog Quickstart LIST OF TABLES Table 2-1 Radix Specifiers Table 2-2 Numbers and Their Values Table 3-1 Verilog Primitives Table 4-1 Format Specifiers Table 4-2 Screen and File Output Commands Table 4-3 Enumeration of All Output Commands Table 4-4 Format Specifiers Table 4-5 Net Types Table 5-1 Arithmetic Operators Table 5-2 Bit-wise Operators Table 5-3 Logical Operators Table 5-4 Negation Operators Table 5-5 Reduction Operators Table 5-6 Truth Table for Ternary Operator Table 5-7 Equality Operators Table 5-8 Truth Table for a == b Table 5-9 Truth Table for a === b Table 5-10 Truth Table for a!= b Table 5-11 Truth Table for a!== b Table 5-12 Truth Table for a < b Table 5-13 Truth Table for a <= b Table 5-14 Truth Table for a > b Table 5-15 Truth Table for a >= b Table 5-16 Operator Order of Precedence Table 5-17 Operators Not Legal on Reals Table 5-18 Radix Specifiers Table 6-1 Comparison of Procedural and Continuous Assignments Table 6-2 Summary of Case Values and Match per Case Type Table 6-3 ALU Exercise: Explanation of Opcodes Table 6-4 Summary of Assignment Types Table 7-1 Basic UDP Table Symbols Table 7-2 Symbols for Sequential UDP Tables Table 7-3 Summary of Instance Types Table 7-4 Complete List of UDP Table Symbols Table 9-1 State Machine Styles Table 9-2 Sequential State Encoding Table 9-3 Mapping State Code To Simplify Outputs Table 9-4 Gray State Encoding Table 9-5 States Compared with Outputs Table 9-6 Outputs as State Code Table 9-7 One-Hot State Encoding Table 14-1 Log File Options

20 xxi Table 14-2 Special Keys for Interactive Simulation Table 14-3 Keystroke-Related Commands Table 14-4 Commands for Traversing and Observing Table 14-5 The trace, save, and restart Commands Table 14-6 Debugging Commands, Keystrokes, and Command-Line Options Table A-1 Logic Table for and Primitive Table A-2 Logic Table for nand Primitive Table A-3 Logic Table for or Primitive Table A-4 Logic Table for nor Primitive Table A-5 Logic Table for xor Primitive Table A-6 Logic Table for xnor Primitive Table A-7 Logic Table for buf Primitive Table A-8 Logic Table for not Primitive Table A-9 Logic Table for bufif0 Primitive Table A-10 Logic Table for bufif1 Primitive Table A-11 Logic Table for notif0 Primitive Table A-12 Logic Table for notif1 Primitive Table A-13 Logic Table for nmos Primitive Table A-14 Logic Table for rnmos Primitive Table A-15 Logic Table for pmos Primitive Table A-16 Logic Table for rpmos Primitive Table A-17 Logic Table for cmos Primitive Table A-18 Logic Table for rcmos Primitive Table A-19 Delay and Precision Units Table A-20 Strengths Table A-21 Switch Strength Reduction

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

VERILOG QUICKSTART. James M. Lee Cadence Design Systems, Inc. SPRINGER SCIENCE+BUSINESS MEDIA, LLC VERILOG QUICKSTART VERILOG QUICKSTART by James M. Lee Cadence Design Systems, Inc. ~. " SPRINGER SCIENCE+BUSINESS MEDIA, LLC ISBN 978-1-4613-7801-3 ISBN 978-1-4615-6113-2 (ebook) DOI 10.1007/978-1-4615-6113-2

More information

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

VERILOG QUICKSTART. A Practical Guide to Simulation and Synthesis in Verilog. Third Edition VERILOG QUICKSTART A Practical Guide to Simulation and Synthesis in Verilog Third Edition THE KLUWER INTERNATIONAL SERIES IN ENGINEERING AND COMPUTER SCIENCE VERILOG QUICKSTART A Practical Guide to Simulation

More information

Appendix A GATE-LEVEL DETAILS

Appendix A GATE-LEVEL DETAILS Appendix A GATE-LEVEL DETAILS Chapters 2 and 3 1:riefly introduced the built-in primitives. This appendix will 1:riefly describe each of the built-in primitives and the options when instantiating them.

More information

Verilog Tutorial (Structure, Test)

Verilog Tutorial (Structure, Test) Digital Circuit Design and Language Verilog Tutorial (Structure, Test) Chang, Ik Joon Kyunghee University Hierarchical Design Top-down Design Methodology Bottom-up Design Methodology Module START Example)

More information

St.MARTIN S ENGINEERING COLLEGE Dhulapally, Secunderabad

St.MARTIN S ENGINEERING COLLEGE Dhulapally, Secunderabad St.MARTIN S ENGINEERING COLLEGE Dhulapally, Secunderabad-500 014 Subject: Digital Design Using Verilog Hdl Class : ECE-II Group A (Short Answer Questions) UNIT-I 1 Define verilog HDL? 2 List levels of

More information

A Tutorial Introduction 1

A Tutorial Introduction 1 Preface From the Old to the New Acknowledgments xv xvii xxi 1 Verilog A Tutorial Introduction 1 Getting Started A Structural Description Simulating the binarytoeseg Driver Creating Ports For the Module

More information

INSTITUTE OF AERONAUTICAL ENGINEERING Dundigal, Hyderabad ELECTRONICS AND COMMUNICATIONS ENGINEERING

INSTITUTE OF AERONAUTICAL ENGINEERING Dundigal, Hyderabad ELECTRONICS AND COMMUNICATIONS ENGINEERING INSTITUTE OF AERONAUTICAL ENGINEERING Dundigal, Hyderabad - 00 0 ELECTRONICS AND COMMUNICATIONS ENGINEERING QUESTION BANK Course Name : DIGITAL DESIGN USING VERILOG HDL Course Code : A00 Class : II - B.

More information

The Verilog Hardware Description Language, Fifth Edition

The Verilog Hardware Description Language, Fifth Edition The Verilog Hardware Description Language, Fifth Edition The Verilog Hardware Description Language, Fifth Edition Donald E. Thomas ECE Department Carnegie Mellon University Pittsburgh, PA Philip R. Moorby

More information

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

Speaker: Kayting Adviser: Prof. An-Yeu Wu Date: 2009/11/23 98-1 Under-Graduate Project Synthesis of Combinational Logic Speaker: Kayting Adviser: Prof. An-Yeu Wu Date: 2009/11/23 What is synthesis? Outline Behavior Description for Synthesis Write Efficient HDL

More information

MLR Institute of Technology

MLR Institute of Technology MLR Institute of Technology Laxma Reddy Avenue, Dundigal, Quthbullapur (M), Hyderabad 500 043 Course Name Course Code Class Branch ELECTRONICS AND COMMUNICATIONS ENGINEERING QUESTION BANK : DIGITAL DESIGN

More information

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

Verilog HDL. A Guide to Digital Design and Synthesis. Samir Palnitkar. SunSoft Press A Prentice Hall Title Verilog HDL A Guide to Digital Design and Synthesis Samir Palnitkar SunSoft Press A Prentice Hall Title Table of Contents About the Author Foreword Preface Acknowledgments v xxxi xxxiii xxxvii Part 1:

More information

Introduction to Digital Design with Verilog HDL

Introduction to Digital Design with Verilog HDL Introduction to Digital Design with Verilog HDL Modeling Styles 1 Levels of Abstraction n Behavioral The highest level of abstraction provided by Verilog HDL. A module is implemented in terms of the desired

More information

Verilog. Like VHDL, Verilog HDL is like a programming language but:

Verilog. Like VHDL, Verilog HDL is like a programming language but: Verilog Verilog Like VHDL, Verilog HDL is like a programming language but: Statements can execute simultaneously unlike programming e.g. nand(y1,a1,b1); nand(y2,a2,b2); or (out,y1,y2); a1 b1 all statements

More information

The Verilog Hardware Description Language

The Verilog Hardware Description Language Donald Thomas Philip Moorby The Verilog Hardware Description Language Fifth Edition 4y Spri nnger Preface From the Old to the New Acknowledgments xv xvii xxi 1 Verilog A Tutorial Introduction Getting Started

More information

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

430 Index. D flip-flop, from nands, 189, 191, 192 D flip-flop, verilog, 37 Index *, in event control, 46 -> (event trigger), 177 $display, 34, 146, 165 $display, example, 44 $finish, 11, 165, 195, 196 $fullskew timing check, 297 $hold timing check, 298 $monitor, 34, 174 $nochange

More information

Online Verilog Resources

Online Verilog Resources EECS 427 Discussion 6: Verilog HDL Reading: Many references EECS 427 F08 Discussion 6 1 Online Verilog Resources ASICs the book, Ch. 11: http://www.ge.infn.it/~pratolo/verilog/verilogtutorial.pdf it/ pratolo/verilog/verilogtutorial

More information

CHAPTER - 2 : DESIGN OF ARITHMETIC CIRCUITS

CHAPTER - 2 : DESIGN OF ARITHMETIC CIRCUITS Contents i SYLLABUS osmania university UNIT - I CHAPTER - 1 : BASIC VERILOG HDL Introduction to HDLs, Overview of Digital Design With Verilog HDL, Basic Concepts, Data Types, System Tasks and Compiler

More information

Programmable Logic Devices Verilog VII CMPE 415

Programmable Logic Devices Verilog VII CMPE 415 Synthesis of Combinational Logic In theory, synthesis tools automatically create an optimal gate-level realization of a design from a high level HDL description. In reality, the results depend on the skill

More information

Digital VLSI Design with Verilog

Digital VLSI Design with Verilog John Williams Digital VLSI Design with Verilog A Textbook from Silicon Valley Technical Institute Foreword by Don Thomas Sprin ger Contents Introduction xix 1 Course Description xix 2 Using this Book xx

More information

Advanced Digital Design Using FPGA. Dr. Shahrokh Abadi

Advanced Digital Design Using FPGA. Dr. Shahrokh Abadi Advanced Digital Design Using FPGA Dr. Shahrokh Abadi 1 Venue Computer Lab: Tuesdays 10 12 am (Fixed) Computer Lab: Wednesday 10-12 am (Every other odd weeks) Note: Due to some unpredicted problems with

More information

Verilog for High Performance

Verilog for High Performance Verilog for High Performance Course Description This course provides all necessary theoretical and practical know-how to write synthesizable HDL code through Verilog standard language. The course goes

More information

CSE241 VLSI Digital Circuits Winter Recitation 1: RTL Coding in Verilog

CSE241 VLSI Digital Circuits Winter Recitation 1: RTL Coding in Verilog CSE241 VLSI Digital Circuits Winter 2003 Recitation 1: RTL Coding in Verilog CSE241 R1 Verilog.1 Kahng & Cichy, UCSD 2003 Topic Outline Introduction Verilog Background Connections Modules Procedures Structural

More information

Graduate Institute of Electronics Engineering, NTU. Lecturer: Chihhao Chao Date:

Graduate Institute of Electronics Engineering, NTU. Lecturer: Chihhao Chao Date: Synthesizable Coding of Verilog Lecturer: Date: 2009.03.18 ACCESS IC LAB Outline Basic concepts of logic synthesis Synthesizable Verilog coding subset Verilog coding practices Coding for readability Coding

More information

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

Schematic design. Gate level design. 0 EDA (Electronic Design Assistance) 0 Classical design. 0 Computer based language 1 / 15 2014/11/20 0 EDA (Electronic Design Assistance) 0 Computer based language 0 HDL (Hardware Description Language) 0 Verilog HDL 0 Created by Gateway Design Automation Corp. in 1983 First modern hardware

More information

Introduction to Verilog design. Design flow (from the book) Hierarchical Design. Lecture 2

Introduction to Verilog design. Design flow (from the book) Hierarchical Design. Lecture 2 Introduction to Verilog design Lecture 2 ECE 156A 1 Design flow (from the book) ECE 156A 2 Hierarchical Design Chip Modules Cells Primitives A chip contain many modules A module may contain other modules

More information

EECS 427 Lecture 14: Verilog HDL Reading: Many handouts/references. EECS 427 W07 Lecture 14 1

EECS 427 Lecture 14: Verilog HDL Reading: Many handouts/references. EECS 427 W07 Lecture 14 1 EECS 427 Lecture 14: Verilog HDL Reading: Many handouts/references EECS 427 W07 Lecture 14 1 Online Verilog Resources ASICs the book, Ch. 11: http://www.ge.infn.it/~pratolo/verilog/verilogtutorial.pdf

More information

Introduction to Verilog design. Design flow (from the book)

Introduction to Verilog design. Design flow (from the book) Introduction to Verilog design Lecture 2 ECE 156A 1 Design flow (from the book) ECE 156A 2 1 Hierarchical Design Chip Modules Cells Primitives A chip contain many modules A module may contain other modules

More information

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

Sunburst Design - Verilog-2001 Design & Best Coding Practices by Recognized Verilog & SystemVerilog Guru, Cliff Cummings of Sunburst Design, Inc. 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

More information

Lecture 15: System Modeling and Verilog

Lecture 15: System Modeling and Verilog Lecture 15: System Modeling and Verilog Slides courtesy of Deming Chen Intro. VLSI System Design Outline Outline Modeling Digital Systems Introduction to Verilog HDL Use of Verilog HDL in Synthesis Reading

More information

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

Why Should I Learn This Language? VLSI HDL. Verilog-2 Verilog Why Should I Learn This Language? VLSI HDL Verilog-2 Different Levels of Abstraction Algorithmic the function of the system RTL the data flow the control signals the storage element and clock Gate

More information

Digital Design with SystemVerilog

Digital Design with SystemVerilog Digital Design with SystemVerilog Prof. Stephen A. Edwards Columbia University Spring 25 Synchronous Digital Design Combinational Logic Sequential Logic Summary of Modeling Styles Testbenches Why HDLs?

More information

CONTENTS CHAPTER 1: NUMBER SYSTEM. Foreword...(vii) Preface... (ix) Acknowledgement... (xi) About the Author...(xxiii)

CONTENTS CHAPTER 1: NUMBER SYSTEM. Foreword...(vii) Preface... (ix) Acknowledgement... (xi) About the Author...(xxiii) CONTENTS Foreword...(vii) Preface... (ix) Acknowledgement... (xi) About the Author...(xxiii) CHAPTER 1: NUMBER SYSTEM 1.1 Digital Electronics... 1 1.1.1 Introduction... 1 1.1.2 Advantages of Digital Systems...

More information

Verilog Essentials Simulation & Synthesis

Verilog Essentials Simulation & Synthesis 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.

More information

Digital System Design with SystemVerilog

Digital System Design with SystemVerilog Digital System Design with SystemVerilog Mark Zwolinski AAddison-Wesley Upper Saddle River, NJ Boston Indianapolis San Francisco New York Toronto Montreal London Munich Paris Madrid Capetown Sydney Tokyo

More information

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

RIZALAFANDE CHE ISMAIL TKT. 3, BLOK A, PPK MIKRO-e KOMPLEKS PENGAJIAN KUKUM. SYNTHESIS OF COMBINATIONAL LOGIC (Chapter 8) RIZALAFANDE CHE ISMAIL TKT. 3, BLOK A, PPK MIKRO-e KOMPLEKS PENGAJIAN KUKUM SYNTHESIS OF COMBINATIONAL LOGIC (Chapter 8) HDL-BASED SYNTHESIS Modern ASIC design use HDL together with synthesis tool to create

More information

Combinational Logic II

Combinational Logic II Combinational Logic II Ranga Rodrigo July 26, 2009 1 Binary Adder-Subtractor Digital computers perform variety of information processing tasks. Among the functions encountered are the various arithmetic

More information

THE VERILOG? HARDWARE DESCRIPTION LANGUAGE

THE VERILOG? HARDWARE DESCRIPTION LANGUAGE THE VERILOG? HARDWARE DESCRIPTION LANGUAGE THE VERILOGf HARDWARE DESCRIPTION LANGUAGE by Donald E. Thomas Carnegie Mellon University and Philip R. Moorby Cadence Design Systems, Inc. SPRINGER SCIENCE+BUSINESS

More information

Synthesizable Verilog

Synthesizable Verilog Synthesizable Verilog Courtesy of Dr. Edwards@Columbia, and Dr. Franzon@NCSU http://csce.uark.edu +1 (479) 575-6043 yrpeng@uark.edu Design Methodology Structure and Function (Behavior) of a Design HDL

More information

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

Computer Aided Design Basic Syntax Gate Level Modeling Behavioral Modeling. Verilog Verilog Radek Pelánek and Šimon Řeřucha Contents 1 Computer Aided Design 2 Basic Syntax 3 Gate Level Modeling 4 Behavioral Modeling Computer Aided Design Hardware Description Languages (HDL) Verilog C

More information

Verilog HDL Introduction

Verilog HDL Introduction EEE3050 Theory on Computer Architectures (Spring 2017) Prof. Jinkyu Jeong Verilog HDL Introduction 2017.05.14 TA 이규선 (GYUSUN LEE) / 안민우 (MINWOO AHN) Modules The Module Concept Basic design unit Modules

More information

Introduction. Purpose. Intended Audience. Conventions. Close

Introduction. Purpose. Intended Audience. Conventions. Close Introduction Introduction Verilog-XL is a simulator that allows you to test the logic of a design. The process of logic simulation in Verilog-XL is as follows: 1. Describe the design to Verilog-XL. 2.

More information

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

FPGA Design Challenge :Techkriti 14 Digital Design using Verilog Part 1 FPGA Design Challenge :Techkriti 14 Digital Design using Verilog Part 1 Anurag Dwivedi Digital Design : Bottom Up Approach Basic Block - Gates Digital Design : Bottom Up Approach Gates -> Flip Flops Digital

More information

UNIT V: SPECIFICATION USING VERILOG HDL

UNIT V: SPECIFICATION USING VERILOG HDL UNIT V: SPECIFICATION USING VERILOG HDL PART -A (2 Marks) 1. What are identifiers? Identifiers are names of modules, variables and other objects that we can reference in the design. Identifiers consists

More information

Contents. Appendix D Verilog Summary Page 1 of 16

Contents. Appendix D Verilog Summary Page 1 of 16 Appix D Verilog Summary Page 1 of 16 Contents Appix D Verilog Summary... 2 D.1 Basic Language Elements... 2 D.1.1 Keywords... 2 D.1.2 Comments... 2 D.1.3 Identifiers... 2 D.1.4 Numbers and Strings... 3

More information

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

Verilog. What is Verilog? VHDL vs. Verilog. Hardware description language: Two major languages. Many EDA tools support HDL-based design Verilog What is Verilog? Hardware description language: Are used to describe digital system in text form Used for modeling, simulation, design Two major languages Verilog (IEEE 1364), latest version is

More information

A Brief Introduction to Verilog Hardware Definition Language (HDL)

A Brief Introduction to Verilog Hardware Definition Language (HDL) www.realdigital.org A Brief Introduction to Verilog Hardware Definition Language (HDL) Forward Verilog is a Hardware Description language (HDL) that is used to define the structure and/or behavior of digital

More information

(ii) Simplify and implement the following SOP function using NOR gates:

(ii) Simplify and implement the following SOP function using NOR gates: DHANALAKSHMI COLLEGE OF ENGINEERING DEPARTMENT OF ELECTRONICS AND COMMUNICATION ENGINEERING EE6301 DIGITAL LOGIC CIRCUITS UNIT I NUMBER SYSTEMS AND DIGITAL LOGIC FAMILIES PART A 1. How can an OR gate be

More information

The Verilog Hardware Description Language. Fifth Edition

The Verilog Hardware Description Language. Fifth Edition The Verilog Hardware Description Language Fifth Edition Donald Thomas Philip Moorby The Verilog Hardware Description Language Fifth Edition Donald Thomas Carnegie Mellon University Pittsburgh, PA USA Philip

More information

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

OVERVIEW: ============================================================ REPLACE OVERVIEW: With mantis 928, formal arguments to properties and sequences are defined to apply to a list of arguments that follow, much like tasks and function arguments. Previously, the type had to be replicated

More information

IT T35 Digital system desigm y - ii /s - iii

IT T35 Digital system desigm y - ii /s - iii UNIT - V Introduction to Verilog Hardware Description Language Introduction HDL for combinational circuits Sequential circuits Registers and counters HDL description for binary multiplier. 5.1 INTRODUCTION

More information

Verilog introduction. Embedded and Ambient Systems Lab

Verilog introduction. Embedded and Ambient Systems Lab Verilog introduction Embedded and Ambient Systems Lab Purpose of HDL languages Modeling hardware behavior Large part of these languages can only be used for simulation, not for hardware generation (synthesis)

More information

VHDL for Synthesis. Course Description. Course Duration. Goals

VHDL for Synthesis. Course Description. Course Duration. Goals VHDL for Synthesis Course Description This course provides all necessary theoretical and practical know how to write an efficient synthesizable HDL code through VHDL standard language. The course goes

More information

Department of Computer Science and Electrical Engineering. Intro to Verilog II

Department of Computer Science and Electrical Engineering. Intro to Verilog II Department of Computer Science and Electrical Engineering Intro to Verilog II http://6004.csail.mit.edu/6.371/handouts/l0{2,3,4}.pdf http://www.asic-world.com/verilog/ http://www.verilogtutorial.info/

More information

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

register:a group of binary cells suitable for holding binary information flip-flops + gates 9 차시 1 Ch. 6 Registers and Counters 6.1 Registers register:a group of binary cells suitable for holding binary information flip-flops + gates control when and how new information is transferred into the

More information

Brief Introduction of Cell-based Design. Ching-Da Chan CIC/DSD

Brief Introduction of Cell-based Design. Ching-Da Chan CIC/DSD Brief Introduction of Cell-based Design Ching-Da Chan CIC/DSD 1 Design Abstraction Levels SYSTEM MODULE + GATE CIRCUIT S n+ G DEVICE n+ D 2 Full Custom V.S Cell based Design Full custom design Better patent

More information

Index. B Back-annotation, 507 SDF, 508

Index. B Back-annotation, 507 SDF, 508 $display, 57, 206 example, 69, 225 $fatal, SystemVerilog, 538 $finish, 206, 245 $fullskew timing check, 366 $hold timing check, 366 $info, SystemVerilog, 538 $monitor, 217 $monitor, 57 $nochange timing

More information

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

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

More information

Digital Design Using Digilent FPGA Boards -- Verilog / Active-HDL Edition

Digital Design Using Digilent FPGA Boards -- Verilog / Active-HDL Edition Digital Design Using Digilent FPGA Boards -- Verilog / Active-HDL Edition Table of Contents 1. Introduction to Digital Logic 1 1.1 Background 1 1.2 Digital Logic 5 1.3 Verilog 8 2. Basic Logic Gates 9

More information

The Verilog Language COMS W Prof. Stephen A. Edwards Fall 2002 Columbia University Department of Computer Science

The Verilog Language COMS W Prof. Stephen A. Edwards Fall 2002 Columbia University Department of Computer Science The Verilog Language COMS W4995-02 Prof. Stephen A. Edwards Fall 2002 Columbia University Department of Computer Science The Verilog Language Originally a modeling language for a very efficient event-driven

More information

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

ECE 551 Digital System Design and Synthesis. Instructor: Kewal K. Saluja. Midterm Exam Last (family) name: First (given) name: Student I.D. #: Department of Electrical and Computer Engineering University of Wisconsin - Madison ECE 551 Digital System Design and Synthesis Instructor: Kewal

More information

Logic Synthesis. EECS150 - Digital Design Lecture 6 - Synthesis

Logic Synthesis. EECS150 - Digital Design Lecture 6 - Synthesis Logic Synthesis Verilog and VHDL started out as simulation languages, but quickly people wrote programs to automatically convert Verilog code into low-level circuit descriptions (netlists). EECS150 - Digital

More information

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

N-input EX-NOR gate. N-output inverter. N-input NOR gate Hardware Description Language HDL Introduction HDL is a hardware description language used to design and document electronic systems. HDL allows designers to design at various levels of abstraction. It

More information

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

Verilog Overview. Verilog Overview. Simple Example. Simple Example. Simple Example. Simple Example Verilog Overview Prof. MacDonald Verilog Overview C-Like Language used to describe hardware VHDL is main competitor VHDL is more rigorous and typed VHDL takes longer to write VHDL is used by 5% of USA

More information

Verilog Tutorial. Introduction. T. A.: Hsueh-Yi Lin. 2008/3/12 VLSI Digital Signal Processing 2

Verilog Tutorial. Introduction. T. A.: Hsueh-Yi Lin. 2008/3/12 VLSI Digital Signal Processing 2 Verilog Tutorial T. A.: Hsueh-Yi Lin Introduction 2008/3/12 VLSI Digital Signal Processing 2 Verilog: A common language for industry HDL is a common way for hardware design Verilog VHDL Verilog is widely

More information

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

ECE Digital System Design & Synthesis Exercise 1 - Logic Values, Data Types & Operators - With Answers ECE 601 - Digital System Design & Synthesis Exercise 1 - Logic Values, Data Types & Operators - With Answers Fall 2001 Final Version (Important changes from original posted Exercise 1 shown in color) Variables

More information

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

ECE 2300 Digital Logic & Computer Organization. More Sequential Logic Verilog ECE 2300 Digital Logic & Computer Organization Spring 2018 More Sequential Logic Verilog Lecture 7: 1 Announcements HW3 will be posted tonight Prelim 1 Thursday March 1, in class Coverage: Lectures 1~7

More information

The Verilog Hardware Description Language, Fifth Edition

The Verilog Hardware Description Language, Fifth Edition The Verilog Hardware Description Language, Fifth Edition This page intentionally left blank The Verilog Hardware Description Language, Fifth Edition Donald E. Thomas ECE Department Carnegie Mellon University

More information

Lecture 32: SystemVerilog

Lecture 32: SystemVerilog Lecture 32: SystemVerilog Outline SystemVerilog module adder(input logic [31:0] a, input logic [31:0] b, output logic [31:0] y); assign y = a + b; Note that the inputs and outputs are 32-bit busses. 17:

More information

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

CAD for VLSI Design - I. Lecture 21 V. Kamakoti and Shankar Balachandran CAD for VLSI Design - I Lecture 21 V. Kamakoti and Shankar Balachandran Overview of this Lecture Understanding the process of Logic synthesis Logic Synthesis of HDL constructs Logic Synthesis What is this?

More information

EECS150 - Digital Design Lecture 10 Logic Synthesis

EECS150 - Digital Design Lecture 10 Logic Synthesis EECS150 - Digital Design Lecture 10 Logic Synthesis September 26, 2002 John Wawrzynek Fall 2002 EECS150 Lec10-synthesis Page 1 Logic Synthesis Verilog and VHDL stated out as simulation languages, but quickly

More information

Verilog Module 1 Introduction and Combinational Logic

Verilog Module 1 Introduction and Combinational Logic Verilog Module 1 Introduction and Combinational Logic Jim Duckworth ECE Department, WPI 1 Module 1 Verilog background 1983: Gateway Design Automation released Verilog HDL Verilog and simulator 1985: Verilog

More information

Lecture 2: Data Types, Modeling Combinational Logic in Verilog HDL. Variables and Logic Value Set. Data Types. Why use an HDL?

Lecture 2: Data Types, Modeling Combinational Logic in Verilog HDL. Variables and Logic Value Set. Data Types. Why use an HDL? Why use an HDL? Lecture 2: Data Types, Modeling Combinational Logic in Verilog HDL Increase digital design engineer s productivity (from Dataquest) Behavioral HDL RTL HDL Gates Transistors 2K 10K gates/week

More information

Lecture 7. Summary of two-level combinational-logic. Ways of specifying circuits. Solving combinational design problems. Verilog versus VHDL

Lecture 7. Summary of two-level combinational-logic. Ways of specifying circuits. Solving combinational design problems. Verilog versus VHDL Lecture 7 Summary of two-level combinational-logic Logistics Homework due today Homework out today due next Wednesday First midterm a week Friday: Friday Jan 0 Will cover up to the of Multiplexers/DeMultiplexers

More information

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

14:332:231 DIGITAL LOGIC DESIGN. Hardware Description Languages 14:332:231 DIGITAL LOGIC DESIGN Ivan Marsic, Rutgers University Electrical & Computer Engineering Fall 2013 Lecture #22: Introduction to Verilog Hardware Description Languages Basic idea: Language constructs

More information

Advanced Digital Design with the Verilog HDL

Advanced Digital Design with the Verilog HDL Copyright 2001, 2003 MD Ciletti 1 Advanced Digital Design with the Verilog HDL M. D. Ciletti Department of Electrical and Computer Engineering University of Colorado Colorado Springs, Colorado ciletti@vlsic.uccs.edu

More information

Design Using Verilog

Design Using Verilog EGC220 Design Using Verilog Baback Izadi Division of Engineering Programs bai@engr.newpaltz.edu Basic Verilog Lexical Convention Lexical convention are close to C++. Comment // to the of the line. /* to

More information

Hardware description languages

Hardware description languages Specifying digital circuits Schematics (what we ve done so far) Structural description Describe circuit as interconnected elements Build complex circuits using hierarchy Large circuits are unreadable Hardware

More information

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

Speaker: Shao-Wei Feng Adviser: Prof. An-Yeu Wu Date: 2010/09/28 99-1 Under-Graduate Project Verilog Simulation & Debugging Tools Speaker: Shao-Wei Feng Adviser: Prof. An-Yeu Wu Date: 2010/09/28 ACCESS IC LAB Outline Basic Concept of Verilog HDL Gate Level Modeling

More information

This Lecture. Some components (useful for the homework) Verilog HDL (will continue next lecture)

This Lecture. Some components (useful for the homework) Verilog HDL (will continue next lecture) Last Lecture The basic component of a digital circuit is the MOS transistor Transistor have instrinsic resistance and capacitance, so voltage values in the circuit take some time to change ( delay ) There

More information

CSE140L: Components and Design Techniques for Digital Systems Lab

CSE140L: Components and Design Techniques for Digital Systems Lab CSE140L: Components and Design Techniques for Digital Systems Lab Tajana Simunic Rosing Source: Vahid, Katz, Culler 1 Announcements & Outline Lab 4 due; demo signup times listed on the cse140l site Check

More information

The Verilog Golden Reference Guide

The Verilog Golden Reference Guide The Verilog Golden Reference Guide DOULOS Version 1.0, August 1996 Copyright 1996, Doulos, All Rights Reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted,

More information

Computer Arithmetic andveriloghdl Fundamentals

Computer Arithmetic andveriloghdl Fundamentals Computer Arithmetic andveriloghdl Fundamentals Joseph Cavanagh Santa Clara University California, USA ( r ec) CRC Press vf J TayiorS«. Francis Group ^"*" "^ Boca Raton London New York CRC Press is an imprint

More information

Introduction to Verilog/System Verilog

Introduction to Verilog/System Verilog NTUEE DCLAB Feb. 27, 2018 Introduction to Verilog/System Verilog Presenter: Yao-Pin Wang 王耀斌 Advisor: Prof. Chia-Hsiang Yang 楊家驤 Dept. of Electrical Engineering, NTU National Taiwan University What is

More information

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

A Verilog Primer. An Overview of Verilog for Digital Design and Simulation A Verilog Primer An Overview of Verilog for Digital Design and Simulation John Wright Vighnesh Iyer Department of Electrical Engineering and Computer Sciences College of Engineering, University of California,

More information

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

In this lecture, we will go beyond the basic Verilog syntax and examine how flipflops and other clocked circuits are specified. 1 In this lecture, we will go beyond the basic Verilog syntax and examine how flipflops and other clocked circuits are specified. I will also introduce the idea of a testbench as part of a design specification.

More information

ALTERA FPGA Design Using Verilog

ALTERA FPGA Design Using Verilog ALTERA FPGA Design Using Verilog Course Description This course provides all necessary theoretical and practical know-how to design ALTERA FPGA/CPLD using Verilog standard language. The course intention

More information

CSE140L: Components and Design

CSE140L: Components and Design CSE140L: Components and Design Techniques for Digital Systems Lab Tajana Simunic Rosing Source: Vahid, Katz, Culler 1 Grade distribution: 70% Labs 35% Lab 4 30% Lab 3 20% Lab 2 15% Lab 1 30% Final exam

More information

FSM-based Digital Design using Veriiog HDL

FSM-based Digital Design using Veriiog HDL FSM-based Digital Design using Veriiog HDL Peter Minns lan Elliott Northumbria University, UK John Wiley & Sons, Ltd Contents Preface Acknowledgements xi xv 1 Introduction to Finite-State Machines and

More information

EEL 4783: HDL in Digital System Design

EEL 4783: HDL in Digital System Design EEL 4783: HDL in Digital System Design Lecture 15: Logic Synthesis with Verilog Prof. Mingjie Lin 1 Verilog Synthesis Synthesis vs. Compilation Descriptions mapped to hardware Verilog design patterns for

More information

Verilog. Verilog for Synthesis

Verilog. Verilog for Synthesis Verilog Verilog for Synthesis 1 Verilog background 1983: Gateway Design Automation released Verilog HDL Verilog and simulator 1985: Verilog enhanced version Verilog-XL 1987: Verilog-XL becoming more popular

More information

Asynchronous FIFO Design

Asynchronous FIFO Design Asynchronous FIFO Design 2.1 Introduction: An Asynchronous FIFO Design refers to a FIFO Design where in the data values are written to the FIFO memory from one clock domain and the data values are read

More information

EECS150 - Digital Design Lecture 10 Logic Synthesis

EECS150 - Digital Design Lecture 10 Logic Synthesis EECS150 - Digital Design Lecture 10 Logic Synthesis February 13, 2003 John Wawrzynek Spring 2003 EECS150 Lec8-synthesis Page 1 Logic Synthesis Verilog and VHDL started out as simulation languages, but

More information

Lecture #2: Verilog HDL

Lecture #2: Verilog HDL Lecture #2: Verilog HDL Paul Hartke Phartke@stanford.edu Stanford EE183 April 8, 2002 EE183 Design Process Understand problem and generate block diagram of solution Code block diagram in verilog HDL Synthesize

More information

Verilog Design Principles

Verilog Design Principles 16 h7fex // 16-bit value, low order 4 bits unknown 8 bxx001100 // 8-bit value, most significant 2 bits unknown. 8 hzz // 8-bit value, all bits high impedance. Verilog Design Principles ECGR2181 Extra Notes

More information

Digital Design with FPGAs. By Neeraj Kulkarni

Digital Design with FPGAs. By Neeraj Kulkarni Digital Design with FPGAs By Neeraj Kulkarni Some Basic Electronics Basic Elements: Gates: And, Or, Nor, Nand, Xor.. Memory elements: Flip Flops, Registers.. Techniques to design a circuit using basic

More information

EN2911X: Reconfigurable Computing Topic 02: Hardware Definition Languages

EN2911X: Reconfigurable Computing Topic 02: Hardware Definition Languages EN2911X: Reconfigurable Computing Topic 02: Hardware Definition Languages Professor Sherief Reda http://scale.engin.brown.edu School of Engineering Brown University Spring 2014 1 Introduction to Verilog

More information

THE DESIGNER S GUIDE TO VERILOG-AMS

THE DESIGNER S GUIDE TO VERILOG-AMS THE DESIGNER S GUIDE TO VERILOG-AMS THE DESIGNER S GUIDE BOOK SERIES Consulting Editor Kenneth S. Kundert Books in the series: The Designer s Guide to Verilog-AMS ISBN: 1-00-80-1 The Designer s Guide to

More information

Synthesis of Combinational and Sequential Circuits with Verilog

Synthesis of Combinational and Sequential Circuits with Verilog Synthesis of Combinational and Sequential Circuits with Verilog What is Verilog? Hardware description language: Are used to describe digital system in text form Used for modeling, simulation, design Two

More information

Chapter 2 Basic Logic Circuits and VHDL Description

Chapter 2 Basic Logic Circuits and VHDL Description Chapter 2 Basic Logic Circuits and VHDL Description We cannot solve our problems with the same thinking we used when we created them. ----- Albert Einstein Like a C or C++ programmer don t apply the logic.

More information

Verilog Design Principles

Verilog Design Principles 16 h7fex // 16-bit value, low order 4 bits unknown 8 bxx001100 // 8-bit value, most significant 2 bits unknown. 8 hzz // 8-bit value, all bits high impedance. Verilog Design Principles ECGR2181 Extra Notes

More information