background image

25 marca 2008

Układy programowalne

1

background image

25 marca 2008

Układy programowalne

2

Programowalne

i specjalizowane

 

układy

 

cyfrowe

 

Programowalne

Programowalne

specjalizowane

specjalizowane

 

uk

uk

ł

ł

ady

ady

 

cyfrowe

cyfrowe

background image

25 marca 2008

Układy programowalne

3

Klasyfikacja 

układów 

logicznych

 

Klasyfikacja 

Klasyfikacja 

uk

uk

ł

ł

ad

ad

ó

ó

logicznych

logicznych

background image

25 marca 2008

Układy programowalne

4

Gate

Gate

 

Array

Array

PLD

PLD

Standard 

Standard 

Cell

Cell

 

IC

IC

Full

Full

 

Custom

Custom

IC

IC

SPLD

SPLD

(PAL)

(PAL)

CPLD

CPLD

FPGA

FPGA

Klasyfikacja układów logicznych

Klasyfikacja uk

Klasyfikacja uk

ł

ł

ad

ad

ó

ó

w logicznych

w logicznych

Logic

Logic

circuits

circuits

Standard

Standard

Logic

Logic

ASIC

ASIC

ASIC 

ASIC 

-

-

 

Application

Application

 

Specific

Specific

 

Integrated

Integrated

 

Circuits

Circuits

specjalizowane uk

specjalizowane uk

ł

ł

ady scalone, projektowane indywidualnie do 

ady scalone, projektowane indywidualnie do 

konkretnego zastosowania, na zam

konkretnego zastosowania, na zam

ó

ó

wienie producent

wienie producent

ó

ó

w urz

w urz

ą

ą

dze

dze

ń

ń

 

elektronicznych

elektronicznych

PLD

PLD

 

-

-

 

Programmable

Programmable

 

Logic

Logic

 

Devices

Devices

,  U

,  U

ż

ż

ytkownik

ytkownik

 

mo

mo

ż

ż

e zaimplementowa

e zaimplementowa

ć

ć

 

w jego strukturze opracowany przez 

w jego strukturze opracowany przez 

siebie projekt specjalizowanego uk

siebie projekt specjalizowanego uk

ł

ł

adu cyfrowego. Cech

adu cyfrowego. Cech

ą

ą

 

tych uk

tych uk

ł

ł

ad

ad

ó

ó

w jest wi

w jest wi

ę

ę

c ich 

c ich 

konfigurowalno

konfigurowalno

ść

ść

 

przez 

przez 

u

u

ż

ż

ytkownika.

ytkownika.

SPLD 

SPLD 

-

-

 

Simple

Simple

 

Programmable

Programmable

 

Logic

Logic

 

Devices

Devices

, proste uk

, proste uk

ł

ł

ady programowalne.

ady programowalne.

FPGA 

FPGA 

-

-

 

Field 

Field 

Programmable

Programmable

 

Gate

Gate

 

Array

Array

, programowalne matryce bramkowe.

, programowalne matryce bramkowe.

CPLD 

CPLD 

-

-

 

Complex

Complex

 

Programmable

Programmable

 

Logic

Logic

 

Devices

Devices

, z

, z

ł

ł

o

o

ż

ż

one uk

one uk

ł

ł

ady programowalne.

ady programowalne.

background image

25 marca 2008

Układy programowalne

5

Układy PLD

Uk

Uk

ł

ł

ady PLD

ady PLD

Programowalne

i specjalizowane

 

układy

 

cyfrowe

Programowalne

Programowalne

specjalizowane

specjalizowane

 

uk

uk

ł

ł

ady

ady

 

cyfrowe

cyfrowe

background image

25 marca 2008

Układy programowalne

6

Najwięksi producenci układów PLD

Najwi

Najwi

ę

ę

ksi producenci uk

ksi producenci uk

ł

ł

ad

ad

ó

ó

w PLD

w PLD

1.

1.

 

Xilinx

Xilinx

 

