Fpga Design Flow
Fpga Design Flow
Design Entry
There are different techniques for design entry. Schematic based,
Hardware Description Language and combination of both etc. .
Selection of a method depends on the design and designer. If the
designer wants to deal more with Hardware, then Schematic entry is
the better choice. When the design is complex or the designer thinks
the design in an algorithmic way then HDL is the better choice.
Language based entry is faster but lag in performance and density.
HDLs represent a level of abstraction that can isolate the designers
from the details of the hardware implementation. Schematic based
entry gives designers much more visibility into the hardware. It is
the better choice for those who are hardware oriented. Another method
but rarely used is state-
machines. It is the better choice for the designers who think the
design as a series of states. But the tools for state machine entry
are limited. In this documentation we are going to deal with the HDL
based design entry.
Implementation
This process consists a sequence of three steps
1. Translate
2. Map
3. Place and Route
Map process divides the whole circuit with logical elements into sub
blocks such that they can be fit into the FPGA logic blocks. That
means map process fits the logic defined by the NGD file into the
targeted FPGA elements (Combinational Logic Blocks (CLB), Input
Output Blocks (IOB)) and generates an NCD (Native Circuit
Description) file which physically represents the design mapped to
the components of FPGA. MAP program is used for this purpose.
Place and Route PAR program is used for this process. The place and
route process places the sub blocks from the map process into logic
blocks according to the constraints and connects the logic blocks.
Ex. if a sub block is placed in a logic block which is very near to
IO pin, then it may save the time but it may effect some other
constraint. So trade off between all the constraints is taken account
by the place and route process The PAR tool takes the mapped NCD file
as input and produces a completely routed NCD file as output. Output
NCD file consists the routing information.
Device Programming
Now the design must be loaded on the FPGA. But the design must be
converted to a format so that the FPGA can accept it. BITGEN program
deals with the conversion. The routed NCD file is then given to the
BITGEN program to generate a bit stream (a .BIT file) which can be
used to configure the target FPGA device. This can be done using a
cable. Selection of cable depends on the design.
Design Verification
Verification can be done at different stages of the process steps.
Static Timing Analysis This can be done after MAP or PAR processes
Post MAP timing report lists signal path delays of the design derived
from the design logic. Post Place and Route timing report
incorporates timing delay information to provide a comprehensive
timing summary of the design.