introduction to fpga

34
Introduction to FPGA Presented By Muhammad Naseem Asstt. Prof., CED, SSUET Email:[email protected] http://www.ssuet.edu.pk/~mnaseem

Upload: muhammad-hamza-khan

Post on 26-Nov-2014

182 views

Category:

Documents


15 download

TRANSCRIPT

Page 1: Introduction to FPGA

Introduction to FPGA

Presented ByMuhammad Naseem

Asstt. Prof., CED, SSUETEmail:[email protected]

http://www.ssuet.edu.pk/~mnaseem

Page 2: Introduction to FPGA

World of Integrated CircuitsIntegrated Circuits

Full-CustomASICs

Semi-CustomASICs

UserProgrammable

PLD FPGA

PAL PLA PML LUT(Look-Up Table)

MUX Gates

Page 3: Introduction to FPGA

Two implementation approaches

ASIC Designs must be sent

for expensive and time consuming fabrication in semiconductor foundry

Designed all the way from behavioral description to physical layout

FPGA Bought off the shelf

and reconfigured by designers themselves

No physical layout design; design ends with a bitstream used to configure a device

Page 4: Introduction to FPGA

What is an FPGA?

Block R

AM

s

Block R

AM

s

ConfigurableLogicBlocks

I/OBlocks

BlockRAMs

Page 5: Introduction to FPGA

Which Way to Go?

Off-the-shelf

Low development cost

Short time to market

Reconfigurability

High performance

ASICs FPGAs

Low power

Low cost inhigh volumes

Page 6: Introduction to FPGA

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

Page 7: Introduction to FPGA

Major FPGA Vendors

SRAM-based FPGAs Xilinx, Inc. Altera Corp. Atmel Lattice Semiconductor

Flash & antifuse FPGAs Actel Corp. Quick Logic Corp.

Share over 60% of the market

Page 8: Introduction to FPGA

Xilinx

Primary products: FPGAs and the associated CAD software

Programmable Logic Devices ISE (Integrated Software Environment)

Alliance and Foundation Series Design Software

Page 9: Introduction to FPGA

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

Page 10: Introduction to FPGA

FPGA Nomenclature

Page 11: Introduction to FPGA

Spartan-3 Block RAM Amounts

Page 12: Introduction to FPGA

Block RAM Port Aspect Ratios

Page 13: Introduction to FPGA

Block RAM Port Aspect Ratios

0

16,383

1

4,095

40

8,191

20

2047

8+10

1023

16+20

16k x 1

8k x 2 4k x 4

2k x (8+1)

1024 x (16+2)

Page 14: Introduction to FPGA

Dual Port Block RAM

Page 15: Introduction to FPGA

Spartan-3 FPGA

Page 16: Introduction to FPGA

Device Part Marking

Page 17: Introduction to FPGA

Virtex-II 1.5V Architecture

Configurable

Logic

Block

Block R

AM

s

I/OBlock

Multipliers 18 x 18

Block R

AM

s

Multipliers 18 x 18

Block R

AM

s

Multipliers 18 x 18

Block R

AM

s

Multipliers 18 x 18

Page 18: Introduction to FPGA

Virtex-II 1.5V

Device CLB Array

Slices Maximum I/O

BlockRAM

(18kb)

Multiplier Blocks

Distributed 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

Page 19: Introduction to FPGA

Virtex-II Block SelectRAM

Width

Depth Address

Data Parity

1 16,386

[13:0] [0] N/A

2 8,192 [12:0] [1:0] N/A

4 4,096 [11:0] [3:0] N/A

9 2,048 [10:0] [7:0] [0]

18 1,024 [9:0] [15:0] [1:0]

36 512 [8:0] [31:0] [3:0]

Virtex-II BRAM is 18 kbits Additional “parity” bits available

in selected configurations

Page 20: Introduction to FPGA

Programmable ASIC Logic Cells All Programmable ASICs or FPGAs contain a basic

logic cell replicated in a rectangular array across the chip

Basic internal structure PLB

Programmable Logic Blocks PI

Programmable Interconnect Types of basic logic cells

multiplexer based look-up table based programmable array logic

Page 21: Introduction to FPGA

Actel ACT

The basic logic cells in the Actel ACT family of FPGAs are called Logic Modules

The Actel ACT 1 Family uses just one type of Logic Module

Actel ACT 2 and ACT 3 FPGA families use two different types of Logic Modules

Page 22: Introduction to FPGA

ACT 1 Logic Module Architecture

The functional behavior of ACT 1 logic module is described by the following diagram

Page 23: Introduction to FPGA

Multiplexers

Since the Structure dictates us to implement logic functions as 2:1 Multiplexers therefore we take a brief look about Multiplexers

Topics Synthesis of Logic Functions using Multiplexers Multiplexer Synthesis using Shannon’s Expansion

Page 24: Introduction to FPGA

A 2:1 Multiplexer

Page 25: Introduction to FPGA

A 4:1 Multiplexer

Page 26: Introduction to FPGA

Using 2-to-1 multiplexers to build a 4-to-1 multiplexer

Page 27: Introduction to FPGA

Synthesis of a Logic Function using Multiplexers

Page 28: Introduction to FPGA

3-input Majority Function

Page 29: Introduction to FPGA

Multiplexer Synthesis using Shannon’s Expansion

Multiplexers may be used for synthesis (connection) of more complex circuit inputs.

So overall circuits is realized using both logic gates and multiplexers

Page 30: Introduction to FPGA

Shannon’s Expansion Theorem

Any Boolean function f(w1,w2,…,wn) can be written in the form

This expression can be done in terms of any of the n variables

Page 31: Introduction to FPGA

Example

Example: Expand F with respect to A

F = A' · B + A · B · C' + A' · B' · C = A' · (B + B' · C) + A · (B · C') Cofactor of F wrt A = B · C‘, cofactor F wrt A’ = B + B' · C

F with respect to BF =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

Page 32: Introduction to FPGA

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 CF1 = C + D = C + D·(C + C’) = C + C’·D = C’ ·D + C·1F2 = 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

Page 33: Introduction to FPGA

Exercise

Implement a 3-input NAND Gate using ACT1 Logic Module?

Page 34: Introduction to FPGA

FAQ?