programmable solutions for consumer handheld

63
May 2008 1 Programmable Solutions for Consumer Handheld SiliconBlue Technologies iCE65 Architecture 7-MAY-2008 (v1.1) SiliconBlue SiliconBlue Technologies iCE65 Architecture

Upload: others

Post on 03-Feb-2022

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Programmable Solutions for Consumer Handheld

May 2008 1

Programmable Solutions for

Consumer Handheld

SiliconBlue Technologies iCE65 Architecture

7-MAY-2008 (v1.1)

SiliconBlue ™

SiliconBlue Technologies iCE65 Architecture

Page 2: Programmable Solutions for Consumer Handheld

Agenda

May 2008 2

iCE65 Architecture

Overview

Programmable Logic Blocks (PLBs)

Programmable Input/Output Blocks (PIOs)

RAM4K Blocks

Interconnect

Powering iCE65 Devices

iCE65 Configuration

Modes and Methods

SPI Serial Flash

NVCM

Page 3: Programmable Solutions for Consumer Handheld

May 2008 3

iCE

Architecture

Page 4: Programmable Solutions for Consumer Handheld

4

iCE65 Low Power NV FPGAs

iCE65L02 iCE65L04 iCE65L08 iCE65L16

Logic Cells (LUT4 + FF) 1,792 3,520 7,680 16,896

Programmable I/O (max.) 128 176 222 384

Differential I/O Pairs (max) 16 20 25 54

RAM4K blocks 16 20 32 96

RAM4K bits 64K 80K 128K 384K

Core voltage options 1.2V, 1.0V

Static current (typical, 1.2V) 25 µA 50 µA 100 µA 250 µA

I/O Banks 4 + SPI mini bank

Global Buffers 8

iCEGATE input disables 4

*2010 Volume Quantities

May 2008

Page 5: Programmable Solutions for Consumer Handheld

iCE65 FPGA Architecture Ultra-low power

Array of Programmable

Logic Blocks (PLB)

Surrounded by four

I/O Banks

4Kbit RAM Blocks

Programmable

interconnect

Non-Volatile

Configuration

Memory (NVCM)

SPI interface May 2008 5

I/O Bank 0

I/O Bank 2

I/O

Ba

nk

1

I/O

Ba

nk

3

PLB

PLB

PLB

PLB

PLB

PLB

PLB

PLB

PLB

PLB

PLB

PLB

PLB

PLB

PLBP

rogra

mm

able

Inte

rconnect

Pro

gra

mm

able

Inte

rconnect

Programmable Interconnect

25+ µA Typical Standby Current

NVCM

PLB

PLB

PLB

4K

bit

RA

M4

Kb

it R

AM

PLB

PLB

PLB

PLB

Nonvolatile Configuration Memory (NVCM)P

LB

PLB

PLB

PLB

JT

AG

SPI Config

Four-input Look-Up Table

(LUT4)

Carry logic

Flip-flop with enable and reset controls

Programmable Logic Block (PLB)

8 L

og

ic C

ell

s =

Pro

gra

mm

ab

le L

og

ic B

lock

PLB

PLB

PLB

PLB

Programmable Interconnect

PLB

PLB

Page 6: Programmable Solutions for Consumer Handheld

Power Consumption

Total Power = Static + Dynamic

Static power is almost entirely controlled by IC

design

Dominated by leakage current

Controlled by IC design techniques, transistor

choices, device-level architecture

Choose the right device: SiliconBlue iCE65 FPGAs!

Only User controls are voltage and temperature

Lower core voltage helps

User has many levers to control dynamic power

May 2008 6

Page 7: Programmable Solutions for Consumer Handheld

Dynamic Power

Dynamic Power = AfCV2 A = Activity: If it moves, it burns dynamic

power. Corollary: If it moves, kill it.

f = Frequency: The slower it moves, the less

power it uses.

C = Capacitance: High fanout routes have

more capacitance.

V2 = Voltage: Power scales with the square of

the voltage. Operate at lowest possible

voltage.

May 2008 7

Page 8: Programmable Solutions for Consumer Handheld

PLB

Programmable Logic Block

May 2008 8

Page 9: Programmable Solutions for Consumer Handheld

Programmable Logic Block Programmable Logic

Block (PLB)

Eight 4-input Look-up

Tables (LUT4)

Eight ‘D’ flip-flops with

shared clock, clock

enable, set/reset control

Fast carry logic

Familiar, well supported

by logic synthesis tools

May 2008 9

= Statically defined by configuration program

LUT4

Carry Logic

Logic Cell

SR

END Q

DFF

Flip-flop with optional enable and set or reset controls

Four-input Look-Up Table(LUT4)

Clock

Enable

Set/Reset

Shared Block-Level Controls

0

Programmable Logic Block (PLB)

8 L

ogic

Cells

(LCs)

I0

I1

I2

I3

O

1

Page 10: Programmable Solutions for Consumer Handheld

What is a LUT4?

May 2008 10

4-input Look-Up Table

A 16x1 PROM

Locations loaded during

configuration with desired logic

value

Popular method to create

logic in SRAM-based FPGAs

Altera, Lattice, Xilinx

Widely supported

Four inputs select 1 of 16

memory locations

Any possible function of

between 0 to 4 inputs

Page 11: Programmable Solutions for Consumer Handheld

Alternate View: Karnaugh Map Karnaugh maps

commonly taught in

digital design courses

LUT4 is essentially a

four-input Karnaugh map

Programmed by

configuration bitstream

Any possible function of

between 0 to 4 inputs

May 2008 11

0 0 0 0

0 0 0 0

0 0 1 0

0 0 0 0

00 01 11 10

00

01

11

10

I3, I2

I1, I0

0 = I3 ● I2 ● I1 ● I0

Page 12: Programmable Solutions for Consumer Handheld

Flip-flop Options Select LUT4 or flip-flop as

Logic Cell output

Clock is shared

Rising-edge triggered, or

Falling-edge triggered

Enable is shared

