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
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
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
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
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
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
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
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
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
Standard Cell
Standard Cell
Standard Cell
Standard Cell
Standard Cell
Standard Cell
Standard Cell
Standard Cell
6 marca 2011
Wojciech Kucewicz
11
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
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
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
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
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
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
Gate Array
Gate Array
Gate Array
Gate Array
Gate Array
Gate Array
Gate Array
Gate Array
6 marca 2011
Wojciech Kucewicz
18
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
.
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
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
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
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
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
))
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
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).
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ść
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ść
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
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
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
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
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ń
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.
Układy GAL
Układy GAL
Układy GAL
Układy GAL
SPLD
SPLD
(GAL)
(GAL)
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
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
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
Przykładowy układ GAL ATF22LV10C
Przykładowy układ GAL ATF22LV10C
Przykładowy układ GAL ATF22LV10C
Przykładowy układ GAL ATF22LV10C
Budowa
Budowa makroceli
makroceli układu GAL22V10
układu GAL22V10
Budowa
Budowa makroceli
makroceli układu GAL22V10
układu GAL22V10
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.
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
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
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.
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
..
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ą
gą pp
jj
jj
yy
bramki
bramki logiczne
logiczne. .
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Licznik 2 bitowy
Licznik 2 bitowy
Licznik 2 bitowy
Licznik 2 bitowy
0 1
6 marca 2011
Wojciech Kucewicz
65
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
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
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.
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..
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. .
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).
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