13 Programowalne i Specjalistyczne Układy Cyfrowe


Programowalne
Programowalne
Programowalne
Programowalne
Programowalne
Programowalne
Programowalne
Programowalne
i specjalizowane
i specjalizowane
i specjalizowane
i specjalizowane
i specjalizowane
i specjalizowane
i specjalizowane
i specjalizowane
układy cyfrowe
układy cyfrowe
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
Klasyfikacja
Klasyfikacja
układów logicznych
układów logicznych
układów logicznych
układów logicznych
k dó l h
k dó l h
k dó l h
k dó l h
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 - Application Specific Integrated Circuits, specjalizowane układy scalone, projektowane
ASIC - Application Specific Integrated Circuits, 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 Custom  Układy ASIC, w których projektant projektuje wszystkie elementy układu scalonego
Full Custom  Układy ASIC, w których projektant projektuje wszystkie elementy układu scalonego
poczynając od topologii tranzystorów i połączeń między nimi wyprowadzeń.
poczynając od topologii tranzystorów i połączeń między nimi wyprowadzeń.
Logic
Logic
circuits
circuits
Standard
Standard
ASIC
ASIC
Logic
Logic
Standard Full Custom
Standard Full Custom
PLD Gate Array
PLD Gate Array
Cell IC IC
Cell IC IC
SPLD
SPLD
CPLD FPGA
CPLD FPGA
(PAL)
(PAL)
VLSI Design Flow
VLSI Design Flow
VLSI Design Flow
VLSI Design Flow
VLSI Design Flow
VLSI Design Flow
VLSI Design Flow
VLSI Design Flow
Full Custom
Full Custom
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-Up full custom
Bottom-Up full custom
p
p
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-block Schematic
Sub-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
Fabrification
Fabrification
6 marca 2011 Wojciech Kucewicz 8
Full Custom
Full Custom
Full Custom
Full Custom
Advantages
Advantages
" chip area fully used
" chip area fully used
p y
py
" faster (shorter interconnections)
" faster (shorter interconnections)
" power consumption adequate to the circuit function
" power consumption adequate to the circuit function
" cheap i th long series (for example memories)
" cheap i th long series (for example memories)
h in the l i
h in the l i
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 - Application Specific Integrated Circuits, specjalizowane układy scalone, projektowane
ASIC - Application Specific Integrated Circuits, 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 Cell  Układy ASIC, w których projektant składa układ z gotowych topologii
Układy Standard Cell  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
ASIC
ASIC
Logic
Logic
Standard Full Custom
Standard Full Custom
PLD Gate Array
PLD Gate Array
Cell IC IC
Cell IC IC
SPLD
SPLD
CPLD FPGA
CPLD FPGA
(PAL)
(PAL)
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
connections, each cell layout is designed h a fixed height, so that a
h ll l d d with f d h h h
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
boundaries of the cell, thus, neighbouring cells share a common power
and ground bus
6 marca 2011 Wojciech Kucewicz 13
Standard Cells
Standard Cells
Standard Cells
Standard Cells
Inside the I/O frame which is
reserved for I/O cells, the chip
area contains rows or columns of
nt ins s l mns f
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
py y
" faster (shorter interconnections)
" faster (shorter interconnections)
" power consumption adequate to the circuit function
" power consumption adequate to the circuit function
" cheap i th long series
" cheap i th long series
h in the l i
h in the l i
Disadvantages
Disadvantages
Disadvantages
Disadvantages
" longer prototyping
" longer prototyping
" expg
" expensive design
pensive design
pg
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 - Application Specific Integrated Circuits, specjalizowane układy scalone, projektowane
ASIC - Application Specific Integrated Circuits, 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 Gate Array  Układy ASIC, w których projektant projektuje maskę połączeń między
Układy Gate Array  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
ASIC
ASIC
Logic
Logic
Standard Full Custom
Standard Full Custom
PLD Gate Array
PLD Gate Array
Cell IC IC
Cell IC IC
SPLD
SPLD
CPLD FPGA
CPLD FPGA
(PAL)
(PAL)
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.
p
" Chips can be stored for later customization, which is completed by defining the
metal interconnects between the transistors of the array.
6 marca 2011 Wojciech Kucewicz 19
Gate Array Chip
Gate Array Chip
Gate Array Chip
Gate Array Chip
Gate array chip contains:
" bonding pads,
" diodes for I/O p,
protection, nMOS
and pMOS transistors for chip
output driver circuits in the
neighboring areas of bonding pads,
" arrays of nMOS and pMOS
f MOS d MOS
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
" qprototyping ( slower than FPGA)
" qprototyping ( slower than FPGA)
quite fast p yp g (but )
quite fast p yp g (but )
" low volume application
" low volume application
" short turn-around time (but longer than FPGA)
" short turn-around time (but longer than FPGA)
Disadvantages
Disadvantages
" chip area only partially used (but better than FPGA)
" chip area only partially used (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
" qp
" qp
quite expensive
quite expensive
6 marca 2011 Wojciech Kucewicz 21
Klasyfikacja układów logicznych
Klasyfikacja układów logicznych
Klasyfikacja układów logicznych
Klasyfikacja układów logicznych
ASIC - Application Specific Integrated Circuits, specjalizowane układy scalone, projektowane indywidualnie do
ASIC - Application Specific Integrated Circuits, 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 - Programmable Logic Devices, Użytkownik może zaimplementować w jego strukturze opracowany przez
PLD - Programmable Logic Devices, Użytkownik może zaimplementować w jego strukturze opracowany przez
siebie projekt specjalizowanego układu cyfrowego. Cechą tych układów jest więc ich konfigurowalność przez
siebie projekt specjalizowanego układu cyfrowego. Cechą tych układów jest więc ich konfigurowalność przez
użytkownika
użytkownika
użytkownika.
użytkownika.
SPLD - Simple Programmable Logic Devices, proste układy programowalne.
SPLD - Simple Programmable Logic Devices, proste układy programowalne.
CPLD - Complex Programmable Logic Devices, złożone układy programowalne.
CPLD - Complex Programmable Logic Devices, złożone układy programowalne.
FPGA - Field Programmable Gate Array, programowalne matryce bramkowe.
FPGA - Field Programmable Gate Array, programowalne matryce bramkowe.
Logic
Logic
circuits
circuits
Standard
Standard
ASIC
ASIC
Logic
Logic
Standard Full Custom
Standard Full Custom
PLD Gate Array
PLD Gate Array
Cell IC IC
Cell IC IC
SPLD
SPLD
CPLD FPGA
CPLD FPGA
(PAL)
(PAL)
Programowalne
Programowalne
Programowalne
Programowalne
i specjalizowane układy cyfrowe
i specjalizowane układy cyfrowe
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. Xilinx (www.xilinx.com )
1. Xilinx (www.xilinx.com )
2. Altera (www.altera.com )
2. Altera (www.altera.com )
3. Lattice-Vantis (www.latticesemi.com)
3. Lattice-Vantis (www.latticesemi.com)
4. Actel (www.actel.com )
4. Actel (www.actel.com )
5 Atmel (www.atmel.com )
5 Atmel (www atmel com )
5. Atmel (www atmel com )
5. Atmel (www.atmel.com )
6. Cypress (www.cypress.com )
6. Cypress (www.cypress.com )
7. QuickLogic (www.quicklogic.com )
7. QuickLogic (www.quicklogic.com )
Literatura
Literatura
Literatura
Literatura
1. Pasierbiński J., Zbysiński P., Układy programowalne w praktyce, Wyd. WKA,
1. Pasierbiński J., Zbysiński P., Układy programowalne w praktyce, Wyd. WKA,
Warszawa 2002.
Warszawa 2002.
2 Kevin Skahill, Język VHDL Projektowanie programowalnych układów
2 Kevin Skahill Język VHDL Projektowanie programowalnych układów
2. Kevin Skahill Język VHDL, Projektowanie programowalnych układów
2. Kevin Skahill, Język VHDL, Projektowanie programowalnych układów
logicznych,Wydawnictwa naukowo-Techniczne, Warszawa 2001
logicznych,Wydawnictwa naukowo-Techniczne, Warszawa 2001
3. T. Auba, K. Jasiński, B. Zbierzchowski, Specjalizowane układy cyfrowe w
3. T. Auba, K. Jasiński, B. Zbierzchowski, Specjalizowane układy cyfrowe w
strukturach PLD i FPGA, WKA, Warszawa, 1997
strukturach PLD i FPGA, WKA, Warszawa, 1997
4 Podręczniki firmowe (Data Book Data Sheet Application Notes itp ) do
4 Podręczniki firmowe (Data Book, Data Sheet, Application Notes itp.. ) do
4. Podręczniki firmowe (Data Book Data Sheet Application Notes, itp.. & ) do
4. Podręczniki firmowe (Data Book, Data Sheet, Application Notes, 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, np:
Inne strony WWW zajmujące się tematyką PLD, np:
 http://www.fpgajournal.com,
 http://www.fpgajournal.com,
 www design reuse com
 www design reuse com
 www.design-reuse.com,
 www.design-reuse.com,
 www.opencores.org
 www.opencores.org
Układy SPLD
Układy SPLD
Układy SPLD
Układy SPLD
Do układów SPLD zalicza się układy programowalne:
Do układów SPLD zalicza się układy programowalne:
PLA (Programmable Logic Array)
PLA (Programmable Logic Array),
PLA (Programmable Logic Array)
PLA (Programmable Logic Array),
PAL (Programmable Array Logic)
PAL (Programmable Array Logic)
GAL (Generic Array Logic).
GAL (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 makrokomórek logicznych o dwupoziomowej
Ich zasoby logiczne zawierają typowo od 4 do 22 makrokomórek 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ą łączniki (klucze), którymi są w
(skonfigurowania/zaprogramowania układu) stosowane są łączniki (klucze), którymi są w
większości przypadków przepalane elektrycznie fragmenty ścieżek (łączniki rozwarciowe  dla
większości przypadków przepalane elektrycznie fragmenty ścieżek (łączniki rozwarciowe  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  Programowalne Matryce
Układy PLA  Programowalne Matryce
Układy PLA  Programowalne Matryce
Układy PLA  Programowalne Matryce
Logiczne
Logiczne
Logiczne
Logiczne
X0
X0
SPLD
SPLD
(PLA)
(PLA)
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
X15
X15
16 wejścia
16 wejścia
programowalnymi połączeniami
programowalnymi połączeniami
(najczęściej zwarciami) w 8 bramek
(najczęściej zwarciami) w 8 bramek
(najczęściej zwarciami) w 8 bramek
(najczęściej zwarciami) w 8 bramek
16 bramek
16 bramek
k
k
OR
OR
NAND
NAND
miejscu ich krzyżowania się
miejscu ich krzyżowania się
16 wejść
16 wejść
Układy PLA  Programowalne Matryce
Układy PLA  Programowalne Matryce
Układy PLA  Programowalne Matryce
Układy PLA  Programowalne Matryce
Logiczne
Logiczne
Logiczne
Logiczne
X0
X0
SPLD
SPLD
(PLA)
(PLA)
X1
X1
Układy PLA są przykładem
Układy PLA są przykładem
kombinacyjnego układu PLD.
kombinacyjnego układu PLD.
X15
X15
Stanowią dwuwymiarową
Stanowią dwuwymiarową
Stanowią dwuwymiarową
Stanowią dwuwymiarową
strukturę połączeń z
strukturę połączeń z
32 wejścia
32 wejścia
programowalnymi połączeniami
programowalnymi połączeniami
(najczęściej zwarciami) w 8 bramek
(najczęściej zwarciami) w 8 bramek
(najczęściej zwarciami) w 8 bramek
(najczęściej zwarciami) w 8 bramek
48 bramek
48 bramek
k
k
OR
OR
NAND
NAND
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
mają bramki AND i bramki OR
mają bramki AND i bramki OR
16 wejść
16 wejść
Układy PLA  Programowalne Matryce
Układy PLA  Programowalne Matryce
Układy PLA  Programowalne Matryce
Układy PLA  Programowalne Matryce
Logiczne
Logiczne
Logiczne
Logiczne
SPLD
SPLD
X0
X0
X0
X0
(PLA)
(PLA)
Dla każdego sygnału wejściowego można
Dla każdego sygnału wejściowego można
wyróżnić 4 przypadki programowania
wyróżnić 4 przypadki programowania
wejść bramki NAND:
wejść bramki NAND:
1 2
12
1. Stan nie zaprogramowany
1. Stan nie zaprogramowany
X0 X0
X0 X0
2 P d ni sygnału jś i ni
2 P d ni sygnału jś i nie
2. Podawanie s n łu wejściowego nie
2. Podawanie s n łu wejściowego ni
zanegowanego
zanegowanego
3 4
3 4
3 4
3 4
3 Podawanie sygnału wejściowego
3 Podawanie sygnału wejściowego
3. Podawanie sygnału wejściowego
3. Podawanie sygnału wejściowego
zanegowanego
zanegowanego
4 Nie podawanie sygnału na wejście
4 Nie podawanie sygnału na wejście
4. Nie podawanie sygnału na wejście
4. Nie podawanie sygnału na wejście
Układy PLA  Programowalne Matryce
Układy PLA  Programowalne Matryce
Układy PLA  Programowalne Matryce
Układy PLA  Programowalne Matryce
Logiczne
Logiczne
Logiczne
Logiczne
SPLD
SPLD
A
A
(PLA)
(PLA)
B
B
B
B
Realizacja sumatora przy
Realizacja sumatora przy
C
C
pomocy układu PLA
pomocy układu PLA
S = A B C + AB C + A BC + ABC
S = A B C + AB C + A BC + ABC
S
S
Carry = AB + AC + BC
Carry = AB + AC + BC
Carry
Carry
Carry
Carry
Układy PAL  Programowalne Matrycowe
Układy PAL  Programowalne Matrycowe
Układy PAL  Programowalne Matrycowe
Układy PAL  Programowalne Matrycowe
Układy Logiczne
Układy Logiczne
Układy Logiczne
Układy Logiczne
Programmable
Programmable
X0
X0
SPLD
SPLD
Array Logic
Array Logic
(PAL)
(PAL)
Układy PAL
Układy PAL
X1
X1
charakteryzują się tym,
charakteryzują się tym,
iż programowalne
iż programowalne
iż programowalne
iż programowalne
X2
X2
połączenia mają tylko
połączenia mają tylko
bramki AND.
bramki AND.
W układach PAL wyjście
W układach PAL wyjście
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  Programowalne Matrycowe
Układy PAL  Programowalne Matrycowe
Układy PAL  Programowalne Matrycowe
Układy PAL  Programowalne Matrycowe
Układy Logiczne
Układy Logiczne
Układy Logiczne
Układy Logiczne
Programmable
Programmable
SPLD
SPLD
Array Logic
Array Logic
A
A
(PAL)
(PAL)
S
S
S
S
Realizacja sumatora przy
Realizacja sumatora przy
B
B
pomocy układu PAL
pomocy układu PAL
S = A B C + AB C + A BC + ABC
S = A B C + AB C + A BC + ABC
C
C
Carry
Carry
Carry = AB + AC + BC
Carry = AB + AC + BC
y
y
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. Macierz połączeń AND
1. Macierz połączeń AND
2 F k j OR ( st iki)
2 F k j OR ( st iki)
2. Funkcje OR (następniki)
2. Funkcje OR (następniki)
3. Sprzężenia zwrotne do macierzy połączeń
3. Sprzężenia zwrotne do macierzy połączeń
Układy GAL
Układy GAL
Układy GAL
Układy GAL
SPLD
SPLD
Generic Array Logic
Generic Array Logic
(GAL)
(GAL)
Obecnie najpopularniejszą grupą układów SPLD są układy GAL, w których
Obecnie najpopularniejszą grupą układów SPLD są układy GAL w których
Obecnie najpopularniejszą grupą układów SPLD są układy GAL w których
Obecnie najpopularniejszą grupą układów SPLD są układy GAL, w których
wykorzystano architekturę PAL wzbogaconą o konfigurowalne
wykorzystano architekturę PAL wzbogaconą o konfigurowalne
makrokomórki wyjściowe zawierające przerzutniki typu D. Przerzutniki
makrokomórki wyjściowe zawierające przerzutniki typu D. 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 OLMC umożliwia zaprogramowanie układu w trybie
Makrokomórka 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 OLMC umożliwia zaprogramowanie układu w trybie
Makrokomórka 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 OLMC umożliwia zaprogramowanie układu w trybie
Makrokomórka 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 makroceli układu GAL22V10
Budowa makroceli układu GAL22V10
Budowa makroceli układu GAL22V10
Budowa makroceli układu GAL22V10
Układy CPLD
Układy CPLD
Układy CPLD
Układy CPLD
Complex Programmable Logic Devices
Complex Programmable Logic Devices
CPLD
CPLD
Układy CPLD są koncepcyjnie podobne do układów SPLD, lecz są bardziej złożone: mają
Układy CPLD 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ę hierarchiczną opartą na mm g y ,
Ich architektura m strukturę hierarchiczną opartą na mm g y ,
ma ę ą p ą makrokomórkach logicznych,
m ę ą p ą makrokomórkach logicznych,
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 blok funkcjonalny (podobny do
makrokomórek jest połączonych w większy blok funkcjonalny (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ą matrycy
Poszczególne bloki funkcjonalne są łączone między sobą za pomocą matrycy
połączeniowej, której zdolność łączeniowa jest ważną cechą układów CPLD.
połączeniowej, 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 Complex Programmable Logic Devices
CPLD Complex Programmable Logic Devices
BF BF
BF BF
BF BF
BF BF
BF BF
BF BF
I/O I/O
I/O I/O
BF BF
BF BF
BF BF
BF BF
BF BF
BF BF
interc
interc
Pr
Pr
connection m
connection m
rogrammable
rogrammable
matrix
matrix
e
e
Field Programmable
Field Programmable
Field Programmable
Field Programmable
Field Programmable
Field Programmable
Field Programmable
Field Programmable
Gate Arrays
Gate Arrays
Gate Arrays
Gate Arrays
Gate Arrays
Gate Arrays
Gate Arrays
Gate Arrays
( )
(FPGA)
( )
(FPGA)
( )
(FPGA)
( )
(FPGA)
(FPGA)
(FPGA)
(FPGA)
(FPGA)
6 marca 2011 Wojciech Kucewicz 43
Układy FPGA
Układy FPGA
Układy FPGA
Układy FPGA
y
y
Układy FPGA (Field Programmable Gate Array) należą do grupy układów
Układy FPGA (Field Programmable Gate Array) należą do grupy układów
programowalnych przez użytkownika
programowalnych przez użytkownika
programowalnych przez użytkownika
programowalnych przez użytkownika..
Dzięki uniwersalnej budowie i pełnej konfigurowalności możliwe jest
Dzięki uniwersalnej budowie i pełnej konfigurowalności możliwe jest
zaimplementowanie dowolnej funkcji logicznej w strukturze FPGA
zaimplementowanie dowolnej funkcji logicznej w strukturze FPGA
zaimplementowanie dowolnej funkcji logicznej w strukturze FPGA.
zaimplementowanie dowolnej funkcji logicznej w strukturze FPGA.
Ta uniwersalność układów FPGA powoduje, że produkowane są one masowo i
Ta uniwersalność układów FPGA powoduje, że produkowane są one masowo i
dzięki temu są ogólnie dostępne
dzięki temu są ogólnie dostępne
dzięki temu są ogólnie dostępne
dzięki temu są ogólnie dostępne..
Stanowią dobrą alternatywę dla układów ASIC charakteryzujących się
Stanowią dobrą alternatywę dla układów ASIC charakteryzujących się
wysokimi kosztami produkcji układu prototypowego i dłuższą procedurą
wysokimi kosztami produkcji układu prototypowego i dłuższą procedurą
wysokimi kosztami produkcji układu prototypowego i dłuższą procedurą
wysokimi kosztami produkcji układu prototypowego i dłuższą procedurą
projektową.
projektową.
Układy FPGA najchętn ej wykorzystywane są przy projektowaniu
Układy FPGA najchętniej wykorzystywane są przy projektowaniu
Układy F G najchętniej wykorzystywane są przy projektowan u
Układy F G najchętn ej wykorzystywane są przy projektowan u
prototypowych układów cyfrowych średniej i dużej wielkości i
prototypowych układów cyfrowych średniej i dużej wielkości i
krótkoseryjnej produkcji.
krótkoseryjnej produkcji.
Układy FPGA
Układy FPGA
Układy FPGA
Układy FPGA
y
y
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 CLB (Configurable Logic Block)
zbiór programowalnych bloków logicznych CLB (Configurable Logic Block)
o regularnym rozkładzie topograficznym, programowalne połączenia PSM
o regularnym rozkładzie topograficznym, programowalne połączenia
(Programmable switch matrix) oraz bufory wejścia wyjścia (IO buffer)
g oraz y j yj
..
Układy FPGA
Układy FPGA
Układy FPGA
Układy FPGA
y
y
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 bloków logicznych. Bloki
Struktury FPGA zawierają do dziesiątków tysięcy bloków logicznych. 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.
Bloki PLB mogą spełniać o wiele bardziej zaawansowane funkcje niż zwykłe
Bloki PLB mogą spełniać o wiele bardziej zaawansowane funkcje niż zwykłe
gą p j j y
gą p j j y
bramki logiczne.
bramki logiczne.
Układy FPGA
Układy FPGA
Układy FPGA
Układy FPGA
y
y
Programowanie układów FPGA polega na skonfigurowaniu
Programowanie układów FPGA polega na skonfigurowaniu
układów wejścia/wyjścia, bloków logicznych oraz
układówwejścia/wyjścia, bloków logicznych oraz
kł dó jś i / jś i bl kó l i h
kł dó jś i / jś i bl kó l i h
połączeń między nimi.
połączeń między nimi.
Jest to proces programowania wewnętrznej pamięci układu, która z kolei
Jest to proces programowania wewnętrznej pamięci układu, która z kolei
steruje siecią łączników konfigurujących poszczególne funkcje układu.
steruje siecią łączników konfigurujących poszczególne funkcje układu.
Pamięć konfiguracji nie stanowi oddzielnego bloku, ale jej poszczególne
Pamięć konfiguracji nie stanowi oddzielnego bloku, ale jej 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 wewnętrzne kanały łączeniowe składają się z odcinków ścieżek
Wszystkie wewnętrzne kanały łączeniowe składają się z odcinków ścieżek
metalowych, programowalnych punktów łączeniowych - PIP (Programmable
metalowych, programowalnych punktów łączeniowych - PIP (Programmable
Interconnect Point) i p g y y ą y
Interconnect Point) i p g y y ą y
) programowalnych matryc łączeniowych - PSM
) programowalnych matryc łączeniowych - PSM
(Programmable Switch Matrix), , tworząc w efekcie wydajną strukturę
(Programmable Switch Matrix), , tworząc w efekcie wydajną strukturę
do realizacji sieci połączeń projektowanego systemu.
do realizacji sieci połączeń projektowanego systemu.
W miejscach p ę y j ją ę y ą
W miejscach p ę y j ją ę y ą
j przecinania się linii lokalnych znajdują się matryce łączników
j przecinania się linii lokalnych znajdują się matryce łączników
PSM pełniące rolę programowalnych zwrotnic sygnałowych.
PSM pełniące rolę programowalnych zwrotnic 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
System-On-Chip
System-On-Chip
System-On-Chip
System-On-Chip
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  Multichip module lub  System on chip ,
Powstaje w ten sposób typowy układ  Multichip 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 Logic Blocks
Programable Logic Blocks
Programable Logic Blocks
Programable Logic 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 (Look-up-Table) do realizacji
LUT (Look-up-Table)
funkcji kombinacyjnych oraz bloku sekwencyjnego, który może się składać z
bloku sekwencyjnego
jednego lub wielu przerzutników. Wszystkie segmenty są łączone poprzez
multipleksery.
6 marca 2011 Wojciech Kucewicz 50
Look-Up-Table
Look-Up-Table
Look-Up-Table
Look-Up-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 Fout zapisane są w tablicy i adresowane stanami
Wartości logiczne funkcji Fout zapisane są w tablicy i adresowane stanami
wejść X0, X1 i X2
wejść X0, X1 i X2
ść
ść
Look-Up-Table
Value 0
Value 0
1
Value 1
X2
Value 2
0
Value 3
Value 3
Fout
Fout
X1
X1
P k d d ( )
Przykładowo adres 5 (101)
Value 4
podłącza do wyjścia wartość
1
Value 5
Value 5
X0
Value(5) zapisaną w tablicy.
Value 6
Value 6
Value7
6 marca 2011 Wojciech Kucewicz 51
Look-Up-Table
Look-Up-Table
Look-Up-Table
Look-Up-Table
Tablica LUT
LUT może być zbudowana z
1 0 1
1 0 1
rejestru przesuwnego szeregowo-
D Q
D Q
Value 0
Clk Q
Clk Q
równoległego (przerzutniki D) z
g g p
Res
Res
Res
Res
wybieraniem wyjścia przy pomocy
D Q
D Q
multipleksera. Value 1
Clk Q
Clk Q
Res
Res
Stany logiczne funkcji Fout są
Stany logiczne funkcji Fout są
D Q
D Q
D Q
D Q
Clk Q
Value 2 Clk Q
wprowadzane z pamięci do rejestru
Res
Res
przesuwnego i wybierane odpowiednim
D Q
D Q
adresem (X2 X1 X0) Clk Q
m(X X X ) Clk Q
Q
Q
Value 3
Value 3
Res
Res
Fout
Fout
D Q
D Q
Value 4
Clk Q
Clk Q
Res
Res
D Q
D Q
P k d d ( )
Przykładowo adres 5 (101)
Clk Q
Value 5 Clk Q
podłącza do wyjścia wartość
Res
Res
Value(5) zapisaną w tablicy.
D Q
D Q
Clk Q
Clk Q
Value 6
Res
Res
D Q
D Q
Clk Q
Clk Q
Value 7
6 marca 2011 Wojciech Kucewicz 52
Res
Res
Configurable Logic Block
Configurable Logic Block
Configurable Logic Block
Configurable Logic Block
Blok CLB zawiera również
LUT Układ sekwencyjny
układ sekwencyjny.
Przełączanie funkcji pomiędzy D Q
Przełączanie funkcji pomiędzy D Q
Clk Q
Clk Q
Res
blokiem kombinacyjnym (LUT) Res
D Q
D Q
i sekwencyjnym wykonuje się
Clk Q
Clk Q
Res
Res
Res
Res
przy pomocy multiplekserów
przy pomocy multiplekserów.
D Q
D Q
Multipleksery przełączane są
Clk Q
Clk Q
Res
Res
wartościami logicznymi
D Q
D Q
DATAout
DATAout
wpisanymi do rozszerzonego o
ii d
Clk Q
Clk Q
D Q
D Q
Res
Res
Clk Q
Clk Q
2 bity rejestru przesuwnego
Fout
Fout
Res
Res
D Q
D Q
Q
Q
LUT.
Clk Q
Clk Q
Res
Res
D Q
D Q
Clk Q
Clk Q
Res
Res
D Q D Q
D Q D Q
Clk Q Clk Q
Clk Q Clk Q
D Q
D Q
Res Res
Res Res
Clk Q
Clk Q
Clk Q
Clk Q
V l 8 V l 9
Value 8 Value 9
Res
Res
D Q
D Q
Clk Q
Clk Q
Res
Res
6 marca 2011 Wojciech Kucewicz 53
Mem
Mem
DATA
DATA
Clk
Clk
X2
X2
X1
X1
X0
X0
2
2
1
1
k
k
0
0
Ain
Ain
Configurable Logic Block
Configurable Logic Block
Configurable Logic Block
Configurable Logic Block
Prezentowany układ jest podobny do układów serii Xilinx XC5200.
Prezentowany układ jest podobny do układów serii Xilinx XC5200.
D Q
D Q
Wjś i LUT j t bezpośrednio
Wjś i LUT j t b ś d i
Wyjście LUT jest b ś d i
Wyjście LUT jest bezpośrednio
Clk Q
Clk Q
Res
Res
połączone do wyjścia Fout oraz
połączone do wyjścia Fout oraz
D Q
D Q
poprzez multiplekser z wejściem
poprzez multiplekser z wejściem
Clk Q
Clk Q
Res
Res
Res
Res
przerzutnika
przerzutnika
przerzutnika.
przerzutnika.
D Q
D Q
Clk Q
Clk Q
Na przerzutnik można też
Na przerzutnik można też
Res
Res
podawać sygnał bezpośrednio z
podawać sygnał bezpośrednio z
D Q
D Q
DATAout
DATAout
Clk Q
Clk Q
wejścia DATAin.
wejścia DATAin.
ś
ś
D Q
D Q
Res
Res
Clk Q
Clk Q
Fout
Fout
Res
Res
D Q
D Q
Q
Q
W zależności od ustawienia
W zależności od ustawienia
Clk Q
Clk Q
Res
Res
drugiego multipleksera na wyjście
drugiego multipleksera na wyjście
drug ego mult pleksera na wyjśc e
drug ego mult pleksera na wyjśc e
D Q
D Q
DATAout można podać sygnał z
DATAout można podać sygnał z
Clk Q
Clk Q
Res
Res
D Q D Q
D Q D Q
wyjścia nQ przerzutnika lub
wyjścia nQ przerzutnika lub
Clk Q Clk Q
Clk Q Clk Q
D Q
D Q
Res Res
Res Res
bezpośrednio sygnał z wejścia
bezpośrednio sygnał z wejścia
p yg j
p yg j
Clk Q
Clk Q
Clk Q
Clk Q
Res
Res
DATAin
DATAin
D Q
D Q
Clk Q
Clk Q
Res
Res
6 marca 2011 Wojciech Kucewicz 54
Mem
Mem
DATA
DATA
Clk
Clk
X2
X2
X1
X1
X0
X0
2
2
1
1
k
k
0
0
Ain
Ain
Programmable Switching Matrix
Programmable Switching Matrix
Programmable Switching Matrix
Programmable Switching 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
połączeń PIP  (Programmable Interconnect Point).
połączeń PIP  (Programmable Interconnect Point).
ł ń PIP (Pbl I t t P i t)
ł ń PIP (Pbl I t t P i t)
6 marca 2011 Wojciech Kucewicz 55
Programmable Switching Matrix
Programmable Switching Matrix
Programmable Switching Matrix
Programmable Switching 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
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ą
ł 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łączone). Rezystancja takiego połączenia ma wartość ok. 100 &!.
połączone). Rezystancja takiego połączenia ma wartość ok. 100 &!.
0
0
1
1
D Q
D Q
Clk Q
Clk Q
Clk Q
Clk Q
Res
Res
6 marca 2011 Wojciech Kucewicz 56
Programmable Switching Matrix
Programmable Switching Matrix
Programmable Switching Matrix
Programmable Switching Matrix
Każde skrzyżowanie tworzy 6 bramek transmisyjnych, które strowane są z
Każde skrzyżowanie tworzy 6 bramek transmisyjnych, które strowane są z
rejestru przesuwnego.
rejestru przesuwnego.
0 1 0 0 0 1
0 1 0 001
6 marca 2011 Wojciech Kucewicz 57
Programmable Switching Matrix
Programmable Switching Matrix
Programmable Switching Matrix
Programmable Switching 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
g
g
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 oraz 2
A, B, C
funkcje wyjściowe Sum, Carry
j yj Sum, Carry
,y
,y
S0 S1
S0 S1
F=A+B+C
F=A+B+C
SUM Carry
SUM Carry
2. Zapisujemy tablicę prawdy
2. Zapisujemy tablicę prawdy
0 00
0 0 0
0 0
00
0 01
0 0 1
1 0
10
0 1 0
0 1 0
1 0
10
0 1 1
0 1 1
0 1 1
0 1 1
0 1
0 1
0 1
0 1
ABC
ABC
1 0 0
1 0 0
1 0
10
1 0 1
1 0 1
0 1
01
1 1 0
1 1 0
0 1
01
1 1 1
1 1 1
1 1
11
6 marca 2011 Wojciech Kucewicz 60
Zastosowanie układu FPGA do budowy pełnego
Zastosowanie układu FPGA do budowy pełnego
Zastosowanie układu FPGA do budowy pełnego
Zastosowanie układu FPGA do budowy pełnego
sumatora
sumatora
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.
A B C A B C
A B C A B C
D Q D Q
D Q D Q
0 0
0 0
Clk Q Clk Q
Clk Q Clk Q
Res Res
Res Res
S0 S1
S0 S1
D Q D Q
D Q D Q
0 1 D Q D Q
0 1 D Q D Q
F A B C
F A B C
F=A+B+C
F=A+B+C
1 0
1 0
1 0
1 0
Clk Q Clk Q
Clk Q Clk Q
SUM Carry
SUM Carry
Res Res
Res Res
D Q D Q
D Q D Q
0 00
0 0 0
0 0
00
1 0
1 0
Clk Q Clk Q
Clk Q Clk Q
Res Res
Res Res
D Q D Q
D Q D Q
D Q D Q
D Q D Q
0 0 1
0 0 1
0 0 1
0 0 1
1 0
1 0
1 0
1 0
Clk Q Clk Q
Clk Q Clk Q
0 SUM 1 Carry
0 SUM 1 Carry
Res Res
Res Res
0 1 0
0 1 0
1 0
10
Fout Fout
Fout Fout
D Q D Q
D Q D Q
Clk Q Clk Q
Clk Q Clk Q
1 0
1 0
Res Res
Res Res
0 1 1
0 1 1
0 1
01
D Q D Q
D Q D Q
D Q D Q
D Q D Q
ABC
ABC
ABC
ABC
Clk Q Clk Q
Clk Q Clk Q
0 1
0 1
1 0 0
1 0 0
1 0
10
Res Res
Res Res
D Q D Q
D Q D Q
1 0 1
1 0 1
0 1
01
Clk Q Clk Q
Clk Q Clk Q
0 1
0 1
Res Res
Res Res
D Q D Q
D Q D Q
1 1 0
1 1 0
1 1 0
1 1 0
0 1
0 1
0 1
0 1
Clk Q Clk Q
Clk Q Clk Q
1 1
1 1
Res Res
Res Res
1 1 1
1 1 1
1 1
11
6 marca 2011 Wojciech Kucewicz 61
Zastosowanie układu FPGA do budowy pełnego
Zastosowanie układu FPGA do budowy pełnego
Zastosowanie układu FPGA do budowy pełnego
Zastosowanie układu FPGA do budowy pełnego
sumatora
sumatora
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.
A B C A B C
A B C A B C
D Q D Q
Clk Q Clk Q
Res Res
D Q D Q
D Q D Q
Clk Q Clk Q
Res Res
D Q D Q
Clk Q Clk Q
Res Res
CLB 1 CLB 2
CLB 1 CLB 2
CLB 1 CLB 2
CLB 1 CLB 2
D Q D Q
D Q D Q
Clk Q Clk Q
SUM Carry
SUM Carry
Res Res
Fout Fout
D Q D Q
SUM SUM
SUM SUM
Clk Q Clk Q
Res Res
D Q D Q
D Q D Q
Clk Q Clk Q
Res Res
D Q D Q
Clk Q Clk Q
Res Res
D Q D Q
Clk Q Clk Q
Res Res
6 marca 2011 Wojciech Kucewicz 62
Zastosowanie układu FPGA do budowy pełnego
Zastosowanie układu FPGA do budowy pełnego
Zastosowanie układu FPGA do budowy pełnego
Zastosowanie układu FPGA do budowy pełnego
sumatora
sumatora
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 Value8 Value7 Value6 Value5 Value4 Value3 Value2 Value1 Value0
Value9 Value8 Value7 Value6 Value5 Value4 Value3 Value2 Value1 Value0
SUM 0 0 1 0 0 1 0 1 1 0
SUM 0 0 1 0 0 1 0 1 1 0
SUM 0 0 1 0 0 1 0 1 1 0
SUM 0 0 1 0 0 1 0 1 1 0
Carry 0 011101000
Carry 0011101000
6 marca 2011 Wojciech Kucewicz
Przykład
Przykład
Przykład
Przykład
Zadanie:
Zadanie:
Zbudować asynchroniczny licznik 2 bitowy w układzie FPGA
yy y
W tym celu potrzbne są 2 przerzutniki D. Ponieważ w CLB znajduje się tylko
W tym celu potrzbne 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.
D Q
D Q
Clk CLB 1
Clk Q CLB 1
Clk Q
Res
Res
Res
Res
Res
6 marca 2011 Wojciech Kucewicz 64
X
X0
X0
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 kazdym bloku konfiguruje się jeden stopień licznika. Zapisujemy w
W kazdym bloku konfiguruje się jeden stopień licznika. Zapisujemy w
rejestrze przesuwnym poniższą sekwencję
rejestrze przesuwnym poniższą sekwencję
Block 1 DataOut nQ, D=DataIN
Block 1 DataOut=nQ, D=DataIN
Block 1 DataOut nQ, D DataIN
Block 1 DataOut=nQ, D DataIN
Cycle 1 2 345678910
Cycle 12345678910
Val (9) Val (8) Val (7) Val (6) Val (5) Val (4) Val (3) Val (2) Val (1) Val (0)
Val (9) Val (8) Val (7) Val (6) Val (5) Val (4) Val (3) Val (2) Val (1) Val (0)
1 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0
Block 2 DataOut=nQ, D=DataIN
Block 2 DataOut=nQ, D=DataIN
Q,
Q,
Cycle 1 2 345678910
Cycle 12345678910
Val (9) Val (8) Val (7) Val (6) Val (5) Val (4) Val (3) Val (2) Val (1) Val (0)
Val (9) Val (8) Val (7) Val (6) Val (5) Val (4) Val (3) Val (2) Val (1) Val (0)
1 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0
6 marca 2011 Wojciech Kucewicz 66
Licznik 2 bitowy
Licznik 2 bitowy
Licznik 2 bitowy
Licznik 2 bitowy
Połączenie pomiędzy nQ i D realizujemy poza blokiem CLB
Połączenie pomiędzy nQ i D realizujemy poza blokiem CLB
6 marca 2011 Wojciech Kucewicz 67
CLB w układzie Xilinx Spartan
CLB w układzie Xilinx Spartan
CLB w układzie Xilinx Spartan
CLB w układzie Xilinx 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
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.
6 marca 2011 Wojciech Kucewicz 68
CLB w układzie Xilinx Spartan
CLB w układzie Xilinx Spartan
CLB w układzie Xilinx Spartan
CLB w układzie Xilinx Spartan
Dwie pamięci LUT (F i G) mają
pojemność 16 bitów i są używane
do generowania funkcji log y
g j gicznych
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
zródeł w układzie.
Trzecia z występujących w CLB
Trzecia z występujących w CLB
pamięci H-LUT (9 bitowa) stanowi
pamięci H-LUT (9 bitowa) stanowi
generator funkcji trzech
generator funkcji trzech
zmiennych podanych na wejścia
zmiennych podanych na wejścia
zmiennych, podanych na wejścia
zmiennych, podanych na wejścia
F, H1, G.
F, H1, G.
Dwa z tych wejść (F i G) kontrolowane są przez programowalne multipleksery i mogą
Dwa z tych wejść (F i G) kontrolowane są przez programowalne multipleksery i mogą
być sterowane przez wyjścia pamięci F i G bądz przez sygnały wejściowe SR i DIN
być sterowane przez wyjścia pamięci F i G bądz przez sygnały wejściowe SR i DIN
danego bloku CLB Trzeci sygnał wejściowy pamięci H LUT pochodzi zawsze z wejścia
danego bloku CLB Trzeci sygnał wejściowy pamięci H LUT pochodzi zawsze z wejścia
danego bloku CLB. Trzeci sygnał wejściowy pamięci H-LUT pochodzi zawsze z wejścia
danego bloku CLB. Trzeci sygnał wejściowy pamięci H-LUT pochodzi zawsze z wejścia
bloku CLB. Dzięki takiemu układowi w pojedynczym CLB mogą być realizowane również
bloku CLB. Dzięki takiemu układowi w pojedynczym CLB mogą być realizowane również
funkcje pięciu zmiennych a także niektóre funkcje nawet do dziewięciu zmiennych.
funkcje pięciu zmiennych a także niektóre funkcje nawet do dziewięciu zmiennych.
6 marca 2011 Wojciech Kucewicz 69
CLB w układzie Xilinx Spartan
CLB w układzie Xilinx Spartan
CLB w układzie Xilinx Spartan
CLB w układzie Xilinx Spartan
Możliwości realizacji funkcji
Możliwości realizacji funkcji
kombinacyjnych w każdym bloku
kombinacyjnych w każdym bloku
CLB są następujące:
CLB są następujące:
" dwie dowolne funkcje każda do
" dwie dowolne funkcje każda do
czterech niezależnych
czterech niezależnych
zmiennych plus trzecia funkcja
zmiennych plus trzecia funkcja
zmiennych, plus trzecia funkcja
zmiennych, plus trzecia funkcja
do trzech zmiennych,
do trzech zmiennych,
" dowolna funkcja pięciu zmien-
" dowolna funkcja pięciu zmien-
nych, plus dowolna funkcja do
nych, plus dowolna funkcja do
h l d l f k j d
h l d l f k j d
czterech zmiennych,
czterech zmiennych,
" dowo na fun cja czt r ch
" dowolna fun cja czt r ch
owolna funkcja czterech
owo na funkcja czterech
zmiennych, plus niektóre funkcje
zmiennych, plus niektóre funkcje
sześciu zmiennych,
sześciu zmiennych,
" niektóre funkcje do dziewięciu
" niektóre funkcje do dziewięciu
niektóre funkcje do dziewięciu
niektóre funkcje do dziewięciu
zmiennych.
zmiennych.
6 marca 2011 Wojciech Kucewicz 70
CLB w układzie Xilinx Spartan
CLB w układzie Xilinx Spartan
CLB w układzie Xilinx Spartan
CLB w układzie Xilinx Spartan
Oprócz tablic LUT każdy CLB
Oprócz tablic LUT każdy CLB
zawiera dwa konfigurowalne
zawiera dwa konfigurowalne
przerzutniki. Mogą być one
przerzutniki. Mogą być one
wykorzystane do zapamiętywania
wykorzystane do zapamiętywania
stanów wyjściowych tablic LUT
stanów wyjściowych tablic LUT
albo pracować niezależnie od
albo pracować niezależnie od
albo pracować niezależnie od
albo pracować niezależnie od
nich. Wówczas sygnał DIN może
nich. Wówczas sygnał DIN może
być doprowadzony do wejścia
być doprowadzony do wejścia
dowolnego przerzutnika lub do
dowolnego przerzutnika lub do
obu jednocześnie. Podobnie może
obu jednocześnie. Podobnie może
b j d ś i P d b i ż
b j d ś i P d b i ż
być doprowadzony poprzez
być doprowadzony poprzez
tablicę H-LUT (z niewielkim
tablicę H-LUT (z niewielkim
opóznieniem) sygnał H1.
opóznieniem) sygnał H1.
opózn n m) sygna H .
opózn n m) sygna 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)
ustawiania/zerowania przerzutnika (SR).
ustawiania/zerowania przerzutnika (SR)
6 marca 2011 Wojciech Kucewicz 71
CLB w układzie Xilinx Spartan
CLB w układzie Xilinx Spartan
CLB w układzie Xilinx Spartan
CLB w układzie Xilinx 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
układ współpracuje z jedną nóżką układu.
kł d ół j j d óżk kł d
Układy te są w znacznym stopniu
konfigurowalne tak aby mogły spełniać
różne role, w zależności od p
, potrzeb. IOB
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:
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
6 marca 2011 Wojciech Kucewicz 72


Wyszukiwarka

Podobne podstrony:
MSE11Programowalne i specjalistyczne uklady cyfrowe
13 Prace specjalistyczne całość
13 Roboty specjalistyczne
13 Roboty specjalistyczne v1 1
Uklady Cyfrowe
13 Roboty specjalistyczne
Studia dzienne — Układy cyfrowe
pomoc uklady cyfrowe
ściąga na ipoda Programy specjalne
4 programowy sekundnik zegara cyfrowego
politologia minimum programowe, specjalnosci MISH
uklady cyfrowe
program szkolenia specjalistycznego www katalogppoz pl
uklady bilansu 13

więcej podobnych podstron