Always enabled, or

Selectively enabled

Set/Reset is shared

None

Set or Reset (per Logic Cell)

Synchronous or Asynchronous

(per Logic Cell)

Flip-flops reset to ‘0’ after

power-on, CRESET_B

May 2008 12

LUT4

Carry Logic

Logic Cell

SR

END Q

DFF

Flip-flop with optional enable and set or reset controls

Four-input Look-Up Table(LUT4)

Clock

Enable

Set/Reset

Shared Block-Level Controls

0

I0

I1

I2

I3

O

1

Page 13: Programmable Solutions for Consumer Handheld

Flip-flop Packing in PLB

Due to shared controls, only flip-flops sharing

common controls pack into a single PLB

Eight possible groupings

May 2008 13

Group

Active Clock

Edge Clock Enable

Set or Reset

(Sync. Or Async.)

1

None (always enabled)

None 2

3

4

5

Selective (controlled by

enable input)

None 6

7

8

Page 14: Programmable Solutions for Consumer Handheld

Carry Logic (Adder Ladder) Each Logic Cell includes special

logic to build arithmetic functions

~ 10X faster than LUT alone

Carry logic + LUT required to build

useful functions

Carry in, initialization input to each

PLB

May need a Logic Cell to initialize

chain in some cases

May need a Logic Cell to exit the chain

Carry logic cascade through the

Logic Cells in a PLB, up a column

Carry Logic driven High when not

used (low power)

I1, I2, I3 inputs shared/borrowed

May 2008 14

LUT4

I0

I1

I2

I3

CarryLogic

To upper adjacent Logic Cell

From lower adjacent Logic Cell

Carry Logic initialization into Programmable Logic Block (PLB)

Adjacent PLB

Adjacent PLB

configuration program= Statically defined by

10

Shared

Either

Page 15: Programmable Solutions for Consumer Handheld

Carry Logic Example Two-bit Adder with Carry

In and Carry Out

Each logic cell produces a

1-bit Sum using a LUT4

Carry using the Carry Logic

The carry propagates up

the chain to the next bit

Final carry output tapped

out of a LUT

Carry In

Initialized within PLB, or

Created using a LUT4 to

start

May 2008 15

I0

I1

I2

I3

LUT4

CARRY_OUT

CARRY_IN

GND

GND

I0

I1

I2

I3

LUT4

A[0]

B[0]

SUM[0]

CarryLogic

I0

I1

I2

I3

LUT4

A[1]

B[1]

SUM[1]

CarryLogic

Page 16: Programmable Solutions for Consumer Handheld

Other Arithmetic Functions Carry Logic (Adder

Ladder) only generates

carry for add operations

Adder

Accumulator

Incrementer

Binary Up Counter

What about other

functions?

Subtracter

Decrementer

Down Counter

Using 2s complement

arithmetic, invert carry

May 2008 16

Page 17: Programmable Solutions for Consumer Handheld

PIO

Programmable Input/Output

May 2008 17

Page 18: Programmable Solutions for Consumer Handheld

Programmable I/O

Four independent I/O banks

Independent voltage inputs

Multi-standard support May 2008 18

VC

CIO

_1

I/O Bank 0

I/O Bank 2

I/O

Ba

nk

1

I/O

Ba

nk

3

PIO OUT

OE_B

VCCIOI/O Bank 0, 1, or 2

Voltage Supply3.3V, 2.5V, 1.8V, 1.5V, or 1.2V

= Statically defined by configuration program

‘1’‘0’

0 = Output Enabled1 = Hi-Z

PAD

LEI/O Bank

Input Enable

DisabledEnabled

Latch inhibits switching for lowest power

IN

VCCIO_0

VCCIO_2

VC

CIO

_3

VCC

2.5

V, 1.8

V

Internal Core

SPI_VCC

DD

R/D

iffe

rential I/

O

General-Purpose I/O

General-Purpose I/O

Genera

l-Purp

ose

I/O

General-Purpose Input/Output

SPI Config

Input, Output,

or

Bi-directional

Flip-flops on

all paths

DDR option

Low-power latch

option

JTAG boundary

scan

Page 19: Programmable Solutions for Consumer Handheld

Four+ I/O Banks

I/O Bank 5V tolerant 3.3V 2.5V 1.8V 1.5V

0 (top) Yes Yes Yes Yes —

1 (right) Yes Yes Yes Yes —

2 (bottom) Yes Yes Yes Yes —

3 (left) — — Yes Yes Yes

SPI Yes Yes Yes Yes —

May 2008 19

Support up to four different I/O

voltages

Ideal for voltage level translation

Almost pay for voltage translation get a

free FPGA

Supported on iCEman65 board

iCE65 I/O Bank Voltage Support

VC

CIO

_1

I/O Bank 0

I/O Bank 2

I/O

Ba

nk

1

I/O

Ba

nk

3

VCCIO_0

VCCIO_2V

CC

IO_

3SPI_VCC

DD

R/D

iffe

rential I/

O

General-Purpose I/O

General-Purpose I/O

Genera

l-Purp

ose

I/O

SPI Config

Page 20: Programmable Solutions for Consumer Handheld

Application

Processor (I/O Limited)

Device B

Device A

iCE65

Bank 0

Bank 2

SPI

I2C

Device C (Data Format)

(Timing)

May 2008

Voltage Level Translation

GPIO Pin Expansion

Bridging

Incompatible

Devices

iCE65 Advantages

More resources

4 I/O banks

Differential I/O

Internal memory

Serial Parallel

20

Voltage Level Translation

Ban

k 1

Ban

k 3

VCCIO_1=? VCCIO_0=?

VCCIO_3=?

VCCIO_2=?

Page 21: Programmable Solutions for Consumer Handheld

Specialty Standards in Bank 3

Application I/O Standard

VCCIO_3 Supply

Voltage

Drive Current

(mA)

DDR1 SDRAM SSTL2_II 2.5V ± 16.2

SSTL2_I 2.5V ± 8.1

