Design Flow
Design Flow
Functional Simulation
Device Programming
FPGA CPLD
Timing Simulation
tpd=22.1ns fmax=47.1MHz
Design Specification
What are the main design considerations?
Design feasibility?
Performance power consumption cost
Design spec?
Written (Document)
Good starting point, but can be misinterpreted by design team
Implementation platform
FPGA/CPLD? ASIC? Which FPGA/CPLD vendor? Which device family?
Development time?
RTL Specification
Determine I/O signals
Standard interface, protocol, custom interface
Detailed Design
Choose the design entry method
Schematic
Intuitive & easy to debug Not portable Poor designer productivity (gates/time)
Use vendor-supplied IP libraries to reduce design time Create & manage user-created libraries (circuits)
Functional Simulation
Preparation for simulation
Generate simulation patterns
Waveform entry HDL testbench
Functional simulation
To verify the functionality of your design only
Simulation results
Waveform display Text output Self-checking testbench
Challenge
Sufficient & efficient test patterns
HDL Synthesis
Synthesis = Translation + Optimization
Translate HDL design files into gate-level netlist Optimize according to your design constraints
Area constraints Timing constraints Power constraints
assign z=a&b
a b z
Main challenges
Learn synthesizable coding style Use proper design partitioning for synthesis Specify reasonable design constraints Use HDL synthesis tools efficiently
a b
z
FPGA CPLD
Design Implementation
Implementation flow
Netlist merging, flattening, data base building Design rule checking Logic optimization Block mapping & placement Net routing Configuration bitstream generation (FPGA only) Scan flip-flop insertion (ASIC only) Design error or warnings Device utilization (FPGA) Die size (ASIC) Timing reports
01011...
Implementation results
Challenge
How to reach high performance & high utilization implementation?
FPGA CPLD
Always remember that you cannot prove a complex design has no bugs For complex designs, verification (simulation) and redesign is 80% of total design time!
Defect: A difference between intended design and actual hardware Error: A wrong output produced through a defect Fault: A defect in a higher abstraction level
Testing Basics
Example
Boundary scan
In boundary scan, all flip-flops enter a test mode where they are controllable and observable After functional verification, normal flipflops are replaced by scan flip-flops Only D flip-flops must be used Clocks must not be generated internally