Introduction To FPGA
Introduction To FPGA
Presented By
Muhammad Naseem
Asstt. Prof., CED, SSUET
Email:[email protected]
http://www.ssuet.edu.pk/~mnaseem
World of Integrated Circuits
Integrated Circuits
PLD FPGA
I/O
Block RAMs
Block RAMs
Blocks
Block
RAMs
Which Way to Go?
ASICs FPGAs
Off-the-shelf
High performance
Low development cost
Low power
Short time to market
Low cost in
high volumes Reconfigurability
Other FPGA Advantages
Manufacturing cycle for ASIC is very costly,
lengthy and engages lots of manpower
Mistakes not detected at design time have large
impact on development time and cost
FPGAs are perfect for rapid prototyping of digital
circuits
Easy upgrades like in case of software
Unique applications
reconfigurable computing
Major FPGA Vendors
SRAM-based FPGAs
Xilinx, Inc. Share over 60% of
Altera Corp. the market
Atmel
Lattice Semiconductor
Programmable
Logic Devices ISE (Integrated Software Environment)
Alliance and Foundation
Series Design Software
Xilinx FPGA Families
Old families
XC3000, XC4000, XC5200
Old 0.5µm, 0.35µm and 0.25µm technology. Not recommended for modern
designs.
High-performance families
Virtex (0.22µm)
Virtex-E, Virtex-EM
Virtex-II, Virtex-II PRO
Virtex-4 (0.09µm)
Virtex-5, Virtex-6, Virtex-7
Low Cost Family
Spartan/XL – derived from XC4000
Spartan-II – derived from Virtex
Spartan-IIE – derived from Virtex-E
Spartan-3
FPGA Nomenclature
Spartan-3 Block RAM Amounts
Block RAM Port Aspect Ratios
Block RAM Port Aspect Ratios
1 2
0 4
0
0
8k x 2 4k x 4
4,095
Block
Block
Logic
I/O
Multipliers 18 x 18
Virtex-II 1.5V Architecture
Block RAMs
Multipliers 18 x 18
Block RAMs
Multipliers 18 x 18
Block RAMs
Multipliers 18 x 18
Block RAMs
Virtex-II 1.5V
Device CLB Array Slices Maximum BlockRAM Multiplier Distributed
I/O (18kb) Blocks RAM bits
XC2V40 8x8 256 88 4 4 8,192
XC2V80 16x8 512 120 8 8 16,384
XC2V250 24x16 1,536 200 24 24 49,152
XC2V500 32x24 3,072 264 32 32 98,304
XC2V1000 40x32 5,120 432 40 40 163,840
XC2V1500 48x40 7,680 528 48 48 245,760
XC2V2000 56x48 10,752 624 56 56 344,064
XC2V3000 64x56 14,336 720 96 96 458,752
XC2V4000 80x72 23,040 912 120 120 737,280
XC2V6000 96x88 33,792 1,104 144 144 1,081,344
XC2V8000 112x104 46,592 1,108 168 168 1,490,944
Virtex-II Block SelectRAM
Virtex-II BRAM is 18 kbits
Additional “parity” bits available
in selected configurations
F with respect to B
F =B' · (A' · C) + B · (A' + A · C')
We can continue to expand a function until we reach the
canonical form; a unique representation that uses only
minterms
minterm is a product term that contains all the variables of F
Another Example
F = (A · B) + (B' · C) + D
= (A · B) + (B' · C) + [D ·(B + B’)]
= B’·(C+D) + B·(A+D) = B’·F1 + B F2
Suppose we expand F2 = F B wrt A, and F1 = F B' wrt C
F1 = C + D = C + D·(C + C’) = C + C’·D = C’ ·D + C·1
F2 = A + D = A + D·(A + A’) = A + A’·D = A’ D+ A·1
Implementation
A0 = D, A1 = 1, SA = C (F1)
B0 = D, B1 = 1, SB = A (F2)
S0 = 0, S1 = B
Exercise
Implement a 3-input NAND Gate using ACT1 Logic Module?
FAQ?