background image

Programowalne 

Programowalne 

Programowalne 

Programowalne 

Programowalne 

Programowalne 

i specjalizowane 

i specjalizowane 

Programowalne 

Programowalne 

i specjalizowane 

i specjalizowane 

i specjalizowane 

i specjalizowane 

układy cyfrowe

układy cyfrowe

i specjalizowane 

i specjalizowane 

układy cyfrowe

układy cyfrowe

układy cyfrowe

układy cyfrowe

układy cyfrowe

układy cyfrowe

6 marca 2011

Wojciech Kucewicz 

2

background image

Kl

fik j  

Kl

fik j  

Kl

fik j  

Kl

fik j  

Klasyfikacja 

Klasyfikacja 

k dó  l

h

k dó  l

h

Klasyfikacja 

Klasyfikacja 

k dó  l

h

k dó  l

h

układów logicznych

układów logicznych

układów logicznych

układów logicznych

6 marca 2011

Wojciech Kucewicz 

3

background image

Klasyfikacja układów logicznych

Klasyfikacja układów logicznych

Klasyfikacja układów logicznych

Klasyfikacja układów logicznych

ASIC 

ASIC -- Application

Application Specific

Specific Integrated

Integrated Circuits

Circuits, 

specjalizowane układy scalone, projektowane 

specjalizowane układy scalone, projektowane 

indywidualnie do konkretnego zastosowania, na zamówienie producentów urządzeń elektronicznych.

indywidualnie do konkretnego zastosowania, na zamówienie producentów urządzeń elektronicznych.

Full

Full Custom

Custom –– Układy ASIC, w których projektant projektuje wszystkie elementy układu scalonego 

Układy ASIC, w których projektant projektuje wszystkie elementy układu scalonego 

poczynając od topologii 

poczynając od topologii tranzystorów i połączeń 

tranzystorów i połączeń między nimi wyprowadzeń.

między nimi wyprowadzeń.

Logic 

Logic 

circuits

circuits

Standard

Standard

Logic

Logic

ASIC

ASIC

Gate Array

Gate Array

PLD

PLD

Standard 

Standard 

Cell IC

Cell IC

Full Custom 

Full Custom 

IC

IC

SPLD

SPLD

(PAL)

(PAL)

CPLD

CPLD

FPGA

FPGA

background image

VLSI Design Flow

VLSI Design Flow

VLSI Design Flow

VLSI Design Flow

VLSI Design Flow

VLSI Design Flow

Full Custom

Full Custom

VLSI Design Flow

VLSI Design Flow

Full Custom

Full Custom

Full Custom

Full Custom

Full Custom

Full Custom

6 marca 2011

Wojciech Kucewicz 

5

background image

VLSI Design Flow

VLSI Design Flow

VLSI Design Flow

VLSI Design Flow

System Idea

System Idea

Identifying SubBlocks

Identifying SubBlocks

Bottom

Bottom--Up full custom

Up full custom

pp

6 marca 2011

Wojciech Kucewicz 

6

background image

VLSI Design Flow (Full Custom)

VLSI Design Flow (Full Custom)

VLSI Design Flow (Full Custom)

VLSI Design Flow (Full Custom)

Sub

Sub--block Schematic

block Schematic

Transistor Level Simulation

Transistor Level Simulation

Layout

Layout

Extraction

Extraction

Layout vs Schematic Check

Layout vs Schematic Check

Layout vs.Schematic Check

Layout vs.Schematic Check

Post Layout Simulation

Post Layout Simulation

6 marca 2011

Wojciech Kucewicz 

7

background image

VLSI Design Flow

VLSI Design Flow

VLSI Design Flow

VLSI Design Flow

Placement and routing

Placement and routing

Top Level Verification

Top Level Verification

Tape out

Tape out

Prototyping

Prototyping

Tests

Tests

Tests

Tests

Fabrification

Fabrification

6 marca 2011

Wojciech Kucewicz 

8

Fabrification

Fabrification

background image

Full Custom

Full Custom

Full Custom

Full Custom

Advantages

Advantages

•• chip area fully used 

chip area fully used 

p

y

p

y

•• faster 

faster 

(shorter interconnections) 

(shorter interconnections) 

•• power consumption adequate to the circuit function

power consumption adequate to the circuit function

h

 

i   th   l

 

i  

h

 

i   th   l

 

i  

•• cheap in the long series 

cheap in the long series 

(for example memories)

(for example memories)

Disadvantages

Disadvantages

Disadvantages

Disadvantages

•• very long prototyping  

very long prototyping  

•• very expensive development 

very expensive development 

y

p

p

y

p

p

6 marca 2011

Wojciech Kucewicz 

9

background image

Klasyfikacja układów logicznych

Klasyfikacja układów logicznych

Klasyfikacja układów logicznych

Klasyfikacja układów logicznych

ASIC 

ASIC -- Application

Application Specific

Specific Integrated

Integrated Circuits

Circuits, 

specjalizowane układy scalone, projektowane 

specjalizowane układy scalone, projektowane 

indywidualnie do konkretnego zastosowania, na zamówienie producentów urządzeń elektronicznych.

indywidualnie do konkretnego zastosowania, na zamówienie producentów urządzeń elektronicznych.

Układy Standard 

Układy Standard Cell

Cell –– Układy ASIC, w których projektant składa układ z gotowych topologii 

Układy ASIC, w których projektant składa układ z gotowych topologii 

elementów układów zapisanych w bibliotekach. 

elementów układów zapisanych w bibliotekach. 

Logic 

Logic 

circuits

circuits

Standard

Standard

Logic

Logic

ASIC

ASIC

Gate Array

Gate Array

PLD

PLD

Standard 

Standard 

Cell IC

Cell IC

Full Custom 

Full Custom 

IC

IC

SPLD

SPLD

(PAL)

(PAL)

CPLD

CPLD

FPGA

FPGA

background image

Standard Cell

Standard Cell

Standard Cell

Standard Cell

Standard Cell

Standard Cell

Standard Cell

Standard Cell

6 marca 2011

Wojciech Kucewicz 

11

background image

Standard Cells

Standard Cells

Standard Cells

Standard Cells

The standard cells based design is one of the most prevalent 

The standard-cells based design is one of the most prevalent 

full custom design styles which require development of a full 

custom mask set. 

In this design style, all of the commonly used logic cells are 

developed, characterized, and stored in a standard cell 

p ,

,

library. 

A typical library may contain a few hundreds cells including 

A typical library may contain a few hundreds cells including 

inverters, NAND gates, NOR gates,, D-latches, and flip-flops.

6 marca 2011

Wojciech Kucewicz 

12

background image

Standard Cells

Standard Cells

Standard Cells

Standard Cells

To enable automated placement of the cells and routing of inter-cell 

  h  ll l

   d

d  h  f

d h

h    h   

connections, each cell layout is designed with a fixed height, so that a 

number of cells can be abutted side-by-side to form rows. The power 

and ground rails typically run parallel to the upper and lower 

b

d i  f th   ll  th   i hb

i   ll  h

  

 

 

6 marca 2011

Wojciech Kucewicz 

13

boundaries of the cell, thus, neighbouring cells share a common power 

and ground bus

background image

Standard Cells

Standard Cells

Standard Cells

Standard Cells

Inside the I/O frame which is 

reserved for I/O cells, the chip 

 nt ins  s  l mns f 

area contains rows or columns of 

standard cells. Between cell rows 

are channels for dedicated inter-cell 

routing.

6 marca 2011

Wojciech Kucewicz 

14

background image

Standard Cells

Standard Cells

Standard Cells

Standard Cells

A common signal bus structure 

can also be incorporated into 

the standard cell based chip 

the standard-cell-based chip 

layout.

6 marca 2011

Wojciech Kucewicz 

15

background image

Standard Cells

Standard Cells

Standard Cells

Standard Cells

Advantages

Advantages

•• chip area nearly fully used 

chip area nearly fully used 

p

y

y

p

y

y

•• faster 

faster 

(shorter interconnections) 

(shorter interconnections) 

•• power consumption adequate to the circuit function

power consumption adequate to the circuit function

h

 

i   th   l

 

i

h

 

i   th   l

 

i

•• cheap in the long series

cheap in the long series

Disadvantages

Disadvantages

Disadvantages

Disadvantages

•• longer prototyping  

longer prototyping  

•• expensive design

expensive design

p

g

p

g

6 marca 2011

Wojciech Kucewicz 

16

background image

Klasyfikacja układów logicznych

Klasyfikacja układów logicznych

Klasyfikacja układów logicznych

Klasyfikacja układów logicznych

ASIC 

ASIC -- Application

Application Specific

Specific Integrated

Integrated Circuits

Circuits, 

specjalizowane układy scalone, projektowane 

specjalizowane układy scalone, projektowane 

indywidualnie do konkretnego zastosowania, na zamówienie producentów urządzeń elektronicznych.

indywidualnie do konkretnego zastosowania, na zamówienie producentów urządzeń elektronicznych.

Układy 

Układy Gate

Gate Array

