full custom design of an fpga

53
Jongsok Choi M.A.Sc Candidate, University of Toronto

Upload: slone

Post on 17-Jan-2016

50 views

Category:

Documents


0 download

DESCRIPTION

Full custom design of aN fpga. Jongsok Choi M.A.Sc Candidate, University of Toronto. Overview. TSMC 0.35 um technology Cadence tools Less than 2mm X 2mm die area Design time = 1 month Tile based approach Each tile contains a Logic Block, - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Full custom design of  aN fpga

Jongsok Choi M.A.Sc Candidate, University of

Toronto

Page 2: Full custom design of  aN fpga

Overview

TSMC 0.35 um technology Cadence tools Less than 2mm X 2mm die

area Design time = 1 month

Tile based approach Each tile contains a Logic Block,

2 Connections Blocks and a Switch

Box

Pass transistor approach

2

Page 3: Full custom design of  aN fpga

References

Architecture and CAD for Deep-Submicron FPGAs

3

Page 4: Full custom design of  aN fpga

Presentation Outline Schematics

Base Cells – Pass transistor, SRAM, Multiplexer Logic Block – LUT, Set/Reset Logic, D-flipflop Connection Box – Right, Bottom Switch Box Tile 2X2 Programming Circuitry – Row, Column FPGA 4X4 – Programming a multiplier FPGA 32X16 – full schematic

Layouts Base Cells – SRAM, Multiplexer, Pull-up Buffer Logic Block – LUT, Set/Reset Logic, D-flipflop Connection Box – Right, Bottom Programming Circuitry – Row, Column Tile – Single tile, Tile 2X2 FPGA 4X4 – Post-layout simulation of programmed multiplier FPGA 32X16 – floor plan, full layout Clock tree – H-tree implemented Complete layout with Padframe DRC, LVS Results Employed layout techniques and Conclusions

Page 5: Full custom design of  aN fpga

Schematics

5

Page 6: Full custom design of  aN fpga

Base Cells

Schematic Simulation

o Pass transistor

6

Highlighted red boxes in the top right hand corner indicate where this cell is used (e.g. Pass transistor is used in the logic element, connection boxes 1 and 2, and the switch block)

Page 7: Full custom design of  aN fpga

Base Cells

Schematic Simulation

o SRAM cell : to program the FPGA with the required functionality

7

Page 8: Full custom design of  aN fpga

Base Cells

Schematic: Simulation

o 2-to-1 Multiplexer

8

Page 9: Full custom design of  aN fpga

Base Cells

Schematic

Simulation

Sel2/Sel1 out

11 IN_1

10 IN_2

01 IN_3

00 IN_4

o 4-to-1 Multiplexer: to choose between the four SRAM bits in the LUT

9

Page 10: Full custom design of  aN fpga

Logic Block

Top-level Schematic

10

Page 11: Full custom design of  aN fpga

Logic Block - LUT Schematic

Simulation

11

Page 12: Full custom design of  aN fpga

Logic Block – Set/Reset Logic Schematic:

Simulation When Sram 1, 2 set to ‘1’ => Set= 1 When Sram 1, 2 set to ‘0’ => Reset= 1

12

Page 13: Full custom design of  aN fpga

Logic Block – D-Flip Flop

Simulation

Schematic

13

Page 14: Full custom design of  aN fpga

Connection Box -Right

Schematic

Simulation Track2 selected when

SRAM set to ‘0’ Track1 selected when

SRAM set to ‘1’

o Functionality: Connect vertical tracks to logic element

14

Page 15: Full custom design of  aN fpga

Connection Box -Bottom Top Level Schematic

Output from CB to Tracks Input to CB from

Tracks

15

Page 16: Full custom design of  aN fpga

Switch Box

Schematic

16

Page 17: Full custom design of  aN fpga

TILE 2x2

V1 V2 V3 V4

H1 H2

H3 H4

Schematic:Each tile has different connections at the switch box Segmented and staggered routing structure for FPGASegment Length of 2

17

Page 18: Full custom design of  aN fpga

Programming Circuitry – Programming Column

Schematic

Simulation

18

Page 19: Full custom design of  aN fpga

Schematic

Simulation

Programming Circuitry – Programming Row

19

Page 20: Full custom design of  aN fpga

FPGA 4x4

Schematic

20

Page 21: Full custom design of  aN fpga

FPGA Mapping and Programming bits for a 2 by 2 MultiplierTable shows manually created

bitstream to program the multiplier using 4X4 tiles with programming circuits

21

FPGA 4x4

Page 22: Full custom design of  aN fpga

FPGA 4x4

0 1 2 3

0 1 2 30 1 2 3 0 1 2 30 1 2 3

0 1 2 3 0 2 4 6 0 3 6 9

Input 1

Input 2

Bit[3]

Simulation 2 by 2 Multiplier correctly implemented Shows correct output for all possible

inputs

Bit[2]

Bit[1]

Bit[0] Numbers shows total output

22

Page 23: Full custom design of  aN fpga

FPGA 32x16 – Full Schematic

