Open File 2
Open File 2
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
Z. Navabi, 2006 5
Digital Design Flow
Timing Analysis
Synthesis Process
FPLD Design Flow 2 ns 1.6 ns
(Continued)
Verilog Digital System Design
Z. Navabi, 2006 7
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
Navabi, 2006 12
Verilog HDL
RT Level Designers,
Test Engineers
Simulators
Synthesis Tools
Machines
Primitive Assign
Instantiations Statements
Condition Procedural
Expression Blocks
Module
Instantiations
Verilog Digital System Design
Z. Navabi, 2006 17
Hardware Modules
Hardware
Modules
Modules
Primitive Assign
Instantiations Statements
Condition Procedural
Expression Blocks
Module
Instantiations
Verilog Digital System Design
Z. Navabi, 2006 18
Hardware Modules
module :
The Main
Keyword
Component
module of Verilog
module module-name
Variables, wires, and
List of ports; module parameters
Declarations are declared.
...
Functional specification of module
...
Keyword
endmodule endmodule
Module Specifications
Primitive
Primitive Assign
Instantiations Statements
Condition Procedural
Expression Blocks
Module
Instantiations
Verilog Digital System Design
Z. Navabi, 2006 21
Primitive Instantiations
Logic Gates
called
Primitives
a a_sel
s_bar w
s
b b_sel
A Multiplexer Using Basic Logic Gates
Primitive Instantiations
Primitive Assign
Instantiations Statements
Condition Procedural
Expression Blocks
Module
Instantiations
Verilog Digital System Design
Z. Navabi, 2006 24
Assign Statements
Continuously
drives w with the
right hand side
expression
Primitive Assign
Instantiations Statements
Condition
Condition Procedural
Expression Blocks
Module
Instantiations
Verilog Digital System Design
Z. Navabi, 2006 26
Condition Expression
Can be used when
the operation of a
unit is too complex
to be described by
Boolean expressions
Primitive Assign
Instantiations Statements
Condition Procedural
Expression Blocks
Module
Instantiations
Verilog Digital System Design
Z. Navabi, 2006 28
Procedural Blocks
always
statement Sensitivity list
Primitive Assign
Instantiations Statements
Condition Procedural
Expression Blocks
Module
Module
Instantiations
Verilog Digital System Design
Z. Navabi, 2006 30
Module Instantiations
a
ANDOR
i1
s i2 y w
i3
b i4
Data
Controllers
Components
Component
Description
Data
Data
Controllers
Components
Components
Multiplexer Flip-Flop
Counter Full-Adder
Shift-Register ALU
Interconnections
Verilog Digital System Design
Z. Navabi, 2006 35
Multiplexer
Data
Components
Multiplexer Flip-Flop
Counter Full-Adder
Shift-Register ALU
Interconnections
Verilog Digital System Design
Z. Navabi, 2006 36
Multiplexer
Defines a Time Unit of 1 ns
and Time Precision of 100 ps.
`timescale 1ns/100ps
Multiplexer Flip-Flop
Counter Full-Adder
Shift-Register ALU
Interconnections
Verilog Digital System Design
Z. Navabi, 2006 38
The Body of
always statement is
executed at the Flip-Flop Flip-Flop
negative edge of Synchronous
the clk signal reset input triggers on the
falling edge of
`timescale 1ns/100ps clk Input
Multiplexer Flip-Flop
Counter Full-Adder
Shift-Register ALU
Interconnections
Verilog Digital System Design
Z. Navabi, 2006 40
A 4-bit modulo-16
Counter
Counter 4-bit
Register
`timescale 1ns/100ps
module Counter4 (input reset, clk,
output [3:0] count);
reg [3:0] count; Constant
always @(negedge clk) begin Definition
if (reset) count <= #3 4'b00_00;
else count <= #5 count + 1;
end When count
endmodule reaches 1111,
the next count
Counter Verilog Code taken is 10000
Multiplexer Flip-Flop
Counter Full-Adder
Shift-Register ALU
Interconnections
Verilog Digital System Design
Z. Navabi, 2006 42
Full-Adder
All Changes
A combinational
Occur after 5 ns
circuit
`timescale 1ns/100ps
Multiplexer Flip-Flop
Counter Full-Adder
Shift-Register ALU
Interconnections
Verilog Digital System Design
Z. Navabi, 2006 44
An 8-bit
2 Mode inputs Shift-Register Universal
Shift Register
m[1:0] form a
`timescale
2-bit number 1ns/100ps
module ShiftRegister8
(input sl, sr, clk, input [7:0] ParIn,
Case Statement
input [1:0] m, output
With 4 reg [7:0] ParOut);
case-alternatives
and default Value
always @(negedge clk) begin
case (m)
m=0 : Does Nothing
0: ParOut <= ParOut;
1: ParOut <= {sl, ParOut [7:1]};
2: ParOut <= {ParOut [6:0], sr}; m=1,2: Shifts Right
3: ParOut <= ParIn; and Left
default: ParOut <= 8'bX;
endcase m=3 : Loads its Parallel
end input into the register
endmodule
module ShiftRegister8
(input sl, sr, clk, input [7:0] ParIn,
input [1:0] m, output reg [7:0] ParOut);
Shift Right:
The SL input is
always @(negedge clk) begin
concatenated to
case (m) the left of
0: ParOut <= ParOut; ParOut
1: ParOut <= {sl, ParOut [7:1]};
2: ParOut <= {ParOut [6:0], sr};
3: ParOut <= ParIn;
default: ParOut <= 8'bX; Shifting the
endcase ParOut to the left
end
endmodule
Multiplexer Flip-Flop
Counter Full-Adder
Shift-Register ALU
Interconnections
Verilog Digital System Design
Z. Navabi, 2006 47
ALU
`timescale 1ns/100ps
An 8-bit ALU
Verilog Digital System Design
Z. Navabi, 2006 48
ALU (Continued) The Declaration of
ALUout both as
`timescale 1ns/100ps output and reg:
Because of
module ALU8 (input [7:0] left, right, assigning it within
input [1:0] mode, a Procedural Block
output reg [7:0] ALUout);
always @(left, right, mode) begin
case (mode) Blocking
0: ALUout = left + right; Assignments
1: ALUout = left - right;
2: ALUout = left & right;
3: ALUout = left | right;
default: ALUout = 8'bX; default alternative
endcase puts all Xs on ALUOut
end if mode contains
endmodule anything but 1s and 0s
An 8-bit ALU
Verilog Digital System Design
Z. Navabi, 2006 49
Interconnections
Data
Components
Multiplexer Flip-Flop
Counter Full-Adder
Shift-Register ALU
Interconnections
Verilog Digital System Design
Z. Navabi, 2006 50
Interconnections
Inbus Aside Bside
8 8
select_source
8
Outbus
Partial Hardware Using MUX8 and ALU
u1 Verilog
and u2 : Code of The Partial Hardware Example
Instance Names
Component
Description
Data
Controllers
Controllers
Components
Decisions
Based on :Inputs ,
Outputs ,State
Go to Next State
Controller Outline
Controller:
Is wired into data part to control its flow of data.
Monitors its inputs and makes decisions as to when and what output
signals to assert.
Keeps the history of circuit data by switching to appropriate states.
Sequence Detector
Controllers
Sequence
Synchronizer
Detector
Controllers
Sequence
Synchronizer
Synthesizer
Detector
Clk
adata
synched
Synchronizing adata
`timescale 1ns/100ps
Controllers
Sequence
Sequence
Synthesizer
Detector
Detector
clk
State Machine Description
endmodule
s1 s1:
0
a=1 if (a)