DDR2 SDRAM SSTL18_II 1.8V ± 16.2

SSTL18_I 1.8V ± 8.1

Mobile DDR MDDR 1.8V

Differential LVDS 2.5V

May 2008 21

All specialty voltage standard support is in

I/O Bank 3

Page 22: Programmable Solutions for Consumer Handheld

Programmable I/O Pair

I/O pair shares

control signals

Input clock

Output clock

Enable

Input and output flip-

flops are optionally

Double Data Rate

(DDR) (described later)

May 2008 22

PIO Pair

1

= Statically defined by configuration program

OUTCLK

INCLK

IOENA

Outp

ut

Clo

ckI/O

Regis

ter

Enable

0 = Output Enabled1 = Hi-Z

PAD

IN

OUT

OE_BEN

EN

EN

0 = Output Enabled1 = Hi-Z

PAD

IN

OUT

OE_BEN

EN

EN

Input

Clo

ck

Page 23: Programmable Solutions for Consumer Handheld

Double Data Rate (DDR)

Basic Idea: Communicate twice as much data

over a pin by using both edges of the clock

Keeps internal frequency more manageable

Saves power because clock transitions at half

the frequency

Commonly used in DDR, DDR2 memories and

with LVDS differential signaling

May 2008 23

Dynamic Power = Activity ● Frequency ● Capacitance ● (Voltage)2

Page 24: Programmable Solutions for Consumer Handheld

iCE65 DDR Flip-Flops in PIO Every PIO has two sets of DDR flip-flops

Input pair

Output

Cannot be used when using JTAG boundary scan

May 2008 24

Output DDR Pair Input DDR Pair

Page 25: Programmable Solutions for Consumer Handheld

LVDS Differential I/O

Basic Idea: Send data over a few high-speed,

carefully controlled traces than over many,

lower-speed traces

Low-voltage Differential Signaling (LVDS)

Low-power, high-speed I/O standard

Excellent noise immunity

Reduced EMI noise

Popular for some applications

Higher-resolution graphic displays

Telecommunications

High-speed cameras May 2008 25

Page 26: Programmable Solutions for Consumer Handheld

iCE65 LVDS

Supported in I/O Bank 3, VCCIO_3 = 2.5V

Receiver requires external 100Ω resistor

May 2008 26

Page 27: Programmable Solutions for Consumer Handheld

iCEGATE Input Latch

Configuration image determines

whether an input freezes with

iCEGATE or not

Pin-by-pin control

Really only applicable to asynchronous input signals

Clocked inputs are already frozen until the next clock edge

May 2008 27

Save power: Selectively

freeze input signals

One HOLD control per

I/O Bank

Internal routing connection

Connect to a PIO, logic, or

other HOLD signals

PAD HOLD Input

PAD 0 PAD

X 1 Last value of PAD

Page 28: Programmable Solutions for Consumer Handheld

Pin Naming

May 2008 28

1

A

B

C

PIO0_12

PIO3_14/

DP07A

PIO3_15/

DP07B

PIO0_12

I/O bank number

Ball column number

Ball row number

Ball number A1

DifferentialI/O Pair

Indicators

PIO0_14/

DP07A

Single-ended PIO Numbering

Differential I/O Pair Numbering

PIO number in bank

Pair pin polarity

Pair number

Differential Pair

Dot indicates unconnected pin for iCE65L04 in CB284 package

Diamond indicates unconnected pin for iCE65L02 in CB200

package1 2

PIO0_13PIO0_12

PIO3_14/

DP07A

W

Y

VCCIO_3

GND

GND

VCCIO_3

GND

GND

PIO3_15/

DP07B

PIO3_16/

DP08A

PIO3_17/

DP08B

PIO3_18/

DP09A

PIO3_19/

DP09B

PIO3_20/

DP10A

PIO3_21/

DP10B

VREF

PIO3_24/

DP12A

PIO3_25/

DP12B

PIO3_26/

DP13A

PIO3_27/

DP13B

A

B

C

D

E

F

G

H

J

K

L

M

N

P

R

T

U

V

3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

PIO0_14 PIO0_15 PIO0_16 PIO0_17 PIO0_18 VCCIO_0 PIO0_29 PIO0_30 PIO0_31 PIO0_32 PIO0_33 PIO0_42PIO0_28 PIO0_43 PIO0_44 PIO0_45 PIO0_46 PIO0_47

21 22

AA

AB

PIO1_43

PIO2_46 PIO2_47

21 22

A

B

C

D

E

F

G

H

J

K

L

M

N

P

R

T

W

Y

U

V

VCCIO_0 PIO1_11

VCCIO_1

PIO1_12

PIO1_13

PIO1_14

PIO1_15

PIO1_16

PIO1_17

PIO1_18

PIO1_25

PIO1_26

PIO1_27

PIO1_28

PIO1_29

PIO1_30

PIO1_31

PIO1_39

PIO1_40

PIO1_41

PIO1_42

I/O

Ba

nk

1

AA

AB

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

GND

PIO3_28/

DP14A

PIO3_29/

DP14BPIO2_25 PIO2_26 PIO2_27 PIO2_28 PIO2_29 PIO2_30 PIO2_31 PIO2_32 PIO2_33 PIO2_34 PIO2_45PIO2_00 PIO2_13 PIO2_14 PIO2_15 PIO2_16 PIO2_17 PIO2_18

I/O Bank 2

VCC

VCC

GNDPIO0_19 PIO0_20 PIO0_21 PIO0_22 PIO0_23 PIO0_24 PIO0_25 PIO0_26 PIO0_35 PIO0_36 PIO0_37 PIO0_38 PIO0_39 PIO0_40 PIO0_41

GND

VCCIO_3

VCCIO_3

GND

VCC VCCIO_2 GND GND

GND

VCC

VCCIO_1

PIO3_10/

DP05A

PIO3_11/

DP05B

PIO3_12/

DP06A

PIO3_13/

DP06B

PIO3_22/

DP11A

