Professional Documents
Culture Documents
Chapter 1
Digital System Design
Automation with Verilog
Prepared by:
Homa Alemzadeh
Verilog Digital System Design
January 2006 Copyright Z. Navabi, 2006 1
Digital System Design
Automation with Verilog
1.1 Digital Design Flow
1.1.1 Design entry
1.1.2 Testbench in Verilog
1.1.3 Design validation
1.1.4 Compilation and synthesis
1.1.5 Postsynthesis simulation
1.1.6 Timing analysis
1.1.7 Hardware generation
1.2 Verilog HDL
1.2.1 Verilog evolution
1.2.2 Verilog attributes
1.2.3 The verilog language
1.3 Summary
Timing Analysis
2 ns 1.6 ns
Post-synthesis Simulation
EDIF
Timing Analysis
Presynthesis
Verification
FPLD Design Flow 2 ns 1.6 ns
(Continued)
Verilog Digital System Design
January 2006 Copyright Z. Navabi, 2006 7
Digital Design Flow
Timing Analysis
Synthesis Process
FPLD Design Flow 2 ns 1.6 ns
(Continued)
Verilog Digital System Design
January 2006 Copyright Z. Navabi, 2006 9
Digital Design Flow
Post-synthesis Simulation
Postsynthesis
Verification
EDIF
1010... or other netlists
Post-synthesis Simulation
EDIF
1010... or other netlists
Compilation
Design Validation
and Synthesis
Postsynthesis Timing
Simulation Analysis
Hardware
Generation
Verilog Digital System Design
January 2006 Copyright Z. Navabi, 2006 15
Design Entry
Digital Design
Flow
Design Entry
Entry Testbench in Verilog
Compilation
Design Validation
and Synthesis
Postsynthesis Timing
Simulation Analysis
Hardware
Generation
Verilog Digital System Design
January 2006 Copyright Z. Navabi, 2006 16
Design Entry
Compilation
Design Validation
and Synthesis
Postsynthesis Timing
Simulation Analysis
Hardware
Generation
Verilog Digital System Design
January 2006 Copyright Z. Navabi, 2006 18
Testbench in Verilog
Simulation and Test of a designed system functionality before
Hardware generation
Detection of design errors and incompatibility of components used
in the design
By generation of a test data and observation of simulation results
Testbench: A Verilog module
Use of high-level constructs of Verilog for:
Data Generation
Response Monitoring
Handshaking with the design
Inside the Testbench: Instantiation of the design module
Forms a simulation model together with the design, used by a
Verilog simulation engine
Compilation
Design Validation
Design Validation
and Synthesis
Postsynthesis Timing
Simulation Analysis
Hardware
Generation
Verilog Digital System Design
January 2006 Copyright Z. Navabi, 2006 20
Design Validation
Design
Validation
Assertion Formal
Simulation
Verification Verification
Design
Validation
Assertion Formal
Simulation
Verification Verification
Hierachical
Design
Description Simulator Text,
VCD...
Testbench ...
Two Other forms
alternatives Waveform
for defining Simulation Model
test input
data for a Hierachical
Design Simulator
simulation Description
Text,
VCD...
engine
...
Other forms
Waveform
Stimuli
Verilog Code
Testbench of a Counter
Simulator
Circuit
Design to Simulate
The simulation
results in form
of a waveform
`timescale 1 ns / 100 ps
module Chap1CounterTester (); module Chap1Counter (Clk, Reset, Count);
reg Clk=0, Reset=0; input Clk, Reset;
wire [3:0] Count; output [3:0] Count;
initial begin reg [3:0] Count;
Reset = 0; #5 Reset = 1; #115 Reset = 0; always @(posedge Clk) begin
#760 $stop; if (Reset) Count = 0;
end else Count = Count + 1;
always #26.5 Clk = ~ Clk; end
Chap1Counter U1 (Clk, Reset, Count); endmodule
endmodule
Design
Validation
Assertion Formal
Simulation
Verification Verification
Design
Validation
Assertion Formal
Simulation
Verification Verification
Compilation
Compilation
Design Validation
And Synthesis
and Synthesis
Postsynthesis Timing
Simulation Analysis
Hardware
Generation
Verilog Digital System Design
January 2006 Copyright Z. Navabi, 2006 34
Compilation and Synthesis
Synthesis: The process of automatic hardware generation from a
design description that has an unambiguous hardware correspondence.
A Verilog description for synthesis:
Cannot include signal and gate level timing specifications, file
handling, and other language constructs that do not translate to
sequential or combinational logic equations
Must follow certain styles of coding for combinational and
sequential circuits
Compilation process has three phases:
Analysis Phase
Synthesis Phase
Generic
Logic
Hardware Binding
Optimization
Generation
Synthesis
Target Hardware
Specification
Generic
Logic
Hardware Binding
Optimization
Generation
Synthesis
Has three different phases.
Compilation and Synthesis Process (Continued)
Chip
Operating
Routing Condition Manufacturing
Timing
and or
Analysis
Placement Device
Programming
Generic Hardware
Analysis
Generation
Logic
Binding
Optimization
Routing and
Placement
Verilog Digital System Design
January 2006 Copyright Z. Navabi, 2006 40
Analysis
Compilation
and Synthesis
Generic Hardware
Analysis
Generation
Logic
Binding
Optimization
Routing and
Placement
Verilog Digital System Design
January 2006 Copyright Z. Navabi, 2006 41
Analysis
Generic Hardware
Analysis
Generation
Logic
Binding
Optimization
Routing and
Placement
Verilog Digital System Design
January 2006 Copyright Z. Navabi, 2006 43
Generic Hardware Generation
Generic Hardware
Analysis
Generation
Logic
Binding
Optimization
Routing and
Placement
Verilog Digital System Design
January 2006 Copyright Z. Navabi, 2006 45
Logic Optimization
Logic Optimization:
Reducing expressions with constant input
Two-level minimization
Output:
Boolean expressions
Generic Hardware
Analysis
Generation
Logic
Binding
Optimization
Routing and
Placement
Verilog Digital System Design
January 2006 Copyright Z. Navabi, 2006 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 FPLD, ASIC, or custom IC being used
Generic Hardware
Analysis
Generation
Logic
Binding
Optimization
Routing and
Placement
Verilog Digital System Design
January 2006 Copyright Z. Navabi, 2006 49
Routing and Placement
Compilation
Design Validation
and Synthesis
Postsynthesis Timing
Simulation Analysis
Hardware
Generation
Verilog Digital System Design
January 2006 Copyright Z. Navabi, 2006 54
Post-synthesis Simulation
After the Synthesis Phase a complete netlist of target hardware
components and their timings is generated.
The generated netlist includes:
The details of gates used for the implementation of the design
Wiring delays and load effects on gates used in the postsynthesis
design
The netlist output is made available in various netlist formats including
Verilog
A Postsynthesis simulation checks:
Timing issues
Determination of a proper clock frequency
Determination of race, and hazard considerations
The behavior of a design as intended by the designer and its behavior
after postsynthesis simulation may be different due to delays of wires
and gates.
Compilation
Design Validation
and Synthesis
Postsynthesis Timing
Timing
Simulation Analysis
Analysis
Hardware
Generation
Verilog Digital System Design
January 2006 Copyright Z. Navabi, 2006 56
Timing Analysis
Clocking speed
Compilation
Design Validation
and Synthesis
Postsynthesis Timing
Simulation Analysis
Hardware
Generation
Verilog Digital System Design
January 2006 Copyright Z. Navabi, 2006 58
Hardware Generation
Verilog
HDL
RT Level Designers,
Test Engineers
Simulators
Synthesis Tools
Machines
Verilog
HDL
Verilog
HDL
Bussing
Pin-To-Pin Delay
Specifications
Behavioral
System Utilities
Level
PLI
Verilog Digital System Design
January 2006 Copyright Z. Navabi, 2006 67
Switch Level
Verilog Attributes
Switch
Switch Level
Level Gate Level
Bussing
Pin-To-Pin Delay
Specifications
Behavioral
System Utilities
Level
PLI
Verilog Digital System Design
January 2006 Copyright Z. Navabi, 2006 68
Switch Level
Features of the language for switch level modeling and simulation:
Primitive unidirectional and bidirectional switches with parameters
for delay and charge storage
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.
Bussing
Pin-To-Pin Delay
Specifications
Behavioral
System Utilities
Level
PLI
Verilog Digital System Design
January 2006 Copyright Z. Navabi, 2006 70
Gate Level
Gate level primitives with predefined parameters provide a convenient
platform for:
netlist representation
Bussing
Pin-To-Pin Delay
Pin-To-Pin
Specifications
Behavioral
System Utilities
Level
PLI
Verilog Digital System Design
January 2006 Copyright Z. Navabi, 2006 72
Pin-To-Pin Delay
Bussing
Pin-To-Pin Delay
Specifications
Behavioral
System Utilities
Level
PLI
Verilog Digital System Design
January 2006 Copyright Z. Navabi, 2006 74
Bussing Specifications
Verilog provides:
Bus and register modeling utilities
Bussing
Pin-To-Pin Delay
Specifications
Behavioral
System Utilities
Level
PLI
Verilog Digital System Design
January 2006 Copyright Z. Navabi, 2006 76
Behavioral Level
Bussing
Pin-To-Pin Delay
Specifications
Behavioral
System Utilities
Level
PLI
Verilog Digital System Design
January 2006 Copyright Z. Navabi, 2006 78
System Utilities
System tasks in Verilog provide designers with tools for :
Testbench generation
Data handling
Data generation
Bussing
Pin-To-Pin Delay
Specifications
Behavioral
System Utilities
Level
PLI
Verilog Digital System Design
January 2006 Copyright Z. Navabi, 2006 80
The Verilog Language
Verilog
HDL