Array –– Układy ASIC, w których projektant projektuje maskę połączeń między 

Układy ASIC, w których projektant projektuje maskę połączeń między 

gotowymi tranzystorami i bramkami.

gotowymi tranzystorami i bramkami.

Logic 

Logic 

circuits

circuits

Standard

Standard

Logic

Logic

ASIC

ASIC

Gate Array

Gate Array

PLD

PLD

Standard 

Standard 

Cell IC

Cell IC

Full Custom 

Full Custom 

IC

IC

SPLD

SPLD

(PAL)

(PAL)

CPLD

CPLD

FPGA

FPGA

background image

Gate Array

Gate Array

Gate Array

Gate Array

Gate Array

Gate Array

Gate Array

Gate Array

6 marca 2011

Wojciech Kucewicz 

18

background image

Gate Array (GA)

Gate Array (GA)

Gate Array (GA)

Gate Array (GA)

Gate array implementation requires a two-step manufacturing process: 

• The first phase, which is based on generic (standard) masks, results in an array 

of uncommitted transistors on each GA chip. 

6 marca 2011

Wojciech Kucewicz 

19

p

• Chips can be stored for later customization, which is completed by 

defining the 

metal interconnects between the transistors of the array

.

background image

Gate Array 

Gate Array Chip

Chip

Gate Array 

Gate Array Chip

Chip

Gate array chip contains:

• bonding pads,

• diodes  for  I/O  protection, nMOS 

p

,

and pMOS transistors for chip 

output driver circuits in the 

neighboring areas of bonding pads, 

 f MOS  d MOS 

• arrays of nMOS and pMOS 

transistors, 

• power and ground buses along 

with contact windows

with contact windows

6 marca 2011

Wojciech Kucewicz 

20

background image

Gate Array

Gate Array

Gate Array

Gate Array

Advantages

Advantages

•• quite fast prototyping 

quite fast prototyping 

(but slower than FPGA)

(but slower than FPGA)

q

p

yp g

q

p

yp g

(

)

(

)

•• low volume application

low volume application

•• short turn

short turn--around time 

around time 

(but longer than FPGA)

(but longer than FPGA)

Disadvantages

Disadvantages

•• chip area only partially used 

chip area only partially used 

(but better than FPGA)

(but better than FPGA)

•• relatively high power consumption

relatively high power consumption

•• long interconnection lines

long interconnection lines

•• long interconnection lines

long interconnection lines

••

not reconfigurable

not reconfigurable

•• quite expensive 

quite expensive 

6 marca 2011

Wojciech Kucewicz 

21

q

p

q

p

background image

Klasyfikacja układów logicznych

Klasyfikacja układów logicznych

Klasyfikacja układów logicznych

Klasyfikacja układów logicznych

ASIC 

ASIC -- Application Specific Integrated Circuits, 

Application Specific Integrated Circuits, specjalizowane układy scalone, projektowane indywidualnie do 

specjalizowane układy scalone, projektowane indywidualnie do 

konkretnego zastosowania, na zamówienie producentów urządzeń elektronicznych.

konkretnego zastosowania, na zamówienie producentów urządzeń elektronicznych.

PLD

PLD -- Programmable

Programmable Logic

Logic Devices

Devices,  Użytkownik

,  Użytkownik może zaimplementować w jego strukturze opracowany przez 

może zaimplementować w jego strukturze opracowany przez 

siebie projekt specjalizowanego układu cyfrowego. Cechą tych układów jest więc ich 

siebie projekt specjalizowanego układu cyfrowego. Cechą tych układów jest więc ich konfigurowalność 

konfigurowalność przez 

przez 

użytkownika

użytkownika

użytkownika.

użytkownika.

SPLD 

SPLD -- Simple Programmable Logic Devices

Simple Programmable Logic Devices, proste układy programowalne.

, proste układy programowalne.

FPGA 

FPGA -- Field Programmable Gate Array

Field Programmable Gate Array, programowalne matryce bramkowe.

, programowalne matryce bramkowe.

CPLD 

CPLD  -- Complex Programmable Logic Devices

Complex Programmable Logic Devices, złożone układy programowalne.

, złożone układy programowalne.

Logic 

Logic 

circuits

circuits

Standard

Standard

Logic

Logic

ASIC

ASIC

Gate Array

Gate Array

PLD

PLD

Standard 

Standard 

Cell IC

Cell IC

Full Custom 

Full Custom 

IC

IC

SPLD

SPLD

(PAL)

(PAL)

CPLD

CPLD

FPGA

FPGA

background image

Programowalne 

Programowalne 

i specjalizowane układy cyfrowe

i specjalizowane układy cyfrowe

Programowalne 

Programowalne 

i specjalizowane układy cyfrowe

i specjalizowane układy cyfrowe

Układy PLD

Układy PLD

Układy PLD

Układy PLD

Układy PLD

Układy PLD

Układy PLD

Układy PLD

6 marca 2011

Wojciech Kucewicz 

23

background image

Najwięksi producenci układów PLD

Najwięksi producenci układów PLD

Najwięksi producenci układów PLD

Najwięksi producenci układó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

))