PIO3_31/

DP15B

PIO3_32/

DP16A

PIO3_33/

DP16B

PIO3_34/

DP17A

PIO3_35/

DP17B

PIO3_36/

DP18A

PIO3_37/

DP18B

PIO1_19

PIO1_20

PIO1_21

PIO1_22

PIO1_23

PIO1_24

PIO1_32

PIO1_35

PIO1_36

PIO1_37

PIO1_38

PIO1_44

PIO1_45

PIO1_46

PIO2_38 PIO2_39 PIO2_40 PIO2_41PIO2_35 PIO2_36 PIO2_37PIO2_21 PIO2_22PIO2_11 PIO2_12 PIO2_19 PIO2_20

1 2 3 4 5 6 7 8 9 10 11 12 13 14

1 2 3 4 5 6 7 8 9 10 11 12 13 14

A

B

C

D

E

F

G

H

J

K

L

M

N

P

A

B

C

D

E

F

G

H

J

K

L

M

N

P

VCCIO_0 GNDVPP_

FAST

VPP_

33PIO0_00 PIO0_01 PIO0_02 PIO0_00 PIO0_05

GBIN0/

PIO0_27

GBIN1/

PIO0_34PIO0_54 PIO0_57 PIO0_59

PIO0_03 PIO0_06

PIO0_04

PIO0_09

PIO0_07

PIO0_11

PIO0_10

PIO0_49

PIO0_48

PIO0_51

PIO0_50

PIO0_53

PIO0_52

PIO0_56

PIO0_55

PIO0_58

VCCIO_0 GND VCC VCCIO_1

GND GND GND

GND GND GND

GND

VCC

VCC

VCC

VCCIO_3 VCCIO_2

GND

VCCIO_3

VCC

VCCIO_3

GND

VCCIO_2

GND SPI_VCC

GND

VCCIO_1

TCK

TDI

TDO

TMS

TRST_B

CRESET_B

CDONE

PIO3_00/

DP00A

PIO3_01/

DP00B

PIO3_06/

DP03A

PIO3_07/

DP03B

PIO3_02/

DP01A

PIO3_03/

DP01B

PIO3_04/

DP02A

PIO3_05/

DP02B

PIO3_08/

DP04A

PIO3_09/

DP04B

PIO3_39/

DP19B

PIO3_38/

DP19A

PIO3_41/

DP20B

PIO3_40/

DP20A

GBIN6/

PIO3_23/

DP11B

GBIN7/

PIO3_30/

DP15A

PIO3_42/

DP21A

PIO3_43/

DP21B

PIO3_45/

DP22B

PIO3_44/

DP22A

PIO3_46/

DP23A

PIO3_47/

DP23B

PIO3_48/

DP24A

PIO3_49/

DP24B

PIO1_00

PIO1_01

PIO1_04

PIO1_07

PIO1_02

PIO1_05

PIO1_08

PIO1_03

PIO1_06

PIO1_10PIO1_09

GBIN3/

PIO1_20

GBIN2/

PIO1_33

PIO1_48/

PSDI2

PIO1_47/

PSDI1

PIO1_50/

PSDI4

PIO1_49/

PSDI3

PIO1_52/

PSDI6

PIO1_53/

PSDI7

PIO1_51/

PSDI5

PIO1_54/

PSDO1

PIOS_55/

SPI_SO

PIOS_56/

SPI_SI

PIOS_57/

SPI_SCK

PIOS_58/

SPI_SS_B

PIO2_51/

CBSEL0

PIO2_50/

PSDO7

PIO2_49/

PSDO6

PIO2_48/

PSDO5

PIO2_44/

PSDO4

PIO2_43/

PSDO3

PIO2_08

PIO2_10

PIO2_06PIO2_03

PIO2_05PIO2_02

PIO2_01 PIO2_04 PIO2_07 PIO2_09GBIN4/

PIO2_23

GBIN5/

PIO2_24

PIO2_42

PSDO2

PIO2_52/

CBSEL1

SPI Bank

I/O Bank 0

I/O

Ba

nk

3

CB284

CB132

Page 29: Programmable Solutions for Consumer Handheld

CB132/284 Common Footprint

May 2008 29

1 2

PIO0_13PIO0_12

PIO3_14/

DP07A

W

Y

VCCIO_3

GND

GND

VCCIO_3

GND

GND

PIO3_15/

DP07B

PIO3_16/

DP08A

PIO3_17/

DP08B

PIO3_18/

DP09A

PIO3_19/

DP09B

PIO3_20/

DP10A

PIO3_21/

DP10B

VREF

PIO3_24/

DP12A

PIO3_25/

DP12B

PIO3_26/

DP13A

PIO3_27/

DP13B

A

B

C

D

E

F

G

H

J

K

L

M

N

P

R

T

U

V

3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

PIO0_14 PIO0_15 PIO0_16 PIO0_17 PIO0_18 VCCIO_0 PIO0_29 PIO0_30 PIO0_31 PIO0_32 PIO0_33 PIO0_42PIO0_28 PIO0_43 PIO0_44 PIO0_45 PIO0_46 PIO0_47

21 22

AA

AB

PIO1_43

PIO2_46 PIO2_47

21 22

A

B

C

D

E

F

G

H

J

K

L

M

N

P

R

T

W

Y

U

V

VCCIO_0 PIO1_11

VCCIO_1

PIO1_12

PIO1_13

PIO1_14

PIO1_15

PIO1_16

PIO1_17

PIO1_18

PIO1_25

PIO1_26

PIO1_27

PIO1_28

PIO1_29

PIO1_30

PIO1_31

PIO1_39

PIO1_40

PIO1_41

PIO1_42

I/O

Ba

nk

1

AA

AB

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

GND

PIO3_28/

DP14A

PIO3_29/

DP14BPIO2_25 PIO2_26 PIO2_27 PIO2_28 PIO2_29 PIO2_30 PIO2_31 PIO2_32 PIO2_33 PIO2_34 PIO2_45PIO2_00 PIO2_13 PIO2_14 PIO2_15 PIO2_16 PIO2_17 PIO2_18

