final fpga
TRANSCRIPT
-
8/15/2019 Final FPGA
1/45
FPGA(Field Programmable Gate
Array)
Presenter
Abu Shohel Ahmed
Md. Kamrul Abedin TarafderDebashis roy
-
8/15/2019 Final FPGA
2/45
HistoryProgrammable Read Only Memory (PROM)
address line as input
data line as output
Problem:
dont require all the logic combination in input.
Programmable Logic Array (PLA)- Programmable AND plane followed by
programmable or wired OR plane.- Sum of product form- Two level programming adds delay (problem)
-
8/15/2019 Final FPGA
3/45
Next -PAL ( Programmable array logic)
- Programmable AND plane and fixed OR
plane.- All these PLA and PAL are Simple
programmable logic devices.
- Logic plane structure grows rapidly withnumber of inputs( problem)
-
8/15/2019 Final FPGA
4/45
NextTo mitigate the problem
Complex programmable logic devices
(CPLD)-programmably interconnect multiple
SPLDs.
- Extending to higher density difficult(problem)
- Less flexibility (problem)
-
8/15/2019 Final FPGA
5/45
Comparison
-
8/15/2019 Final FPGA
6/45
What is FPGA?
A field programmable gate array
(FPGA) is a semiconductor device
containing programmable logiccomponents and programmable
interconnects and programmable I/O
blocks.
-
8/15/2019 Final FPGA
7/45
FPGA
-
8/15/2019 Final FPGA
8/45
Logic BlocksPurpose: implement combinational and
sequential logic functions.
Logic blocks consists of
- Transistor pairs Basic small gates such as two-input NANDs or
exclusive-OR s.
Multiplexers Look up tables( LUT) Wide fanin AND-OR structure.
-
8/15/2019 Final FPGA
9/45
Logic Block ArchitectureGranularity:
The number of boolean function a logic block can
implement, the number of gates, transistors,total normalized area, number of inputs and
outputs.
According to granularity Two types of Blocks
d. Fine Grain Logic Blocks
e. Coarse Grain Logic Blocks
-
8/15/2019 Final FPGA
10/45
Fine Grain The Cross Point
FPGA
1. Transistors are
interconnected.
2. Logic block is
implemented
using transistor
pair tiles.
-
8/15/2019 Final FPGA
11/45
Fine GrainAdvantage:
1. Blocks are fully utilized.
Disadvantage:
Require large numbers of wire segments
and programmable switches. So it is
costly in delay and area size.
-
8/15/2019 Final FPGA
12/45
Coarse Grain Logic BlocksMany types exists according to
implementations
-Multiplexer Based and Look-up-TableBased are most common
The Xilinx Logic Block:
A SRAM function as a LUT.
Address line of SRAM as input
Output of SRAM gives the logic output
-
8/15/2019 Final FPGA
13/45
Xilinx Logic BlockAdvantage: High
functionality
any function of kinputs
Dis Adv: unacceptably
large
-
8/15/2019 Final FPGA
14/45
Switch Box Whenever a vertical and
a horizontal channelintersect there is aswitch box.
In this architecture,when a wire enters aswitch box, there arethree programmable
switches that allow it toconnect to three otherwires in adjacentchannel segments.
-
8/15/2019 Final FPGA
15/45
Programming technologies
Used in switchesb. SRAM programming
technology
Use Static RAM cells tocontrol pass gates or
multiplexers.1= closed switch
connection
0= open
For mux, SRAMdetermines the muxinput selectionprocess.
-
8/15/2019 Final FPGA
16/45
-
8/15/2019 Final FPGA
17/45
Programming Tech Antifuse
2 terminal device with an un programmed
state present very high resistance.By applying high voltage create a low
resistance link.
Adv
5. Small size
6. Low series resistance.
-
8/15/2019 Final FPGA
18/45
Programming Tech
Floating gateprogramming Tech
Same as electrically
erasable process in
EPROMSwitch is disable by
injecting charge on the
gate 2 using high
voltage between gate1
and drain.
The charge is removed by
UV light
-
8/15/2019 Final FPGA
19/45
summary
-
8/15/2019 Final FPGA
20/45
Effects of Granularity on FPGA
Density and Performance
Tradeoff
Granularity increase -> Blocks less
More Functional Blocks-> more area
Area is normally measured by total number
of bits needed to implement the design.So look the example
-
8/15/2019 Final FPGA
21/45
Example
-
8/15/2019 Final FPGA
22/45
Experimental Results
A 4-input 1-output lookup table yields the
minimum total area
Best k is determined by ratio of memorybit area to the fixed overhead area.
-
8/15/2019 Final FPGA
23/45
Routing Architectures
The wayprogrammableswitches andwiring segmentsare positioned for
interconnections.
Core Elements:
c. Wire segment
d. Track
e. Routing Channel
f. Connection Blockg. Switch Block
-
8/15/2019 Final FPGA
24/45
Why better ?
-FPGA programmed using electricallyprogrammable switches
-Routing architectures are complex.-Logic is implemented using multiple levels
of lower fanin gates.
-Shorter time to market
-Ability to re-program in the field to fix bugs
-Lower non-recurring engineering costs
-
8/15/2019 Final FPGA
25/45
FPGA Disadvantage
FPGAs are generally slower than their
application-specific integrated circuit
(ASIC) Can't handle as complex a design, and
draw more power.
-
8/15/2019 Final FPGA
26/45
FPGA Design and Programming
To define the behavior of the FPGA the user provides ahardware description language (HDL) or a schematicdesign.
Then, using an electronic design automation tool, atechnology-mapped net list is generated.
The netlist can then be fitted to the actual FPGA architectureusing a process called place-and-route.
The user will validate the map, place and route results via
timing analysis, simulation, and other verificationmethodologies.
Once the design and validation process is complete, thebinary file generated used to configure the FPGA.
-
8/15/2019 Final FPGA
27/45
Application
1. Reconfigurable computing.
2. Applications of FPGAs include DSP,
software-defined radio.3. The inherent parallelism of the logic
resources on the FPGA allows for
considerable compute throughput.
-
8/15/2019 Final FPGA
28/45
FPGA Optimization
DAG map: Graph based FPGA mapping for delay optimization DAG-Map reduces both the network depth and the number of
lookup-tables.
Problem Formulation: A Boolean network can be represented as a directed acyclic
graph (DAG) where each node represents a logic gate andthere is a directed edge (i,j) if the output of gate iis an input ofgatej.
A primary input (PI) node has no incoming edge and a primary
output (PO) node has no outgoing edge. We use input(v) to denote the set of nodes which supply
inputs to gate
-
8/15/2019 Final FPGA
29/45
-
8/15/2019 Final FPGA
30/45
rs ep: rans or m ngArbitr ary Netw orks into T wo-Input Ne twor ks algorithm decompose-multi-input-gate (DMIG)
let V= input(v) = {u1 , u2 , ..., um};
while |V|> 2 dolet uiand ujbe the two nodes ofV with smallest levels;
introduce a new nodex;input(x) = {ui, uj};
level(x) = max(level(ui), level(uj)) + 1;
V= (V- {ui, uj}) {x}
end-while;
Connect the only two nodes left in Vto vas its inputs;Return the binary tree T(v) rooted at v;
end-algorithm.
-
8/15/2019 Final FPGA
31/45
Transformin g Ar bitr aryNe twor ks in to T wo-Inp utNe twor ks
-
8/15/2019 Final FPGA
32/45
2nd S tep: T echno logy Mappingfor Dela y Min imiz ation
Our algorithm consists of two steps.
- We first label the network to
determine the level of each node in thefinal mapping solution.
- We then generate the logically
equivalent network of K-LUTs.
-
8/15/2019 Final FPGA
33/45
Continue
The first step assigns a label h (v) to eachnode vof the two-input network, with h (v)equal to the level of the K-LUT containing vin
the final mapping solution. Clearly, we want h (v) to be as small as
possible in order to achieve delayminimization.
We label the nodes in a topological orderstarting from the PI nodes.
The label of each PI node is zero.
-
8/15/2019 Final FPGA
34/45
Continue..
If node vis not a PI node, letp be themaximum label of the nodes in input(v).
We use Np(v) to denote the set ofpredecessors ofvwith labelp.Then,
ifinput(Np(v) {v}) K,
we assign h (v) =p;
otherwise, we assign h (v) =p + 1.
-
8/15/2019 Final FPGA
35/45
Continue
The second step generates K-LUTs in the mappingsolution.
Let L represent the set of outputs which are to beimplemented using K-LUTs.
Initially, L contains all the PO nodes. We process thenodes in L one by one.
For each node vin L, we remove vfrom L andgenerate a K-LUT v to implement the function ofgate vsuch thatinput(v) = input(Nh(v) (v)).
-
8/15/2019 Final FPGA
36/45
Continue
Then, we update the set L to be
L input(v). The second step ends when L consists of
only PI nodes in the original network.
Clearly, we obtain a network of K-LUTs that
is logically equivalent to the original network.
-
8/15/2019 Final FPGA
37/45
DAG-Map Algorithm
-
8/15/2019 Final FPGA
38/45
Applying DAG-Map Algorithm
-
8/15/2019 Final FPGA
39/45
Mapping by DAG-Map (3 levels)
-
8/15/2019 Final FPGA
40/45
-
8/15/2019 Final FPGA
41/45
Gate Decomposition
If node vis a simple gate of multipleinputs in the mapping solution, for anytwo of its inputs uiand uj, ifuiand ujaresingle fanout nodes, we can decomposevinto two nodes Vijand vsuch that vis
of the same type as vand vijis of the
same type as vin non-negated form, andinput(vij) = {ui, uj} and input(v) = input(v) U {vij} - {ui, uj}
-
8/15/2019 Final FPGA
42/45
Example of Gate decomposition
-
8/15/2019 Final FPGA
43/45
Predecessor Packing
For each node v, we examine all of its input
nodes.
If | input(v) U input(ui) | Kfor some input
node ui, and uihas only a single fanout, then
vand uiare merged into a single K-LUT. In
this case we also say that node uiand vare
mergeable, and call vthe base of the merge.This operation reduces the number of K-LUTs
by one.
-
8/15/2019 Final FPGA
44/45
Example of Predecessor
Packing
-
8/15/2019 Final FPGA
45/45
.
THANKS