Adapted from Krste Asanovic

Slides:



Advertisements
Similar presentations
Digital System Design-II (CSEB312)
Advertisements

VERILOG: Synthesis - Combinational Logic Combination logic function can be expressed as: logic_output(t) = f(logic_inputs(t)) Rules Avoid technology dependent.
Verilog Fundamentals Shubham Singh Junior Undergrad. Electrical Engineering.
CMSC 611: Advanced Computer Architecture
Simulation executable (simv)
The Verilog Hardware Description Language
Sequential Logic in Verilog
Supplement on Verilog adder examples
Combinational Logic.
Register Transfer Level
CPEN Digital System Design
A Digital Circuit Toolbox
Table 7.1 Verilog Operators.
Verilog Intro: Part 1.
Hardware Description Language (HDL)
CSE 201 Computer Logic Design * * * * * * * Verilog Modeling
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.
Spring 2009W. Rhett DavisNC State UniversityECE 406Slide 1 ECE 406 – Design of Complex Digital Systems Lecture 8: Sequential Design Spring 2009 W. Rhett.
OUTLINE Introduction Basics of the Verilog Language Gate-level modeling Data-flow modeling Behavioral modeling Task and function.
Design at the 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.
Advanced Verilog EECS 270 v10/23/06.
Digital System Design EEE344 Lecture 3 Introduction to Verilog HDL Prepared by: Engr. Qazi Zia, Assistant Professor EED, COMSATS Attock1.
ECE 332 Digital Electronics and Logic Design Lab Lab 5 VHDL Design Styles Testbenches.
1 VERILOG Fundamentals Workshop סמסטר א ' תשע " ה מרצה : משה דורון הפקולטה להנדסה Workshop Objectives: Gain basic understanding of the essential concepts.
ECE 2372 Modern Digital System Design
1 An Update on Verilog Ξ – Computer Architecture Lab 28/06/2005 Kypros Constantinides.
Digital System 數位系統 Verilog HDL Ping-Liang Lai (賴秉樑)  
Module 1.2 Introduction to Verilog
Anurag Dwivedi. Basic Block - Gates Gates -> Flip Flops.
1 Hardware description languages: introduction intellectual property (IP) introduction to VHDL and Verilog entities and architectural bodies behavioral,
ECE-C662 Lecture 2 Prawat Nagvajara
February 6, 2009http://csg.csail.mit.edu/6.375/L02-1 Verilog 1 - Fundamentals Complex Digital Systems Arvind February 6, 2009 FA module adder( input.
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.
Introduction to ASIC flow and Verilog HDL
Teaching Digital Logic courses with Altera Technology
Verilog 1 - Fundamentals Complex Digital Systems Krste Asanovic February 9, 2007 FA module adder( input [3:0] A, B, output cout, output [3:0] S );
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.
Structural Description
Hardware Description Languages: Verilog
Last Lecture Talked about combinational logic always statements. e.g.,
Reg and Wire:.
CSE241A VLSI Digital Circuits Winter 2003 Recitation 2
Discussion 2: More to discuss
Verilog Introduction Fall
Topics Modeling with hardware description languages (HDLs).
Introduction Introduction to VHDL Entities Signals Data & Scalar Types
KARTHIK.S Lecturer/ECE S.N.G.C.E
Behavioral Modeling Structural modeling Behavioral modeling
Hardware Description Languages: Verilog
Verilog 1 - Fundamentals
Introduction to DIGITAL CIRCUITS MODELING & VERIFICATION using VERILOG [Part-I]
Topics Modeling with hardware description languages (HDLs).
Behavioral Modeling in Verilog
ECE 551: Digital System Design & Synthesis
SYNTHESIS OF SEQUENTIAL LOGIC
Levels in computer design
Computer Architecture
ECE-C662 Introduction to Behavioral Synthesis Knapp Text Ch
332:437 Lecture 8 Verilog and Finite State Machines
Verilog Synthesis Synthesis vs. Compilation
Supplement on Verilog adder examples
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:

Adapted from Krste Asanovic Verilog Tutorial Adapted from Krste Asanovic

Verilog Fundamentals History Data types Structural Verilog Functional Verilog

Originally designers used manual translation + bread boards for verification

Hardware design languages enabled logic level simulation and verification

Once design were written in HDLs tools could be used for automatic translation

Primary Verilog data type is a bit-vector where bits can take on one of four values

The Verilog keyword wire is used to denote a standard hardware net

Verilog includes ways to specify bit literals in various bases

Verilog Basics Data types Structural Verilog Functional Verilog

A Verilog module includes a module name and a port list

A Verilog module includes a module name and a port list

A module can instantiate other modules creating a module hierarchy

A module can instantiate other modules creating a module hierarchy

A module can instantiate other modules creating a module hierarchy

Verilog supports connecting ports by position and by name

Let’s review how to turn our schematic diagram into structural Verilog

Let’s review how to turn our schematic diagram into structural Verilog

Verilog Fundamentals Data types Structural Verilog Functional Verilog Gate level Register transfer level High-level behavioral

Functional Verilog can roughly be divided into three abstraction levels

Gate-level Verilog uses structural Verilog to connect primitive gates

Continuous assignments statements assign one net to another or to a literal

Using continuous assignments to implement an RTL four input mutliplexer

Verilog RTL includes many operators in addition to basic boolean logic

Verilog RTL operators

Always blocks have parallel inter-block and sequential intra-block sematics

Always blocks have parallel inter-block and sequential intra-block sematics

Always blocks have parallel inter-block and sequential intra-block sematics

Always blocks have parallel inter-block and sequential intra-block sematics

Always blocks have parallel inter-block and sequential intra-block sematics

Continuous and procedural assignment statements are very different

Always blocks can contain more advanced control constructs

What happens if the case statement is not complete?

What happens if the case statement is not complete?

So is this how we make latches and flip-flops?

To understand why we need to know more about Verilog execution semantics

To understand why we need to know more about Verilog execution semantics

To understand why we need to know more about Verilog execution semantics

To understand why we need to know more about Verilog execution sematics

To understand why we need to know more about Verilog execution sematics

To understand why we need to know more about Verilog execution semantics

To understand why we need to know more about Verilog execution semantics

To understand why we need to know more about Verilog execution sematics

To understand why we need to know more about Verilog execution sematics

We didn’t model what we expected due to Verilog execution semantics

Non-blocking procedural assignments add an extra event queue

Non-blocking procedural assignments add an extra event queue

The order of non-blocking assignments does not matter

Common patterns for latch and flip-flop inference

Writing Good Synthesizable Verilog

Behavioral Verilog is used to model the abstract function of a hardware

Verilog can be used to model the high-level behavior of a hardware block

Delay statements should only be used in test harnesses

System tasks are used for test harnesses and simulation management

Which abstraction is the right one?

Examples

Mux4: Gate-level structural Verilog

Mux4: Using continuous assignments

Mux4: Behavioral style

Mux4: Using always block

Mux4: Always block permit more advanced sequential idioms

Parametrized mux4

Flip-flops

Flip-flops with reset

Register

Register in terms of Flip-flops

Static Elaboration: Generate

A simple state machine for valid/ready signals

Implementing the control logic finite state machine in Verilog

Implementing the control signal outputs for the finite state machine

Implementing the state transitions for the finite state machine

Take away points