Introduction to ASIC flow and Verilog HDL

Slides:



Advertisements
Similar presentations
VERILOG: Synthesis - Combinational Logic Combination logic function can be expressed as: logic_output(t) = f(logic_inputs(t)) Rules Avoid technology dependent.
Advertisements

Verilog HDL -Introduction
Verilog.
The Verilog Hardware Description Language
Verilog Overview. University of Jordan Computer Engineering Department CPE 439: Computer Design Lab.
Supplement on Verilog adder examples
Combinational Logic.
Verilog Intro: Part 1.
Hardware Description Language (HDL)
16/04/20151 Hardware Descriptive Languages these notes are taken from Mano’s book It can represent: Truth Table Boolean Expression Diagrams of gates and.
SYEN 3330 Digital SystemsJung H. Kim Chapter SYEN 3330 Digital Systems Chapters 4 – Part3: Verilog – Part 1.
CSE 201 Computer Logic Design * * * * * * * Verilog Modeling
TOPIC : Finite State Machine(FSM) and Flow Tables UNIT 1 : Modeling Module 1.4 : Modeling Sequential circuits.
Give qualifications of instructors: DAP
CSE 341 Verilog HDL An Introduction. Hardware Specification Languages Verilog  Similar syntax to C  Commonly used in  Industry (USA & Japan) VHDL 
ECE 551 Digital System Design & Synthesis Lecture 08 The Synthesis Process Constraints and Design Rules High-Level Synthesis Options.
1 Workshop Topics - Outline Workshop 1 - Introduction Workshop 2 - module instantiation Workshop 3 - Lexical conventions Workshop 4 - Value Logic System.
 HDLs – Verilog and Very High Speed Integrated Circuit (VHSIC) HDL  „ Widely used in logic design  „ Describe hardware  „ Document logic functions.
