13 Programowalne i Specjalistyczne Układy Cyfrowe

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

y ,,

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

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
m

X

2

X

1

X

0

DA
T

A

Cl

k

Me
m

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
m

X

2

X

1

X

0

DA
T

A

Cl

k

Me
m

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

1

1

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

0 00 00

00

00

0

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

1 11 00

00

11

1

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

0 00 00

00

00

0

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

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

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

1 11 00

00

11

1

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

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


Wyszukiwarka

Podobne podstrony:
IO11Programowalne i specjalistyczne uklady cyfrowe
MSE11Programowalne i specjalistyczne uklady cyfrowe
13 programowalny kontroler przerwan 8259
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
Ćwiczenie 13-program, UG, SEM3, GENETYKA
VHDL ściąga 2, Uc2- uklady cyfrowe,sciagi, wyklady
13 Roboty specjalistyczne v1 1id 14777
Cw 24 Uklady cyfrowe id 122415 Nieznany
VHDL ściąga, Uc2- uklady cyfrowe,sciagi, wyklady
Sprawozdanie Ukłądy cyfrowe

więcej podobnych podstron