55 Atmel (

Atmel (

www atmel com

www atmel 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

Literatura

Literatura

Literatura

Literatura

1.

1. Pasierbiński

Pasierbiński J., 

J., Zbysiński

Zbysiński P., 

P., 

Układy programowalne w praktyce

Układy programowalne w praktyce

, Wyd. WKŁ, 

, Wyd. WKŁ, 

Warszawa 2002.

Warszawa 2002.

22 Kevin 

Kevin Skahill

Skahill   

Język VHDL  Projektowanie programowalnych układów 

Język VHDL  Projektowanie programowalnych układów 

2.

2. Kevin 

Kevin Skahill

Skahill, , 

Język VHDL, Projektowanie programowalnych układów 

Język VHDL, Projektowanie programowalnych układów 

logicznych

logicznych

,Wydawnictwa

,Wydawnictwa naukowo

naukowo--Techniczne, Warszawa 2001

Techniczne, Warszawa 2001

3.

3. T. Łuba, K. Jasiński, B. Zbierzchowski, 

T. Łuba, K. Jasiński, B. Zbierzchowski, 

Specjalizowane układy cyfrowe w 

Specjalizowane układy cyfrowe w 

strukturach PLD i FPGA

strukturach PLD i FPGA

, WKŁ, Warszawa, 1997

, WKŁ, Warszawa, 1997

44 Podręczniki firmowe (

Podręczniki firmowe (

Data 

Data Book

Book  Data 

 Data Sheet

Sheet   Application

Application Notes

Notes

 itp   ) do 

 itp   ) do 

4.

4. Podręczniki firmowe (

Podręczniki firmowe (

Data 

Data Book

Book, Data 

, Data Sheet

Sheet, , Application

Application Notes

Notes

, itp.. …) do 

, itp.. …) do 

omawianych układów (ze stron WWW producentów)

omawianych układów (ze stron WWW producentów)

––

www.xilinx.com

www.xilinx.com

––

www.altera.com

www.altera.com

www latticesemi com

www latticesemi 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

yp

yp

––

www.quicklogic.com

www.quicklogic.com

Inne strony WWW zajmujące się tematyką PLD, 

Inne strony WWW zajmujące się tematyką PLD, np

np::

––

http://www.fpgajournal.com

http://www.fpgajournal.com

––

www design

www design reuse com

reuse com

  

––

www.design

www.design--reuse.com

reuse.com

––

www.opencores.org

www.opencores.org

background image

Układy SPLD

Układy SPLD

Układy SPLD

Układy SPLD

Do układów 

Do układów SPLD 

SPLD zalicza się układy programowalne: 

zalicza się układy programowalne: 

PLA 

PLA ((

Programmable Logic Array

Programmable Logic Array

)  

)  

PLA 

PLA ((

Programmable Logic Array

Programmable Logic Array

), 

), 

PAL 

PAL ((

Programmable Array Logic

Programmable Array Logic

) ) 

GAL 

GAL ((

Generic Array Logic

Generic Array Logic

). 

). 

Są to układy najtańsze i najprostsze o małej liczbie wyprowadzeń

Są to układy najtańsze i najprostsze o małej liczbie wyprowadzeń

Są to układy najtańsze i najprostsze o małej liczbie wyprowadzeń.

Są to układy najtańsze i najprostsze o małej liczbie wyprowadzeń.

Ich zasoby logiczne zawierają typowo od 4 do 22 

Ich zasoby logiczne zawierają typowo od 4 do 22 makrokomórek

makrokomórek logicznych o dwupoziomowej 

logicznych o dwupoziomowej 

strukturze logicznej i mogą zwykle zastąpić kilka standardowych układów scalonych rodziny 

strukturze logicznej i mogą zwykle zastąpić kilka standardowych układów scalonych rodziny 

74xx. 

74xx. 

Struktura zazwyczaj jest symetryczna, tzn. każda z makrokomórek jest w pełni połączona z 

Struktura zazwyczaj jest symetryczna, tzn. każda z makrokomórek jest w pełni połączona z 

innymi komórkami w danym układzie scalonym. Wyjście każdej komórki może być podane na 

innymi komórkami w danym układzie scalonym. Wyjście każdej komórki może być podane na 

wejście każdej innej oraz wejścia układu mogą być podane do każdej komórki.

wejście każdej innej oraz wejścia układu mogą być podane do każdej komórki.

Do określenia połączeń pomiędzy komórkami oraz funkcji przez nie realizowanych 

Do określenia połączeń pomiędzy komórkami oraz funkcji przez nie realizowanych 

(skonfigurowania/zaprogramowania układu) stosowane są 

(skonfigurowania/zaprogramowania układu) stosowane są łączniki 

łączniki (klucze), którymi są w 

(klucze), którymi są w 

większości przypadków przepalane elektrycznie fragmenty ścieżek (łączniki rozwarciowe 

większości przypadków przepalane elektrycznie fragmenty ścieżek (łączniki rozwarciowe –– dla 

dla 

układów PLA i PAL) lub tranzystory MOS (dla układów GAL). 

układów PLA i PAL) lub tranzystory MOS (dla układów GAL). 

background image

Układy PLA 

Układy PLA –– Programowalne Matryce 

Programowalne Matryce 

Logiczne

Logiczne

Układy PLA 

Układy PLA –– Programowalne Matryce 

Programowalne Matryce 

Logiczne

Logiczne

SPLD

SPLD

(PLA)

(PLA)

X0

X0

X1

X1

Układy PLA są przykładem 

Układy PLA są przykładem 

kombinacyjnego układu PLD. 

kombinacyjnego układu PLD. 

Stanowią dwuwymiarową  

Stanowią dwuwymiarową  

Stanowią dwuwymiarową  

Stanowią dwuwymiarową  

strukturę połączeń  z 

strukturę połączeń  z 

programowalnymi połączeniami 

programowalnymi połączeniami 

(najczęściej zwarciami) w 

(najczęściej zwarciami) w 

X15

X15

16 wejścia

16 wejścia

 k 

 k 

8 bramek  

8 bramek  

(najczęściej zwarciami) w 

(najczęściej zwarciami) w 

miejscu ich krzyżowania się

miejscu ich krzyżowania się

16 bramek 

16 bramek 

NAND

NAND

8 bramek  

8 bramek  

OR

OR

16 wejść

16 wejść

background image

Układy PLA 

Układy PLA –– Programowalne Matryce 

Programowalne Matryce 

Logiczne

Logiczne

Układy PLA 

Układy PLA –– Programowalne Matryce 

Programowalne Matryce 

Logiczne

Logiczne

SPLD

SPLD

(PLA)

(PLA)

X0

X0

X1

X1

Układy PLA są przykładem 

Układy PLA są przykładem 

kombinacyjnego układu PLD. 

kombinacyjnego układu PLD. 

Stanowią dwuwymiarową  

Stanowią dwuwymiarową  

X15

X15

Stanowią dwuwymiarową  

Stanowią dwuwymiarową  

strukturę połączeń  z 

strukturę połączeń  z 

programowalnymi połączeniami 

programowalnymi połączeniami 

(najczęściej zwarciami) w 

(najczęściej zwarciami) w 

32 wejścia

32 wejścia

 k 

 k 

8 bramek  

8 bramek  

(najczęściej zwarciami) w 

(najczęściej zwarciami) w 

miejscu ich krzyżowania się.

miejscu ich krzyżowania się.

Programowalne połączenia 

Programowalne połączenia 

mają bramki AND i bramki OR

mają bramki AND i bramki OR

48 bramek 

48 bramek 

NAND

NAND

8 bramek  

8 bramek  

OR

OR

mają bramki AND i bramki OR

mają bramki AND i bramki OR

16 wejść

16 wejść

background image

Układy PLA 

Układy PLA –– Programowalne Matryce 

Programowalne Matryce 

Logiczne

Logiczne

Układy PLA 

Układy PLA –– Programowalne Matryce 

Programowalne Matryce 

Logiczne

Logiczne

SPLD

SPLD

(PLA)

(PLA)

X0

X0

X0

X0

Dla każdego sygnału wejściowego można 

Dla każdego sygnału wejściowego można 

wyróżnić 4 

wyróżnić 4 przypadki programowania 

przypadki programowania 

wejść 

wejść bramki NAND

bramki NAND::

11

22

1.

1. Stan nie zaprogramowany

Stan nie zaprogramowany

22

P d

ni   s n łu jś i

 

ni  

P d

ni   s n łu jś i

 

ni  

X0

X0

X0

X0

2.

2. Podawanie sygnału wejściowego nie 

Podawanie sygnału wejściowego nie 

zanegowanego 

zanegowanego 

33

Podawanie sygnału wejściowego 

Podawanie sygnału wejściowego 

33

44

3.

3. Podawanie sygnału wejściowego 

Podawanie sygnału wejściowego 

zanegowanego

zanegowanego

44

Nie podawanie sygnału na wejście

Nie podawanie sygnału na wejście

33

44

4.

4. Nie podawanie sygnału na wejście

Nie podawanie sygnału na wejście

background image

Układy PLA 

Układy PLA –– Programowalne Matryce 

Programowalne Matryce 

Logiczne

Logiczne

Układy PLA 

Układy PLA –– Programowalne Matryce 

Programowalne Matryce 

Logiczne

Logiczne

SPLD

SPLD

(PLA)

(PLA)

A

A

BB

Realizacja sumatora przy 

Realizacja sumatora przy 

pomocy układu PLA

pomocy układu PLA

BB

CC

S = 

S = A’B’C

A’B’C + 

+ AB’C

AB’C’ + 

’ + A’BC

A’BC’ + ABC

’ + ABC

Carry = AB + AC + BC

Carry = AB + AC + BC

S

S

Carry

Carry

Carry

Carry

background image

Układy PAL 

Układy PAL –– Programowalne Matrycowe 

Programowalne Matrycowe 

Układy Logiczne

Układy Logiczne

Układy PAL 

Układy PAL –– Programowalne Matrycowe 

Programowalne Matrycowe 

Układy Logiczne

Układy Logiczne

SPLD

SPLD

(PAL)

(PAL)

X0

X0

Programmable 

Programmable 

Array Logic

Array Logic

Układy PAL 

Układy PAL 

charakteryzują się tym, 

charakteryzują się tym, 

iż programowalne 

iż programowalne 

X1

X1

iż programowalne 

iż programowalne 

połączenia mają tylko 

połączenia mają tylko 

bramki AND.

bramki AND.

W układach PAL wyjście 

W układach PAL wyjście 

X2

X2

W układach PAL wyjście 

W układach PAL wyjście 

każdej bramki AND jest 

każdej bramki AND jest 

bezpośrednio połączone 

bezpośrednio połączone 

do jednego z wejść 

do jednego z wejść 

do jednego z wejść 

do jednego z wejść 

jednej bramki OR

jednej bramki OR

AMD PAL 

AMD PAL 

background image

Układy PAL 

Układy PAL –– Programowalne Matrycowe 

Programowalne Matrycowe 

Układy Logiczne

Układy Logiczne

Układy PAL 

Układy PAL –– Programowalne Matrycowe 

Programowalne Matrycowe 

Układy Logiczne

Układy Logiczne

SPLD

SPLD

(PAL)

(PAL)

A

A

Programmable 

Programmable 

Array Logic

Array Logic

S

S

BB

Realizacja sumatora przy 

Realizacja sumatora przy 

pomocy układu PAL

pomocy układu PAL

S

S

CC

S = A’B’C + AB’C’ + A’BC’ + ABC

S = A’B’C + AB’C’ + A’BC’ + ABC

Carry = AB + AC + BC

Carry = AB + AC + BC

Carry

Carry

yy

AMD PAL 

AMD PAL 

background image

Fragment struktury układu PAL 16L8

Fragment struktury układu PAL 16L8

Fragment struktury układu PAL 16L8

Fragment struktury układu PAL 16L8

Widoczne:

Widoczne:
1.

1. Macierz połączeń AND

Macierz połączeń AND

22 F k j   OR  ( st

iki)

F k j   OR  ( st

iki)

2.

2. Funkcje OR (następniki)

Funkcje OR (następniki)

3.

3. Sprzężenia zwrotne do macierzy połączeń

Sprzężenia zwrotne do macierzy połączeń

background image

Układy GAL

Układy GAL

Układy GAL

Układy GAL

SPLD

SPLD

(GAL)

(GAL)

Generic Array Logic

Generic Array Logic

Obecnie najpopularniejszą grupą układów SPLD są układy 

Obecnie najpopularniejszą grupą układów SPLD są układy GAL

GAL  w których 

 w których 

Obecnie najpopularniejszą grupą układów SPLD są układy 

Obecnie najpopularniejszą grupą układów SPLD są układy GAL

GAL, w których 

, w których 

wykorzystano architekturę PAL wzbogaconą o konfigurowalne 

wykorzystano architekturę PAL wzbogaconą o konfigurowalne 

makrokomórki

makrokomórki wyjściowe zawierające przerzutniki typu 

wyjściowe zawierające przerzutniki typu D

D. Przerzutniki 

. Przerzutniki 

te spełniają rolę wyjściowych elementów pamięciowych umożliwiających 

te spełniają rolę wyjściowych elementów pamięciowych umożliwiających 

te spełniają rolę wyjściowych elementów pamięciowych umożliwiających 

te spełniają rolę wyjściowych elementów pamięciowych umożliwiających 

budowanie układów synchronicznych.

budowanie układów synchronicznych.

background image

Układy GAL

Układy GAL

Układy GAL

Układy GAL

SPLD

SPLD

(GAL)

(GAL)

background image

Makrokomórki w układach GAL

Makrokomórki w układach GAL

Makrokomórki w układach GAL

Makrokomórki w układach GAL

SPLD

SPLD

(GAL)

(GAL)

Makrokomórka

Makrokomórka OLMC umożliwia zaprogramowanie układu w trybie 

OLMC umożliwia zaprogramowanie układu w trybie 

kombinacyjnym lub sekwencyjnym

kombinacyjnym lub sekwencyjnym

OLMC

OLMC

Output Logic

Output Logic

Macrocell

Macrocell

Komórka kombinacyjna

Komórka kombinacyjna

background image

Makrokomórki w układach GAL

Makrokomórki w układach GAL

Makrokomórki w układach GAL

Makrokomórki w układach GAL

SPLD

SPLD

(GAL)

(GAL)

Makrokomórka

Makrokomórka OLMC umożliwia zaprogramowanie układu w trybie 

OLMC umożliwia zaprogramowanie układu w trybie 

kombinacyjnym lub sekwencyjnym

kombinacyjnym lub sekwencyjnym

OLMC

OLMC

Output Logic

Output Logic

Macrocell

Macrocell

Komórka sekwencyjna

Komórka sekwencyjna

D     Q

D     Q

Clk nQ

Clk nQ

background image

Makrokomórki w układach GAL

Makrokomórki w układach GAL

Makrokomórki w układach GAL

Makrokomórki w układach GAL

SPLD

SPLD

(GAL)

(GAL)

Makrokomórka

Makrokomórka OLMC umożliwia zaprogramowanie układu w trybie 

OLMC umożliwia zaprogramowanie układu w trybie 

kombinacyjnym lub sekwencyjnym

kombinacyjnym lub sekwencyjnym

OLMC

OLMC

Output Logic

Output Logic

Macrocell

Macrocell

Komórka uniwersalna

Komórka uniwersalna

D     Q

D     Q

Clk nQ

Clk nQ

background image

Przykładowy układ GAL ATF22LV10C

Przykładowy układ GAL ATF22LV10C

Przykładowy układ GAL ATF22LV10C

Przykładowy układ GAL ATF22LV10C

background image

Budowa 

Budowa makroceli

makroceli układu GAL22V10

układu GAL22V10

Budowa 

Budowa makroceli

makroceli układu GAL22V10

układu GAL22V10

background image

Układy CPLD

Układy CPLD

Układy CPLD

Układy CPLD

CPLD

CPLD

Complex Programmable Logic Devices

Complex Programmable Logic Devices

Układy 

Układy CPLD 

CPLD są koncepcyjnie podobne do układów SPLD, lecz są bardziej złożone: mają 

są koncepcyjnie podobne do układów SPLD, lecz są bardziej złożone: mają 

większe zasoby logiczne i możliwości funkcjonalne. 

większe zasoby logiczne i możliwości funkcjonalne. 

Ich architektura ma strukturę 

Ich architektura ma strukturę hierarchiczną 

hierarchiczną opartą na 

opartą na makrokomórkach logicznych

makrokomórkach logicznych, , 

m

ę

m

ę

ąą p

ą

p

ą

m

m

g

y

m

m

g

,,

których zawierają od kilkudziesięciu do kilkuset. Typowo od czterech do szesnastu 

których zawierają od kilkudziesięciu do kilkuset. Typowo od czterech do szesnastu 

makrokomórek jest połączonych w większy 

makrokomórek jest połączonych w większy blok funkcjonalny

blok funkcjonalny (podobny do 

(podobny do 

pojedynczego układu SPLD). 

pojedynczego układu SPLD). 

P

ól  

bl ki  f k j

l  

 ł

  i d   b    

 

P

ól  

bl ki  f k j

l  

 ł

  i d   b    

 

  

Poszczególne bloki funkcjonalne są łączone między sobą za pomocą 

Poszczególne bloki funkcjonalne są łączone między sobą za pomocą matrycy 

matrycy 

połączeniowej

połączeniowej, której zdolność łączeniowa jest ważną cechą układów CPLD.

, której zdolność łączeniowa jest ważną cechą układów CPLD.

Układy CPLD są wytwarzane niemal wyłącznie w technologii CMOS  

Układy CPLD są wytwarzane niemal wyłącznie w technologii CMOS  

Układy CPLD są wytwarzane niemal wyłącznie w technologii CMOS. 

Układy CPLD są wytwarzane niemal wyłącznie w technologii CMOS. 

background image

Układy CPLD

Układy CPLD

Układy CPLD

Układy CPLD

CPLD

CPLD

Complex

Complex Programmable

Programmable Logic

Logic Devices

Devices

BF

BF

BF

BF

BF

BF

BF

BF

PrPr

inter

c

inter

c

I/O

I/O

I/O

I/O

BF

BF

BF

BF

BF

BF

BF

BF

rogrammabl

e

rogrammabl

e

conne
ction 

m

conne
ction 

m

BF

BF

BF

BF

BF

BF

BF

BF

e e 

m

atrix

m

atrix

background image

FF

ield 

ield 

PP

rogrammable 

rogrammable 

FF

ield 

ield 

PP

rogrammable 

rogrammable 

FF

ield 

ield 

PP

rogrammable 

rogrammable 

G

G

ate 

ate 

A

A

rrays 

rrays 

FF

ield 

ield 

PP

rogrammable 

rogrammable 

G

G

ate 

ate 

A

A

rrays 

rrays 

G

G

ate 

ate 

A

A

rrays 

rrays 

((

FPGA

FPGA

))

G

G

ate 

ate 

A

A

rrays 

rrays 

((

FPGA

FPGA

))

((

FPGA

FPGA

))

((

FPGA

FPGA

))

((

))

((

))

6 marca 2011

Wojciech Kucewicz 

43

background image

Układy FPGA

Układy FPGA

Układy FPGA

Układy FPGA

yy

Układy

Układy FPGA (Field Programmable Gate Array) 

FPGA (Field Programmable Gate Array) należą

należą do 

do grupy

grupy układów

układów

programowalnych

programowalnych przez

przez użytkownika

użytkownika

programowalnych

programowalnych przez

przez użytkownika

użytkownika..

Dzięki

Dzięki uniwersalnej

uniwersalnej budowie

budowie ii pełnej

pełnej konfigurowalności

konfigurowalności możliwe

możliwe jest 

jest 

zaimplementowanie

zaimplementowanie dowolnej funkcji logicznej

dowolnej funkcji logicznej w 

w strukturze

strukturze FPGA  

FPGA  

zaimplementowanie

zaimplementowanie dowolnej funkcji logicznej

dowolnej funkcji logicznej w 

w strukturze

strukturze FPGA. 

FPGA. 

Ta 

Ta uniwersalność

uniwersalność układów

układów FPGA 

FPGA powoduje, że

powoduje, że produkowane

produkowane są one 

są one masowo

masowo ii

dzięki

dzięki temu

temu są

są ogólnie

ogólnie dostępne

dostępne

dzięki

dzięki temu

temu są

są ogólnie

ogólnie dostępne

dostępne..

S

Stanowią

tanowią dobrą

dobrą alternatywę

alternatywę dla

dla układów

układów ASIC 

ASIC charakteryzujących

charakteryzujących się

się

wysokimi

wysokimi kosztami

kosztami produkcji

produkcji układu

układu prototypowego

prototypowego ii dłuższą

dłuższą procedurą

procedurą

wysokimi

wysokimi kosztami

kosztami produkcji

produkcji układu

układu prototypowego

prototypowego ii dłuższą

dłuższą procedurą

procedurą

projektową

projektową. . 

Układy FPGA 

Układy FPGA najchętniej

najchętniej wykorzystywane

wykorzystywane są

są przy projektowaniu

przy projektowaniu

Układy F G  

Układy F G  najchętn ej

najchętn ej wykorzystywane

wykorzystywane są

są przy projektowan u

przy projektowan u

prototypowych 

prototypowych układów

układów cyfrowych

cyfrowych średniej

średniej ii dużej

dużej wielkości

wielkości i i 

krótkoseryjnej produkcji.  

krótkoseryjnej produkcji.  

background image

Układy FPGA

Układy FPGA

Układy FPGA

Układy FPGA

yy

Układy FPGA w języku polskim określane są jako programowalne matryce 

bramkowe.

Są to programowalne układy cyfrowe wielkiej skali integracji  zawierające 

Są to programowalne układy cyfrowe wielkiej skali integracji  zawierające 

Są to programowalne układy cyfrowe wielkiej skali integracji, zawierające 

Są to programowalne układy cyfrowe wielkiej skali integracji, zawierające 

zbiór programowalnych bloków logicznych 

zbiór programowalnych bloków logicznych CLB (

CLB (Configurable

Configurable Logic

Logic Block) 

Block) 

o regularnym rozkładzie topograficznym, programowalne połączenia 

o regularnym rozkładzie topograficznym, programowalne połączenia PSM 

(Programmable switch matrix) oraz

oraz bufory wejścia wyjścia (IO buffer) 

g

y

j

yj

..

background image

Układy FPGA

Układy FPGA

Układy FPGA

Układy FPGA

yy

Układy FPGA są układami o dużej złożoności logicznej i są przeznaczone 

Układy FPGA są układami o dużej złożoności logicznej i są przeznaczone 

głównie do zastosowań systemowych

głównie do zastosowań systemowych

głównie do zastosowań systemowych.

głównie do zastosowań systemowych.

Struktury FPGA zawierają  do dziesiątków tysięcy 

Struktury FPGA zawierają  do dziesiątków tysięcy bloków logicznych

bloków logicznych. Bloki 

. Bloki 

logiczne mogą być bardzo złożone  jest ich wówczas mniej w układzie  lub 

logiczne mogą być bardzo złożone  jest ich wówczas mniej w układzie  lub 

logiczne mogą być bardzo złożone, jest ich wówczas mniej w układzie, lub 

logiczne mogą być bardzo złożone, jest ich wówczas mniej w układzie, lub 

względnie proste i jest ich wówczas więcej. 

względnie proste i jest ich wówczas więcej. 

BBloki

loki PLB

PLB mogą

mogą spełniać

spełniać o 

o wiele

wiele bardziej

bardziej zaawansowane

zaawansowane funkcje

funkcje niż

niż zwykłe

zwykłe

gą pp

jj

jj

yy

bramki

bramki logiczne

logiczne. . 

background image

Układy FPGA

Układy FPGA

Układy FPGA

Układy FPGA

yy

Programowanie

Programowanie układów

układów FPGA 

FPGA polega

polega na

na skonfigurowaniu

skonfigurowaniu

kł dó

kł dó

jś i

jś i // jś i

jś i   bl kó

bl kó l i

h

l i

h

układów

układów wejścia

wejścia//wyjścia

wyjścia, , bloków

bloków logicznych

logicznych oraz

oraz

połączeń

połączeń między

między nimi

nimi. . 

Jest

Jest to 

to proces

proces programowania

programowania wewnętrznej

wewnętrznej pamięci

pamięci układu

układu,, która

która z 

z kolei

kolei

steruje

steruje siecią

siecią łączników

łączników konfigurujących

konfigurujących poszczególne

poszczególne funkcje

funkcje układu

układu. . 

Pamięć

Pamięć konfiguracji

konfiguracji nie

nie stanowi

stanowi oddzielnego

oddzielnego bloku

bloku,, ale 

ale jej

jej poszczególne

poszczególne

elementy związane są z blokami funkcjonalnymi

elementy związane są z blokami funkcjonalnymi

background image

Układy FPGA

Układy FPGA

Układy FPGA

Układy FPGA

Wszystkie

Wszystkie wewnętrzne

wewnętrzne kanały

kanały łączeniowe

łączeniowe składają

składają się

się z 

z odcinków

odcinków ścieżek

ścieżek

metalowych

metalowych, , programowalnych

programowalnych punktów

punktów łączeniowych

łączeniowych -- PIP

PIP ((Programmable 

Programmable 

Interconnect Point)

Interconnect Point) ii programowalnych

programowalnych matryc

matryc łączeniowych

łączeniowych -- PSM 

PSM 

)) p g