CS 151 Digital Systems Design Lecture 37 Register Transfer Level
Verilog Sequential Circuits Ibrahim Korpeoglu. Verilog can be used to describe storage elements and sequential circuits as well. So far continuous assignment.
ECE 353 Computer Systems Lab I Verilog Hardware Description Language.
University of Jordan Computer Engineering Department CPE 439: Computer Design Lab.
Verilog Basics Nattha Jindapetch November Agenda Logic design review Verilog HDL basics LABs.
1 VERILOG Fundamentals Workshop סמסטר א ' תשע " ה מרצה : משה דורון הפקולטה להנדסה Workshop Objectives: Gain basic understanding of the essential concepts.
Introduction to FPGA AVI SINGH. Prerequisites Digital Circuit Design - Logic Gates, FlipFlops, Counters, Mux-Demux Familiarity with a procedural programming.
ECE 2372 Modern Digital System Design
ECE/CS 352 Digital Systems Fundamentals
ECE 551 Digital System Design & Synthesis Fall 2011 Midterm Exam Overview.
1 An Update on Verilog Ξ – Computer Architecture Lab 28/06/2005 Kypros Constantinides.
Digital System 數位系統 Verilog HDL Ping-Liang Lai (賴秉樑)  
1 Workshop Topics - Outline Workshop 1 - Introduction Workshop 2 - module instantiation Workshop 3 - Lexical conventions Workshop 4 - Value Logic System.
Module 1.2 Introduction to Verilog
COE 202 Introduction to Verilog Computer Engineering Department College of Computer Sciences and Engineering King Fahd University of Petroleum and Minerals.
1 COMP541 Sequential Circuits Montek Singh Feb 1, 2012.
Anurag Dwivedi. Basic Block - Gates Gates -> Flip Flops.
Behavioral Modelling - 1. Verilog Behavioral Modelling Behavioral Models represent functionality of the digital hardware. It describes how the circuit.
ELEE 4303 Digital II Introduction to Verilog. ELEE 4303 Digital II Learning Objectives Get familiar with background of HDLs Basic concepts of Verilog.
CSCE 211: Digital Logic Design Chin-Tser Huang University of South Carolina.
04/26/20031 ECE 551: Digital System Design & Synthesis Lecture Set : Introduction to VHDL 12.2: VHDL versus Verilog (Separate File)
Verilog hdl – II.
Multiplexers Section Topics Multiplexers – Definition – Examples – Verilog Modeling.
Introduction to Verilog
COE 202 Introduction to Verilog Computer Engineering Department College of Computer Sciences and Engineering King Fahd University of Petroleum and Minerals.
Verilog Intro: Part 1. Hardware Description Languages A Hardware Description Language (HDL) is a language used to describe a digital system, for example,
1 University of Jordan Computer Engineering Department CPE 439: Computer Design Lab.
1 Lecture 3: Modeling Sequential Logic in Verilog HDL.
Exp#5 & 6 Introduction to Verilog COE203 Digital Logic Laboratory Dr. Ahmad Almulhem KFUPM Spring 2009.
1 A hardware description language is a computer language that is used to describe hardware. Two HDLs are widely used Verilog HDL VHDL (Very High Speed.
Introduction to Verilog COE 202 Digital Logic Design Dr. Muhamed Mudawar King Fahd University of Petroleum and Minerals.
Hardware Description Languages: Verilog
Adapted from Krste Asanovic
Discussion 2: More to discuss
EMT 351/4 DIGITAL IC DESIGN Week # Synthesis of Sequential Logic 10.
Introduction Introduction to VHDL Entities Signals Data & Scalar Types
KARTHIK.S Lecturer/ECE S.N.G.C.E
FIGURE 5.1 Block diagram of sequential circuit
Hardware Description Languages: Verilog
Introduction to DIGITAL CIRCUITS MODELING & VERIFICATION using VERILOG [Part-I]
Behavioral Modeling in Verilog
Introduction to Verilog
332:437 Lecture 8 Verilog and Finite State Machines
The Verilog Hardware Description Language
Dr. Tassadaq Hussain Introduction to Verilog – Part-3 Expressing Sequential Circuits and FSM.
Chapters 4 – Part3: Verilog – Part 1
The Verilog Hardware Description Language
The Verilog Hardware Description Language
332:437 Lecture 8 Verilog and Finite State Machines
Introduction to Digital IC Design
COE 202 Introduction to Verilog
Presentation transcript:

Introduction to ASIC flow and Verilog HDL

What is Verilog ? IEEE industry standard Hardware Descriptive Language (HDL) – used to describe a digital system Used in both hardware simulation and synthesis HDL : A text programing language used for model a piece of hardware

More Terminology: Register Transfer Level : A type of behavioral modeling, for the purpose of synthesis. Synthesis : Translating HDL to a circuit and then optimizing the represented circuit. RTL Synthesis : Translating the RTL model of hardware into an optimized technology specific gate level implementation.

What is Synthesis?

Synthesis Implementation (Basic)

Basic VLSI Design Flow:

Synthesis vs Simulation

Synthesis Flow

Basics of Combinational Digital Design Using a NAND gate, how many ways can you come up with an Inverter?

Implementing an Inverter using 2:1 MUX Equation of the Mux : Output = S * A + S (bar) * B If we replace A with zero and B with 1 we get the functionality of an Inverter Output = S * 0 + S (bar) * 1 Output = S (bar) You can verify using truth tables, the following circuit describes an inverter using 2:1 MUX

And Gate using 2:1 MUX Equation of the Mux : Output = S * A + S (bar) * B Tie Input B to zero we get Output = S*A (AND gate)

2:1 MUX using only NAND Gates

Verilog : The module

Behavioral Description (Continuous /Dataflow Assignment) Continuous assignment use the assign keyword. A simple natural way to express the circuit. Specify the logic expression instead of describing the gate level. HDL more useful if used as a higher level of abstraction. The RHS is continuously evaluated as a function of arbitrarily changing inputs The target / output is a net driven by combinational logic

Implementation of a Dataflow Assignment

Behavioral Description (Procedural Assignment) An alternative, often higher level of abstraction in behavioral class Two structured procedural statements : always and initial. Rather than specifying a circuit by Boolean expression, we use if – else (case, while, for statements) Supports richer control structures and provides greater flexibility.

Mux Implementation of Procedural statement with always

Gate Level : Structural Description Provides gate level details of the design. Net represents connections between hardware elements. Nets are declared with the keyword wire This coding style is error prone, it’s used only when we are sure about the exact circuit implementation Verilog supports basic logic gates as primitives : and, or, nor, NAND, XOR, XNOR, NOT, buf

Structural Implementation of MUX

Verilog Registers In digital design registers represents memory elements. Digital registers need a clock to operate and update their state at a particular edge. Registers in Verilog are different from digital design, please don’t confuse In Verilog (reg) simple means a variable that can hold value, which can be changed anytime by assigning a new one

Combining Procedural and Continuous

The case statement: Case and if can be used interchangeably to implement conditional execution within always blocks. Case statements can be more easily read

N - bit signals in verilog 2:1 MUX with 8 – bit operands.

Multi bit arithmetic the easy way:

Port Connection Implementation

Connecting module instantiation Ports module Full_Adder(Cin, x, y, Cout, s); input Cin; input x, y; output Cout; output s; wire c1, c2, s1; Half_Add HA1(x, y, c1, s1); Half_Add HA2(s1, Cin, c2, s); assign Cout = c1 | c2; endmodule

Basic Verilog Construct

Verilog Combinational Logic

Alternative coding style for CL

Combined Verilog code for Flip Flop

Incorrect specification in Verilog: Use always block sensitivity list to wait for clock to change

Sequential vs Combinational in always block

Synchronous vs Asynchronous clear

Implementing Asynchronous/Synchronous Reset

Verilog Implementation for Asynch/Synch Reset

Synchronous vs Asynchronous -III

Synchronous vs Asynchronous Reset

Getting the best of both worlds: Synchronize the asynchronous external reset signal. Use this synchronous signal as input to all asynchronous flip flops. Asynch reset FF takes less logic to implement, consumes less power.

The Asynchronous Metastable Problem

Blocking vs Non-Blocking

Swap function using blocking/non blocking

Assignment style for Sequential design

Use Non-Blocking for Sequential Logic

Use Blocking for Combinational Logic

Structural Representation (Revisited)

Structural Representation of a 4-bit Adder

Modeling Finite State Machines

Moore Machine example

Code for Traffic light controller

Traffic light controller code(contd.)

Further thoughts:

Non-latched Traffic light controller code:

Non-latched code (continued):

Moore Machine : Example 2

Code for parity detector:

Parity Detector code (continued):

Reasoning it’s a Moore

Mealy Machine : Example

Sequence Detector : Code

Sequence Detector code :(continued)

Example with Multiple Modules

The Compliment module

The Adder Module

The parity checker module

Top Level Module: Interconnecting the lower level modules