Design Flow Vlsi
Design Flow Vlsi
with Verilog
CSE 467
CSE 467
CSE 467
Testbench in Verilog
module testbench ();
generate data ;
process data ;
endmodule
module design (. . .) ;
assign . . .
always . . .
compi (. . .)
endmodule
Behavioral Simulation
Comp1 U1 (. . .) ;
Comp2 U2 (. . .) ;
...
Compn Un (. . .) ;
Assertion Verification
Formal Verification
Violation Report;
Time of Violation;
Monitor Coverage
Synthesis
C++ Classes,
Language Representation
Y=a &d&w
w =a &b| c
Timing Analysis
1.6 ns
2 ns
Post-synthesis Simulation
Device Programming
1010 ...
ASIC Netlist
Custom IC Layout
EDIF
or other netlists
Testbench in Verilog
module testbench ();
generate data ;
process data ;
endmodule
module design (. . .) ;
assign . . .
always . . .
compi (. . .)
endmodule
Behavioral Simulation
Comp1 U1 (. . .) ;
Comp2 U2 (. . .) ;
...
Compn Un (. . .) ;
Assertion Verification
Formal Verification
Violation Report;
Time of Violation;
Monitor Coverage
CSE 467
CSE 467
Assertion Verification
Formal Verification
Violation Report;
Time of Violation;
Monitor Coverage
Synthesis
C++ Classes,
Language Representation
Y=a& d&w
w =a& b|c
Timing Analysis
2 ns
Presynthesis
Verification
1.6 ns
CSE 467
Assertion Verification
Formal Verification
Violation Report;
Time of Violation;
Monitor Coverage
Synthesis
C++ Classes,
Language Representation
Y=a& d&w
w =a& b|c
Timing Analysis
Synthesis Process
2 ns
1.6 ns
CSE 467
10
Timing Analysis
1.6 ns
2 ns
Post-synthesis Simulation
Postsynthesis
Verification
Device Programming
ASIC Netlist
Custom IC Layout
EDIF
or other netlists
1010 ...
11
CSE 467
12
Timing Analysis
1.6 ns
2 ns
Post-synthesis Simulation
Device Programming
ASIC Netlist
Custom IC Layout
EDIF
or other netlists
1010 ...
13
CSE 467
14
Testbench in Verilog
Design Validation
Compilation
and Synthesis
Postsynthesis
Simulation
Timing
Analysis
Hardware
Generation
Verilog Digital System Design
CSE 467
15
Design Entry
Digital Design
Flow
Design
Design Entry
Entry
Testbench in Verilog
Design Validation
Compilation
and Synthesis
Postsynthesis
Simulation
Timing
Analysis
Hardware
Generation
CSE 467
16
Design Entry
The first step in the design of a digital system
Describing the design in Verilog in a top-down hierarchical fashion
Register Transfer Level (RTL): High-level Verilog designs usually
described at this level
Verilog constructs used in RT level design:
procedural statements for high-level behavioral description
continuous assignments for representing logic blocks, bus assignments,
and bus and input/output interconnect specifications
instantiation statements for using lower-level components in an upperlevel design
CSE 467
17
Testbench in Verilog
Digital Design
Flow
Design Entry
Testbench
Testbench in
in Verilog
Verilog
Design Validation
Compilation
and Synthesis
Postsynthesis
Simulation
Timing
Analysis
Hardware
Generation
CSE 467
18
Testbench in Verilog
CSE 467
19
Design Validation
Digital Design
Flow
Design Entry
Testbench in Verilog
Design
Design Validation
Validation
Compilation
and Synthesis
Postsynthesis
Simulation
Timing
Analysis
Hardware
Generation
CSE 467
20
10
Design Validation
CSE 467
21
Design Validation
Design
Validation
Simulation
CSE 467
Assertion
Verification
Formal
Verification
22
11
Simulation
Design
Validation
Simulation
CSE 467
Assertion
Verification
Formal
Verification
23
Simulation
CSE 467
24
12
Simulation
Inputs
Hierachical
Design
Description
Simulator
Text,
VCD...
...
Testbench
Two
alternatives
for defining
test input
data for a
simulation
engine
Outputs
Waveform
Simulation Model
Other forms
Waveform
Simulation Model
Hierachical
Design
Description
Simulator
Text,
VCD...
...
Other forms
Waveform
Stimuli
Testbench
for the
Counter
Circuit
25
Simulation
`timescale 1 ns / 100 ps
module Chap1CounterTester ();
reg Clk=0, Reset=0;
wire [3:0] Count;
initial begin
Reset = 0; #5 Reset = 1; #115 Reset = 0;
# 760 $stop;
end
always #26.5 Clk = ~ Clk;
Chap1Counter U1 (Clk, Reset, Count);
endmodule
Simulator
Testbench
Verilog Code
of a Counter
Circuit
Design to Simulate
The simulation
results in form
of a waveform
26
13
CSE 467
27
Simulation
Simulator
Validates the
functionality of the
counter circuit being
tested, Regardless of
clock frequency
28
14
Simulation
CSE 467
29
Assertion Verification
Design
Validation
Simulation
CSE 467
Assertion
Verification
Formal
Verification
30
15
Assertion Verification
Assertion Monitors:
Monitors: Used to continuously check for design properties
during simulation
Instead of having to inspect simulation results manually or by
developing sophisticated testbenches
Design Properties: Certain conditions have to be met for the design to
function correctly
Assertion Monitors developed to
to assert that the Design Properties are
not violated
Firing of an assertion verification: alerts
alerts the malfunctioning
malfunctioning of design
according to the designer
designers expectation
Open verification library (OVL): provides a set of assertion monitors for
monitoring common design properties
CSE 467
31
Formal Verification
Design
Validation
Simulation
CSE 467
Assertion
Verification
Formal
Verification
32
16
Formal Verification
CSE 467
33
Testbench in Verilog
Design Validation
Compilation
Compilation
AndSynthesis
Synthesis
and
Postsynthesis
Simulation
Timing
Analysis
Hardware
Generation
CSE 467
34
17
CSE 467
35
Input: Hardware
description
consisting of
various levels of
Verilog
Design Specification
Intermediate Format
module design (. . .);
assign . . .
always . . .
compi (. . .)
endmodule
Comp1 U1 (. . .) ;
Comp2 U2 (. . .) ;
...
Compn Un (. . .) ;
Analysis
process and a
graphical
representation for
each of the
compilation phase
outputs
Target Hardware
Specification
Generic
Hardware
Generation
Logic
Optimization
Binding
Synthesis
TP d= ; TS u= ...
Routing
and
Placement
Timing
Analysis
Operating
Condition
Chip
Manufacturing
or
Device
Programming
Output:
A detailed
hardware for
programming
an FPGA or
manufacturing
an ASIC
36
18
Design Specification
Intermediate Format
module design (. . .) ;
assign . . .
always . . .
compi (. . .)
endmodule
Comp1 U1 (. . .) ;
Comp2 U2 (. . .) ;
...
Compn Un (. . .) ;
Analysis
if () bus = w;
else . . .
CSE 467
37
Target Hardware
Specification
Generic
Hardware
Generation
Logic
Optimization
Binding
Synthesis
Has three different phases.
CSE 467
38
19
TP d= ; TS u= ...
Routing
and
Placement
Timing
Analysis
Chip
Manufacturing
or
Device
Programming
Operating
Condition
CSE 467
39
Generic Hardware
Generation
Logic
Optimization
Binding
Routing and
Placement
CSE 467
40
20
Analysis
Compilation
and Synthesis
Analysis
Generic Hardware
Generation
Logic
Optimization
Binding
Routing and
Placement
CSE 467
41
Analysis
CSE 467
42
21
Generic Hardware
Generation
Logic
Optimization
Binding
Routing and
Placement
CSE 467
43
CSE 467
44
22
Logic Optimization
Compilation
and Synthesis
Analysis
Generic Hardware
Generation
Logic
Optimization
Binding
Routing and
Placement
CSE 467
45
Logic Optimization
Logic Optimization:
Reducing expressions with constant input
Removing redundant logic expressions
Two-level minimization
Multilevel minimization that include logic sharing
Output:
Boolean expressions
Tabular logic representations
Primitive gate netlists
CSE 467
46
23
Binding
Compilation
and Synthesis
Analysis
Generic Hardware
Generation
Logic
Optimization
Binding
Routing and
Placement
CSE 467
47
Binding
Binding:
Decide exactly what logic elements and cells are needed for the
realization of the circuit using information from target hardware
Output is specific to the FPGA, ASIC, or custom IC being used
CSE 467
48
24
Generic Hardware
Generation
Logic
Optimization
Binding
Routing and
Placement
CSE 467
49
CSE 467
50
25
Design to Synthesize
An example of
a synthesis run:
The counter
circuit is being
synthesized
Synthesis Tool
51
Verilog Description
of the Design
Design to Synthesize
Specification
of the Target
Hardware
Target hardware specification
Synthesis Tool
52
26
Synthesis Tool
CSE 467
53
Postsynthesis Simulation
Digital Design
Flow
Design Entry
Testbench in Verilog
Design Validation
Compilation
and Synthesis
Postsynthesis
Postsynthesis
Simulation
Simulation
Timing
Analysis
Hardware
Generation
CSE 467
54
27
Post-synthesis Simulation
CSE 467
55
Timing Analysis
Digital Design
Flow
Design Entry
Testbench in Verilog
Design Validation
Compilation
and Synthesis
Postsynthesis
Simulation
Timing
Timing
Analysis
Analysis
Hardware
Generation
CSE 467
56
28
Timing Analysis
CSE 467
57
Hardware Generation
Digital Design
Flow
Design Entry
Testbench in Verilog
Design Validation
Compilation
and Synthesis
Postsynthesis
Simulation
Timing
Analysis
Hardware
Generation
CSE 467
58
29
Hardware Generation
CSE 467
59
Verilog HDL
Verilog
HDL
Verilog
Evolution
CSE 467
Verilog
Attributes
The Verilog
Language
60
30
Verilog HDL
CSE 467
61
Verilog Evolution
Verilog
HDL
Verilog
Verilog
Evolution
Evolution
CSE 467
Verilog
Attributes
The Verilog
Language
62
31
Verilog Evolution
CSE 467
63
Verilog Evolution
CSE 467
64
32
Verilog Attributes
Verilog
HDL
Verilog
Evolution
CSE 467
Verilog
Attributes
The Verilog
Language
65
Verilog Attributes
CSE 467
66
33
Verilog Attributes
Verilog Attributes
Switch Level
Gate Level
Pin-To-Pin Delay
Bussing
Specifications
Behavioral
Level
System Utilities
PLI
Verilog Digital System Design
CSE 467
67
Switch Level
Verilog Attributes
Switch
Switch Level
Level
Gate Level
Pin-To-Pin Delay
Bussing
Specifications
Behavioral
Level
System Utilities
PLI
CSE 467
68
34
Switch Level
Circuit delays may be modeled as propagation delay, rise and fall delay,
and line delays.
The charge storage feature for describing dynamic complimentary
metal oxide semicondutor (CMOS) and metal oxide semiconductor
(MOS) circuits.
CSE 467
69
Gate Level
Verilog Attributes
Switch Level
Gate
Gate Level
Level
Pin-To-Pin Delay
Bussing
Specifications
Behavioral
Level
System Utilities
PLI
CSE 467
70
35
Gate Level
CSE 467
71
Pin-To-Pin Delay
Verilog Attributes
Switch Level
Gate Level
Pin-To-Pin
Pin-To-Pin Delay
Delay
Bussing
Specifications
Behavioral
Level
System Utilities
PLI
CSE 467
72
36
Pin-To-Pin Delay
CSE 467
73
Bussing Specifications
Verilog Attributes
Switch Level
Gate Level
Pin-To-Pin Delay
Bussing
Specifications
Behavioral
Level
System Utilities
PLI
CSE 467
74
37
Bussing Specifications
Verilog provides:
Bus and register modeling utilities
For various bus structures, predefined wire and bus resolution
functions using the 4-value logic value system.
For register modeling, high-level clock representation and timingcontrol constructs can be used for representation of registers with
various clocking and resetting schemes.
CSE 467
75
Behavioral Level
Verilog Attributes
Switch Level
Gate Level
Pin-To-Pin Delay
Bussing
Specifications
Behavioral
Behavioral
Level
Level
System Utilities
PLI
CSE 467
76
38
Behavioral Level
CSE 467
77
System Utilities
Verilog Attributes
Switch Level
Gate Level
Pin-To-Pin Delay
Bussing
Specifications
Behavioral
Level
System Utilities
PLI
CSE 467
78
39
System Utilities
CSE 467
79
Gate Level
Pin-To-Pin Delay
Bussing
Specifications
Behavioral
Level
System Utilities
PLI
CSE 467
80
40
CSE 467
81
Verilog
Evolution
CSE 467
Verilog
Attributes
The Verilog
Verilog
The
Language
Language
82
41
The Verilog HDL satisfies all requirements for design and synthesis of
digital systems:
CSE 467
83
The Verilog HDL satisfies all requirements for design and synthesis of
digital systems (Continued):
CSE 467
84
42