y

p g

y

yy ą

y

ą

y

(Programmable Switch Matrix),

(Programmable Switch Matrix), , , tworząc

tworząc w 

w efekcie

efekcie wydajną

wydajną strukturę

strukturę

do 

do realizacji

realizacji sieci

sieci połączeń

połączeń projektowanego

projektowanego systemu

systemu. . 

W miejscach

miejscach przecinania

przecinania się

się linii

linii lokalnych

lokalnych znajdują

znajdują się

się matryce

matryce łączników

łączników

jj

pp

ęę

yy

j ją

j ją ęę

yy

ąą

PSM 

PSM pełniące

pełniące rolę

rolę programowalnych

programowalnych zwrotnic

zwrotnic sygnałowych

sygnałowych. . 

Zap pomocą matryc PSM sygnały

p p

ą

y

yg y

mogą być przełączane między

poszczególnymi kanałami, a 

następnie poprzez kolejne łączniki

trafiać do wyprowadzeń bloków IOB 

i CLB.   

6 marca 2011

Wojciech Kucewicz 

48

background image

S

System

ystem--O

Onn--CChip 

hip 

S

System

ystem--O

Onn--CChip 

hip 

Układ elektroniczny FPGA może być  rozbudowana poprzez dodanie w jednej 

Układ elektroniczny FPGA może być  rozbudowana poprzez dodanie w jednej 

