Verilog Chapter1 Introduction
Verilog Chapter1 Introduction
LECTURE
Subject: VERILOG
Hardware Description Language
Chapter1: Introduction
Chapter 1: Introduction
Requirements – Projects – Scores
Verilog – What and Why ?
CAD flow
3
Requirement
4
Projects
• Projects :
– Group1: A Floating Point Unit for Numerical Calculations.
– Group2: Real-time Light-Saber Generator
– Group3: Real-time Video Processing
– Group4: FPGA Video Game
– Group5: Real-time Face Detection
– Group6: Gestural Interface for Image Browsing
– Group7: Gesture Recognition Remote Control
– Group8: Hardware Platform for JPEG
Compression/Decompression
Reference : http://web.mit.edu/6.111/www/
5
Scores
• Grading system:
– Final exam : 50 %
– Mid-exam : 20 %
– Laboratory : 20%
– Exercises: 10%
• Note: These above scores will only be valid if
student attends the laboratory class fully.
6
Verilog learning “tips”
• Verilog is essentially a programming language – similar to C with some
Pascal-like constructs
• The best way to learn any programming language is from live code
• We will get you started by going through several example programs and
explaining the key concepts
• We will not try to teach you the syntax line-by-line: pick up what you need
from the books and on-line tutorials
• Tip: Start by copying existing programs and modifying them incrementally
making sure you understand the output behavior at each step
• Tip: The best way to understand and remember a construct or keyword is to
experiment with it in code, not by reading about it
• We shall not design at the switch (transistor) level in this course – the lowest
level we shall reach is the gate level. The transistor level is more appropriate
for an electronics-oriented course
7
History
• HDL History
• 1970s: First HDLs
• Late 1970s: VHDL
• VHDL = VHSIC HDL = Very High Speed Integrated Circuit HDL
• VHDL inspired by programming languages of the day (Ada)
• 1980s:
• Verilog first introduced
• Verilog inspired by the C programming language
• VHDL standardized
• 1990s:
• Verilog standardized (Verilog-1995 standard)
• 2000s:
• Continued evolution (Verilog-2001 standard)
• Both VHDL and Verilog evolving, still in use today
8
Why To Represent Hardware?
• If you’re going to design a computer, you need to write down the design so
that:
• You can read it again later
• Someone else can read and understand it
• It can be simulated and verified
• Even software people may read it!
• It can be synthesized into specific gates
• It can be built and shipped and make money
9
How To Represent Hardware?
• Draw schematics
• Hand-drawn
• Machine-drawn
• Write a netlist
Z52BH I1234 (N123, N234, N4567);
• Write primitive Boolean equations
AAA = abc DEF + ABC def
• Use a Hardware Description Language (HDL)
assign overflow = c31 ^ c32;
10
Custom design vs System design
– Custom design:
• Small design . For instance : RAM, ROM, ALU, …
• High performance
• Designed by schematic or SPICE netlist
• Very time consuming to design (timing, power,… verification by
simulation)
– System design:
• Large and complex design , system level ((millions to billions of gates). For
instance : Chip, Micro processor, CPU, …
• Lower performance
• Designed by HDL.
• Less design time more productivity.
11
HDL-Advantages
– Describe complex designs (millions to billions of gates)
– Input to synthesis tools (generated circuits)
– Design exploration with simulation with less time consuming.
– Support for structure and instantiation
– Support for describing bit-level behavior
– Support for timing
– Support for concurrency
12
HDL-Disadvantages
– Much depends on Synthesis tools.
– Hard to optimize design.
13
Verilog vs. VHDL
– Verilog is relatively simple and close to C
– VHDL is complex
– For commercial products, it’s Verilog, Verilog has 60% of the world digital
design market (larger share in US)
– For large projects such as defense and telecommunication projects from
government / aerospace work, it’s VHDL
14
“Keep in heart”
15
CAD flow
Evolution of Computer Aided Design (CAD)
Vacuum tubes and transitors
Behavior Description
Pre-synthesis verification
Timing analyis
Post-synthesis verification
Physical layout
Chip 18
CAD flow (cont’d)
Design specification: Design Specification
Behavior Description
+ Describe the FUNCTIONALITY, INTERFACE, and OVERALL ARCHITECTURE
+ Do not need to think about HOW to implement
Pre-synthesis verification
Timing analyis
Post-synthesis verification
Physical layout
Chip 19
CAD flow (cont’d)
Design Specification
Behavior Description:
Behavior Description
Pre-synthesis verification
Physical layout
Chip 21
CAD flow (cont’d)
Function verification with testbench:
22
CAD flow (cont’d)
Function verification with testbench:
23
CAD flow (cont’d)
Function verification with input waveform:
24
CAD flow (cont’d)
Compilation and Design Specification
Synthesis:
Behavior Description
Pre-synthesis verification
Chip 25
CAD flow (cont’d)
Compilation and Synthesis
Determine which
logic gates, elements
to implement the
boolean expressions
Pre-synthesis verification
Chip 27
CAD flow (cont’d)
Timing analysis: Design Specification
Behavior Description
Pre-synthesis verification
Timing analyis
Chip 28
CAD flow (cont’d)
Post-synthesis Design Specification
verification:
Behavior Description
Pre-synthesis verification
Timing analyis
Post-synthesis verification
Behavior Description
Pre-synthesis verification
Timing analyis
-Programming for FPGA
-Layout for ASIC manufacturing
Post-synthesis
( poly-silicon,verification
diffusion, metal connection…)
Physical layout
Chip 30
CAD flow (cont’d)
Fabrication Design Specification
for Chip:
Behavior Description
Pre-synthesis verification
Timing analyis
Post-synthesis verification
Chip 31
CAD flow (cont’d)
Summary:
– HDLs are now the dominant method for large digital designs
– Syntax is similar to C language easy to learn and easy to use
– Allows different levels of abstraction (switches, gates, RTL, or behavioral
code) to be mixed in the same level
– Most popular logic synthesis tools support Verilog
– Allows the user to write custom C code to interact with internal data structures
of Verilog by using PLI (Programming Language Interface)
32
END
33