03 Design Flow
-
Upload
sandeep-rasala -
Category
Documents
-
view
220 -
download
0
Transcript of 03 Design Flow
-
8/12/2019 03 Design Flow
1/42
-
8/12/2019 03 Design Flow
2/42
CSE 467 3Verilog Digital System Design
Digital System DesignDigital System Design
Automation with VerilogAutomation with Verilog!! As the size and complexity of digital systems increase, more computerAs the size and complexity of digital systems increase, more computer
aided design (CAD) tools are introduced into the hardware designaided design (CAD) tools are introduced into the hardware designprocess.process.
!! Early simulation and primitive hardware generation tools have givenEarly simulation and primitive hardware generation tools have givenway to sophisticated design entry, verification, high-level synthesis,way to sophisticated design entry, verification, high-level synthesis,formal verification, and automatic hardware generation and deviceformal verification, and automatic hardware generation and device
programming tools.programming tools.
!! Growth of design automation tools is largely due to hardwareGrowth of design automation tools is largely due to hardwaredescription languages (description languages (HDLsHDLs) and design methodologies that are) and design methodologies that arebased on these languages.based on these languages.
!! Based onBased on HDLsHDLs, new digital system CAD tools have been developed, new digital system CAD tools have been developedand are now widely used by hardware designers.and are now widely used by hardware designers.
!! One of the most widely usedOne of the most widely used HDLsHDLsis the Verilog HDL.is the Verilog HDL.
!! Because of its wide acceptance in digital design industry, Verilog hasBecause of its wide acceptance in digital design industry, Verilog hasbecome a must-know for design engineers and students in computer-become a must-know for design engineers and students in computer-hardware-related fields.hardware-related fields.
CSE 467 4Verilog Digital System Design
Digital Design FlowDigital Design Flow
!! FPGA Design FlowFPGA Design Flow
Compilation and Synthesis
Analysis Synthesis Routingandplacement
Y = a & d & ww = a & b | c
Post-synthesis Simulation
Timing Analysis
1.6ns2 ns
C++ Classes,Language Representation
Behavioral Simulation Assertion Verification Formal Verification
Violation Report;Time of Violation;
Monitor Coverage
Pass / Fail ReportProperty Coverage
Counter Examples
Design Entry in Verilog
always (posedgeclk )begin . . . end
if () bus = w;
else. . .
Comp1 U1(. . .);Comp2U2(. . .);
. . .CompnUn(. . .);
moduledesign (. . .);
assign . . . always . . .
comp i (. . .)
endmodule
Testbench in Verilog
moduletestbench ();
generatedata ;
process data;endmodule
D ev ic e P ro gr am mi ng A SI C N et li st Custom IC Layout
EDIFor other netlists1010...
-
8/12/2019 03 Design Flow
3/42
CSE 467 5Verilog Digital System Design
Digital Design FlowDigital Design Flow
!! FPGA Design FlowFPGA Design Flow
Behavioral S imulat ion Assert ion Verif icat ion Formal Verif icat ion
Violation Report;Time of Violation;
Monitor Coverage
Pass / Fail ReportProperty Coverage
Counter Examples
Design Entry in Verilog
always (posedge clk )begin . . . end
if () bus = w;
else . . .
Comp1 U1 (. . .) ;Comp2 U2 (. . .) ;
. . .CompnUn (. . .);
module design (. . .) ;
assign . . . always . . .
compi (. . .)
endmodule
Testbench in Verilog
module testbench ();
generate data ;
process data ;endmodule
Design EntryDesign Entry
PhasePhase
CSE 467 6Verilog Digital System Design
Digital Design FlowDigital Design Flow
!! Digital Design Flow begins with specification of the design at variousDigital Design Flow begins with specification of the design at variouslevels of abstraction.levels of abstraction.
!! Design entry phase:Design entry phase:Specification of design as a mixture of behavioralSpecification of design as a mixture of behavioral
VerilogVerilog code, instantiation ofcode, instantiation ofVerilogVerilog modules, and bus and wiremodules, and bus and wireassignmentsassignments
-
8/12/2019 03 Design Flow
4/42
CSE 467 7Verilog Digital System Design
Compilation and Synthesis
Analysis Synthesis Routing and placement
Y = a & d & ww = a & b | c
Timing Analysis
1.6 ns2 ns
C++ Classes,Language Representation
Behavioral Simulat ion Assertion Verif icat ion Formal Ver if icat ion
Violation Report;
Time of Violation;Monitor Coverage
Pass / Fail Report
Property CoverageCounter Examples
Digital Design FlowDigital Design Flow
!! FPGA Design FlowFPGA Design Flow
(Continued)(Continued)
PresynthesisPresynthesis
VerificationVerification
CSE 467 8Verilog Digital System Design
Digital Design FlowDigital Design Flow
!! Presynthesis verification:Presynthesis verification:Generating testbenches for verification of theGenerating testbenches for verification of thedesign and later for verifying the synthesis outputdesign and later for verifying the synthesis output
-
8/12/2019 03 Design Flow
5/42
CSE 467 9Verilog Digital System Design
Compilation and Synthesis
Analysis Synthesis Routing and placement
Y = a & d & ww = a & b | c
Timing Analysis
1.6 ns2 ns
C++ Classes,Language Representation
Behavioral Simulat ion Assertion Verif icat ion Formal Ver if icat ion
Violation Report;
Time of Violation;Monitor Coverage
Pass / Fail Report
Property CoverageCounter Examples
Digital Design FlowDigital Design Flow
!! FPGA Design FlowFPGA Design Flow
(Continued)(Continued)
Synthesis ProcessSynthesis Process
CSE 467 10Verilog Digital System Design
Digital Design FlowDigital Design Flow
!! Synthesis process:Synthesis process:Translating the design into actual hardware of aTranslating the design into actual hardware of atarget device (FPGA, ASIC or custom IC)target device (FPGA, ASIC or custom IC)
-
8/12/2019 03 Design Flow
6/42
CSE 467 11Verilog Digital System Design
Digital Design FlowDigital Design Flow
!! FPGA Design Flow (Continued)FPGA Design Flow (Continued)
Post-synthesis Simulation
Timing Analysis
1.6 ns2 ns
Testbench in Verilog
module testbench (); generate data ;
process data ;endmodule
Device Programming ASIC Netlist Custom IC Layout
EDIFor other netlists1010...
PostsynthesisPostsynthesis
VerificationVerification
CSE 467 12Verilog Digital System Design
Digital Design FlowDigital Design Flow
!! PostsynthesisPostsynthesissimulation:simulation:Testing the behavioral model of the designTesting the behavioral model of the designand its hardware model by usingand its hardware model by usingpresynthesispresynthesistest datatest data
-
8/12/2019 03 Design Flow
7/42
CSE 467 13Verilog Digital System Design
Digital Design FlowDigital Design Flow
!! FPGA Design Flow (Continued)FPGA Design Flow (Continued)
Post-synthesis Simulation
Timing Analysis
1.6 ns2 ns
Testbench in Verilog
module testbench (); generate data ;
process data ;endmodule
Device Programming ASIC Netlist Custom IC Layout
EDIFor other netlists1010...
CSE 467 14Verilog Digital System Design
Digital Design FlowDigital Design Flow
!! Digital Design Flow ends with generating netlist for an applicationDigital Design Flow ends with generating netlist for an applicationspecific integrated circuits (ASIC), layout for a custom IC, or a programspecific integrated circuits (ASIC), layout for a custom IC, or a programfor a programmable logic devices (PLD)for a programmable logic devices (PLD)
-
8/12/2019 03 Design Flow
8/42
CSE 467 15Verilog Digital System Design
Digital DesignDigital DesignFlowFlow
HardwareHardware
GenerationGeneration
Design EntryDesign Entry Testbench in VerilogTestbench in Verilog
Design ValidationDesign ValidationCompilationCompilation
and Synthesisand Synthesis
PostsynthesisPostsynthesis
SimulationSimulation
TimingTiming
AnalysisAnalysis
Digital Design FlowDigital Design Flow
CSE 467 16Verilog Digital System Design
Digital DesignDigital Design
FlowFlow
HardwareHardware
GenerationGeneration
Design EntryDesign Entry Testbench in VerilogTestbench in Verilog
Design ValidationDesign ValidationCompilationCompilation
and Synthesisand Synthesis
PostsynthesisPostsynthesis
SimulationSimulation
TimingTiming
AnalysisAnalysis
Design EntryDesign Entry
Design EntryDesign Entry
-
8/12/2019 03 Design Flow
9/42
CSE 467 17Verilog Digital System Design
Design EntryDesign Entry
!! The first step in the design of a digital systemThe first step in the design of a digital system
!! Describing the design in Verilog in a top-down hierarchical fashionDescribing the design in Verilog in a top-down hierarchical fashion
!! Register Transfer Level (RTL):Register Transfer Level (RTL):High-level Verilog designs usuallyHigh-level Verilog designs usuallydescribed at this leveldescribed at this level
!! Verilog constructs used in RT level design:Verilog constructs used in RT level design:
!! procedural statementsrocedural statementsfor high-level behavioral descriptionfor high-level behavioral description!! continuous assignmentsontinuous assignmentsfor representing logic blocks, bus assignments,for representing logic blocks, bus assignments,
and bus and input/output interconnect specificationsand bus and input/output interconnect specifications
!! instantiation statementsnstantiation statementsfor using lower-level components in an upper-for using lower-level components in an upper-level designlevel design
CSE 467 18Verilog Digital System Design
Digital DesignDigital Design
FlowFlow
HardwareHardware
GenerationGeneration
Design EntryDesign Entry Testbench in VerilogTestbench in Verilog
Design ValidationDesign ValidationCompilationCompilation
and Synthesisand Synthesis
PostsynthesisPostsynthesis
SimulationSimulation
TimingTiming
AnalysisAnalysis
Testbench in VerilogTestbench in Verilog
Testbench in VerilogTestbench in Verilog
-
8/12/2019 03 Design Flow
10/42
CSE 467 19Verilog Digital System Design
Testbench in VerilogTestbench in Verilog
!! Simulation and Test of a designed system functionality beforeSimulation and Test of a designed system functionality beforeHardware generationHardware generation
!! Detection of design errors and incompatibility of components usedDetection of design errors and incompatibility of components used
!! in the designin the design
!! By generation of a test data and observation of simulation resultsBy generation of a test data and observation of simulation results
!! Testbench:Testbench:A Verilog moduleA Verilog module
!! Use of high-level constructs of Verilog for:Use of high-level constructs of Verilog for:
!! Data GenerationData Generation
!! Response MonitoringResponse Monitoring
!! Handshaking with the designHandshaking with the design
!! Inside the Testbench: Instantiation of the design moduleInside the Testbench: Instantiation of the design module
!!
Forms a simulation model together with the design, used by aForms a simulation model together with the design, used by aVerilog simulation engineVerilog simulation engine
CSE 467 20Verilog Digital System Design
Digital DesignDigital Design
FlowFlow
HardwareHardware
GenerationGeneration
Design EntryDesign Entry Testbench in VerilogTestbench in Verilog
Design ValidationDesign ValidationCompilationCompilation
and Synthesisand Synthesis
PostsynthesisPostsynthesis
SimulationSimulation
TimingTiming
AnalysisAnalysis
Design ValidationDesign Validation
Design ValidationDesign Validation
-
8/12/2019 03 Design Flow
11/42
CSE 467 21Verilog Digital System Design
Design ValidationDesign Validation
!! An important task in any digital system designAn important task in any digital system design
!! The process to check the design for any design flawsThe process to check the design for any design flaws
!! A design flaw due to:A design flaw due to:
!! Ambiguous Problem SpecificationsAmbiguous Problem Specifications
!! Designer ErrorsDesigner Errors
!! Incorrect Use of Parts in the DesignIncorrect Use of Parts in the Design
!! Can be done by:Can be done by:
!! SimulationSimulation
!! Assertion VerificationAssertion Verification
!!
Formal VerificationFormal Verification
CSE 467 22Verilog Digital System Design
Design ValidationDesign Validation
DesignDesign
ValidationValidation
SimulationSimulation AssertionAssertionVerificationVerification
FormalFormalVerificationVerification
-
8/12/2019 03 Design Flow
12/42
CSE 467 23Verilog Digital System Design
SimulationSimulation
DesignDesign
ValidationValidation
SimulationSimulationAssertionAssertion
VerificationVerificationFormalFormal
VerificationVerificationSimulationSimulation
CSE 467 24Verilog Digital System Design
SimulationSimulation
!! Simulation for design validation, done before a design is synthesizedSimulation for design validation, done before a design is synthesized
!! Also Referred to as RT level, or Pre-synthesis SimulationAlso Referred to as RT level, or Pre-synthesis Simulation
!! Simulation at RTL level is accurate to the clock levelSimulation at RTL level is accurate to the clock level
!! The advantage: its speed compared with simulations at the gate orThe advantage: its speed compared with simulations at the gate or
transistor levelstransistor levels
!! The Required Test data: generated graphically using waveform editors,The Required Test data: generated graphically using waveform editors,
or through a testbenchor through a testbench
!! Outputs of simulators:Outputs of simulators:
!! Waveforms (for visual inspection)Waveforms (for visual inspection)
!! Text for large designs for machine processingText for large designs for machine processing
-
8/12/2019 03 Design Flow
13/42
CSE 467 25Verilog Digital System Design
SimulationSimulation
!! Using a Testbench or a Waveform Editor for SimulationUsing a Testbench or a Waveform Editor for Simulation
TwoTwo
alternativesalternatives
for definingfor defining
test inputtest input
data for adata for a
simulationsimulation
engineengine
Testbench
Text,
VCD...
Waveform
Other forms
Simulation Model
HierachicalDesign
Description
Simulator
Waveform
Simulator
...
Simulation Model
Hierachical
Design
Description
Text,
VCD...
Waveform
Other forms
...
Stimuli
InputsInputsOutputsOutputs
CSE 467 26Verilog Digital System Design
SimulationSimulation
!! Verilog Simulation with a TestbenchVerilog Simulation with a Testbench
TestbenchTestbench
for thefor the
CounterCounterCircuitCircuit
Verilog CodeVerilog Code
of a Counterof a Counter
CircuitCircuit
`timescale1 ns / 100 ps
module Chap1CounterTester ();regClk=0, Reset=0;
wire [3:0] Count;initial begin
Reset = 0; #5 Reset = 1; #115 Reset = 0;
# 760 $stop;end
always #26.5 Clk = ~ Cl k;Chap1Counter U1 (Clk, Reset, Count);
endmodule
module Chap1Counter (Clk, Reset, Count);inputClk, Reset;output [3:0] Count;reg [3:0] Count;
always @(posedge Clk) beginif(Reset) Count = 0;else Count = Count + 1;
endendmodule
SimulatorTestbench
Design to Simulate
The simulationThe simulation
results in formresults in form
of a waveformof a waveform
-
8/12/2019 03 Design Flow
14/42
CSE 467 27Verilog Digital System Design
SimulationSimulationThe testbench instantiatesThe testbench instantiatesthe design under test, and asthe design under test, and as
part of the code of thepart of the code of thetestbench it applies test datatestbench it applies test data
to the instantiated circuit.to the instantiated circuit.
!! Verilog Simulation with a Testbench (Continued)Verilog Simulation with a Testbench (Continued)
`timescale 1 ns / 100 ps
module Chap1CounterTester ();regClk=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
module Chap1Counter (Clk, Reset, Count);inputClk, Reset;
output [3:0] Count;reg [3:0] Count;
always @(posedge Clk) beginif(Reset) Count = 0;else Count = Count + 1;
endendmodule
CSE 467 28Verilog Digital System Design
Simulator
SimulationSimulation
Validates theValidates the
functionality of thefunctionality of the
counter circuit beingcounter circuit being
tested,tested, Regardless ofRegardless of
clock frequencyclock frequency
!! Verilog Simulation with a Testbench (Continued)Verilog Simulation with a Testbench (Continued)
-
8/12/2019 03 Design Flow
15/42
CSE 467 29Verilog Digital System Design
SimulationSimulation
!! Obviously, an actual hardware component behaves differently.Obviously, an actual hardware component behaves differently.
!! Based on the timing and delays of the parts used, there will be aBased on the timing and delays of the parts used, there will be anonzero delay between the active edge of the clock and the counternonzero delay between the active edge of the clock and the counteroutput.output.
!! Furthermore, if the clock frequency applied to an actual part is too fastFurthermore, if the clock frequency applied to an actual part is too fastfor propagation of values within the gates and transistors of a design,for propagation of values within the gates and transistors of a design,the output of the design becomes unpredictable.the output of the design becomes unpredictable.
!! The simulation shown here is not provided with the details of theThe simulation shown here is not provided with the details of thetiming of the hardware being simulated.timing of the hardware being simulated.
!! Therefore, potential timing problems of the hardware that are due toTherefore, potential timing problems of the hardware that are due togate delays cannot be detected.gate delays cannot be detected.
!! This is typical of aThis is typical of apresynthesispresynthesisor high-level behavioral simulation.or high-level behavioral simulation.
CSE 467 30Verilog Digital System Design
Assertion VerificationAssertion Verification
DesignDesign
ValidationValidation
SimulationSimulation AssertionAssertionVerificationVerification
FormalFormalVerificationVerification
AssertionAssertionVerificationVerification
-
8/12/2019 03 Design Flow
16/42
CSE 467 31Verilog Digital System Design
Assertion VerificationAssertion Verification
!! AAssertionssertionMonitorsMonitors::UsedUsedto continuously check for design propertiesto continuously check for design properties
during simulationduring simulation
!! Instead of having to inspect simulation results manually or byInstead of having to inspect simulation results manually or by
developing sophisticateddeveloping sophisticated testbenchestestbenches
!! DDesignesign Properties:Properties: CCertain conditions have to be metertain conditions have to be metfor thefor thedesigndesign toto
function correctlyfunction correctly
!! Assertion Monitors developed tAssertion Monitors developed to assert that theo assert that theDesignDesignPProperties areroperties are
notnotviolatedviolated
!! Firing of an assertion verification: aFiring of an assertion verification: alertslerts the malthe malfunctioningfunctioning of designof design
according toaccording tothe designerthe designers expectations expectation
!! Open verification library (OVL):Open verification library (OVL):provides a set of assertion monitors forprovides a set of assertion monitors for
monitoring common design propertiesmonitoring common design properties
CSE 467 32Verilog Digital System Design
Formal VerificationFormal Verification
DesignDesign
ValidationValidation
SimulationSimulation AssertionAssertionVerificationVerification
FormalFormalVerificationVerification
FormalFormalVerificationVerification
-
8/12/2019 03 Design Flow
17/42
CSE 467 33Verilog Digital System Design
Formal VerificationFormal Verification
!! Formal verification:Formal verification:The process of checking a design against certainThe process of checking a design against certain
propertiesproperties
!! Examining the design to make sure that the described properties by theExamining the design to make sure that the described properties by the
designer to reflect correct behavior of the design hold under alldesigner to reflect correct behavior of the design hold under all
conditionsconditions
!! PPropertyropertyssCCounterounterEExamplesxamples::InInputputconditionsconditionsmakingmaking aapropertypropertytoto
failfail
!! Property coverage indicates how muchProperty coverage indicates how muchof the complete design isof the complete design is
exercised by theexercised by thepropertyproperty
CSE 467 34Verilog Digital System Design
Digital DesignDigital Design
FlowFlow
HardwareHardware
GenerationGeneration
Design EntryDesign Entry Testbench in VerilogTestbench in Verilog
Design ValidationDesign ValidationCompilationCompilation
and Synthesisand Synthesis
PostsynthesisPostsynthesis
SimulationSimulation
TimingTiming
AnalysisAnalysis
Compilation and SynthesisCompilation and Synthesis
CompilationCompilation
And SynthesisAnd Synthesis
-
8/12/2019 03 Design Flow
18/42
CSE 467 35Verilog Digital System Design
Compilation and SynthesisCompilation and Synthesis
!! Synthesis:Synthesis:The process of automatic hardware generation from a designThe process of automatic hardware generation from a design
description that has an unambiguous hardware correspondence.description that has an unambiguous hardware correspondence.
!! A Verilog description for synthesis:A Verilog description for synthesis:
!! Cannot include signal and gate levelCannot include signal and gate leveltiming specifications, filetiming specifications, file
handling, and other language constructs thathandling, and other language constructs thatdo not translate todo not translate to
sequential or combinational logic equationssequential or combinational logic equations
!! Must follow certain styles of coding for combinational andMust follow certain styles of coding for combinational and
sequential circuitssequential circuits
!! Compilation process has three phases:Compilation process has three phases:
!! Analysis PhaseAnalysis Phase
!! Synthesis PhaseSynthesis Phase
!! Routing and Placement PhaseRouting and Placement Phase
CSE 467 36Verilog Digital System Design
Compilation and SynthesisCompilation and Synthesis
!! Compilation and Synthesis ProcessCompilation and Synthesis Process
Design Specification
Comp1 U1 (. . .);Comp2 U2 (. . .);
. . .Compn Un (. . .);
Analysis
GenericHardware
Generation
LogicOptimization
Binding
Routing
andPlacement
Timing
Analysis
Target HardwareSpecification
Pd S u
Intermediate Format
Synthesis
T = ; T = ...
Operating
Condition
ChipManufacturing
orDevice
Programming
always (posedge clk )
begin . . . end
if () bus = w;
else . . .
module design ( . . .);
assign . . . always . . .
comp i(. . .)endmodule
Input: HardwareInput: Hardware
descriptiondescriptionconsisting ofconsisting of
various levels ofvarious levels of
VerilogVerilog
Output:Output:
A detailedA detailedhardware forhardware for
programmingprogramming
an FPGA oran FPGA or
manufacturingmanufacturing
ananASICASIC
The compilationThe compilationprocess and aprocess and a
graphicalgraphical
representation forrepresentation for
each of theeach of the
compilation phasecompilation phase
outputsoutputs
-
8/12/2019 03 Design Flow
19/42
CSE 467 37Verilog Digital System Design
Compilation and SynthesisCompilation and Synthesis
!! Compilation and Synthesis Process (Continued)Compilation and Synthesis Process (Continued)
Design Specification
Comp1 U1 (. . .) ;Comp2 U2 (. . .) ;
. . .CompnUn (. . .) ;
Analysis
Intermediate Format
always (posedge clk )
begin . . . end
if () bus = w;
else . . .
module design (. . .) ;
assign . . . always . . .
compi (. . .)endmodule
Analysis Phase: TranslatesAnalysis Phase: Translates
various parts of the design tovarious parts of the design to
an intermediatean intermediateformat.format.
CSE 467 38Verilog Digital System Design
GenericHardware
Generation
Logic
OptimizationBinding
Target Hardware
Specification
Synthesis
Compilation and SynthesisCompilation and Synthesis
!! Compilation and Synthesis Process (Continued)Compilation and Synthesis Process (Continued)
Synthesis Phase: Links allSynthesis Phase: Links allparts together and generatesparts together and generates
the correspondingthe correspondinglogic.logic.
Has three different phases.Has three different phases.
-
8/12/2019 03 Design Flow
20/42
CSE 467 39Verilog Digital System Design
Compilation and SynthesisCompilation and Synthesis
!! Compilation and Synthesis Process (Continued)Compilation and Synthesis Process (Continued)
Routing and Placement Phase:Routing and Placement Phase:Places and routes componentsPlaces and routes components
of the target hardware,of the target hardware,andandgenerates timing details.generates timing details.
Routing
andPlacement
TimingAnalysis
Pd SuT = ; T = ...
OperatingCondition
Chip
Manufacturing
orDevice
Programming
CSE 467 40Verilog Digital System Design
Compilation and SynthesisCompilation and SynthesisCompilationCompilation
and Synthesisand Synthesis
Routing andRouting and
PlacementPlacement
AnalysisAnalysisGeneric HardwareGeneric Hardware
GenerationGeneration
LogicLogic
OptimizationOptimization
BindingBinding
-
8/12/2019 03 Design Flow
21/42
CSE 467 41Verilog Digital System Design
AnalysisAnalysis
CompilationCompilationand Synthesisand Synthesis
Routing andRouting and
PlacementPlacement
AnalysisAnalysisGeneric HardwareGeneric Hardware
GenerationGeneration
LogicLogic
OptimizationOptimizationBindingBinding
AnalysisAnalysis
CSE 467 42Verilog Digital System Design
AnalysisAnalysis
!! Before the complete design is turned into hardwareBefore the complete design is turned into hardware
!! Analyzing the design and generating a uniform format for allAnalyzing the design and generating a uniform format for allparts ofparts ofitit
!! Also checks the syntax and semantics of the input Verilog codeAlso checks the syntax and semantics of the input Verilog code
-
8/12/2019 03 Design Flow
22/42
CSE 467 43Verilog Digital System Design
Generic Hardware GenerationGeneric Hardware Generation
CompilationCompilationand Synthesisand Synthesis
Routing andRouting and
PlacementPlacement
AnalysisAnalysisGeneric HardwareGeneric Hardware
GenerationGeneration
LogicLogic
OptimizationOptimizationBindingBinding
Generic HardwareGeneric Hardware
GenerationGeneration
CSE 467 44Verilog Digital System Design
Generic Hardware GenerationGeneric Hardware Generation
!! Generic Hardware Generation:Generic Hardware Generation:Turning the design into a genericTurning the design into a generic
hardware format such as a set of Boolean expressions or a netlist ofhardware format such as a set of Boolean expressions or a netlist of
basic gatesbasic gates
-
8/12/2019 03 Design Flow
23/42
CSE 467 45Verilog Digital System Design
Logic OptimizationLogic Optimization
CompilationCompilationand Synthesisand Synthesis
Routing andRouting and
PlacementPlacement
AnalysisAnalysisGeneric HardwareGeneric Hardware
GenerationGeneration
LogicLogic
OptimizationOptimizationBindingBinding
LogicLogic
OptimizationOptimization
CSE 467 46Verilog Digital System Design
Logic OptimizationLogic Optimization
!! Logic Optimization:Logic Optimization:
!! Reducing expressions with constant inputReducing expressions with constant input
!! Removing redundant logic expressionsRemoving redundant logic expressions
!! Two-level minimizationTwo-level minimization
!! Multilevel minimization that include logic sharingMultilevel minimization that include logic sharing
!! Output:Output:
!! Boolean expressionsBoolean expressions
!! Tabular logic representationsTabular logic representations
!! Primitive gate netlistsPrimitive gate netlists
-
8/12/2019 03 Design Flow
24/42
CSE 467 47Verilog Digital System Design
BindingBinding
CompilationCompilationand Synthesisand Synthesis
Routing andRouting and
PlacementPlacement
AnalysisAnalysisGeneric HardwareGeneric Hardware
GenerationGeneration
LogicLogic
OptimizationOptimizationBindingBindingBindingBinding
CSE 467 48Verilog Digital System Design
BindingBinding
!! Binding:Binding:
!! Decide exactly what logic elementsDecide exactly what logic elementsand cells are needed for theand cells are needed for the
realization of the circuit using information from target hardwarerealization of the circuit using information from target hardware
!! OOutput is specific to theutput is specific to theFPGA, ASIC, or custom IC being usedFPGA, ASIC, or custom IC being used
-
8/12/2019 03 Design Flow
25/42
CSE 467 49Verilog Digital System Design
Routing and PlacementRouting and Placement
CompilationCompilationand Synthesisand Synthesis
Routing andRouting and
PlacementPlacement
AnalysisAnalysisGeneric HardwareGeneric Hardware
GenerationGeneration
LogicLogic
OptimizationOptimizationBindingBinding
Routing andRouting and
PlacementPlacement
CSE 467 50Verilog Digital System Design
Routing and PlacementRouting and Placement
!! DDecides on the placement of cells of the targetecides on the placement of cells of the target hardwarehardware
!! DeterminesDetermineswiring ofwiring of inputs and outputs of the cells through wiringinputs and outputs of the cells through wiring
channels and switching areas of the targetchannels and switching areas of the target hardwarehardware
!! The output is specific to the hardware being used and can be used forThe output is specific to the hardware being used and can be used for
programming an FPGA or manufacturing an ASIC.programming an FPGA or manufacturing an ASIC.
-
8/12/2019 03 Design Flow
26/42
CSE 467 51Verilog Digital System Design
Routing and PlacementRouting and Placement
!! An Example Synthesis RunAn Example Synthesis Run
moduleChap1Counter (Clk, Reset, Count);
inputClk, Reset;
output [3:0] Count;reg [3:0] Count;
always @(posedge Clk) begin
if(Reset) Count = 0;
else Count = Count + 1;
end
endmodule
Synthesis Tool
Target hardware specification
List of primitive components
- Flip-flops
- Logic elements
Timing specifications
- Pin-to-pin timing
Design to Synthesize
An example ofAn example of
a synthesis run:a synthesis run:The counterThe counter
circuit is beingcircuit is being
synthesizedsynthesized
CSE 467 52Verilog Digital System Design
Routing and PlacementRouting and Placement
!! An Example Synthesis Run (Continued)An Example Synthesis Run (Continued)
moduleChap1Counter (Clk, Reset, Count);
inputC lk, Reset;
output [3:0] Count;
reg [3:0] Count;
always @(posedge Clk) begin
if(Reset) Count = 0;
else Count = Count + 1;
end
endmodule
Synthesis Tool
Target hardware specification
List of primitive components- Flip-flops
- Logic elements Timing specifications
- Pin-to-pin timing
Design to Synthesize
VerilogVerilog DescriptionDescription
of the Designof the Design
SpecificationSpecification
of the Targetof the Target
HardwareHardware
-
8/12/2019 03 Design Flow
27/42
CSE 467 53Verilog Digital System Design
Synthesis Tool
Routing and PlacementRouting and Placement
!! An Example Synthesis Run (Continued)An Example Synthesis Run (Continued)
The output ofThe output of
synthesis toolsynthesis tool
A list of gates and flip-A list of gates and flip-
flops available in theflops available in thetarget hardware andtarget hardware and
their interconnectionstheir interconnections
CSE 467 54Verilog Digital System Design
Digital DesignDigital Design
FlowFlow
HardwareHardware
GenerationGeneration
Design EntryDesign Entry Testbench in VerilogTestbench in Verilog
Design ValidationDesign ValidationCompilationCompilation
and Synthesisand Synthesis
PostsynthesisPostsynthesis
SimulationSimulation
TimingTiming
AnalysisAnalysisPostsynthesisPostsynthesisSimulationSimulation
PostsynthesisPostsynthesisSimulationSimulation
-
8/12/2019 03 Design Flow
28/42
-
8/12/2019 03 Design Flow
29/42
CSE 467 57Verilog Digital System Design
Timing AnalysisTiming Analysis
!! AApart of the compilation process, or in some tools after the compilationpart of the compilation process, or in some tools after the compilation
processprocess
!! Timing Analysis Phase generates:Timing Analysis Phase generates:
!! WorstWorst-case delays-case delays
!! ClockingClockingspeedspeed
!! DelaysDelaysfrom one gate to anotherfrom one gate to another
!! RequiredRequiredsetup and holdsetup and hold timestimes
!! Results of timing analysis appear inResults of timing analysis appear inTablesTablesand/orand/or GraphsGraphs
!! The results is used by designersThe results is used by designers to decide on speed of their circuits.to decide on speed of their circuits.
CSE 467 58Verilog Digital System Design
Digital DesignDigital Design
FlowFlow
HardwareHardware
GenerationGeneration
Design EntryDesign Entry Testbench in VerilogTestbench in Verilog
Design ValidationDesign ValidationCompilationCompilation
and Synthesisand Synthesis
PostsynthesisPostsynthesis
SimulationSimulation
TimingTiming
AnalysisAnalysis
Hardware GenerationHardware Generation
HardwareHardware
GenerationGeneration
-
8/12/2019 03 Design Flow
30/42
CSE 467 59Verilog Digital System Design
Hardware GenerationHardware Generation
!! LastLaststage in an automated Verilog-based designstage in an automated Verilog-based design
!! Generates aGenerates a netlistnetlist for ASIC manufacturing, a program for programmingfor ASIC manufacturing, a program for programming
FPGAsFPGAs, or layout of custom IC cells, or layout of custom IC cells
CSE 467 60Verilog Digital System Design
Verilog HDLVerilog HDL
VerilogVerilog
HDLHDL
VerilogVerilogEvolutionEvolution
VerilogVerilogAttributesAttributes
The VerilogThe VerilogLanguageLanguage
-
8/12/2019 03 Design Flow
31/42
CSE 467 61Verilog Digital System Design
Verilog HDLVerilog HDL
!! A language that can be understood by:A language that can be understood by:
!! System DesignersSystem Designers
!! RT Level Designers,RT Level Designers,
!! Test EngineersTest Engineers
!! SimulatorsSimulators
!! Synthesis ToolsSynthesis Tools
!! MachinesMachines
!! Has become an IEEE standardHas become an IEEE standard
CSE 467 62Verilog Digital System Design
Verilog EvolutionVerilog Evolution
VerilogVerilog
HDLHDL
VerilogVerilogEvolutionEvolution
VerilogVerilogAttributesAttributes
The VerilogThe VerilogLanguageLanguage
VerilogVerilogEvolutionEvolution
-
8/12/2019 03 Design Flow
32/42
CSE 467 63Verilog Digital System Design
Verilog EvolutionVerilog Evolution
!! Designed in earlyDesigned in early 19841984byby Gateway Design AutomationGateway Design Automation
!! Originally used as a simulation and verification toolOriginally used as a simulation and verification tool
!! After the initial acceptance of this language by electronic industry, aAfter the initial acceptance of this language by electronic industry, afault simulator, a timing analyzer, and later in 1987, a synthesis tool wasfault simulator, a timing analyzer, and later in 1987, a synthesis tool wasdeveloped based on this language.developed based on this language.
!! Since acquiring Gateway Design Automation and its Verilog-basedSince acquiring Gateway Design Automation and its Verilog-basedtools by Cadence Design System,tools by Cadence Design System, CadenceCadencehas been a strong forcehas been a strong forcebehind popularizing the Verilog hardware description language.behind popularizing the Verilog hardware description language.
!! In 1987 VHDL became an IEEE standard hardware descriptionIn 1987 VHDL became an IEEE standard hardware descriptionlanguage.language.
!! VHDL was adapted by the U.S. government for related projects andVHDL was adapted by the U.S. government for related projects andcontracts.contracts.
!! In an effort for popularizing Verilog, in 1990,In an effort for popularizing Verilog, in 1990, OVI (Open VerilogOVI (Open VerilogInternational)International)was formed and Verilog was placed in public domain.was formed and Verilog was placed in public domain.
!! In 1993, efforts for standardization of this language started. VerilogIn 1993, efforts for standardization of this language started. Verilogbecame the IEEE standard,became the IEEE standard, IEEE Std. 1364-1995IEEE Std. 1364-1995, in 1995., in 1995.
CSE 467 64Verilog Digital System Design
Verilog EvolutionVerilog Evolution
!! Verilog-2001:Verilog-2001:A new version of Verilog approved by IEEE in 2001A new version of Verilog approved by IEEE in 2001
!! Additional Features of Verilog-2001:Additional Features of Verilog-2001:
!! New features for external file access for read and writeNew features for external file access for read and write
!! Library managementLibrary management
!! Constructs for design ConfigurationConstructs for design Configuration
!! Higher abstraction level constructsHigher abstraction level constructs
!! Constructs for specification of iterative structuresConstructs for specification of iterative structures
-
8/12/2019 03 Design Flow
33/42
CSE 467 65Verilog Digital System Design
Verilog AttributesVerilog Attributes
VerilogVerilog
HDLHDL
VerilogVerilog
EvolutionEvolution
VerilogVerilog
AttributesAttributes
The VerilogThe Verilog
LanguageLanguage
VerilogVerilog
AttributesAttributes
CSE 467 66Verilog Digital System Design
Verilog AttributesVerilog Attributes
!! Verilog is a hardware description language for describing hardwareVerilog is a hardware description language for describing hardware
from transistor level to behavioral.from transistor level to behavioral.
!! Supports timing constructs for switch level timing simulation and at theSupports timing constructs for switch level timing simulation and at the
same time, has features for describing hardware at the abstractsame time, has features for describing hardware at the abstract
algorithmic level.algorithmic level.
!! A Verilog description may consist of a mix of modules at variousA Verilog description may consist of a mix of modules at various
abstraction levels with different degrees of detail.abstraction levels with different degrees of detail.
-
8/12/2019 03 Design Flow
34/42
CSE 467 67Verilog Digital System Design
Verilog AttributesVerilog Attributes
PLIPLI
Switch LevelSwitch Level Gate LevelGate Level
Pin-To-Pin DelayPin-To-Pin DelayBussingBussing
SpecificationsSpecifications
BehavioralBehavioral
LevelLevelSystem UtilitiesSystem Utilities
Verilog AttributesVerilog Attributes
CSE 467 68Verilog Digital System Design
Verilog AttributesVerilog Attributes
PLIPLI
Switch LevelSwitch Level Gate LevelGate Level
Pin-To-Pin DelayPin-To-Pin DelayBussingBussing
SpecificationsSpecifications
BehavioralBehavioral
LevelLevel System UtilitiesSystem Utilities
Switch LevelSwitch Level
Switch LevelSwitch Level
-
8/12/2019 03 Design Flow
35/42
CSE 467 69Verilog Digital System Design
Switch LevelSwitch Level
!! Features of the language for switch level modeling and simulation:Features of the language for switch level modeling and simulation:
!! Primitive unidirectional and bidirectional switches with parametersPrimitive unidirectional and bidirectional switches with parameters
for delay and charge storagefor delay and charge storage
!! Circuit delays may be modeled as propagation delay, rise and fall delay,Circuit delays may be modeled as propagation delay, rise and fall delay,
and line delays.and line delays.
!! The charge storage feature for describing dynamic complimentaryThe charge storage feature for describing dynamic complimentary
metal oxidemetal oxide semicondutorsemicondutor(CMOS) and metal oxide semiconductor(CMOS) and metal oxide semiconductor
(MOS) circuits.(MOS) circuits.
CSE 467 70Verilog Digital System Design
Verilog AttributesVerilog Attributes
PLIPLI
Switch LevelSwitch Level Gate LevelGate Level
Pin-To-Pin DelayPin-To-Pin DelayBussingBussing
SpecificationsSpecifications
BehavioralBehavioral
LevelLevel System UtilitiesSystem Utilities
Gate LevelGate Level
Gate LevelGate Level
-
8/12/2019 03 Design Flow
36/42
CSE 467 71Verilog Digital System Design
Gate LevelGate Level
!! Gate level primitives with predefined parameters provide a convenientGate level primitives with predefined parameters provide a convenient
platform for:platform for:
!! netlist representationnetlist representation
!! gate level simulation.gate level simulation.
!! For more detailed and special purpose gate simulations:For more detailed and special purpose gate simulations:
!! Gate components defined at the behavioral level.Gate components defined at the behavioral level.
!! Verilog provides utilities for defining primitives with specialVerilog provides utilities for defining primitives with special
functionalities:functionalities:
!! A simple 4-value logic system used for signal valuesA simple 4-value logic system used for signal values
!!
16 levels of strength in addition to the four values for more accurate16 levels of strength in addition to the four values for more accuratelogic modelinglogic modeling
CSE 467 72Verilog Digital System Design
Verilog AttributesVerilog Attributes
PLIPLI
Switch LevelSwitch Level Gate LevelGate Level
Pin-To-Pin DelayPin-To-Pin DelayBussingBussing
SpecificationsSpecifications
BehavioralBehavioral
LevelLevel System UtilitiesSystem Utilities
Pin-To-Pin DelayPin-To-Pin Delay
Pin-To-Pin DelayPin-To-Pin Delay
-
8/12/2019 03 Design Flow
37/42
CSE 467 73Verilog Digital System Design
Pin-To-Pin DelayPin-To-Pin Delay
!! Verilog provides a utility for timing specification of components at theVerilog provides a utility for timing specification of components at the
input/output level:input/output level:
!! Can be used for back annotation of timing information in originalCan be used for back annotation of timing information in original
predesignedpredesigneddescriptionsdescriptions
!! Enables modelers toEnables modelers to finetunefinetunetiming behavior of their models basedtiming behavior of their models based
on physical implementationson physical implementations
CSE 467 74Verilog Digital System Design
Verilog AttributesVerilog Attributes
PLIPLI
Switch LevelSwitch Level Gate LevelGate Level
Pin-To-Pin DelayPin-To-Pin DelayBussingBussing
SpecificationsSpecifications
BehavioralBehavioral
LevelLevel System UtilitiesSystem Utilities
Bussing SpecificationsBussing Specifications
BussingBussing
SpecificationsSpecifications
-
8/12/2019 03 Design Flow
38/42
CSE 467 75Verilog Digital System Design
Bussing SpecificationsBussing Specifications
!! Verilog provides:Verilog provides:
!! Bus and register modeling utilitiesBus and register modeling utilities
!! For various bus structures, predefined wire and bus resolutionFor various bus structures, predefined wire and bus resolution
functions using the 4-value logic value system.functions using the 4-value logic value system.
!! Combination of bus logic and resolution-functions enable modeling ofCombination of bus logic and resolution-functions enable modeling of
most physical bus types.most physical bus types.
!! For register modeling, high-level clock representation and timing-For register modeling, high-level clock representation and timing-
control constructs can be used for representation of registers withcontrol constructs can be used for representation of registers with
various clocking and resetting schemes.various clocking and resetting schemes.
CSE 467 76Verilog Digital System Design
VerilogVerilogAttributesAttributes
PLIPLI
Switch LevelSwitch Level Gate LevelGate Level
Pin-To-Pin DelayPin-To-Pin DelayBussingBussing
SpecificationsSpecifications
BehavioralBehavioral
LevelLevel System UtilitiesSystem Utilities
Behavioral LevelBehavioral Level
BehavioralBehavioralLevelLevel
-
8/12/2019 03 Design Flow
39/42
CSE 467 77Verilog Digital System Design
Behavioral LevelBehavioral Level
!! Procedural blocks inProcedural blocks inVerilogVerilog enable algorithmic representations ofenable algorithmic representations of
hardware structures.hardware structures.
!! Constructs similar to those in software programming languages areConstructs similar to those in software programming languages are
provided for describing hardware at this level.provided for describing hardware at this level.
CSE 467 78Verilog Digital System Design
VerilogVerilogAttributesAttributes
PLIPLI
Switch LevelSwitch Level Gate LevelGate Level
Pin-To-Pin DelayPin-To-Pin DelayBussingBussing
SpecificationsSpecifications
BehavioralBehavioral
LevelLevel System UtilitiesSystem Utilities
System UtilitiesSystem Utilities
System UtilitiesSystem Utilities
-
8/12/2019 03 Design Flow
40/42
CSE 467 79Verilog Digital System Design
System UtilitiesSystem Utilities
!! System tasks inSystem tasks inVerilogVerilogprovide designers with tools for :provide designers with tools for :
!! TestbenchTestbench generationgeneration
!! File access for read and writeFile access for read and write
!! Data handlingData handling
!! Data generationData generation
!! Special hardware modeling.Special hardware modeling.
!! System utilities for reading memory and programmable logic arraySystem utilities for reading memory and programmable logic array
(PLA) images provide convenient ways of modeling these components.(PLA) images provide convenient ways of modeling these components.
!! VerilogVerilog display and I/O tasks can be used to handle all inputs anddisplay and I/O tasks can be used to handle all inputs and
outputs for data application and simulation.outputs for data application and simulation.!! VerilogVerilog allows random access to files for read and write operations.allows random access to files for read and write operations.
CSE 467 80Verilog Digital System Design
VerilogVerilogAttributesAttributes
PLIPLI
Switch LevelSwitch Level Gate LevelGate Level
Pin-To-Pin DelayPin-To-Pin DelayBussingBussing
SpecificationsSpecifications
BehavioralBehavioral
LevelLevel System UtilitiesSystem Utilities
Program Language InterfaceProgram Language Interface
PLIPLI
-
8/12/2019 03 Design Flow
41/42
CSE 467 81Verilog Digital System Design
Program Language InterfaceProgram Language Interface
!! The Programming Language Interface (PLI) forThe Programming Language Interface (PLI) forVerilogVerilog is ais a
mechanism to interfacemechanism to interfaceVerilogVerilogprograms with programs written in theprograms with programs written in the
C language. It also provides mechanisms to access internal databasesC language. It also provides mechanisms to access internal databases
of the simulator from C programs.of the simulator from C programs.
!! PLI is used for implementing system calls which would be hard to doPLI is used for implementing system calls which would be hard to do
otherwise (or impossible) usingotherwise (or impossible) usingVerilogVerilog syntax. Or, in other words, yousyntax. Or, in other words, you
can take advantage of both paradigms - the parallel and hardwarecan take advantage of both paradigms - the parallel and hardware
related features ofrelated features ofVerilogVerilog and the sequential flow of C - using the PLI.and the sequential flow of C - using the PLI.
!! Some of the most common applications of PLI are delay backSome of the most common applications of PLI are delay back
annotation, writing delay calculators and developing user interface.annotation, writing delay calculators and developing user interface.
CSE 467 82Verilog Digital System Design
TheTheVerilogVerilog LanguageLanguage
VerilogVerilog
HDLHDL
VerilogVerilogEvolutionEvolution
VerilogVerilogAttributesAttributes
The VerilogThe VerilogLanguageLanguage
The VerilogThe VerilogLanguageLanguage
-
8/12/2019 03 Design Flow
42/42
CSE 467 83Verilog Digital System Design
TheTheVerilogVerilog LanguageLanguage
!! The Verilog HDL satisfies all requirements for design and synthesis ofThe Verilog HDL satisfies all requirements for design and synthesis ofdigital systems:digital systems:
!! Supports hierarchical description of hardware from system to gateSupports hierarchical description of hardware from system to gateor even switch level.or even switch level.
!! Has strong support at all levels for timing specification andHas strong support at all levels for timing specification andviolation detection.violation detection.
!! Timing and concurrency required for hardware modeling areTiming and concurrency required for hardware modeling arespecially emphasized in it.specially emphasized in it.
!! A hardware component is described by theA hardware component is described by the module declarationodule declarationlanguage construct in it.language construct in it.
CSE 467 84Verilog Digital System Design
TheTheVerilogVerilog LanguageLanguage!! The Verilog HDL satisfies all requirements for design and synthesis ofThe Verilog HDL satisfies all requirements for design and synthesis of
digital systems (Continued):digital systems (Continued):
!! Description of a module specifies a componentDescription of a module specifies a components input and outputs input and outputlist as well as internal component busses and registers within alist as well as internal component busses and registers within amodulemodule, concurrent assignments, component instantiations, and, concurrent assignments, component instantiations, and
procedural blocks can be used to describe a hardware component.procedural blocks can be used to describe a hardware component.
!! Several modules can hierarchically be instantiated to form otherSeveral modules can hierarchically be instantiated to form otherhardware structures.hardware structures.
!! Many Verilog tools and environments exist that provide simulation,Many Verilog tools and environments exist that provide simulation,fault simulation, formal verification, and synthesis.fault simulation, formal verification, and synthesis.
!!
Simulation environments provide graphical front-end programs andSimulation environments provide graphical front-end programs andwaveform editing and display tools.waveform editing and display tools.
!! Synthesis tools are based on a subset of Verilog.Synthesis tools are based on a subset of Verilog.