I/O Bank 2

VCC

VCC

GNDPIO0_19 PIO0_20 PIO0_21 PIO0_22 PIO0_23 PIO0_24 PIO0_25 PIO0_26 PIO0_35 PIO0_36 PIO0_37 PIO0_38 PIO0_39 PIO0_40 PIO0_41

GND

VCCIO_3

VCCIO_3

GND

VCC VCCIO_2 GND GND

GND

VCC

VCCIO_1

PIO3_10/

DP05A

PIO3_11/

DP05B

PIO3_12/

DP06A

PIO3_13/

DP06B

PIO3_22/

DP11A

PIO3_31/

DP15B

PIO3_32/

DP16A

PIO3_33/

DP16B

PIO3_34/

DP17A

PIO3_35/

DP17B

PIO3_36/

DP18A

PIO3_37/

DP18B

PIO1_19

PIO1_20

PIO1_21

PIO1_22

PIO1_23

PIO1_24

PIO1_32

PIO1_35

PIO1_36

PIO1_37

PIO1_38

PIO1_44

PIO1_45

PIO1_46

PIO2_38 PIO2_39 PIO2_40 PIO2_41PIO2_35 PIO2_36 PIO2_37PIO2_21 PIO2_22PIO2_11 PIO2_12 PIO2_19 PIO2_20

1 2 3 4 5 6 7 8 9 10 11 12 13 14

1 2 3 4 5 6 7 8 9 10 11 12 13 14

A

B

C

D

E

F

G

H

J

K

L

M

N

P

A

B

C

D

E

F

G

H

J

K

L

M

N

P

VCCIO_0 GNDVPP_

FAST

VPP_

33PIO0_00 PIO0_01 PIO0_02 PIO0_00 PIO0_05

GBIN0/

PIO0_27

GBIN1/

PIO0_34PIO0_54 PIO0_57 PIO0_59

PIO0_03 PIO0_06

PIO0_04

PIO0_09

PIO0_07

PIO0_11

PIO0_10

PIO0_49

PIO0_48

PIO0_51

PIO0_50

PIO0_53

PIO0_52

PIO0_56

PIO0_55

PIO0_58

VCCIO_0 GND VCC VCCIO_1

GND GND GND

GND GND GND

GND

VCC

VCC

VCC

VCCIO_3 VCCIO_2

GND

VCCIO_3

VCC

VCCIO_3

GND

VCCIO_2

GND SPI_VCC

GND

VCCIO_1

TCK

TDI

TDO

TMS

TRST_B

CRESET_B

CDONE

PIO3_00/

DP00A

PIO3_01/

DP00B

PIO3_06/

DP03A

PIO3_07/

DP03B

PIO3_02/

DP01A

PIO3_03/

DP01B

PIO3_04/

DP02A

PIO3_05/

DP02B

PIO3_08/

DP04A

PIO3_09/

DP04B

PIO3_39/

DP19B

PIO3_38/

DP19A

PIO3_41/

DP20B

PIO3_40/

DP20A

GBIN6/

PIO3_23/

DP11B

GBIN7/

PIO3_30/

DP15A

PIO3_42/

DP21A

PIO3_43/

DP21B

PIO3_45/

DP22B

PIO3_44/

DP22A

PIO3_46/

DP23A

PIO3_47/

DP23B

PIO3_48/

DP24A

PIO3_49/

DP24B

PIO1_00

PIO1_01

PIO1_04

PIO1_07

PIO1_02

PIO1_05

PIO1_08

PIO1_03

PIO1_06

PIO1_10PIO1_09

GBIN3/

PIO1_20

GBIN2/

PIO1_33

PIO1_48/

PSDI2

PIO1_47/

PSDI1

PIO1_50/

PSDI4

PIO1_49/

PSDI3

PIO1_52/

PSDI6

PIO1_53/

PSDI7

PIO1_51/

PSDI5

PIO1_54/

PSDO1

PIOS_55/

SPI_SO

PIOS_56/

SPI_SI

PIOS_57/

SPI_SCK

PIOS_58/

SPI_SS_B

PIO2_51/

CBSEL0

PIO2_50/

PSDO7

PIO2_49/

PSDO6

PIO2_48/

PSDO5

PIO2_44/

PSDO4

PIO2_43/

PSDO3

PIO2_08

PIO2_10

PIO2_06PIO2_03

PIO2_05PIO2_02

PIO2_01 PIO2_04 PIO2_07 PIO2_09GBIN4/

PIO2_23

GBIN5/

PIO2_24

PIO2_42

PSDO2

PIO2_52/

CBSEL1

SPI Bank

I/O Bank 0

I/O

Ba

nk

3

CB284

CB132

Page 30: Programmable Solutions for Consumer Handheld

RAM4K

4Kbit Block RAM Memory

May 2008 30

Page 31: Programmable Solutions for Consumer Handheld

On-Chip RAM Blocks RAM4K memory blocks

256 by 16-bit

Other formats available

using programmable logic

Separate read / write ports

Optionally pre-initialized

during configuration

May 2008 31

WDATA[15:0]

MASK[15:0]

WADDR[7:0]

WE

WCLK

RDATA[15:0]

RADDR[7:0]

RE

RCLK

RAM4KRAM Block(256x16)

Write Port Read Port

Device RAM4K Blocks

Default

Configuration

RAM bits per

Block Total RAM Bits

iCE65L02 16

256 locations x

16 bits/location 4K (4,096)

64K

iCE65L04 20 80K

iCE65L08 32 128K

iCE65L16 96 384K

Page 32: Programmable Solutions for Consumer Handheld

RAM4K Applications Data buffering

First-in, First-Out (FIFO)

Last-in, First-Out (LIFO,

stack)

Circular buffers

Line buffers

Register files

Waveform generator

256 x 16 ROM

Function generator

“Super, synchronous

PLB”

