30
Verilog HDL: A solution for Everybody By, A nil K umar Ram Rakhyani (akram@)

Verilog HDL: A solution for Everybody By, Anil Kumar Ram Rakhyani (akram@)

Embed Size (px)

Citation preview

Page 1: Verilog HDL: A solution for Everybody By, Anil Kumar Ram Rakhyani (akram@)

Verilog HDL:A solution for

EverybodyBy,

Anil Kumar Ram Rakhyani (akram@)

Page 2: Verilog HDL: A solution for Everybody By, Anil Kumar Ram Rakhyani (akram@)

Traditional Design approaches

Gate Level DesignSchematic Design

Page 3: Verilog HDL: A solution for Everybody By, Anil Kumar Ram Rakhyani (akram@)

Where is the problem?

System specification is behavioral

Manual Translation of design in Boolean equations

Handling of large Complex Designs

Can we still use SPICE for simulating Digital circuits?

Page 4: Verilog HDL: A solution for Everybody By, Anil Kumar Ram Rakhyani (akram@)

Advancements over the years

© Intel 4004 Processor

Introduced in 1971 2300 Transistors 108 KHz Clock

© Intel P4 Processor Introduced in 2000 40 Million Transistors 1.5GHz Clock

Page 5: Verilog HDL: A solution for Everybody By, Anil Kumar Ram Rakhyani (akram@)

System Design Pyramid

Page 6: Verilog HDL: A solution for Everybody By, Anil Kumar Ram Rakhyani (akram@)

History:

Need: a simple, intuitive and effective way of describing digital circuits for modeling, simulation and analysis.

Developed in 1984-85 by Philip Moorby In 1990 Cadence opened the language to the

public Standardization of language by IEEE in 1995

Page 7: Verilog HDL: A solution for Everybody By, Anil Kumar Ram Rakhyani (akram@)

A Match between Verilog & VHDL

Page 8: Verilog HDL: A solution for Everybody By, Anil Kumar Ram Rakhyani (akram@)

A Match between Verilog & VHDL(con.)

Page 9: Verilog HDL: A solution for Everybody By, Anil Kumar Ram Rakhyani (akram@)

Top-Down Design Approach

Page 10: Verilog HDL: A solution for Everybody By, Anil Kumar Ram Rakhyani (akram@)

Definition of Module

Interface: port and parameter declaration

Body: Internal part of module

Add-ons (optional)

Page 11: Verilog HDL: A solution for Everybody By, Anil Kumar Ram Rakhyani (akram@)

Some points to remember

The name of Module

Comments in Verilog One line comment (// ………….) Block Comment (/*…………….*/)

Description of Module (optional but suggested)

Page 12: Verilog HDL: A solution for Everybody By, Anil Kumar Ram Rakhyani (akram@)

Description of Module

Page 13: Verilog HDL: A solution for Everybody By, Anil Kumar Ram Rakhyani (akram@)

The Module Interface

Port List

Port Declaration

Page 14: Verilog HDL: A solution for Everybody By, Anil Kumar Ram Rakhyani (akram@)

One language, Many Coding Style

Page 15: Verilog HDL: A solution for Everybody By, Anil Kumar Ram Rakhyani (akram@)

One language, Many Coding Style (contd.)

Page 16: Verilog HDL: A solution for Everybody By, Anil Kumar Ram Rakhyani (akram@)

One language, Many Coding Style (contd.)

Page 17: Verilog HDL: A solution for Everybody By, Anil Kumar Ram Rakhyani (akram@)

Structural style: Verilog Code

Page 18: Verilog HDL: A solution for Everybody By, Anil Kumar Ram Rakhyani (akram@)

Dataflow style: Verilog Code

Page 19: Verilog HDL: A solution for Everybody By, Anil Kumar Ram Rakhyani (akram@)

Behavioral style: Verilog Code

Page 20: Verilog HDL: A solution for Everybody By, Anil Kumar Ram Rakhyani (akram@)

Data Values and Representation Four Data value

Data representation Type Binary 6’b100101 Hex 6’h25

Page 21: Verilog HDL: A solution for Everybody By, Anil Kumar Ram Rakhyani (akram@)

Class of Signals

Nets: physical connection between hardware elements

Registers: Store value even if disconnected

Page 22: Verilog HDL: A solution for Everybody By, Anil Kumar Ram Rakhyani (akram@)

Nets

wire/tri wand/triand wor/trior Supply0,supply1,

tri0,tri1,trireg

Page 23: Verilog HDL: A solution for Everybody By, Anil Kumar Ram Rakhyani (akram@)

Specifications of Ports

Page 24: Verilog HDL: A solution for Everybody By, Anil Kumar Ram Rakhyani (akram@)

Registered Output

Page 25: Verilog HDL: A solution for Everybody By, Anil Kumar Ram Rakhyani (akram@)

Delay Statement

Page 26: Verilog HDL: A solution for Everybody By, Anil Kumar Ram Rakhyani (akram@)

Parameter

Page 27: Verilog HDL: A solution for Everybody By, Anil Kumar Ram Rakhyani (akram@)

Test Benchmodule main;reg a, b, c; wire sum, carry;

fulladder add(a,b,c,sum,carry);initialbegin a = 0; b = 0; c = 0; #5 a = 0; b = 1; c = 0; #5 a = 1; b = 0; c = 1; #5 a = 1; b = 1; c = 1; #5endendmodule

Page 28: Verilog HDL: A solution for Everybody By, Anil Kumar Ram Rakhyani (akram@)

Memory Operation

reg [31:0] register_file [0:7];

wire [31:0] rf_bus;

wire r2b4;

assign rf_bus = register_file [2];

assign r2b4 = rf_bus[4];

Can’t use register_file[2][4] for assigning value to variable r2b4

Page 29: Verilog HDL: A solution for Everybody By, Anil Kumar Ram Rakhyani (akram@)

Some main points to remember Verilog is concurrent

Think while writing your program.

Blocking and Non-blocking Code

Page 30: Verilog HDL: A solution for Everybody By, Anil Kumar Ram Rakhyani (akram@)

References:

Evita_verilog Tutorial, www.aldec.com

http://www.asic-world.com/verilog/