23

Page 24: Full custom design of  aN fpga

Layouts

24

Page 25: Full custom design of  aN fpga

Base Cells

Schematic Layout

25

o SRAM cell : to program the FPGA with the required functionality

Page 26: Full custom design of  aN fpga

Base Cells

Schematic Layout

Sel2/Sel1 out

11 IN_1

10 IN_2

01 IN_3

00 IN_4 26

o 4-to-1 Multiplexer: to choose between the four SRAM bits in the LUT

Page 27: Full custom design of  aN fpga

Base Cells

Layout

27

o Pull-up buffer: used to pull the degraded signal back up to VDD

Page 28: Full custom design of  aN fpga

Logic Block

28

Top-level Schematic

Page 29: Full custom design of  aN fpga

Logic Block - LUT

Layout

29

Schematic

Layout

Page 30: Full custom design of  aN fpga

Logic Block – Set/Reset Logic Schematic

Layout

30

Page 31: Full custom design of  aN fpga

Logic Block – D-flipflop

Layout

31

Schematic

Page 32: Full custom design of  aN fpga

Logic Block

LUT Set/Reset Buffer_inverter for clock

Pullup Buffer

D-flipflop

32

Layout

Page 33: Full custom design of  aN fpga

Connection Box -Right

33

Layout

Schematic

Page 34: Full custom design of  aN fpga

Connection Box - Bottom

34

Top-level Schematic

Output from Connection box to Tracks

Page 35: Full custom design of  aN fpga

Programming Circuitry – Programming Column

35

Layout Schematic

Page 36: Full custom design of  aN fpga

36

Programming Circuitry – Programming Column

Page 37: Full custom design of  aN fpga

37

Programming Circuitry – Programming Row

Layout

Schematic

Page 38: Full custom design of  aN fpga

38

Programming Circuitry – Programming Row

Page 39: Full custom design of  aN fpga

Tile

39

Schematic

Page 40: Full custom design of  aN fpga

Tile -Layout

40

Logic Element

Right Connection Box

Bottom Connection Box Switch Box

Page 41: Full custom design of  aN fpga

TILE 2x2 - Layout

41

Page 42: Full custom design of  aN fpga

FPGA 4x4 - Layout

42

Page 43: Full custom design of  aN fpga

43

FPGA Mapping and Programming bits for a 2 by 2 Multiplier Table shows manually created

bitstream to program the multiplier using 4X4 tiles with programming circuits

FPGA 4x4 - Post Layout Simulation

Page 44: Full custom design of  aN fpga

FPGA 4x4 – Post-Layout Simulation

0 1 2 3

0 1 2 30 1 2 3 0 1 2 30 1 2 3

0 1 2 3 0 2 4 6 0 3 6 9

Input 1

Input 2

44

Bit[3]

Bit[2]

Bit[1]

Bit[0]Numbers shows

total output

Post-Layout Simulation 2 by 2 Multiplier correctly implemented Shows correct output for all possible inputs Matches schematic simulations

Page 45: Full custom design of  aN fpga

32x16 Tiles FPGA Floorplan

Program

ming R

ow

4x4 Tile

4x4 Tile

4x4 Tile

4x4 Tile

Programming Column

4x4 Tile4x4 Tile

4x4 Tile4x4 Tile

1.52

5 m

m

4x4 Tile

4x4 Tile

4x4 Tile

4x4 Tile

4x4 Tile4x4 Tile

4x4 Tile4x4 Tile

4x4 Tile

4x4 Tile

4x4 Tile

4x4 Tile

4x4 Tile4x4 Tile

4x4 Tile4x4 Tile

1.52

5 m

m

4x4 Tile

4x4 Tile

4x4 Tile

4x4 Tile

4x4 Tile4x4 Tile

4x4 Tile4x4 Tile

1.25 mm

1.525 mm

45

Page 46: Full custom design of  aN fpga

FPGA 32x16 - Layout

46

Page 47: Full custom design of  aN fpga

Clock Tree

47

H-tree structurePerfectly symmetrical in every direction to reduce

clock skew

Page 48: Full custom design of  aN fpga

Complete layout with Padframe

48

Page 49: Full custom design of  aN fpga

49

DRC - Passed

Page 50: Full custom design of  aN fpga

50

LVS - Passed

Page 51: Full custom design of  aN fpga

Layout Techniques Employed

51

General TechniquesCell pitch of 6um used, layouts optimized for area to

match pitch sizeShared Sources/Drains when possible to minimize areaShared VDD and ground rails between rows

Hierarchical LayoutBigger cells composed of multiple smaller cells Orthogonal metal routing using M3, M4, Local routing

using M1, M2Blocks made to abut well

Wider tracks for power rails to provide enough power Wider horizontal tracks, vertical tracks, and clock tree

for increase drive strength

Page 52: Full custom design of  aN fpga

Conclusions

52

Designed a fully functional FPGA Can Implement up to 512 gatesConsists of 8,704 SRAMs148,448 transistors without padframe

Page 53: Full custom design of  aN fpga

Questions

53