obudowie struktur procesora, pamięci oraz dowolnych interfejsów 

obudowie struktur procesora, pamięci oraz dowolnych interfejsów 

komunikacyjnych.  

komunikacyjnych.  

komunikacyjnych.  

komunikacyjnych.  

Powstaje w ten sposób typowy układ „

Powstaje w ten sposób typowy układ „Multichip

Multichip module” lub „System on chip”, 

module” lub „System on chip”, 

gdy wszystkie struktury wykonane są w jednym układzie scalonym

gdy wszystkie struktury wykonane są w jednym układzie scalonym

6 marca 2011

Wojciech Kucewicz 

49

background image

Programable

Programable Logic 

Logic Blocks

Blocks

Programable

Programable Logic 

Logic Blocks

Blocks

Programowalny blok logiczny PLB pozwala na implementację funkcji 

logicznych  (kombinacyjnych i sekwencyjnych).  Stopień  skomplikowania 

funkcji logicznej , jaką można zaimplementować w PLB zależy od budowy tego 

funkcji logicznej , jaką można zaimplementować w PLB zależy od budowy tego 

bloku.

Blok PLB zbudowany jest segmentu  LUT (

LUT (Look

Look--up

up--Table

Table) 

do realizacji 

funkcji kombinacyjnych oraz bloku sekwencyjnego

bloku sekwencyjnego, który może się składać z 

jednego lub wielu przerzutników. Wszystkie segmenty są łączone poprzez 

multipleksery.

6 marca 2011

Wojciech Kucewicz 

50

background image

Look

Look--Up

Up--Table

Table

Look

Look--Up

Up--Table

Table

Tablica 

LUT 

LUT 

jest uniwersalnym układem do konfigurowania  funkcji 

logicznych. 
Przyładowo 3 bitowa LUT posiada  3 wejścia X0  X1 i X2 oraz wyjście Fout

Przyładowo 3-bitowa LUT posiada  3 wejścia X0, X1 i X2 oraz wyjście Fout

będące logiczną funkcją zmiennych wejściowych.

Wartości logiczne  funkcji 

Wartości logiczne  funkcji Fout

Fout zapisane są w tablicy  i adresowane stanami 

zapisane są w tablicy  i adresowane stanami 

ść 

     

ść 

     

wejść X0, X1 i X2

wejść X0, X1 i X2

Look-Up-Table

Value 0

P

k d

 

d

 

  (

Value 0

Value 1

Value 2
Value 3

X2

X1

Fout

1

0

Przykładowo adres 5 (101) 

podłącza do wyjścia wartość 

Value(5) zapisaną w tablicy. 

Value 3
Value 4
Value 5
Value 6

X1

X0

Fout

Value 5

1

6 marca 2011

Wojciech Kucewicz 

51

Value 6

Value7

background image

Look

Look--Up

Up--Table

Table

Look

Look--Up

Up--Table

Table

Tablica

LUT 

LUT 

może być zbudowana z 

rejestru przesuwnego szeregowo-

równoległego (przerzutniki D)  z 

D       Q’

Clk    Q

Res

D       Q’

Clk    Q

Res

Value 0

1    0     1

1    0     1

g g p

wybieraniem wyjścia przy pomocy 

multipleksera.
Stany logiczne funkcji Fout są 

Res

D       Q’

Clk    Q

Res

D       Q’

Res

D       Q’

Clk    Q

Res

D       Q’

Value 1

Stany logiczne funkcji Fout są 

wprowadzane z pamięci do rejestru 

przesuwnego i wybierane  odpowiednim 

adresem (X2 X1 X0)

D       Q’

Clk    Q

Res

D       Q’

Clk    Q

D       Q’

Clk    Q

Res

D       Q’

Clk    Q

Value 2

Value 3

m (X X X )

Q

Res

D       Q’

Clk    Q

Res

Fout

Q

Res

D       Q’

Clk    Q

Res

Fout

Value 3

Value 4

P

k d

 

d

 

  (

D       Q’

Clk    Q

Res

D       Q’

D       Q’

Clk    Q

Res

D       Q’

Value 5

Przykładowo adres 5 (101) 

podłącza do wyjścia wartość 

Value(5) zapisaną w tablicy. 

6 marca 2011

Wojciech Kucewicz 

52

Clk    Q

Res

D       Q’

Clk    Q

Res

Clk    Q

Res

D       Q’

Clk    Q

Res

Value 6

Value 7

background image

Configurable

Configurable Logic

Logic Block

Block

Configurable

Configurable Logic

Logic Block

Block

Blok CLB zawiera również 

układ sekwencyjny. 
Przełączanie funkcji pomiędzy 

X

2

X

1

X

0

DA
T

A

Cl

k

Me

 

X

2

X

1

X

0

DA
T

A

Cl

k

Me

 

LUT

Układ sekwencyjny

Przełączanie funkcji pomiędzy 

blokiem kombinacyjnym (LUT) 

i sekwencyjnym wykonuje się 

przy pomocy multiplekserów

D       Q’

Clk    Q

Res

D       Q’

Clk    Q

Res

2

1

0

A

in

k

D       Q’

Clk    Q

Res

D       Q’

Clk    Q

Res

2

1

0

A

in

k

przy pomocy multiplekserów.
Multipleksery  przełączane są 

wartościami logicznymi 

i

i  d  

 

 

Res

D       Q’

Clk    Q

Res

D       Q’

Res

D       Q’

Clk    Q

Res

D       Q’

wpisanymi do rozszerzonego o 

2  bity rejestru przesuwnego 

LUT.

Clk    Q

Res

D       Q’

Clk    Q

Res

Fout

D       Q’

Clk    Q

Res

Q

DATAout

Clk    Q

Res

D       Q’

Clk    Q

Res

Fout

D       Q’

Clk    Q

Res

Q

DATAout

D       Q’

Clk    Q

Res

D       Q’

Clk    Q

D       Q’

Clk    Q

Res

D       Q’

Clk    Q

Res

D       Q’

Clk    Q

Res

D       Q’

Clk    Q

D       Q’

Clk    Q

Res

D       Q’

Clk    Q

Res

V l

8 V l

9

6 marca 2011

Wojciech Kucewicz 

53

Clk    Q

Res

D       Q’

Clk    Q

Res

Clk    Q

Res

D       Q’

Clk    Q

Res

Value 8 Value 9

background image

Configurable

Configurable Logic

Logic Block

Block

Configurable

Configurable Logic

Logic Block

Block

W jś i   LUT    j t  b

ś d i  

W jś i   LUT    j t  b

ś d i  

X

2

X

1

X

0

DA
T

A

Cl

k

Me

 

X

2

X

1

X

0

DA
T

A

Cl

k

Me

 

Prezentowany układ jest podobny do układów serii 

Prezentowany układ jest podobny do układów serii Xilinx

Xilinx XC5200.

XC5200.

Wyjście LUT  jest bezpośrednio 

Wyjście LUT  jest bezpośrednio 

połączone do wyjścia 

połączone do wyjścia Fout

Fout oraz 

oraz 

poprzez multiplekser  z wejściem 

poprzez multiplekser  z wejściem 

przerzutnika   

przerzutnika   

D       Q’

Clk    Q

Res

D       Q’

Clk    Q

Res

2

1

0

A

in

k

D       Q’

Clk    Q

Res

D       Q’

Clk    Q

Res

2

1

0

A

in

k

przerzutnika.  

przerzutnika.  
Na przerzutnik można też 

Na przerzutnik można też 

podawać sygnał bezpośrednio z 

podawać sygnał bezpośrednio z 

śś

Res

D       Q’

Clk    Q

Res

D       Q’

Res

D       Q’

Clk    Q

Res

D       Q’

wejścia 

wejścia DATAin

DATAin. . 

W zależności od ustawienia 

W zależności od ustawienia 

drugiego multipleksera na wyjście 

drugiego multipleksera na wyjście 

Clk    Q

Res

D       Q’

Clk    Q

Res

Fout

D       Q’

Clk    Q

Res

Q

DATAout

Clk    Q

Res

D       Q’

Clk    Q

Res

Fout

D       Q’

Clk    Q

Res

Q

DATAout

drug ego mult pleksera na wyjśc e 

drug ego mult pleksera na wyjśc e 

DATAout

DATAout można podać sygnał z 

można podać sygnał z 

wyjścia 

wyjścia nQ

nQ przerzutnika lub  

przerzutnika lub  

bezpośrednio sygnał z wejścia 

bezpośrednio sygnał z wejścia 

D       Q’

Clk    Q

Res

D       Q’

Clk    Q

D       Q’

Clk    Q

Res

D       Q’

Clk    Q

Res

D       Q’

Clk    Q

Res

D       Q’

Clk    Q

D       Q’

Clk    Q

Res

D       Q’

Clk    Q

Res

6 marca 2011

Wojciech Kucewicz 

54

p

yg

j

p

yg

j

DATAin

DATAin

Clk    Q

Res

D       Q’

Clk    Q

Res

Clk    Q

Res

D       Q’

Clk    Q

Res

background image

Programmable

Programmable Switching 

Switching Matrix

Matrix

Programmable

Programmable Switching 

Switching Matrix

Matrix

Zadaniem matrycy PSM jest programowanie połączeń pomiędzy blokami PLB.

Zadaniem matrycy PSM jest programowanie połączeń pomiędzy blokami PLB.

Każde skrzyżowanie  dwóch linii powinno zapewniać  dowolne z 6 możliwych 

Każde skrzyżowanie  dwóch linii powinno zapewniać  dowolne z 6 możliwych 

ł

ń  

ł

ń  

PIP

PIP ((P

bl   I t

t  P i t

P

bl   I t

t  P i t))

  

połączeń  

połączeń  

PIP

PIP –– ((Programmable Interconnect Point

Programmable Interconnect Point))

. . 

6 marca 2011

Wojciech Kucewicz 

55

background image

Programmable

Programmable Switching 

Switching Matrix

Matrix

Programmable

Programmable Switching 

Switching Matrix

Matrix

PIP można zbudować z bramki transmisyjnej sterowanej przerzutnikiem D

PIP można zbudować z bramki transmisyjnej sterowanej przerzutnikiem D
Gdy przerzutnik ma na wyjściu Q  wartość zero bramka jest wyłączona (brak 

Gdy przerzutnik ma na wyjściu Q  wartość zero bramka jest wyłączona (brak 

ł

i )   d   jś i     t ść 1 b

k  

d i (2 li i    

ł

i )   d   jś i     t ść 1 b

k  

d i (2 li i    

połączenia), gdy wyjście ma wartość 1 bramka przewodzi (2 linie są 

połączenia), gdy wyjście ma wartość 1 bramka przewodzi (2 linie są 

połączone). Rezystancja takiego połączenia ma wartość ok. 100 

połączone). Rezystancja takiego połączenia ma wartość ok. 100  Ω.

Ω.

D       Q’

Clk    Q

D       Q’

Clk    Q

0011

6 marca 2011

Wojciech Kucewicz 

56

Clk    Q

Res

Clk    Q

Res

background image

Programmable

Programmable Switching 

Switching Matrix

Matrix

Programmable

Programmable Switching 

Switching Matrix

Matrix

Każde skrzyżowanie tworzy 6 bramek transmisyjnych, które 

Każde skrzyżowanie tworzy 6 bramek transmisyjnych, które strowane

strowane są z 

są z 

rejestru przesuwnego. 

rejestru przesuwnego. 

6 marca 2011

Wojciech Kucewicz 

57

0     1     0    

0     1     0    00

00

background image

Programmable

Programmable Switching 

Switching Matrix

Matrix

Programmable

Programmable Switching 

Switching Matrix

Matrix

Zadaniem matrycy PSM jest programowanie połączeń pomiędzy blokami PLB.

Zadaniem matrycy PSM jest programowanie połączeń pomiędzy blokami PLB.

Przykład matrycy 3 x3 

Przykład matrycy 3 x3 

W takim skrzyżowaniu linii 

W takim skrzyżowaniu linii 

można zaprogramować wiele 

można zaprogramować wiele 

połączeń pomiędzy CLB

połączeń pomiędzy CLB

połączeń pomiędzy CLB

połączeń pomiędzy CLB

Program DSCH2 umożliwia 

Program DSCH2 umożliwia 

gg

tworzenie  matryc połączeń

tworzenie  matryc połączeń

6 marca 2011

Wojciech Kucewicz 

58

background image

Połączenie bloków CLB

Połączenie bloków CLB

Połączenie bloków CLB

Połączenie bloków CLB

Przykładowy układ 2 CLB wraz z połączeniami wykonany w DSCH2

Przykładowy układ 2 CLB wraz z połączeniami wykonany w DSCH2

6 marca 2011

Wojciech Kucewicz 

59

background image

Przykład

Przykład

Przykład

Przykład

Zadanie: 

Zadanie: 

Zbudować układ pełnego sumatora w układzie FPGA

Zbudować układ pełnego sumatora w układzie FPGA

1. Układ pełnego sumatora ma 3 zmienne wejściowe A, B, C 

A, B, C oraz 2 

funkcje wyjściowe Sum, Carry

Sum, Carry

j

yj

,

y

,

y

2.

2. Zapisujemy tablicę prawdy

Zapisujemy tablicę prawdy

F=A+B+C

F=A+B+C

S

S

00

SUM

SUM

S

S

11

Carry

Carry

0 00 00

00

00

0 00 11

11

00

0 1 0

0 1 0

11

00

0 1 

0 1 11

00

11

ABC

ABC

0 1 

0 1 11

00

11

1 0 

1 0 00

11

00

1 0 1

1 0 1

00

11

6 marca 2011

Wojciech Kucewicz 

60

1 11 00

00

11

1 11 11

11

11

background image

Zastosowanie układu 

Zastosowanie układu FPGA 

FPGA do budowy pełnego 

do budowy pełnego 

sumatora

sumatora

Zastosowanie układu 

Zastosowanie układu FPGA 

FPGA do budowy pełnego 

do budowy pełnego 

sumatora

sumatora

Pełny sumator realizowany jest przez dwie funkcje: Sumy i przeniesienia. 

Pełny sumator realizowany jest przez dwie funkcje: Sumy i przeniesienia. 

Każdą z tych funkcji należy zamodelować zgodnie z tablicą prawdy w 

Każdą z tych funkcji należy zamodelować zgodnie z tablicą prawdy w 

oddzielnym bloku LUT. 

oddzielnym bloku LUT. 

oddzielnym bloku LUT. 

oddzielnym bloku LUT. 

D       Q’

Clk    Q

Res

D       Q’

D       Q’

Clk    Q

Res

D       Q’

00
11

D       Q’

Clk    Q

Res

D       Q’

D       Q’

Clk    Q

Res

D       Q’

00
00

A   B   C

A   B   C

A   B   C

A   B   C

F A B C

F A B C

S

S

00

S

S

11

D       Q

Clk    Q

Res

D       Q’

Clk    Q

Res

D       Q’

D       Q

Clk    Q

Res

D       Q’

Clk    Q

Res

D       Q’

11
11

D       Q

Clk    Q

Res

D       Q’

Clk    Q

Res

D       Q’

D       Q

Clk    Q

Res

D       Q’

Clk    Q

Res

D       Q’

00
00

F=A+B+C

F=A+B+C

00

SUM

SUM

11

Carry

Carry

0 00 00

00

00

0 00 11

11

00

D       Q

Clk    Q

Res

D       Q’

Clk    Q

Res

D       Q’

Fout

D       Q

Clk    Q

Res

D       Q’

Clk    Q

Res

D       Q’

Fout

00
11

D       Q

Clk    Q

Res

D       Q’

Clk    Q

Res

D       Q’

Fout

D       Q

Clk    Q

Res

D       Q’

Clk    Q

Res

D       Q’

Fout

11
00

SUM

SUM

Carry

Carry

ABC

ABC

0 00 11

11

00

0 1 0

0 1 0

11

00

0 1 

0 1 11

00

11

D       Q’

Clk    Q

Res

D       Q’

Clk    Q

Res

D       Q’

Clk    Q

Res

D       Q’

Clk    Q

Res

00
00

D       Q’

Clk    Q

Res

D       Q’

Clk    Q

Res

D       Q’

Clk    Q

Res

D       Q’

Clk    Q

Res

11
11

ABC

ABC

1 0 

1 0 00

11

00

1 0 1

1 0 1

00

11

1 11 00

00

11

6 marca 2011

Wojciech Kucewicz 

61

D       Q’

Clk    Q

Res

D       Q’

Clk    Q

Res

11

D       Q’

Clk    Q

Res

D       Q’

Clk    Q

Res

11

1 11 00

00

11

1 11 11

11

11

background image

Zastosowanie układu 

Zastosowanie układu FPGA 

FPGA do budowy pełnego 

do budowy pełnego 

sumatora

sumatora

Zastosowanie układu 

Zastosowanie układu FPGA 

FPGA do budowy pełnego 

do budowy pełnego 

sumatora

sumatora

Pełny sumator realizowany jest przez dwie funkcje: Sumy i przeniesienia. 

Pełny sumator realizowany jest przez dwie funkcje: Sumy i przeniesienia. 

Każdą z tych funkcji należy zamodelować zgodnie z tablicą prawdy w 

Każdą z tych funkcji należy zamodelować zgodnie z tablicą prawdy w 

oddzielnym bloku LUT. 

oddzielnym bloku LUT. 

oddzielnym bloku LUT. 

oddzielnym bloku LUT. 

D       Q’

Clk    Q

Res

D       Q’

D       Q’

Clk    Q

Res

D       Q’

A   B   C

A   B   C

A   B   C

A   B   C

D       Q

Clk    Q

Res

D       Q’

Clk    Q

Res

D       Q’

D       Q

Clk    Q

Res

D       Q’

Clk    Q

Res

D       Q’

CLB 1

CLB 1

CLB 2

CLB 2

D       Q

Clk    Q

Res

D       Q’

Clk    Q

Res

D       Q’

Fout

D       Q

Clk    Q

Res

D       Q’

Clk    Q

Res

D       Q’

Fout

SUM

SUM

Carry

Carry

CLB 1

CLB 1

SUM

SUM

CLB 2

CLB 2

SUM

SUM

D       Q’

Clk    Q

Res

D       Q’

Clk    Q

Res

D       Q’

Clk    Q

Res

D       Q’

Clk    Q

Res

6 marca 2011

Wojciech Kucewicz 

62

D       Q’

Clk    Q

Res

D       Q’

Clk    Q

Res

background image

Zastosowanie układu 

Zastosowanie układu FPGA 

FPGA do budowy pełnego 

do budowy pełnego 

sumatora

sumatora

Zastosowanie układu 

Zastosowanie układu FPGA 

FPGA do budowy pełnego 

do budowy pełnego 

sumatora

sumatora

Programowanie CLB powinno skonfigurować 

Programowanie CLB powinno skonfigurować 

cały blok (uwzględniać rejestry sterujące 

cały blok (uwzględniać rejestry sterujące 

multiplekserami  z segmentu 

multiplekserami  z segmentu 

multiplekserami  z segmentu 

multiplekserami  z segmentu 

sekwencyjnego)

sekwencyjnego)

Value9

Value9

Value8

Value8

Value7

Value7

Value6

Value6

Value5

Value5

Value4

Value4

Value3

Value3

Value2

Value2

Value1

Value1

Value0

Value0

SUM

SUM

00

00

11

00

00

11

00

11

11

00

6 marca 2011

Wojciech Kucewicz 

SUM

SUM

00

00

11

00

00

11

00

11

11

00

Carry

Carry

00

00

11

11

11

00

11

00

00

00

background image

Przykład

Przykład

Przykład

Przykład

Zadanie: 

Zadanie: 

Zbudować asynchroniczny licznik 2 bitowy w układzie FPGA

W tym celu 

W tym celu potrzbne

potrzbne są 2 przerzutniki D. Ponieważ w CLB znajduje się tylko 

są 2 przerzutniki D. Ponieważ w CLB znajduje się tylko 

jeden przerzutnik, więc należy wykorzystać 2 bloki CLB. 

jeden przerzutnik, więc należy wykorzystać 2 bloki CLB. 

y

y

y

XX

0

X0

D       Q’

Clk    Q

Res

D       Q’

Clk    Q

Res

Clk

CLB 1

CLB 1

Res

Res

Res

6 marca 2011

Wojciech Kucewicz 

64

background image

Licznik 2 bitowy

Licznik 2 bitowy

Licznik 2 bitowy

Licznik 2 bitowy

0   1

6 marca 2011

Wojciech Kucewicz 

65

background image

Licznik 2 bitowy

Licznik 2 bitowy

Licznik 2 bitowy

Licznik 2 bitowy

W kazdym

kazdym bloku konfiguruje się jeden stopień licznika.  Zapisujemy w 

bloku konfiguruje się jeden stopień licznika.  Zapisujemy w 

rejestrze przesuwnym poniższą sekwencję

rejestrze przesuwnym poniższą sekwencję

Block 1   

Block 1   DataOut

DataOut==nQ

nQ, D=

, D=DataIN

DataIN

Block 1   

Block 1   DataOut

DataOut nQ

nQ, D

, D DataIN

DataIN

CCycle

ycle 11

22

33

44

55

66

77

88

99

10

10

Val (9)

Val (9)

Val (8)

Val (8) 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)

11

00

00

00

00

00

00

00

00

00

11

00

00

00

00

00

00

00

00

00

Block 2   

Block 2   DataOut

DataOut==nQ

nQ, D=

, D=DataIN

DataIN

Q

Q,,

CCycle

ycle 11

22

33

44

55

66

77

88

99

10

10

Val (9)

Val (9)

Val (8)

Val (8) 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)

11

00

00

00

00

00

00

00

00

00

6 marca 2011

Wojciech Kucewicz 

66

11

00

00

00

00

00

00

00

00

00

background image

Licznik 2 bitowy

Licznik 2 bitowy

Licznik 2 bitowy

Licznik 2 bitowy

Połączenie pomiędzy 

Połączenie pomiędzy nQ

nQ i D realizujemy poza blokiem CLB

i D realizujemy poza blokiem CLB

6 marca 2011

Wojciech Kucewicz 

67

background image

CLB 

CLB w układzie 

w układzie Xilinx

Xilinx Spartan

Spartan

CLB 

CLB w układzie 

w układzie Xilinx

Xilinx Spartan

Spartan

Wszystkie bloki CLB w układach Spartan mają taką samą budowę. O funkcjonalności

całego układu FPGA decyduje uniwersalność tych bloków w realizowaniu różnych

6 marca 2011

Wojciech Kucewicz 

68

g

y j

y

y

funkcji. Zbudowane są w oparciu o trzy tablice LUT używane jako generatory funkcji

logicznych, dwa przerzutniki i dwie grupy multiplekserów sterujących przepływem

sygnałów.

background image

CLB  w układzie 

CLB  w układzie Xilinx

Xilinx Spartan

Spartan

CLB  w układzie 

CLB  w układzie Xilinx

Xilinx Spartan

Spartan

Dwie pamięci LUT (F i G) mają

pojemność 16 bitów i są używane

do generowania funkcji logicznych

g

j

g

y

do czterech zmiennych. 

Sygnałami wejściowymi są linie

adresowe tych pamięci oznaczone

na rysunku jako F1-F4 i G1-G4  Są

na rysunku jako F1-F4 i G1-G4. Są

to linie całkowicie niezależne od

siebie i mogą pochodzić z różnych

źródeł w układzie.

Trzecia

Trzecia z 

z występujących

występujących w CLB 

w CLB 

pamięci

pamięci H

H--LUT (9 

LUT (9 bitowa

bitowa) ) stanowi

stanowi

generator 

generator funkcji

funkcji trzech

trzech

zmiennych

zmiennych   podanych

podanych na

na wejścia

wejścia

zmiennych

zmiennych, , podanych

podanych na

na wejścia

wejścia

F, H1, G. 

F, H1, G. 

Dwa

Dwa z 

z tych

tych wejść

wejść (F 

(F ii G) 

G) kontrolowane

kontrolowane są

są przez

przez programowalne

programowalne multipleksery

multipleksery ii mogą

mogą

być

być sterowane

sterowane przez

przez wyjścia

wyjścia pamięci

pamięci F 

F ii G 

G bądź

bądź przez

przez sygnały

sygnały wejściowe

wejściowe SR 

SR ii DIN 

DIN 

danego

danego bloku

bloku CLB  

CLB  Trzeci

Trzeci sygnał

sygnał wejściowy

wejściowy pamięci

pamięci H

H LUT 

LUT pochodzi

pochodzi zawsze

zawsze z 

z wejścia

wejścia

6 marca 2011

Wojciech Kucewicz 

69

danego

danego bloku

bloku CLB. 

CLB. Trzeci

Trzeci sygnał

sygnał wejściowy

wejściowy pamięci

pamięci H

H--LUT 

LUT pochodzi

pochodzi zawsze

zawsze z 

z wejścia

wejścia

bloku

bloku CLB. 

CLB. Dzięki

Dzięki takiemu

takiemu układowi

układowi w 

w pojedynczym

pojedynczym CLB 

CLB mogą

mogą być

być realizowane

realizowane również

również

funkcje

funkcje pięciu

pięciu zmiennych

zmiennych a 

a także

także niektóre

niektóre funkcje

funkcje nawet

nawet do 

do dziewięciu

dziewięciu zmiennych

zmiennych..

background image

CLB  w układzie 

CLB  w układzie Xilinx

Xilinx Spartan

Spartan

CLB  w układzie 

CLB  w układzie Xilinx

Xilinx Spartan

Spartan

Możliwości

Możliwości realizacji

realizacji funkcji

funkcji

kombinacyjnych

kombinacyjnych w 

w każdym

każdym bloku

bloku

CLB 

CLB są

są następujące

następujące::

•• dwie

dwie dowolne

dowolne funkcje

funkcje każda

każda do 

do 

czterech

czterech niezależnych

niezależnych

zmiennych

zmiennych  plus 

 plus trzecia

trzecia funkcja

funkcja

zmiennych

zmiennych, plus 

, plus trzecia

trzecia funkcja

funkcja

do 

do trzech

trzech zmiennych

zmiennych, , 

•• dowolna

dowolna funkcja

funkcja pięciu

pięciu zmien

zmien--

hh   l  

  l   d

l

d

l f k j

f k j d  

d  

nych

nych, plus 

, plus dowolna

dowolna funkcja

funkcja do 

do 

czterech

czterech zmiennych

zmiennych, , 

•• dowolna

dowolna funkcja

funkcja czterech

czterech

owo na

owo na fun cja

fun cja czt r ch

czt r ch

zmiennych

zmiennych, plus 

, plus niektóre

niektóre funkcje

funkcje

sześciu

sześciu zmiennych

zmiennych, , 

niektóre

niektóre funkcje

funkcje do 

do dziewięciu

dziewięciu

6 marca 2011

Wojciech Kucewicz 

70

•• niektóre

niektóre funkcje

funkcje do 

do dziewięciu

dziewięciu

zmiennych

zmiennych. . 

background image

CLB w układzie 

CLB w układzie Xilinx

Xilinx Spartan

Spartan

CLB w układzie 

CLB w układzie Xilinx

Xilinx Spartan

Spartan

Oprócz

Oprócz tablic

tablic LUT 

LUT każdy

każdy CLB 

CLB 

zawiera

zawiera dwa

dwa konfigurowalne

konfigurowalne

przerzutniki

przerzutniki. . Mogą

Mogą być

być one 

one 

wykorzystane

wykorzystane do 

do zapamiętywania

zapamiętywania

stanów

stanów wyjściowych

wyjściowych tablic

tablic LUT 

LUT 

albo

albo pracować

pracować niezależnie

niezależnie od

od

albo

albo pracować

pracować niezależnie

niezależnie od

od

nich

nich. . Wówczas

Wówczas sygnał

sygnał DIN 

DIN może

może

być

być doprowadzony

doprowadzony do 

do wejścia

wejścia

dowolnego

dowolnego przerzutnika

przerzutnika lub

lub do 

do 

bb j d

ś i

j d

ś i   P d b i

P d b i

żż

obu

obu jednocześnie

jednocześnie. . Podobnie

Podobnie może

może

być

być doprowadzony

doprowadzony poprzez

poprzez

tablicę

tablicę H

H--LUT (z 

LUT (z niewielkim

niewielkim

opóźnieniem

opóźnieniem) ) sygnał

sygnał H1. 

H1. 

opóźn n m

opóźn n m) ) sygna