8-inputs, 16 outputs

Pattern matcher,

correlator

Counter

Shift register

May 2008 32

Page 33: Programmable Solutions for Consumer Handheld

RAM Competitive Advantage

SiliconBlue Actel Altera Xilinx Lattice

Family iCE65 Igloo MAX IIZ CoolRunner-II MachXO

Block RAM Yes In some parts None None None

Block RAM Size 4Kx1 4Kx1 + parity — — —

Number of RAM

blocks 16 to 96

0: AGL015, 030

4 to 32 in larger

devices

0 0 0

Block RAM bits

64K to 384K

0: AGL015,030

18K to 144K in

larger devices

0 0 0

May 2008 33

Page 34: Programmable Solutions for Consumer Handheld

Write Operations

MASK input masks off specific bits, prevents

write to the specific bits in the RAM location

All write operates are synchronized to clock

input

Write Clock is invertible (rising edge operation shown)

May 2008 34

Operation

WDATA MASK WADDR WE WCLK

RAM Location Data Bit Mask Address Enable Clock

Disabled X X X X 0 No change

Disabled X X X 0 X No change

Write Data WDATA[i] MASK[i]=0 WADDR 1

RAM[WADDR][i] =

WDATA[i]

Masked

Write X MASK[i]=1 WADDR 1

RAM[WADDR][i] =

No Change

Page 35: Programmable Solutions for Consumer Handheld

Read Operations

RAM contents optionally loaded during configuration

RDATA output register not cleared by configuration

reset

Valid read operation makes RDATA valid

Write Clock is invertible (rising edge operation shown)

May 2008 35

Operation

RADDR RE RCLK

RDATA Address Enable Clock

Immediately

after

configuration,

before first

Read operation

X X X

Undefined. Output

register not cleared by

configuration reset.

Disabled X 0 X No change

Read Data RADDR 1 RAM[RADDR]

Page 36: Programmable Solutions for Consumer Handheld

PROGRAMMABLE

INTERCONNECT

May 2008 36

Page 37: Programmable Solutions for Consumer Handheld

Programmable Interconnect

Specially designed

for ultra-low power

Connections to

Nearest Neighbors

Connections that

span four blocks

Connections that

span 12 blocks

Global connections

May 2008 37

I/O Bank 0

I/O Bank 2

I/O

Ba

nk

1

I/O

Ba

nk

3

PLB

PLB

PLB

PLB

PLB

PLB

PLB

PLB

PLB

PLB

PLB

PLB

PLB

PLB

PLBP

rogra

mm

able

Inte

rconnect

Pro

gra

mm

able

Inte

rconnect

Programmable Interconnect

25+ µA Typical Standby Current

NVCM

PLB

PLB

PLB

4K

bit

RA

M4

Kb

it R

AM

PLB

PLB

PLB

PLB

Nonvolatile Configuration Memory (NVCM)P

LB

PLB

PLB

PLB

JT

AG

SPI Config

Four-input Look-Up Table

(LUT4)

Carry logic

Flip-flop with enable and reset controls

Programmable Logic Block (PLB)

8 L

og

ic C

ell

s =

Pro

gra

mm

ab

le L

og

ic B

lock

PLB

PLB

PLB

PLB

Programmable Interconnect

PLB

PLB

Page 38: Programmable Solutions for Consumer Handheld

Nearest Neighbor Connections Each PLB has

connections to:

Itself

Eight nearest neighbors

Fastest connections

May 2008 38

PLB = Programmable Logic Block

PLB

PLB

PLB

PLB

PLB

PLB

PLB

PLB

8 wires

PLB

Page 39: Programmable Solutions for Consumer Handheld

Span4 Connections

May 2008 39

PLB = Programmable Logic Block

12

48 Span4 Lines per Column

48

Sp

an

4 L

ine

s

pe

r R

ow

Span4 line spans across four PLBsSwithbox: Span4 lines are switched every four intersections

Each PLB receives inputs from and sends outputs to Span4 Horizontal lines and from the left and right Span4 Vertical lines.

12

12

12

12121212

PLB PLB

PLB PLB PLB

RAM4K

PLB

Page 40: Programmable Solutions for Consumer Handheld

Span12 Connections

May 2008 40

24 Span12 Lines per Column

24

Sp

an

12

Lin

es p

er

Ro

w

PLB = Programmable Logic Block

Swithbox: Span12 lines are switched every 12 intersections

Span12 line spans across twelve PLBs

4444

4

4

4

4

4

4

44

RAM4K

PLB

PLB PLB

PLB

Each PLB receives inputs from and sends outputs to Span12 Horizontal lines and from the left Span12 Vertical lines. The PLB sends outputs to the right-side Span12 Vertical lines but does not receive inputs from there.

Page 41: Programmable Solutions for Consumer Handheld

iCE65 Global Resources Eight high-drive, low-skew

buffers

Potentially connect to all PLB,

RAM4K, and PIO blocks

Clock drivers

High-fanout signals

Global set/reset

Automatic at power-up

Resets all flip-flops to a known

state

May 2008 41

I/O Bank 0G

BIN

1

GB

IN0

Glo

bal

Buffe

r

Glo

bal

Buffe

r

I/O

Ba

nk

3

GBIN7

GBIN6

Global Buffer

Global Buffer

I/O Bank 2

GB

IN4

GB

IN5

Glo

bal

Buff

er

Glo

bal

Buff

er

I/O

Ba

nk

1

GBIN2

GBIN3

Global Buffer

Global BufferGBUF2

GBUF3

GBUF7

GBUF6

GB

UF1

GB

UF0

GB

UF5

GB

UF5

Page 42: Programmable Solutions for Consumer Handheld

Global Buffer Inputs (GBIN) Global buffers (GBUFs)

have two potential input

sources

Special Global Buffer

Input (GBIN) associated

with a GBUF

From programmable

interconnect

Special GBIN pins also

available for general-

purpose I/O

May 2008 42

GBIN

Global BufferGBUF

