MSE11Programowalne i specjalistyczne uklady cyfrowe

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

i

i

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

ó

ó

w

w

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

i

i

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

ó

ó

w

w

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

ó

ó

w

w

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

ą

ą

w

w

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

ń

ń

z

z

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

ń

ń

z

z

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

ł

ł

u

u

wej

wej

ś

ś

ciowego nie

ciowego nie

zanegowanego

zanegowanego

3.

3.

Podawanie sygna

Podawanie sygna

ł

ł

u

u

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

ó

ó

w

w

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

i

i

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

ó

ó

r

r

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

C

C

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

,

B

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

i

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

,

B

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

2

2

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

2

2

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

a

a

practical

practical

point

point

of

of

view

view

,

,

the

the

switching

switching

matrix

matrix

can

can

be

be

built

built

from

from

a

a

regrouping

regrouping

of

of

6

6

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

a

a

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


Wyszukiwarka

Podobne podstrony:
13 Programowalne i Specjalistyczne Układy Cyfrowe
IO11Programowalne i specjalistyczne uklady cyfrowe
116 8, układy cyfrowe
Układy cyfrowe i systemy wbudowane 1 SPRAWOZDANIE 2
Układy cyfrowe i systemy wbudowane 1 SPRAWOZDANIE 6
uklady cyfrowe
kolokwium drugie uklady cyfrowe 2003
Układy cyfrowe
VHDL ściąga 2, Uc2- uklady cyfrowe,sciagi, wyklady
Cw 24 Uklady cyfrowe id 122415 Nieznany
VHDL ściąga, Uc2- uklady cyfrowe,sciagi, wyklady
Sprawozdanie Ukłądy cyfrowe
sciaga z układy cyfrowe
Układy cyfrowe spis?łość
kolokwium pierwsze uklady cyfrowe, ZiIP, inne kierunki, 3 sem, Technika cyfrowa, Zal

więcej podobnych podstron