sygna H . 

H . 

Oba przerzutniki posiadają wspólne sygnały: zegara (CK), blokowania zegara (EC) i 

Oba przerzutniki posiadają wspólne sygnały: zegara (CK), blokowania zegara (EC) i 

ustawiania/zerowania przerzutnika (SR)  

ustawiania/zerowania przerzutnika (SR)  

6 marca 2011

Wojciech Kucewicz 

71

ustawiania/zerowania przerzutnika (SR). 

ustawiania/zerowania przerzutnika (SR). 

background image

CLB  w układzie 

CLB  w układzie Xilinx

Xilinx Spartan

Spartan

CLB  w układzie 

CLB  w układzie Xilinx

Xilinx Spartan

Spartan

Uniwersalne układy wejścia/wyjścia IOB (Input/Output Blocks)

Układy wejścia/wyjścia stanowią interfejs

między zewnętrznymi wyprowadzeniami

układu a wewnętrzną logiką. Każdy taki

kł d

ół

j

 j d

óżk kł d  

układ współpracuje z jedną nóżką układu. 

Układy te są w znacznym stopniu

konfigurowalne tak aby mogły spełniać

różne role, w zależności od potrzeb. IOB 

,

p

można skonfigurować do pracy z sygnałami

wejściowymi, wyjściowymi lub

dwukierunkowymi
Droga sygnałów wejściowych: sygnał z końcówki układu wprowadzany jest przez bufor

wejściowy. Następnie może być przekazany bezpośrednio na końcówki I1  i I2,  i dalej

do wewnętrznej sieci połączeń układu FPGA. Natomiast w przypadku gdy zachodzi

potrzeba zapamiętania stanu sygnału wejściowego  mamy do wyboru dwie metody:

6 marca 2011

Wojciech Kucewicz 

72

potrzeba zapamiętania stanu sygnału wejściowego, mamy do wyboru dwie metody:

• zapamiętanie stanu sygnału w przerzutniku na narastającym zboczu zegara

• zatrzaśnięcie stanu sygnału w zatrzasku po opadnięciu sygnału bramkującego