Programmable interconnect

Global buffer input (GBIN) pin

Can also be a general-purpose PIO pin

Page 43: Programmable Solutions for Consumer Handheld

Global Buffer to PLB

May 2008 43

Global Buffer LUT4 Inputs PLB Clock PLB Enable PLB Set/Reset

GBUF0 Yes, any 4 of

the 8 global

buffers

N/A

GBUF1 N/A

GBUF2 N/A

GBUF3 N/A

GBUF4 N/A

GBUF5 N/A

GBUF6 N/A

GBUF7 N/A

GBUFs available as LUT4 inputs

GBUFs available to all clock inputs

Even-numbered GBUFs available to Set/Reset

Odd-numbered GBUFs available to Enable

Page 44: Programmable Solutions for Consumer Handheld

Global Buffer to PIO

May 2008 44

Global Buffer PIO Output Input Clock Output Clock Clock Enable

GBUF0 Not available

(connect

through Logic

Cell first)

GBUF1 N/A

GBUF2

GBUF3 N/A

GBUF4

GBUF5 N/A

GBUF6

GBUF7 N/A

GBUFs cannot directly connect to PIO output

Must connect through Logic Cell first

GBUFs available to all input and output clocks

Even-numbered GBUFs available to Clock Enable

Page 45: Programmable Solutions for Consumer Handheld

CONFIGURATION

SPI and NVCM

May 2008 45

Page 46: Programmable Solutions for Consumer Handheld

iCE65 Device Configuration

iCE65 FPGAs offer multiple configuration

options to meet your application requirements

Secure, on-chip Non-Volatile Configuration

Memory (NVCM)

Self-loading from an external, commodity SPI

serial Flash PROM

Downloaded from external processor using SPI-

like serial interface

SPI interface has separate voltage supply to

simplify system interface

Internal oscillator and power-on reset

May 2008 46

Page 47: Programmable Solutions for Consumer Handheld

iCE65 Configuration Models

May 2008 47

iCE65 NVCM

Self-Contained Model (ASIC, Microcontroller)

• Lowest-cost

• Single-chip, secure; loads from internal NVCM memory

• Permanently programmed (with reprogrammable options)

iCE65 SPI

Serial

Flash

Processor Model • Boot at power-up from external SPI serial Flash

• Optionally store additional application data in Flash

• Changeable program

iCE65 Controller

Peripheral Model • Download to iCE65 using a controller/processor

• Simple SPI interface

• iCE65 bitstream stored in any form of memory

• Internal Flash, Disk drive

• Over network, RF link

• Changeable program

Memory

Page 48: Programmable Solutions for Consumer Handheld

How Many Bits to Program?

Device Kbits Mbits Kbytes

iCE65L02 314 Kb 0.31 Mb 39.3 KB

iCE65L04 533 Kb 0.52 Mb 62.7 KB

iCE65L08 1,057 Kb 1.03 Mb 132.2 KB

iCE65L16 2,404 Kb 2.35 Mb 300.5 KB

May 2008 48

Regardless of design complexity, configuration

image size is the same per device

iCE65 Configuration Image Size

Page 49: Programmable Solutions for Consumer Handheld

Internal Oscillator Clock source for self-loading modes

NVCM

SPI serial Flash

Mode determines operating frequency, but wide

variance

Maximum frequency determines which PROM is required

Minimum frequency determines how fast configuration

completes

Turned off after configuration to save power

May 2008 49

Mode Minimum Maximum Description

Default 3.3 MHz 10 MHz Works with any SPI PROM

Low 11 MHz 33 MHz Works with most SPI PROMs

High 17 MHz 50 MHz Supported by some high-speed SPI PROMs

Page 50: Programmable Solutions for Consumer Handheld

How Long to Configure?

Speed depends on internal oscillator setting or

external clock frequency

Maximum configuration time depends on

Configuration image size

Lowest frequency for configuration clock

May 2008 50

Device

Internal Oscillator Download Clock

Default

Low

Frequency

High

Frequency 25 MHz 40 MHz

iCE65L02 98 ms 30 ms 19 ms 13 ms 9 ms

iCE65L04 166 ms 50 ms 33 ms 22 ms 14 ms

iCE65L08 328 ms 99 ms 64 ms 44 ms 28 ms

iCE65L16 746 ms 224 ms 145 ms 99 ms 62 ms

iCE65 Maximum Configuration Time

Page 51: Programmable Solutions for Consumer Handheld

NVCM Programming NVCM memory is large enough to completely program

device plus initialize on-chip RAM

Low cost; permanently programmed

Completely internal, secure

Programming interface similar to 25-series SPI PROM

External programming support

In-system programming (ISP) also available

2.5V-only with on-chip programming circuitry

Faster programming using separate 6.5V supply

May 2008 51

Pin Voltage Description

VDDP_2V5 2.5V Charge pumped programming voltage supply.

VPP_6V5 6.5V Direct, faster programming voltage supply.

Page 52: Programmable Solutions for Consumer Handheld

Selecting Mode

Configuration mode

decided by a few

variables

Is NVCM enabled for

configuration?

What is the logic value

on the SPI_SS_B pin?

Low: Peripheral mode

High: SPI Flash PROM

May 2008 52

Page 53: Programmable Solutions for Consumer Handheld

Configuration Control Built-in Power-On Reset

(POR)

Internal oscillator for

self-loading mode

Three frequency ranges

CRESET_B:

Asynchronous, active-

Low reset

Keep Low to postpone

start of configuration

Configuration starts when

CRESET_B returns High

May 2008 53

SiliconBlue ICE

CDONECRESET_BLow resets ICE configuration.

Rising edge starts configuration process.

I/O Bank 2

Unconfigured

Configured

CDONE: Low during

configuration, High when

configuration complete

Low-current output

Page 54: Programmable Solutions for Consumer Handheld

SPI Serial PROM Interface Separate I/O bank to

simplify system design

Supports multiple

commodity SPI Flash

vendors

Competitive pricing