(

(www.xilinx.com

www.xilinx.com

 

2.

2.

 

Altera

Altera

 

(

(www.altera.com

www.altera.com

 

)

)

3.

3.

 

Lattice

Lattice

-

-

Vantis

Vantis

 

(

(www.latticesemi.com

www.latticesemi.com

)

)

4.

4.

 

Actel

Actel

 

(

(www.actel.com

www.actel.com

 

)

)

5.

5.

 

Atmel

Atmel

 

(

(www.atmel.com

www.atmel.com

 

)

)

6.

6.

 

Cypress

Cypress

 

(

(www.cypress.com

www.cypress.com

 

)

)

7.

7.

 

QuickLogic

QuickLogic

 

(

(www.quicklogic.com

www.quicklogic.com

 

)

)

background image

25 marca 2008

Układy programowalne

7

Literatura

Literatura

Literatura

1.

1.

 

Pasierbi

Pasierbi

ń

ń

ski

ski

 

J., 

J., 

Zbysi

Zbysi

ń

ń

ski

ski

 

P., 

P., 

Uk

Uk

ł

ł

ady programowalne w praktyce

ady programowalne w praktyce

, Wyd. WK

, Wyd. WK

Ł

Ł

Warszawa 2002.

Warszawa 2002.

2.

2.

 

Kevin

Kevin

 

Skahill

Skahill

J

J

ę

ę

zyk VHDL, Projektowanie programowalnych uk

zyk VHDL, Projektowanie programowalnych uk

ł

ł

ad

ad

ó

ó

logicznych

logicznych

,Wydawnictwa

,Wydawnictwa

 

naukowo

naukowo

-

-

Techniczne, Warszawa 2001

Techniczne, Warszawa 2001

3.

3.

 

T. 

T. 

Ł

Ł

uba, K. Jasi

uba, K. Jasi

ń

ń

ski, B. 

ski, B. 

Zbierzchowski

Zbierzchowski

Specjalizowane uk

Specjalizowane uk

ł

ł

ady cyfrowe w 

ady cyfrowe w 

strukturach PLD i FPGA

strukturach PLD i FPGA

, WK

, WK

Ł

Ł

, Warszawa, 1997

, Warszawa, 1997

4.

4.

 

Podr

Podr

ę

ę

czniki firmowe (

czniki firmowe (

Data 

Data 

Book

Book

, Data 

, Data 

Sheet

Sheet

Application

Application

Notes

Notes

, itp.. 

, itp.. 

) do 

) do 

omawianych uk

omawianych uk

ł

ł

ad

ad

ó

ó

w (ze stron WWW producent

w (ze stron WWW producent

ó

ó

w)

w)

 

www.xilinx.com

www.xilinx.com

 

www.altera.com

www.altera.com

 

www.latticesemi.com

www.latticesemi.com

 

www.actel.com

www.actel.com

 

www.atmel.com

www.atmel.com

 

www.cypress.com

www.cypress.com

 

www.quicklogic.com

www.quicklogic.com

Inne strony WWW zajmuj

Inne strony WWW zajmuj

ą

ą

ce si

ce si

ę

ę

 

tematyk

tematyk

ą

ą

 

PLD, 

PLD, 

np

np

:

:

 

http://www.fpgajournal.com

http://www.fpgajournal.com

 

www.design

www.design

-

-

reuse.com

reuse.com

 

www.opencores.org

www.opencores.org

background image

25 marca 2008

Układy programowalne

8

Układy SPLD

Uk

Uk

ł

ł

ady SPLD

ady SPLD

Do uk

Do uk

ł

ł

ad

ad

ó

ó

SPLD 

SPLD 

zalicza si

zalicza si

ę

ę

 

uk

uk

ł

ł

ady programowalne: 

ady programowalne: 

PLA 

PLA 

(

(

Programmable

Programmable

Logic

Logic

Array

Array

), 

), 

PAL 

PAL 

(

(

Programmable

Programmable

Array

Array

Logic

Logic

GAL 

GAL 

(

(

Generic

Generic

Array

Array

Logic

Logic

). 

). 

S

S

ą

ą

 

to uk

to uk

ł

ł

ady najta

ady najta

ń

ń

sze i najprostsze o ma

sze i najprostsze o ma

ł

ł

ej liczbie wyprowadze

ej liczbie wyprowadze

ń

ń

.

.

Ich zasoby logiczne zawieraj

Ich zasoby logiczne zawieraj

ą

ą

 

typowo od 4 do 22 

typowo od 4 do 22 

makrokom

makrokom

ó

ó

rek

rek

 

logicznych o dwupoziomowej 

logicznych o dwupoziomowej 

strukturze logicznej i mog

strukturze logicznej i mog

ą

ą

 

zwykle zast

zwykle zast

ą

ą

pi

pi

ć

ć

 

kilka standardowych uk

kilka standardowych uk

ł

ł

ad

ad

ó

ó

w scalonych rodziny 

w scalonych rodziny 

74xx. 

74xx. 

Struktura zazwyczaj jest symetryczna, tzn. 

Struktura zazwyczaj jest symetryczna, tzn. 

ż

ż

e ka

e ka

ż

ż

da z 

da z 

makrokom

makrokom

ó

ó

rek

rek

 

jest w pe

jest w pe

ł

ł

ni po

ni po

łą

łą

czona z 

czona z 

innymi kom

innymi kom

ó

ó

rkami w danym uk

rkami w danym uk

ł

ł

adzie scalonym. Wyj

adzie scalonym. Wyj

ś

ś

cie ka

cie ka

ż

ż

dej kom

dej kom

ó

ó

rki mo

rki mo

ż

ż

e by

e by

ć

ć

 

podane na 

podane na 

wej

wej

ś

ś

cie ka

cie ka

ż

ż

dej innej oraz wej

dej innej oraz wej

ś

ś

cia uk

cia uk

ł

ł

adu mog

adu mog

ą

ą

 

by

by

ć

ć

 

podane do ka

podane do ka

ż

ż

dej kom

dej kom

ó

ó

rki.

rki.

Do okre

Do okre

ś

ś

lenia po

lenia po

łą

łą

cze

cze

ń

ń

 

pomi

pomi

ę

ę

dzy kom

dzy kom

ó

ó

rkami oraz funkcji przez nie realizowanych 

rkami oraz funkcji przez nie realizowanych 

(skonfigurowania/zaprogramowania uk

(skonfigurowania/zaprogramowania uk

ł

ł

adu) stosowane s

adu) stosowane s

ą

ą

 

łą

łą

czniki 

czniki 

(klucze), kt

(klucze), kt

ó

ó

rymi s

rymi s

ą

ą

 

wi

wi

ę

ę

kszo

kszo

ś

ś

ci przypadk

ci przypadk

ó

ó

w przepalane elektrycznie fragmenty 

w przepalane elektrycznie fragmenty 

ś

ś

cie

cie

ż

ż

ek (

ek (

łą

łą

czniki 

czniki 

rozwarciowe

rozwarciowe

 

 

dla 

dla 

uk

uk

ł

ł

ad

ad

ó

ó

w PLA i PAL) lub tranzystory MOS (dla uk

w PLA i PAL) lub tranzystory MOS (dla uk

ł

ł

ad

ad

ó

ó

w GAL). 

w GAL). 

background image

25 marca 2008

Układy programowalne

9

SPLD

SPLD

(PLA)

(PLA)

Układy PLA –

 

Programowalne Matryce 

Logiczne

 

Uk

Uk

ł

ł

ady PLA 

ady PLA 

 

Programowalne Matryce 

Programowalne Matryce 

Logiczne

Logiczne

Uk

Uk

ł

ł

ady PLA s

ady PLA s

ą

ą

 

przyk

przyk

ł

ł

adem 

adem 

kombinacyjnego uk

kombinacyjnego uk

ł

ł

adu PLD. 

adu PLD. 

Stanowi

Stanowi

ą

ą

 

dwuwymiarow

dwuwymiarow

ą

ą

 

struktur

struktur

ę

ę

 

po

po

łą

łą

cze

cze

ń

ń

 

programowalnymi po

programowalnymi po

łą

łą

czeniami 

czeniami 

(najcz

(najcz

ęś

ęś

ciej zwarciami) w miejscu 

ciej zwarciami) w miejscu 

ich krzy

ich krzy

ż

ż

owania si

owania si

ę

ę

X0

X0

X1

X1

X15

X15

32 wej

32 wej

ś

ś

cia

cia

16 bramek 

16 bramek 

NAND

NAND

16 wej

16 wej

ść

ść

8 bramek  

8 bramek  

OR

OR

background image

25 marca 2008

Układy programowalne

10

SPLD

SPLD

(PLA)

(PLA)

Układy PLA –

 

Programowalne Matryce 

Logiczne

 

Uk

Uk

ł

ł

ady PLA 

ady PLA 

 

Programowalne Matryce 

Programowalne Matryce 

Logiczne

Logiczne

Uk

Uk

ł

ł

ady PLA s

ady PLA s

ą

ą

 

przyk

przyk

ł

ł

adem 

adem 

kombinacyjnego uk

kombinacyjnego uk

ł

ł

adu PLD. 

adu PLD. 

Stanowi

Stanowi

ą

ą

 

dwuwymiarow

dwuwymiarow

ą

ą

 

struktur

struktur

ę

ę

 

po

po

łą

łą

cze

cze

ń

ń

 

programowalnymi po

programowalnymi po

łą

łą

czeniami 

czeniami 

(najcz

(najcz

ęś

ęś

ciej zwarciami) w miejscu 

ciej zwarciami) w miejscu 

ich krzy

ich krzy

ż

ż

owania si

owania si

ę

ę

.

.

Programowalne po

Programowalne po

łą

łą

czenia maj

czenia maj

ą

ą

 

bramki AND i bramki OR

bramki AND i bramki OR

X0

X0

X1

X1

X15

X15

32 wej

32 wej

ś

ś

cia

cia

48 bramek 

48 bramek 

NAND

NAND

16 wej

16 wej

ść

ść

8 bramek  

8 bramek  

OR

OR

background image

25 marca 2008

Układy programowalne

11

SPLD

SPLD

(PLA)

(PLA)

Układy PLA –

 

Programowalne Matryce 

Logiczne

 

Uk

Uk

ł

ł

ady PLA 

ady PLA 

 

Programowalne Matryce 

Programowalne Matryce 

Logiczne

Logiczne

Dla ka

Dla ka

ż

ż

dego sygna

dego sygna

ł

ł

u wej

u wej

ś

ś

ciowego 

ciowego 

mo

mo

ż

ż

na wyr

na wyr

ó

ó

ż

ż

ni

ni

ć

ć

 

4 przypadki 

4 przypadki 

programowania wej

programowania wej

ść

ść

 

bramki 

bramki 

NAND:

NAND:

1.

1.

 

Stan 

Stan 

nieprogramowania

nieprogramowania

 

wej

wej

ść

ść

2.

2.

 

Podawanie sygna

Podawanie sygna

ł

ł

wej

wej

ś

ś

ciowego nie 

ciowego nie 

zanegowanego

zanegowanego

3.

3.

 

Podawanie sygna

Podawanie sygna

ł

ł

wej

wej

ś

ś

ciowego zanegowanego

ciowego zanegowanego

4.

4.

 

Nie podawanie sygna

Nie podawanie sygna

ł

ł

u na 

u na 

wej

wej

ś

ś

cie

cie

16 wej

16 wej

ść

ść

X0

X0

X0

X0

X0

X0

X0

X0

1

1

2

2

3

3

4

4

background image

25 marca 2008

Układy programowalne

12

SPLD

SPLD

(PLA)

(PLA)

Układy PLA –

 

Programowalne Matryce 

Logiczne

 

Uk

Uk

ł

ł

ady PLA 

ady PLA 

 

Programowalne Matryce 

Programowalne Matryce 

Logiczne

Logiczne

Realizacja sumatora przy pomocy 

Realizacja sumatora przy pomocy 

uk

uk

ł

ł

adu PLA

adu PLA

A

A

B

B

C

C

S = 

S = 

A

A

B

B

C

C

 

AB

AB

C

C

 

A

A

BC

BC

 

+ ABC

+ ABC

Carry

Carry

 

= AB + AC + BC

= AB + AC + BC

S

S

Carry

Carry

background image

25 marca 2008

Układy programowalne

13

SPLD

SPLD

(PAL)

(PAL)

Układy PAL –

 

Programowalne Matrycowe 

Układy Logiczne

 

Uk

Uk

ł

ł

ady PAL 

ady PAL 

 

Programowalne Matrycowe 

Programowalne Matrycowe 

Uk

Uk

ł

ł

ady Logiczne

ady Logiczne

Uk

Uk

ł

ł

ady PAL charakteryzuj

ady PAL charakteryzuj

ą

ą

 

si

si

ę

ę

 

tym, i

tym, i

ż

ż

 

programowalne 

programowalne 

po

po

łą

łą

czenia maj

czenia maj

ą

ą

 

tylko 

tylko 

bramki AND.

bramki AND.

W uk

W uk

ł

ł

adach PAL wyj

adach PAL wyj

ś

ś

cie 

cie 

ka

ka

ż

ż

dej bramki AND jest 

dej bramki AND jest 

bezpo

bezpo

ś

ś

rednio po

rednio po

łą

łą

czone do 

czone do 

jednego z wej

jednego z wej

ść

ść

 

jednej 

jednej 

bramki OR

bramki OR

X0

X0

X1

X1

X2

X2

AMD PAL 

AMD PAL 

Programmable

Programmable

 

Array

Array

 

Logic

Logic

background image

25 marca 2008

Układy programowalne

14

SPLD

SPLD

(PAL)

(PAL)

Układy PAL –

 

Programowalne Matrycowe 

Układy Logiczne

 

Uk

Uk

ł

ł

ady PAL 

ady PAL 

 

Programowalne Matrycowe 

Programowalne Matrycowe 

Uk

Uk

ł

ł

ady Logiczne

ady Logiczne

A

A

B

B

C

C

AMD PAL 

AMD PAL 

Programmable

Programmable

 

Array

Array

 

Logic

Logic

Realizacja sumatora przy pomocy 

Realizacja sumatora przy pomocy 

uk

uk

ł

ł

adu PAL

adu PAL

S = 

S = 

A

A

B

B

C

C

 

AB

AB

C

C

 

A

A

BC

BC

 

+ ABC

+ ABC

Carry

Carry

 

= AB + AC + BC

= AB + AC + BC

S

S

Carry

Carry

background image

25 marca 2008

Układy programowalne

15

Fragment struktury układu PAL 16L8

Fragment struktury uk

Fragment struktury uk

ł

ł

adu PAL 16L8

adu PAL 16L8

Widoczne:

Widoczne:

1.

1.

 

Macierz po

Macierz po

łą

łą

cze

cze

ń

ń

 

AND

AND

2.

2.

 

Funkcje OR (nast

Funkcje OR (nast

ę

ę

pniki)

pniki)

3.

3.

 

Sprz

Sprz

ęż

ęż

enia zwrotne do macierzy po

enia zwrotne do macierzy po

łą

łą

cze

cze

ń

ń

background image

25 marca 2008

Układy programowalne

16

Układy GAL

Uk

Uk

ł

ł

ady GAL

ady GAL

Obecnie najpopularniejsz

Obecnie najpopularniejsz

ą

ą

 

grup

grup

ą

ą

 

uk

uk

ł

ł

ad

ad

ó

ó

w SPLD s

w SPLD s

ą

ą

 

uk

uk

ł

ł

ady 

ady 

GAL

GAL

, w kt

, w kt

ó

ó

rych 

rych 

wykorzystano architektur

wykorzystano architektur

ę

ę

 

PAL wzbogacon

PAL wzbogacon

ą

ą

 

o konfigurowalne 

o konfigurowalne 

makrokom

makrokom

ó

ó

rki

rki

 

wyj

wyj

ś

ś

ciowe zawieraj

ciowe zawieraj

ą

ą

ce przerzutniki typu 

ce przerzutniki typu 

D

D

. Przerzutniki te spe

. Przerzutniki te spe

ł

ł

niaj

niaj

ą

ą

 

rol

rol

ę

ę

 

wyj

wyj

ś

ś

ciowych element

ciowych element

ó

ó

w pami

w pami

ę

ę

ciowych umo

ciowych umo

ż

ż

liwiaj

liwiaj

ą

ą

cych budowanie uk

cych budowanie uk

ł

ł

ad

ad

ó

ó

synchronicznych.

synchronicznych.

SPLD

SPLD

(GAL)

(GAL)

Generic

Generic

 

Array

Array

 

Logic

Logic

background image

25 marca 2008

Układy programowalne

17

Układy GAL

Uk

Uk

ł

ł

ady GAL

ady GAL

SPLD

SPLD

(GAL)

(GAL)

background image

25 marca 2008

Układy programowalne

18

Makrokomórki

 

w układach GAL

Makrokom

Makrokom

ó

ó

rki

rki

 

w uk

w uk

ł

ł

adach GAL

adach GAL

OLMC

OLMC

Output

Output

 

Logic

Logic

Macrocell

Macrocell

Makrokom

Makrokom

ó

ó

rka

rka

 

OLMC umo

OLMC umo

ż

ż

liwia zaprogramowanie uk

liwia zaprogramowanie uk

ł

ł

adu w trybie kombinacyjnym lub 

adu w trybie kombinacyjnym lub 

sekwencyjnym

sekwencyjnym

Kom

Kom

ó

ó

rka kombinacyjna

rka kombinacyjna

SPLD

SPLD

(GAL)

(GAL)

background image

25 marca 2008

Układy programowalne

19

Makrokomórki

 

w układach GAL

Makrokom

Makrokom

ó

ó

rki

rki

 

w uk

w uk

ł

ł

adach GAL

adach GAL

OLMC

OLMC

Output

Output

 

Logic

Logic

Macrocell

Macrocell

Makrokom

Makrokom

ó

ó

rka

rka

 

OLMC umo

OLMC umo

ż

ż

liwia zaprogramowanie uk

liwia zaprogramowanie uk

ł

ł

adu w trybie kombinacyjnym lub 

adu w trybie kombinacyjnym lub 

sekwencyjnym

sekwencyjnym

Kom

Kom

ó

ó

rka sekwencyjna

rka sekwencyjna

D     Q

D     Q

Clk

Clk

 

nQ

nQ

SPLD

SPLD

(GAL)

(GAL)

background image

25 marca 2008

Układy programowalne

20

Makrokomórki

 

w układach GAL

Makrokom

Makrokom

ó

ó

rki

rki

 

w uk

w uk

ł

ł

adach GAL

adach GAL

OLMC

OLMC

Output

Output

 

Logic

Logic

Macrocell

Macrocell

Makrokom

Makrokom

ó

ó

rka

rka

 

OLMC umo

OLMC umo

ż

ż

liwia zaprogramowanie uk

liwia zaprogramowanie uk

ł

ł

adu w trybie kombinacyjnym lub 

adu w trybie kombinacyjnym lub 

sekwencyjnym

sekwencyjnym

Kom

Kom

ó

ó

rka uniwersalna

rka uniwersalna

D     Q

D     Q

Clk

Clk

 

nQ

nQ

SPLD

SPLD

(GAL)

(GAL)

background image

25 marca 2008

Układy programowalne

21

Przykładowy układ GAL ATF22LV10C

Przyk

Przyk

ł

ł

adowy uk

adowy uk

ł

ł

ad GAL ATF22LV10C

ad GAL ATF22LV10C

background image

25 marca 2008

Układy programowalne

22

Budowa makroceli

 

układu GAL22V10

Budowa 

Budowa 

makroceli

makroceli

 

uk

uk

ł

ł

adu GAL22V10

adu GAL22V10

background image

25 marca 2008

Układy programowalne

23

Układy CPLD

Uk

Uk

ł

ł

ady CPLD

ady CPLD

Uk

Uk

ł

ł

ady 

ady 

CPLD 

CPLD 

s

s

ą

ą

 

koncepcyjnie podobne do uk

koncepcyjnie podobne do uk

ł

ł

ad

ad

ó

ó

w SPLD, lecz s

w SPLD, lecz s

ą

ą

 

bardziej z

bardziej z

ł

ł

o

o

ż

ż

one: maj

one: maj

ą

ą

 

wi

wi

ę

ę

ksze zasoby logiczne i mo

ksze zasoby logiczne i mo

ż

ż

liwo

liwo

ś

ś

ci funkcjonalne. 

ci funkcjonalne. 

Ich architektura ma struktur

Ich architektura ma struktur

ę

ę

 

hierarchiczn

hierarchiczn

ą

ą

 

opart

opart

ą

ą

 

na 

na 

makrokom

makrokom

ó

ó

rkach

rkach

 

logicznych

logicznych

kt

kt

ó

ó

rych zawieraj

rych zawieraj

ą

ą

 

od kilkudziesi

od kilkudziesi

ę

ę

ciu do kilkuset. Typowo od czterech do szesnastu 

ciu do kilkuset. Typowo od czterech do szesnastu 

makrokom

makrokom

ó

ó

rek

rek

 

jest po

jest po

łą

łą

czonych w wi

czonych w wi

ę

ę

kszy 

kszy 

blok funkcjonalny

blok funkcjonalny

 

(podobny do 

(podobny do 

pojedynczego uk

pojedynczego uk

ł

ł

adu SPLD). 

adu SPLD). 

Poszczeg

Poszczeg

ó

ó

lne bloki funkcjonalne s

lne bloki funkcjonalne s

ą

ą

 

łą

łą

czone mi

czone mi

ę

ę

dzy sob

dzy sob

ą

ą

 

za pomoc

za pomoc

ą

ą

 

matrycy 

matrycy 

po

po

łą

łą

czeniowej

czeniowej

, kt

, kt

ó

ó

rej zdolno

rej zdolno

ść

ść

 

łą

łą

czeniowa jest wa

czeniowa jest wa

ż

ż

n

n

ą

ą

 

cech

cech

ą

ą

 

uk

uk

ł

ł

ad

ad

ó

ó

w CPLD.

w CPLD.

Uk

Uk

ł

ł

ady CPLD s

ady CPLD s

ą

ą

 

wytwarzane niemal wy

wytwarzane niemal wy

łą

łą

cznie w technologii CMOS. 

cznie w technologii CMOS. 

CPLD

CPLD

Complex

Complex

 

Programmable

Programmable

 

Logic

Logic

 

Devices

Devices

background image

25 marca 2008

Układy programowalne

24

Układy CPLD

Uk

Uk

ł

ł

ady CPLD

ady CPLD

CPLD

CPLD

Complex

Complex

 

Programmable

Programmable

 

Logic

Logic

 

Devices

Devices

I/O

I/O

I/O

I/O

BF

BF

BF

BF

BF

BF

BF

BF

BF

BF

BF

BF

BF

BF

BF

BF

Pr

ogrammable

Pr

ogrammable

interconnectio

n

interconnectio

n

 

matrix

matrix

background image

25 marca 2008

Układy programowalne

25

Układy FPGA

Uk

Uk

ł

ł

ady FPGA

ady FPGA

Na og

Na og

ó

ó

ł

ł

 

uk

uk

ł

ł

ady FPGA zawieraj

ady FPGA zawieraj

ą

ą

 

rozmieszczone matrycowo 

rozmieszczone matrycowo 

bloki logiczne 

bloki logiczne 

CLB

CLB

. Poszczeg

. Poszczeg

ó

ó

lne bloki s

lne bloki s

ą

ą

 

łą

łą

czone ze sob

czone ze sob

ą

ą

 

za po

za po

ś

ś

rednictwem 

rednictwem 

linii trakt

linii trakt

ó

ó

w po

w po

łą

łą

czeniowych 

czeniowych 

(

(

Routing

Routing

Channels

Channels

) oraz 

) oraz 

programowalnych matryc kluczy po

programowalnych matryc kluczy po

łą

łą

czeniowych umieszczonych w miejscu krzy

czeniowych umieszczonych w miejscu krzy

ż

ż

owania si

owania si

ę

ę

 

trakt

trakt

ó

ó

w poziomych i pionowych. Na obrze

w poziomych i pionowych. Na obrze

ż

ż

ach matrycy blok

ach matrycy blok

ó

ó

w logicznych znajduj

w logicznych znajduj

ą

ą

 

si

si

ę

ę

 

programowalne bloki 

programowalne bloki 

IOB 

IOB 

(wej

(wej

ś

ś

ciowo

ciowo

-

-

wyj

wyj

ś

ś

ciowe). 

ciowe). 

Struktury FPGA zawieraj

Struktury FPGA zawieraj

ą

ą

 

od 64 do dziesi

od 64 do dziesi

ą

ą

tk

tk

ó

ó

w tysi

w tysi

ę

ę

cy 

cy 

blok

blok

ó

ó

w logicznych 

w logicznych 

o bardzo zr

o bardzo zr

ó

ó

ż

ż

nicowanej 

nicowanej 

budowie. Bloki logiczne mog

budowie. Bloki logiczne mog

ą

ą

 

by

by

ć

ć

 

bardzo z

bardzo z

ł

ł

o

o

ż

ż

one, jest ich w

one, jest ich w

ó

ó

wczas mniej w uk

wczas mniej w uk

ł

ł

adzie, lub 

adzie, lub 

wzgl

wzgl

ę

ę

dnie proste i jest ich w

dnie proste i jest ich w

ó

ó

wczas wi

wczas wi

ę

ę

cej. 

cej. 

Zazwyczaj z

Zazwyczaj z

ł

ł

o

o

ż

ż

one bloki logiczne zawieraj

one bloki logiczne zawieraj

ą

ą

 

dwie lub wi

dwie lub wi

ę

ę

cej pami

cej pami

ę

ę

ci RAM umo

ci RAM umo

ż

ż

liwiaj

liwiaj

ą

ą

cych 

cych 

tworzenie tablic warto

tworzenie tablic warto

ś

ś

ci funkcji 

ci funkcji 

LUT

LUT

 

(

(

Look

Look

-

-

up

up

Table

Table

) i dwa lub wi

) i dwa lub wi

ę

ę

cej przerzutnik

cej przerzutnik

ó

ó

w. 

w. 

W wi

W wi

ę

ę

kszo

kszo

ś

ś

ci uk

ci uk

ł

ł

ad

ad

ó

ó

w s

w s

ą

ą

 

to tablice czterowej

to tablice czterowej

ś

ś

ciowe (pami

ciowe (pami

ęć

ęć

 

RAM o pojemno

RAM o pojemno

ś

ś

ci 16 bit

ci 16 bit

ó

ó

w). W 

w). W 

uk

uk

ł

ł

adach o prostszej budowie, bloki logiczne zawieraj

adach o prostszej budowie, bloki logiczne zawieraj

ą

ą

 

zwykle dwuwej

zwykle dwuwej

ś

ś

ciowe uk

ciowe uk

ł

ł

ady generacji 

ady generacji 

funkcji kombinacyjnych lub multipleksery czterowej

funkcji kombinacyjnych lub multipleksery czterowej

ś

ś

ciowe i ewentualnie przerzutniki.

ciowe i ewentualnie przerzutniki.

background image

25 marca 2008

Układy programowalne

26

Schemat blokowy układu FPGA

Schemat blokowy uk

Schemat blokowy uk

ł

ł

adu FPGA

adu FPGA

I/O

I/O

Logic 
block

Interconnection switches

IS

IS

I/O

I/O

IS

IS

IS

IS

IS

IS

IS

IS

IS

IS

IS

IS

IS

IS

IS

IS

IS

IS

IS

IS

IS

IS

IS

IS

background image

25 marca 2008

Układy programowalne

27

Układy FPGA

Uk

Uk

ł

ł

ady FPGA

ady FPGA

Programowalne

i specjalizowane

 

układy

 

cyfrowe

Programowalne

Programowalne

specjalizowane

specjalizowane

 

uk

uk

ł

ł

ady

ady

 

cyfrowe

cyfrowe

background image

25 marca 2008

Układy programowalne

28

Field Programmable

 

Gate

 

Arrays

 

(FPGA)

F

F

ield 

ield 

P

P

rogrammable

rogrammable

 

G

G

ate

ate

 

A

A

rrays

rrays

(

(

FPGA

FPGA

)

)

background image

25 marca 2008

Układy programowalne

29

Field programmable gate arrays (FPGA)

Field programmable gate arrays (FPGA)

Field programmable gate arrays (FPGA)

Uk

Uk

ł

ł

ady FPGA w j

ady FPGA w j

ę

ę

zyku polskim okre

zyku polskim okre

ś

ś

lane s

lane s

ą

ą

 

jako programowalne matryce bramkowe.

jako programowalne matryce bramkowe.

S

S

ą

ą

 

to programowalne uk

to programowalne uk

ł

ł

ady cyfrowe wielkiej skali integracji, zawieraj

ady cyfrowe wielkiej skali integracji, zawieraj

ą

ą

ce zbi

ce zbi

ó

ó

programowalnych blok

programowalnych blok

ó

ó

w logicznych (

w logicznych (

Configurabl

Configurabl

 

Logic

Logic

 

Block

Block

) o regularnym rozk

) o regularnym rozk

ł

ł

adzie 

adzie 

topograficznym oraz programowalne po

topograficznym oraz programowalne po

łą

łą

czenia.

czenia.

Uk

Uk

ł

ł

ady FPGA s

ady FPGA s

ą

ą

 

uk

uk

ł

ł

adami o du

adami o du

ż

ż

ej z

ej z

ł

ł

o

o

ż

ż

ono

ono

ś

ś

ci logicznej i s

ci logicznej i s

ą

ą

 

przeznaczone g

przeznaczone g

ł

ł

ó

ó

wnie do zastosowa

wnie do zastosowa

ń

ń

 

systemowych

systemowych

background image

FPGA 

Architecture

 

FPGA 

FPGA 

Architecture

Architecture

background image

25 marca 2008

Układy programowalne

31

FPGA -

 

Generic Structure

FPGA 

FPGA 

-

-

 

Generic Structure

Generic Structure

FPGA building blocks:

FPGA building blocks:

1.

1.

 

Programmable logic blocks

Programmable logic blocks

 

PLB

PLB

 

Implement combinatorial 

Implement combinatorial 

and sequential logic

and sequential logic

2.

2.

 

Programmable interconnect

Programmable interconnect

 

Wires to connect inputs and 

Wires to connect inputs and 

outputs to logic blocks

outputs to logic blocks

3.

3.

 

Programmable I/O blocks 

Programmable I/O blocks 

Special logic blocks at the 

Special logic blocks at the 

periphery of device for 

periphery of device for 

external connections

external connections

I/O

I/O

Logic 
block

Interconnection switches

IS

IS

I/O

I/O

IS

IS

IS

IS

IS

IS

IS

IS

IS

IS

IS

IS

IS

IS

IS

IS

IS

IS

IS

IS

IS

IS

IS

IS

background image

25 marca 2008

Układy programowalne

32

FPGA

FPGA

FPGA

The FPGA 

The FPGA contains 

contains 

versatile

versatile

 

functions, configurable interconnects and 

functions, configurable interconnects and 

an input/output interface

an input/output interface

 

to

to

 

adapt to the user specification.

adapt to the user specification.

I/O 

I/O 

pads

pads

Programmable

Programmable

 

Logic

Logic

 

Blocks

Blocks

Programmable

Programmable

 

Interconnect

Interconnect

 

Points

Points

background image

25 marca 2008

Układy programowalne

33

Other FPGA Building Blocks

Other FPGA Building Blocks

Other FPGA Building Blocks

1.

1.

 

Clock distribution

Clock distribution

2.

2.

 

Embedded memory blocks

Embedded memory blocks

3.

3.

 

Special purpose blocks:

Special purpose blocks:

DSP blocks: 

Hardware multipliers, adders and registers

Embedded microprocessors/microcontrollers
High-speed serial transceivers

background image

25 marca 2008

Układy programowalne

34

Notice that FPGA not only exist as simple components, but also a

Notice that FPGA not only exist as simple components, but also a

s macro

s macro

-

-

blocs in 

blocs in 

system

system

-

-

on

on

-

-

chip

chip

 

designs

designs

.

.

In the case of communication systems, the configurable logic may

 

be dynamically

 

changed to adapt 

to improved communication protocol. In the case of very low power systems, the

 

configurable logic 

may handle several different tasks in series, rather than embedding all corresponding

 

hardware 

that never works in parallel.

System-On-Chip 

S

S

ystem

ystem

-

-

O

O

n

n

-

-

C

C

hip 

hip 

background image

25 marca 2008

Układy programowalne

35

FPGA

FPGA

FPGA

Field programmable gate arrays (FPGA) are specific integrated ci

Field programmable gate arrays (FPGA) are specific integrated ci

rcuits that 

rcuits that 

can be user

can be user

-

-

programmed

programmed

 

easily. 

easily. 

FPGAs

FPGAs

 

allow rapid prototyping

allow rapid prototyping

 

using custom logic structures, and are very

using custom logic structures, and are very

popular for 

popular for limited production products

limited production products

Modern FPGA are extremely dense, with a complexity of 

Modern FPGA are extremely dense, with a complexity of several

several

millions of gates

millions of gates

 

which enable the emulation of very complex hardware such 

which enable the emulation of very complex hardware such 

as parallel microprocessors,

as parallel microprocessors,

 

mixture of processor and signal processing

mixture of processor and signal processing

.

.

One key advantage of FPGA is their 

One key advantage of FPGA is their ability to be

ability to be

 

reprogrammed

reprogrammed

, in order to 

, in order to 

create a completely different hardware by modifying the logic ga

create a completely different hardware by modifying the logic ga

te array.

te array.

background image

25 marca 2008

Układy programowalne

36

Example

 

of

 

2 XOR

Example

Example

 

of

of

 

2 XOR

2 XOR

Programmable

 

pads configured

 

as inputs

Programmable

 

pad

 

configured

 

as output

Interconnect

Interconnect

 

lines

lines

Programmable

Programmable

 

logic

logic

 

block

block

 

configured

configured

 

as 

as 

XOR

XOR

Programmable

Programmable

 

interconnect

interconnect

 

points

points

A

A

B

B

C

C

A

B

C

S

XOR

XOR

XOR

XOR

background image

25 marca 2008

Układy programowalne

37

The

 

programmable

 

logic

 

block

 

must

 

be able

 

to implement

 

all

 

basic

 

logic

 

functions, that

 

is

 

INV, AND, NAND, OR, NOR, 

XOR, XNOR, etc... 

Several

 

approaches

 

are

 

used

 

in

 

FPGA industry

 

to achieve

 

this

 

goal. 

The

 

first

 

approach

 

consists

 

in

 

the

 

use

use

 

of

of

 

multiplexer

multiplexer

the

 

second

 

one in

 

the

 

use

use

 

of

of

 

look

look

-

-

up

up

 

tables

tables

.

Configurable Programmable

 

Logic Blocks

Configurable 

Configurable 

Programmable

Programmable

 

Logic 

Logic 

Blocks

Blocks

background image

25 marca 2008

Układy programowalne

38

Use

 

of

Multiplexer

Use

Use

 

of

of

Multiplexer

Multiplexer

Configurable Logic Circuits

Configurable Logic Circuits

Configurable Logic Circuits

background image

25 marca 2008

Układy programowalne

39

Configurable Logic Circuits

Configurable Logic Circuits

Configurable Logic Circuits

AND

AND

background image

25 marca 2008

Układy programowalne

40

Configurable Logic Circuits

Configurable Logic Circuits

Configurable Logic Circuits

OR

OR

background image

25 marca 2008

Układy programowalne

41

Configurable Logic Circuits

Configurable Logic Circuits

Configurable Logic Circuits

Not

Not

Buffer

Buffer

background image

25 marca 2008

Układy programowalne

42

Configurable Logic Circuits

Configurable Logic Circuits

Configurable Logic Circuits

Although NOT, AND and OR are directly available, other functions

 

such as NAND, NOR 

and XOR

 

cannot be built directly using a single 2-input multiplexer, but need at least 

two multiplexer circuits.

background image

25 marca 2008

Układy programowalne

43

Configurable Logic Circuits

Configurable Logic Circuits

Configurable Logic Circuits

2

2

-

-

Input XOR

Input XOR

background image

25 marca 2008

Układy programowalne

44

Use

 

of

 

Multiplexer

Use

Use

 

of

of

 

Multiplexer

Multiplexer

3

3

-

-

input 

input 

multiplexer

multiplexer

 

block

block

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

0/1

X1

X2

X3

S

B

B

A   

A   

Configuration memory

cells

background image

25 marca 2008

Układy programowalne

45

Adder

Adder

Adder

In the case of the 2

 

XOR, the set of values of 

S

given in the truth-table, 

We must assign manually

 

the 

S

truth-table to the

 

multiplexer

 

inputs. Then 

S

 

produces the XOR function of inputs 

A

and

 

C

.

C

B

A

S

0

0

0

0

0

0

1

1

0

1

0

1

0

1

1

0

1

0

0

1

1

0

1

0

1

1

0

0

1

1

1

1

A

A

B

B

C

C

F

F

background image

25 marca 2008

Układy programowalne

46

Configurable Logic Circuits

Configurable Logic Circuits

Configurable Logic Circuits

Adder

Adder

0

0

1

1

1

1

0

0

1

1

0

0

0

0

1

1

background image

25 marca 2008

Układy programowalne

47

Use

 

of

Look

 

Up

 

Table

Use

Use

 

of

of

Look

Look

 

Up

Up

 

Table

Table

Configurable Logic Circuits

Configurable Logic Circuits

Configurable Logic Circuits

background image

25 marca 2008

Układy programowalne

48

Look-Up-Table

Look

Look

-

-

Up

Up

-

-

Table

Table

The look

look

-

-

up table (LUT)

up table (LUT)

 

is by far the most versatile circuit to create a configurable logic function. 

The

The

 

3 bit 

3 bit 

look

look

-

-

up table has 3 main inputs 

up table has 3 main inputs 

F0

F0

,

,

F1 

F1 

and 

and 

F2

F2

. The main output is 

. The main output is 

Fout

Fout

, which is a

, which is a

 

logical 

logical 

function of 

function of 

F0

F0

F1 

F1 

and 

and 

F2. 

F2. 

The output 

Fout

is defined by the values given to 

Value[0]..Value[7].

The three values 

F0

,

F1

F2 

create a 3-bit address 

between 0 and 7, so that 

Fout

gets the value 

of

 

Value[i]. 

In the example the input creates the number 5, so Value[5] is routed to 

Fout

. The

 

table below gives 

Value[i] 

for the most common logical functions of 

F0

,

F1 

and 

F2.

background image

25 marca 2008

Układy programowalne

49

Adder

Adder

Adder

In the case of the 2

 

XOR, the set of values of 

S

given in the truth-table, 

must be

 

assigned to 

Value[0]..Value[7]. 

We must assign manually

 

the 

S

 

truth-table to each of the 8 values. Then 

S

produces the XOR function of 

inputs 

A

and

 

C

.

C

B

A

S

Assigned

 

to

0

0

0

0

Value

 

[0]

0

0

1

1

Value

 

[1]

0

1

0

1

Value

 

[2]

0

1

1

0

Value

 

[3]

1

0

0

1

Value

 

[4]

1

0

1

0

Value

 

[5]

1

1

0

0

Value

 

[6]

1

1

1

1

Value

 

[7]

A

A

B

B

C

C

F

F

background image

25 marca 2008

Układy programowalne

50

Look-Up-Table

Look

Look

-

-

Up

Up

-

-

Table

Table

We must assign manually

 

the 

Fout

 

truth-table to each of the 8 value. 

Then 

Fout

produces the XOR function 

of inputs 

F0

F1 

and

 

F2

.

F2

F1

F0

Fout

Assigned

 

to

0

0

0

0

Value

 

[0]

0

0

1

1

Value

 

[1]

0

1

0

1

Value

 

[2]

0

1

1

0

Value

 

[3]

1

0

0

1

Value

 

[4]

1

0

1

0

Value

 

[5]

1

1

0

0

Value

 

[6]

1

1

1

1

Value

 

[7]

background image

25 marca 2008

Układy programowalne

51

Look-Up-Table

Look

Look

-

-

Up

Up

-

-

Table

Table

We must assign manually

 

the 

Fout

 

truth-table to each of the 8 value. 

Then 

Fout

produces the XOR function 

of inputs 

F0

F1 

and

 

F2

.

F2

F1

F0

Fout

Assigned

 

to

0

0

0

0

Value

 

[0]

0

0

1

1

Value

 

[1]

0

1

0

1

Value

 

[2]

0

1

1

0

Value

 

[3]

1

0

0

1

Value

 

[4]

1

0

1

0

Value

 

[5]

1

1

0

0

Value

 

[6]

1

1

1

1

Value

 

[7]

background image

25 marca 2008

Układy programowalne

52

Memory

 

points

Memory

Memory

 

points

points

Memory points are essential components of the configurable logic

Memory points are essential components of the configurable logic

 

blocks.

blocks.

 

The memory point is 

The memory point is 

used to

used to

 

store one logical value, corresponding to the logic truth table.

store one logical value, corresponding to the logic truth table.

For a 3

For a 3

-

-

input function (F0,F1,F2 in the

input function (F0,F1,F2 in the

 

previous LUT), we need an array of 8 memory points to 

previous LUT), we need an array of 8 memory points to 

store the information Value[0]..Value[7]. 

store the information Value[0]..Value[7]. 

There

There

 

exist here also several approaches to store one single bit of in

exist here also several approaches to store one single bit of in

formation. 

formation. 

One 

One 

of

of

 

them

them

 

consists of D

consists of D

 

flip

flip

-

-

flops

flops

. Each register stores one logical information Value[i]. The D

. Each register stores one logical information Value[i]. The D

 

flip

flip

-

-

flops

flops

 

are 

are 

chained in order to limit the control signals to one clock 

chained in order to limit the control signals to one clock 

ClockProg

ClockProg

 

and one data signal 

and one data signal 

DataProg

DataProg

.

.

The logical data Value[i] is fully programmed by a word of 8 bit

The logical data Value[i] is fully programmed by a word of 8 bit

s sent in series to the signal 

s sent in series to the signal 

DataProg

DataProg

Most FPGA designs use D

Most FPGA designs use D

 

flip

flip

-

-

flops

flops

 

to store the LUT configuration. Notice that the configuration 

to store the LUT configuration. Notice that the configuration 

is lost when

is lost when

 

the power supply is down.

the power supply is down.

V7       V6       V5       V4       V3       V2       V1       V

V7       V6       V5       V4       V3       V2       V1       V

0

0

background image

25 marca 2008

Układy programowalne

53

Look-Up-Table

Look

Look

-

-

Up

Up

-

-

Table

Table

F2

F1

F0

Fout

Assigned

 

to

0

0

0

0

Value

 

[0]

0

0

1

1

Value

 

[1]

0

1

0

1

Value

 

[2]

0

1

1

0

Value

 

[3]

1

0

0

1

Value

 

[4]

1

0

1

0

Value

 

[5]

1

1

0

0

Value

 

[6]

1

1

1

1

Value

 

[7]

background image

25 marca 2008

Układy programowalne

54

Programmable Logic Block

Programmable Logic Block

Programmable Logic Block

The programmable logic block consists of a look

The programmable logic block consists of a look

-

-

up table, a D

up table, a D

-

-

register and some multiplex

register and some multiplex

e

e

rs

rs

There

There

 

exist numerous possible structures for logic blocks. We present 

exist numerous possible structures for logic blocks. We present 

a simple structure which

a simple structure which

 

has some similarities with the 

has some similarities with the 

Xilinx

Xilinx

 

XC5200 series. The configurable block contains two active 

XC5200 series. The configurable block contains two active 

structures, the L

structures, the L

UT

UT

 

and the D

and the D

-

-

reg

reg

, that may work

, that may work

 

independently or be mixed together.

independently or be mixed together.

The output of the look

The output of the look

-

-

up

up

-

-

table is directly connected to the block output 

table is directly connected to the block output 

Fout

Fout

. The output can 

. The output can 

also serve

also serve

 

as the input data for the D

as the input data for the D

-

-

register, thanks to the multiplex

register, thanks to the multiplex

e

e

r controlled by 

r controlled by 

DataIn_Fout

DataIn_Fout

. The 

. The 

DataOut

DataOut

 

net can simply pass the signal 

net can simply pass the signal 

DataIn

DataIn

, in that case the cell is 

, in that case the cell is 

transparent. The 

transparent. The 

DataOut

DataOut

 

signal can also

signal can also

 

pass the signal 

pass the signal 

nQ

nQ

, depending on the multiplex

, depending on the multiplex

e

e

r status 

r status 

controlled by 

controlled by 

DataIn_nQ

DataIn_nQ

background image

25 marca 2008

Układy programowalne

55

Programmable Logic Block

Programmable Logic Block

Programmable Logic Block

The

The

 

block

block

 

now

now

 

consists

consists

 

of

of

 

the

the

 

LUT 

LUT 

and

and

 

the

the

 

D

D

-

-

register. We 

register. We 

chain

chain

 

the

the

 

information

information

 

DataIn_Fout

DataIn_Fout

 

and

and

 

DataIn_nQ

DataIn_nQ

 

on 

on 

the

the

 

path

path

 

of

of

 

the

the

 

shift

shift

 

register by 

register by 

adding

adding

 

supplementary

supplementary

 

Dreg

Dreg

 

cells

cells

Each

Each

 

Dreg

Dreg

 

still

still

 

uses

uses

 

the

the

 

same 

same 

clock

clock

 

ClockProg

ClockProg

 

and

and

 

chained

chained

 

input

input

 

data 

data 

DataProg

DataProg

The configuring of the block is achieved thanks to 10 active clo

The configuring of the block is achieved thanks to 10 active clo

ck edges on 

ck edges on 

ClockProg

ClockProg

, and 10 serial 

, and 10 serial 

data

data

 

on 

on 

DataProg

DataProg

. The chain of Dreg starts at Dreg0 (Upper Dreg, which produced 

. The chain of Dreg starts at Dreg0 (Upper Dreg, which produced 

Value[0])

Value[0])

 

and 

and 

stops at Dreg9 (which produced 

stops at Dreg9 (which produced 

DataIn/nQ

DataIn/nQ

). The information that flows at

). The information that flows at

 

the far end of the 

the far end of the 

register chain is defined at the first cycle, while the closest 

register chain is defined at the first cycle, while the closest 

register is configured by the

register is configured by the

 

data 

data 

present at the last active clock edge.,

present at the last active clock edge.,

background image

25 marca 2008

Układy programowalne

56

Programmable Logic Block

Programmable Logic Block

Programmable Logic Block

The

The

 

block

block

 

now

now

 

consists

consists

 

of

of

 

the

the

 

LUT 

LUT 

and

and

 

the

the

 

D

D

-

-

register. We 

register. We 

chain

chain

 

the

the

 

information

information

 

DataIn_Fout

DataIn_Fout

 

and

and

 

DataIn_nQ

DataIn_nQ

 

on 

on 

the

the

 

path

path

 

of

of

 

the

the

 

shift

shift

 

register by 

register by 

adding

adding

 

supplementary

supplementary

 

Dreg

Dreg

 

cells

cells

Each

Each

 

Dreg

Dreg

 

still

still

 

uses

uses

 

the

the

 

same 

same 

clock

clock

 

ClockProg

ClockProg

 

and

and

 

chained

chained

 

input

input

 

data 

data 

DataProg

DataProg

The configuring of the block is achieved thanks to 10 active clo

The configuring of the block is achieved thanks to 10 active clo

ck edges on 

ck edges on 

ClockProg

ClockProg

, and 10 serial 

, and 10 serial 

data

data

 

on 

on 

DataProg

DataProg

. The chain of Dreg starts at Dreg0 (Upper Dreg, which produced 

. The chain of Dreg starts at Dreg0 (Upper Dreg, which produced 

Value[0])

Value[0])

 

and 

and 

stops at Dreg9 (which produced 

stops at Dreg9 (which produced 

DataIn/nQ

DataIn/nQ

). The information that flows at

). The information that flows at

 

the far end of the 

the far end of the 

register chain is defined at the first cycle, while the closest 

register chain is defined at the first cycle, while the closest 

register is configured by the

register is configured by the

 

data 

data 

present at the last active clock edge.,

present at the last active clock edge.,

background image

25 marca 2008

Układy programowalne

57

Application

 

of the FPGA circuits 

Full-Adder Example

A

A

pplication

pplication

 

of the FPGA circuits 

of the FPGA circuits 

Full

Full

-

-

Adder Example

Adder Example

The

The

 

implementation

implementation

 

of

of

 

the

the

 

CARRY 

CARRY 

and

and

 

SUM 

SUM 

function

function

 

is

is

 

achived

achived

 

by 

by 

programming

programming

 

two

two

 

look

look

-

-

up

up

 

tables

tables

 

according

according

 

to 

to 

the

the

 

truthtables

truthtables

One 

One 

programmable

programmable

 

logic

logic

 

block

block

 

Block1 

Block1 

supports

supports

 

the

the

 

generation

generation

 

of

of

 

the

the

 

sum for 

sum for 

given

given

 

logic

logic

 

values

values

 

of

of

 

the

the

 

inputs

inputs

 

A,B 

A,B 

and

and

 

C. 

C. 

The

The

 

information

information

 

needed

needed

 

to 

to 

configure

configure

 

Block1 as a Sum 

Block1 as a Sum 

function

function

 

(3

(3

-

-

input XOR) 

input XOR) 

is

is

 

given

given

 

in

in

 

table

table

Notice

Notice

 

that

that

 

we 

we 

only

only

 

use

use

 

the

the

 

LUT 

LUT 

in

in

 

this

this

 

programmable

programmable

 

logic

logic

 

block

block

The

The

 

Dreg

Dreg

 

is

is

 

not 

not 

active

active

and

and

 

we 

we 

only

only

 

exploit

exploit

 

the

the

 

output

output

 

of

of

 

the

the

 

LUT 

LUT 

Fout

Fout

which

which

 

is

is

 

configured

configured

 

as 

as 

the

the

 

Sum.

Sum.

F=A+B+C

F=A+B+C

S

S

0

0

SUM

SUM

S

S

1

1

Carry

Carry

ABC

ABC

0+0+0

0+0+0

0

0

0

0

1+0+0

1+0+0

1

1

0

0

0+1+0

0+1+0

1

1

0

0

0+0+1

0+0+1

1

1

0

0

1+1+0

1+1+0

0

0

1

1

1+0+1

1+0+1

0

0

1

1

0+1+1

0+1+1

0

0

1

1

The

The

 

signal

signal

 

Sum 

Sum 

propagates

propagates

 

outside

outside

 

the

the

 

block

block

 

to 

to 

the

the

 

output

output

 

interface

interface

 

region by 

region by 

exploiting

exploiting

 

the

the

 

interconnect

interconnect

 

resources

resources

 

and

and

 

switching

switching

 

matrix

matrix

The

The

 

other

other

 

programmable

programmable

 

logic

logic

 

block

block

 

Block2 

Block2 

supports

supports

 

the

the

 

generation

generation

 

of

of

 

the

the

 

signal

signal

 

Carry

Carry

from

from

 

the

the

 

same 

same 

inputs

inputs

 

A,B 

A,B 

and

and

 

C. 

C. 

The

The

 

result

result

 

Carry

Carry

 

is

is

 

exported

exported

 

to 

to 

the

the

 

output

output

 

interface

interface

 

region as for 

region as for 

the

the

 

Sum 

Sum 

signal

signal

Again

Again

in

in

 

this

this

 

block

block

only

only

 

the

the

 

LUT 

LUT 

is

is

 

active

active

.

.

background image

25 marca 2008

Układy programowalne

58

Application

 

of the FPGA circuits 

Full-Adder Example

A

A

pplication

pplication

 

of the FPGA circuits 

of the FPGA circuits 

Full

Full

-

-

Adder Example

Adder Example

Serial data 

Serial data 

used

used

 

to 

to 

configure

configure

 

the

the

 

logic

logic

 

blocks

blocks

 

1&2 as SUM 

1&2 as SUM 

and

and

 

CARRY

CARRY

The programming sequence is contained in the piece

The programming sequence is contained in the piece

-

-

wise

wise

-

-

linear symbols ProgBlock1 and 

linear symbols ProgBlock1 and 

ProgBlcok2.

ProgBlcok2.

 

As seen in the chronograms, the program clock 

As seen in the chronograms, the program clock 

ClockPgm

ClockPgm

 

is only active at the 

is only active at the 

initialization

initialization

 

phase, to shift the logic information to the memory points insid

phase, to shift the logic information to the memory points insid

e the blocks which 

e the blocks which 

configure each

configure each

 

multiplex

multiplex

e

e

r. 

r. 

Block

Block

 

1   Sum 

1   Sum 

of

of

 

F0, F1, F2

F0, F1, F2

C

C

ycle

ycle

 

1

1

2

2

3

3

4

4

5

5

6

6

7

7

8

8

9

9

10

10

DataIn

DataIn

(

(

nQ

nQ

DataIn

DataIn

 

(

(

Fout

Fout

)

)

Val (7)

Val (7)

Val (6)

Val (6)

Val (5)

Val (5)

Val (4)

Val (4)

Val (3)

Val (3)

Val (2)

Val (2)

Val (1)

Val (1)

Val (0)

Val (0)

0

0

0

0

1

1

0

0

0

0

1

1

0

0

1

1

1

1

0

0

Block

Block

 

2   

2   

Carry

Carry

 

of

of

 

F0, F1, F2

F0, F1, F2

C

C

ycle

ycle

 

1

1

2

2

3

3

4

4

5

5

6

6

7

7

8

8

9

9

10

10

DataIn

DataIn

(

(

nQ

nQ

DataIn

DataIn

 

(

(

Fout

Fout

)

)

Val (7)

Val (7)

Val (6)

Val (6)

Val (5)

Val (5)

Val (4)

Val (4)

Val (3)

Val (3)

Val (2)

Val (2)

Val (1)

Val (1)

Val (0)

Val (0)

0

0

0

0

1

1

1

1

1

1

0

0

1

1

0

0

0

0

0

0

background image

25 marca 2008

Układy programowalne

59

Interconnection between blocks

-Programmable Interconnect Point (PIP)

Interconnection between blocks

Interconnection between blocks

-

-

Programmable Interconnect Point (PIP)

Programmable Interconnect Point (PIP)

Programmable

Programmable

 

Interconnect

Interconnect

 

Point 

Point 

consists of a configurable bridge between two 

consists of a configurable bridge between two 

interconnects.

interconnects.

background image

25 marca 2008

Układy programowalne

60

Programmable

Programmable

 

Interconnect

Interconnect

 

Point 

Point 

consists of a configurable bridge between two 

consists of a configurable bridge between two 

interconnects.

interconnects.

The bridge can be built from a transmission gate, controlled onc

The bridge can be built from a transmission gate, controlled onc

e again by a D

e again by a D

-

-

reg

reg

 

cell

cell

.

.

When the register information contains a 0, the transmission gat

When the register information contains a 0, the transmission gat

e is off and no link exists 

e is off and no link exists 

between

between

 

Interco1 and Interco2. When the information held by the register

Interco1 and Interco2. When the information held by the register

 

is 1, the transmission 

is 1, the transmission 

gate establishes a

gate establishes a

 

resistive link between Interco1 and Interco2. The resistance val

resistive link between Interco1 and Interco2. The resistance val

ue is around 

ue is around 

100 

100 

.

.

Interconnection between blocks

-Programmable Interconnect Point (PIP)

Interconnection between blocks

Interconnection between blocks

-

-

Programmable Interconnect Point (PIP)

Programmable Interconnect Point (PIP)

background image

25 marca 2008

Układy programowalne

61

Interconnection between blocks

-

 

Switching Matrix

Interconnection between blocks

Interconnection between blocks

-

-

 

Switching Matrix

Switching Matrix

The switching matrix

The switching matrix

 

is a sophisticated programmable interconnect point, which enabl

is a sophisticated programmable interconnect point, which enabl

es a 

es a 

wide range of

wide range of

 

routing combinations within a single interconnect crossing. 

routing combinations within a single interconnect crossing. 

The matrix includes 6 configurable 

The matrix includes 6 configurable 

bridges between the two main 

bridges between the two main 

interconnects.

interconnects.

Examples of 3x3 switching matrix 

Examples of 3x3 switching matrix 

is

is

 

given in figure. The routing 

given in figure. The routing 

possibilities are

possibilities are

 

numerous, which 

numerous, which 

improves the configurability of the 

improves the configurability of the 

logic blocs.

logic blocs.

background image

25 marca 2008

Układy programowalne

62

Interconnection between blocks

-

 

Switching Matrix

Interconnection between blocks

Interconnection between blocks

-

-

 

Switching Matrix

Switching Matrix

Implementation

Implementation

 

of

of

 

the

the

 

Switching

Switching

 

Matrix

Matrix

From

From

 

practical

practical

 

point 

point 

of

of

 

view

view

the

the

 

switching

switching

 

matrix

matrix

 

can

can

 

be 

be 

built

built

 

from

from

 

regrouping

regrouping

 

of

of

 

transmission

transmission

 

gates

gates

Each

Each

 

transmission

transmission

 

gate

gate

 

is

is

 

controlled

controlled

 

by 

by 

an

an

 

associated

associated

 

Dreg

Dreg

 

cell

cell

which

which

 

memorizes

memorizes

 

the

the

 

desired

desired

 

configuration

configuration

The

The

 

Dreg

Dreg

 

cells

cells

 

are

are

 

chained

chained

 

so

so

 

that

that

 

one single 

one single 

input

input

 

DataIn

DataIn

 

and

and

 

one 

one 

clock

clock

 

LoadClock

LoadClock

 

are

are

 

enough

enough

 

to 

to 

configure

configure

 

the

the

 

matrix

matrix

.

.

0         0        

0         0        1

1

 

1

1

 

0        0

0        0

background image

25 marca 2008

Układy programowalne

63

Interconnection between blocks

-

 

Array of Blocs

Interconnection between blocks

Interconnection between blocks

-

-

 

Array of Blocs

Array of Blocs

The

The

 

configurable

configurable

 

blocs

blocs

 

are

are

 

associated

associated

 

with

with

 

programmable

programmable

 

interconnect

interconnect

 

points

points

 

and

and

 

switching

switching

 

matrix

matrix

 

to 

to 

create

create

 

complete

complete

 

configurable

configurable

 

core

core

An

An

 

example

example

 

of

of

 

double 

double 

configurable

configurable

 

block

block

 

and

and

 

its

its

 

associated

associated

background image

25 marca 2008

Układy programowalne

64

Application

 

of the FPGA circuits

Full-Adder Example

A

A

pplication

pplication

 

of the FPGA circuits

of the FPGA circuits

Full

Full

-

-

Adder Example

Adder Example

The routing of the signals A,B and C as well as Sum and Carry ha

The routing of the signals A,B and C as well as Sum and Carry ha

s been done manually. In reality, 

s been done manually. In reality, 

specific placement/routing tools are provided to generate the

specific placement/routing tools are provided to generate the

 

electrical structure automatically 

electrical structure automatically 

from the initial schematic diagram, which avoids manual errors a

from the initial schematic diagram, which avoids manual errors a

nd

nd

 

limits conflicts or omissions.

limits conflicts or omissions.

background image

25 marca 2008

Układy programowalne

65

Application

 

of the FPGA circuits

Full-Adder Example

A

A

pplication

pplication

 

of the FPGA circuits

of the FPGA circuits

Full

Full

-

-

Adder Example

Adder Example

The routing of the signals A,B and C as well as Sum and Carry ha

The routing of the signals A,B and C as well as Sum and Carry ha

s been done manually. In reality, 

s been done manually. In reality, 

specific placement/routing tools are provided to generate the

specific placement/routing tools are provided to generate the

 

electrical structure automatically 

electrical structure automatically 

from the initial schematic diagram, which avoids manual errors a

from the initial schematic diagram, which avoids manual errors a

nd

nd

 

limits conflicts or omissions.

limits conflicts or omissions.

background image

25 marca 2008

Układy programowalne

66

Application

 

of the FPGA circuits

Clock Divider Example

A

A

pplication

pplication

 

of the FPGA circuits

of the FPGA circuits

Clock Divider Example

Clock Divider Example

A second example is proposed as an application of the FPGA circu

A second example is proposed as an application of the FPGA circu

its. It concerns the clock division. 

its. It concerns the clock division. 

We

We

 

recall the general structure and the typical chronograms of the 

recall the general structure and the typical chronograms of the 

clock division by four,

clock division by four,

 

which 

which 

requires two Dreg cells, with a feedback from the output ~Q to t

requires two Dreg cells, with a feedback from the output ~Q to t

he input D.

he input D.

background image

25 marca 2008

Układy programowalne

67

Application

 

of the FPGA circuits

Clock Divider Example

A

A

pplication

pplication

 

of the FPGA circuits

of the FPGA circuits

Clock Divider Example

Clock Divider Example

Not used

Not used

background image

25 marca 2008

Układy programowalne

68

Application

 

of the FPGA circuits

Clock Divider Example

A

A

pplication

pplication

 

of the FPGA circuits

of the FPGA circuits

Clock Divider Example

Clock Divider Example

Clk

Clk

 

prog

prog

Data 

Data 

prog

prog

background image

25 marca 2008

Układy programowalne

69

Application

 

of the FPGA circuits

Clock Divider Example

A

A

pplication

pplication

 

of the FPGA circuits

of the FPGA circuits

Clock Divider Example

Clock Divider Example

Each programmable

Each programmable

 

logic block is configured as a single stage clock divider. The i

logic block is configured as a single stage clock divider. The i

nformation 

nformation 

needed to configure Block1 as a

needed to configure Block1 as a

 

simple Dreg function is given in table. 

simple Dreg function is given in table. 

This serial data information creates a direct path from 

This serial data information creates a direct path from 

DataIn

DataIn

 

to input D of the Dreg cell, while 

to input D of the Dreg cell, while 

nQ

nQ

 

propagates to 

propagates to 

DataOut

DataOut

.

.

 

Notice that the look

Notice that the look

-

-

up

up

 

table is inactive in this configuration.

table is inactive in this configuration.

Block

Block

 

1   

1   

DataOut

DataOut

=

=

nQ

nQ

, D=

, D=

DataIN

DataIN

C

C

ycle

ycle

 

1

1

2

2

3

3

4

4

5

5

6

6

7

7

8

8

9

9

10

10

DataIn

DataIn

(

(

nQ

nQ

DataIn

DataIn

 

(

(

Fout

Fout

)

)

Val (7)

Val (7)

Val (6)

Val (6)

Val (5)

Val (5)

Val (4)

Val (4)

Val (3)

Val (3)

Val (2)

Val (2)

Val (1)

Val (1)

Val (0)

Val (0)

1

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Block

Block

 

2

2

 

DataOut

DataOut

=

=

nQ

nQ

, D=

, D=

DataIN

DataIN

C

C

ycle

ycle

 

1

1

2

2

3

3

4

4

5

5

6

6

7

7

8

8

9

9

10

10

DataIn

DataIn

(

(

nQ

nQ

DataIn

DataIn

 

(

(

Fout

Fout

)

)

Val (7)

Val (7)

Val (6)

Val (6)

Val (5)

Val (5)

Val (4)

Val (4)

Val (3)

Val (3)

Val (2)

Val (2)

Val (1)

Val (1)

Val (0)

Val (0)

1

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

background image

25 marca 2008

Układy programowalne

70

Application

 

of the FPGA circuits

Clock Divider Example

A

A

pplication

pplication

 

of the FPGA circuits

of the FPGA circuits

Clock Divider Example

Clock Divider Example

Outside the programmable block, the signal 

Outside the programmable block, the signal 

nQ

nQ

 

propagates to the input 

propagates to the input 

DataIn

DataIn

The other programmable logic block Block2 is also programmed as

The other programmable logic block Block2 is also programmed as

 

a Dreg circuit with a feedback 

a Dreg circuit with a feedback 

from 

from 

nQ

nQ

 

to 

to 

DataIn

DataIn

.

.

background image

25 marca 2008

Układy programowalne

71

Application

 

of the FPGA circuits

Clock Divider Example

A

A

pplication

pplication

 

of the FPGA circuits

of the FPGA circuits

Clock Divider Example

Clock Divider Example

The

The

 

first

first

 

nanoseconds

nanoseconds

 

are

are

 

dedicated

dedicated

 

to 

to 

the

the

 

programming

programming

 

of

of

 

the

the

 

blocks

blocks

Once

Once

 

properly

properly

 

configured

configured

the

the

 

counter

counter

 

starts

starts

 

to 

to 

work

work

 

according

according

 

to 

to 

the

the

 

specifications

specifications

Notice

Notice

 

the

the

 

very

very

 

important

important

 

delay

delay

 

in

in

 

responding

responding

 

to 

to 

the

the

 

active

active

 

edges

edges

which

which

 

is

is

 

due

due

 

to 

to 

the

the

 

intrinsic

intrinsic

 

complexity

complexity

 

of

of

 

the

the

 

configuration

configuration

 

block

block

and

and

 

to 

to 

the

the

 

long

long

 

interconnect

interconnect

 

delay

delay

 

through

through

 

the

the

 

connection

connection

 

points

points

 

and

and

 

switching

switching

 

matrix

matrix

.

.

Timing 

Timing 

of

of

 

the

the

 

clock

clock

 

divider

divider

 

circuit

circuit


Document Outline