Multi-sourcing security

May 2008 54

SiliconBlue iCE65

(SPI bank)Commodity SPI

Serial Flash PROM

SPI_SO

SPI_SI

SPI_VCC

SPI_SS_B

SPI_SCK

+3.3V

Same SPI interface for peripheral mode configuration

Signal

Name

Flash

Mode

Peripheral

Mode

After

Configuration Configuration Function

SPI_SO Output Output User-defined PIO Serial Output

SPI_SI Input Input User-defined PIO Serial Input

SPI_SS_B Output Input User-defined PIO Slave Select, active Low

SPI_SCK Output Input User-defined PIO Slave Clock

Page 55: Programmable Solutions for Consumer Handheld

Low-Power SPI Configuration

May 2008 55

1 0 1 0 1 0 1 1

0xABRelease from Deep Power-down

SPI_SCK

SPI_SS_B

SPI_SO

X X X X X X X X

A23

A22

A21

A20

A19

A18

A17

A16

A15

A14

A13

A12

A11

A10

A9

A8

A7

A6

A5

A4

A3

A2

A1

A00 0 0 0 1 0 1 1

0x0BFast Read

24-bit Start Address

D7

D6

D5

D4

D3

D2

D1

D0

D7

Dummy ByteDon’t Care

Data Byte 0

D6

SPI_SCK

SPI_SS_B

SPI_SO

SPI_SIPROM output is Hi-Z. Pulled High in SPI_SI pin via internal pull-up resistor.

1 0 1 1 1 0 0

0xB9Deep Power-down

D7

D6

D5

D4

D3

D2

D1

D0

Last Data Byte

1

Fast Read data

SPI_SCK

SPI_SS_B

SPI_SO

SPI_SI

1

2

Wake up PROM from

low-power mode

Send 0x0B Fast Read Command, 24-bit Start Address,

Read Required Configuration Data

3 Return PROM to low-power

mode (default, optional)

Page 56: Programmable Solutions for Consumer Handheld

SPI PROM Requirements

iCE65 optional loads from commodity SPI serial

Flash

Multiple vendors with compatible devices

Lowest pricing; supply security

Innovative features and packaging

Requirements

25- or 45-series SPI PROM

Large enough to hold a bitstream (512K to 4M)

Supports the Fast Read command (0x0B)

Fast enough power-up to ready time

May 2008 56

Page 57: Programmable Solutions for Consumer Handheld

Programming SPI Flash Hold CRESET_B Low

Tri-states all pins

Allows external programmer

access to SPI Flash

Built into iCEman65 board

TotalPhase

Aardvark (lower-speed)

www.totalphase.com/products/aardvark_i2cspi

Cheetah (high-speed)

www.totalphase.com/products/cheetah_spi

Free Flash Center software

www.totalphase.com/products/flash_center

Digilent

JTAG-USB Cable www.digilentinc.com/Products/Detail.cfm?Prod=JTAG-USB&Nav1=Products&Nav2=Cables

Works with Adept/ICEUTIL

May 2008 57

SiliconBlue iCE65

Commodity SPI Serial

Flash PROM

SPI_SO

SPI_SI

SPI_SS_B

SPI_SCKCRESET_B

ProgrammerHold CRESET_B Low to keep iCE65 SPI pins in high impedance state. Programmer then has full access to PROM.

Page 58: Programmable Solutions for Consumer Handheld

SPI Serial PROM Vendors

Numonyx

Formerly STMicro/Intel

M25P40, M25P80

Atmel

AT45DB081D

Spansion

Formerly AMD/Fujitsu

Winbond

NexFlash

Silicon Storage

Technology (SST)

Chingis

Macronix

Eon Silicon Solution

AMIC Technology

May 2008 58

Tested Not Yet Tested

Page 59: Programmable Solutions for Consumer Handheld

Cold/Warm Boot

Usually, iCE65 device programmed using a

single configuration image

Optionally select one of up to four iCE65

configuration images

ColdBoot: At power-on or after CRESET_B

returns High, read value on CBSEL[1:0] pins to

select four possible configuration bitstreams

WarmBoot: FPGA application selects one of four

possible bitstreams, controls when to jump to next

bitstream using SB_WARMBOOT primitive

May 2008 59

Page 60: Programmable Solutions for Consumer Handheld

Cold/Warm Boot Procedure

May 2008 60

Page 61: Programmable Solutions for Consumer Handheld

Cold/Warm Boot Examples

Single hardware design has multiple functions

Board loads self-test design, then jumps to user

application if test passes

Based on a card slot ID, the iCE65 FPGA is loaded

with required hardware design

Time-share hardware, saves costs

NVCM with Field Upgrade/Expansion Path

Load from NVCM

Optionally jump to SPI configuration image if

available

May 2008 61

Page 62: Programmable Solutions for Consumer Handheld

JTAG/Boundary Scan Primarily used during PCB

assembly

Open/short test

Especially useful with aggressive

packaging

Optional configuration interface

(though many details are yet to be

determined)

Powered by VCCIO_1

May 2008 62

SiliconBlue iCE65

(I/O Bank 1)

TDI

TRST_B

TRST_B must be Low during normal operation.

TDO

TMS

TCK

Signal

Name Description

TDI Test Data Input

TDO Test Data Output

TMS Test Mode Select

TCK Test Clock

TRST_B Test Reset (active Low)

Page 63: Programmable Solutions for Consumer Handheld

Powering iCE65 FPGAs

Core Voltage

1.2 V: Standard

1.0 V: Ultra-low power

Up to five different I/O voltages

Four I/O bank voltages

Banks 0, 1, 2 can be 3.3V, 2.5V, 1.8V

Bank 3 can be 2.5V, 1.8V, or 1.5V

SPI “mini-bank” voltage

3.3V when configuring from SPI Flash

2.5V and 1.8V options when configuring from NVCM or

peripheral mode

May 2008 63

Dynamic Power = Activity ● Frequency ● Capacitance ● (Voltage)2