MSE11Programowalne i specjalistyczne uklady cyfrowe


25 marca 2008 Układy programowalne 1
Programowalne
Programowalne
Programowalne
i specjalizowane
i specjalizowane
i specjalizowane
układy cyfrowe
układy cyfrowe
układy cyfrowe
25 marca 2008 Układy programowalne 2
Klasyfikacja
Klasyfikacja
Klasyfikacja
układów
układów
układów
logicznych
logicznych
logicznych
25 marca 2008 Układy programowalne 3
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.
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)
25 marca 2008 Układy programowalne 4
Programowalne
Programowalne
Programowalne
i specjalizowane układy cyfrowe
i specjalizowane układy cyfrowe
i specjalizowane układy cyfrowe
Układy PLD
Układy PLD
Układy PLD
25 marca 2008 Układy programowalne 5
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 )
6. Cypress (www.cypress.com )
6. Cypress (www.cypress.com )
7. QuickLogic (www.quicklogic.com )
7. QuickLogic (www.quicklogic.com )
25 marca 2008 Układy programowalne 6
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
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
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.actel.com
 www.actel.com
 www.atmel.com
 www.atmel.com
 www.cypress.com
 www.cypress.com
 www.quicklogic.com
 www.quicklogic.com
Inne strony WWW zajmują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.opencores.org
 www.opencores.org
25 marca 2008 Układy programowalne 7
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),
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ń.
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. że każda z makrokomórek jest w pełni połączona z
Struktura zazwyczaj jest symetryczna, tzn. że 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).
25 marca 2008 Układy programowalne 8
Układy PLA  Programowalne Matryce
Układy PLA  Programowalne Matryce
Układy PLA  Programowalne Matryce
Logiczne
Logiczne
Logiczne
SPLD
SPLD
X0
X0
(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ą
X15
strukturę połączeń z X15
strukturę połączeń z
programowalnymi połączeniami
programowalnymi połączeniami
32 wejścia
32 wejścia
(najczęściej zwarciami) w miejscu
(najczęściej zwarciami) w miejscu
8 bramek
8 bramek
ich krzyżowania się
ich krzyżowania się
16 bramek
16 bramek
OR
OR
NAND
NAND
16 wejść
16 wejść
25 marca 2008 Układy programowalne 9
Układy PLA  Programowalne Matryce
Układy PLA  Programowalne Matryce
Układy PLA  Programowalne Matryce
Logiczne
Logiczne
Logiczne
SPLD
SPLD
X0
X0
(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ą
X15
strukturę połączeń z X15
strukturę połączeń z
programowalnymi połączeniami
programowalnymi połączeniami
32 wejścia
32 wejścia
(najczęściej zwarciami) w miejscu
(najczęściej zwarciami) w miejscu
8 bramek
8 bramek
ich krzyżowania się.
ich krzyżowania się.
48 bramek
48 bramek
OR
OR
Programowalne połączenia mają
Programowalne połączenia mają
NAND
NAND
bramki AND i bramki OR
bramki AND i bramki OR
16 wejść
16 wejść
25 marca 2008 Układy programowalne 10
Układy PLA  Programowalne Matryce
Układy PLA  Programowalne Matryce
Układy PLA  Programowalne Matryce
Logiczne
Logiczne
Logiczne
SPLD
SPLD
X0
X0
X0
X0
(PLA)
(PLA)
Dla każdego sygnału wejściowego
Dla każdego sygnału wejściowego
można wyróżnić 4 przypadki
można wyróżnić 4 przypadki
1 2
1 2
programowania wejść bramki
programowania wejść bramki
NAND:
NAND:
X0 X0
X0 X0
1. Stan nieprogramowania
1. Stan nieprogramowania
wejść
wejść
2. Podawanie sygnału
2. Podawanie sygnału
wejściowego nie
wejściowego nie
3 4
3 4
zanegowanego
zanegowanego
3. Podawanie sygnału
3. Podawanie sygnału
wejściowego zanegowanego
wejściowego zanegowanego
4. Nie podawanie sygnału na
4. Nie podawanie sygnału na
wejście
wejście
16 wejść
16 wejść
25 marca 2008 Układy programowalne 11
Układy PLA  Programowalne Matryce
Układy PLA  Programowalne Matryce
Układy PLA  Programowalne Matryce
Logiczne
Logiczne
Logiczne
SPLD
SPLD
A
A
(PLA)
(PLA)
B
B
Realizacja sumatora przy pomocy
Realizacja sumatora przy pomocy
układu PLA
układu PLA
C
C
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
S
S
Carry
Carry
25 marca 2008 Układy programowalne 12
Układy PAL  Programowalne Matrycowe
Układy PAL  Programowalne Matrycowe
Układy PAL  Programowalne Matrycowe
Układy Logiczne
Układy Logiczne
Układy Logiczne
Programmable
Programmable
SPLD X0
SPLD X0
Array Logic
Array Logic
(PAL)
(PAL)
Układy PAL charakteryzują
Układy PAL charakteryzują
się tym, iż programowalne
się tym, iż programowalne
X1
X1
połączenia mają tylko
połączenia mają tylko
bramki AND.
bramki AND.
W układach PAL wyjście
W układach PAL wyjście
każdej bramki AND jest
każdej bramki AND jest
X2
X2
bezpośrednio połączone do
bezpośrednio połączone do
jednego z wejść jednej
jednego z wejść jednej
bramki OR
bramki OR
AMD PAL
AMD PAL
25 marca 2008 Układy programowalne 13
Układy PAL  Programowalne Matrycowe
Układy PAL  Programowalne Matrycowe
Układy PAL  Programowalne Matrycowe
Układy Logiczne
Układy Logiczne
Układy Logiczne
Programmable
Programmable
SPLD
SPLD
Array Logic
Array Logic
A
A
(PAL)
(PAL)
S
S
Realizacja sumatora przy pomocy
Realizacja sumatora przy pomocy
układu PAL
układu PAL
B
B
S = A B C + AB C + A BC + ABC
S = A B C + AB C + A BC + ABC
Carry
Carry
Carry = AB + AC + BC
Carry = AB + AC + BC
C
C
AMD PAL
AMD PAL
25 marca 2008 Układy programowalne 14
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. 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ń
25 marca 2008 Układy programowalne 15
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
wykorzystano architekturę PAL wzbogaconą o konfigurowalne makrokomórki
wykorzystano architekturę PAL wzbogaconą o konfigurowalne makrokomórki
wyjściowe zawierające przerzutniki typu D. Przerzutniki te spełniają rolę
wyjściowe zawierające przerzutniki typu D. Przerzutniki te spełniają rolę
wyjściowych elementów pamięciowych umożliwiających budowanie układów
wyjściowych elementów pamięciowych umożliwiających budowanie układów
synchronicznych.
synchronicznych.
25 marca 2008 Układy programowalne 16
Układy GAL
Układy GAL
Układy GAL
SPLD
SPLD
(GAL)
(GAL)
25 marca 2008 Układy programowalne 17
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 kombinacyjnym lub
Makrokomórka OLMC umożliwia zaprogramowanie układu w trybie kombinacyjnym lub
sekwencyjnym
sekwencyjnym
OLMC
OLMC
Output Logic
Output Logic
Macrocell
Macrocell
Komórka kombinacyjna
Komórka kombinacyjna
25 marca 2008 Układy programowalne 18
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 kombinacyjnym lub
Makrokomórka OLMC umożliwia zaprogramowanie układu w trybie kombinacyjnym lub
sekwencyjnym
sekwencyjnym
OLMC
OLMC
Output Logic
Output Logic
Macrocell
Macrocell
Komórka sekwencyjna
Komórka sekwencyjna
D Q
D Q
Clk nQ
Clk nQ
25 marca 2008 Układy programowalne 19
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 kombinacyjnym lub
Makrokomórka OLMC umożliwia zaprogramowanie układu w trybie kombinacyjnym lub
sekwencyjnym
sekwencyjnym
OLMC
OLMC
Output Logic
Output Logic
Macrocell
Macrocell
Komórka uniwersalna
Komórka uniwersalna
D Q
D Q
Clk nQ
Clk nQ
25 marca 2008 Układy programowalne 20
Przykładowy układ GAL ATF22LV10C
Przykładowy układ GAL ATF22LV10C
Przykładowy układ GAL ATF22LV10C
25 marca 2008 Układy programowalne 21
Budowa makroceli układu GAL22V10
Budowa makroceli układu GAL22V10
Budowa makroceli układu GAL22V10
25 marca 2008 Układy programowalne 22
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 makrokomórkach logicznych,
Ich architektura ma strukturę hierarchiczną opartą na 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).
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.
25 marca 2008 Układy programowalne 23
Układy CPLD
Układy CPLD
Układy CPLD
Complex Programmable Logic Devices
Complex Programmable Logic Devices
CPLD
CPLD
BF BF
BF BF
BF BF
BF BF
I/O I/O
I/O I/O
BF BF
BF BF
BF BF
BF BF
25 marca 2008 Układy programowalne 24
interconnection matrix
interconnection matrix
Programmable
Programmable
Układy FPGA
Układy FPGA
Układy FPGA
Na ogół układy FPGA zawierają rozmieszczone matrycowo bloki logiczne CLB. Poszczególne bloki są
Na ogół układy FPGA zawierają rozmieszczone matrycowo bloki logiczne CLB. Poszczególne bloki są
łączone ze sobą za pośrednictwem linii traktów połączeniowych (Routing Channels) oraz
łączone ze sobą za pośrednictwem linii traktów połączeniowych (Routing Channels) oraz
programowalnych matryc kluczy połączeniowych umieszczonych w miejscu krzyżowania się
programowalnych matryc kluczy połączeniowych umieszczonych w miejscu krzyżowania się
traktów poziomych i pionowych. Na obrze żach matrycy bloków logicznych znajdują się
traktów poziomych i pionowych. Na obrzeżach matrycy bloków logicznych znajdują się
programowalne bloki IOB (wejściowo-wyjściowe).
programowalne bloki IOB (wejściowo-wyjściowe).
Struktury FPGA zawierają od 64 do dziesiątków tysięcy bloków logicznych o bardzo zróżnicowanej
Struktury FPGA zawierają od 64 do dziesiątków tysięcy bloków logicznych o bardzo zróżnicowanej
budowie. Bloki logiczne mogą być bardzo złożone, jest ich wówczas mniej w układzie, lub
budowie. Bloki 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.
Zazwyczaj złożone bloki logiczne zawierają dwie lub więcej pamięci RAM umożliwiających
Zazwyczaj złożone bloki logiczne zawierają dwie lub więcej pamięci RAM umożliwiających
tworzenie tablic wartości funkcji LUT (Look-up Table) i dwa lub więcej przerzutników.
tworzenie tablic wartości funkcji LUT (Look-up Table) i dwa lub więcej przerzutników.
W większości układów są to tablice czterowejściowe (pamięć RAM o pojemności 16 bitów). W
W większości układów są to tablice czterowejściowe (pamięć RAM o pojemności 16 bitów). W
układach o prostszej budowie, bloki logiczne zawieraj ą zwykle dwuwejściowe układy generacji
układach o prostszej budowie, bloki logiczne zawierają zwykle dwuwejściowe układy generacji
funkcji kombinacyjnych lub multipleksery czterowejściowe i ewentualnie przerzutniki.
funkcji kombinacyjnych lub multipleksery czterowej ściowe i ewentualnie przerzutniki.
25 marca 2008 Układy programowalne 25
Schemat blokowy układu FPGA
Schemat blokowy układu FPGA
Schemat blokowy układu FPGA
Logic IS
IS Interconnection switches
block
I/O
IS
IS
IS IS IS
IS IS IS
IS IS
IS IS IS
IS IS
IS
IS IS
IS IS IS IS
IS IS
I/O
25 marca 2008 Układy programowalne 26
I/O
I/O
Programowalne
Programowalne
Programowalne
i specjalizowane układy cyfrowe
i specjalizowane układy cyfrowe
i specjalizowane układy cyfrowe
Układy FPGA
Układy FPGA
Układy FPGA
25 marca 2008 Układy programowalne 27
Field Programmable
Field Programmable
Field Programmable
Gate Arrays
Gate Arrays
Gate Arrays
(FPGA)
(FPGA)
(FPGA)
25 marca 2008 Układy programowalne 28
Field programmable gate arrays (FPGA)
Field programmable gate arrays (FPGA)
Field programmable gate arrays (FPGA)
Układy FPGA w języku polskim określane są jako programowalne matryce bramkowe.
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 zbiór
Są to programowalne układy cyfrowe wielkiej skali integracji, zawierające zbiór
programowalnych bloków logicznych (Configurabl Logic Block) o regularnym rozkładzie
programowalnych bloków logicznych (Configurabl Logic Block) o regularnym rozkładzie
topograficznym oraz programowalne połączenia.
topograficznym oraz programowalne połączenia.
Układy FPGA są układami o dużej złożoności logicznej i są przeznaczone głównie do zastosowań
Układy FPGA są układami o dużej złożoności logicznej i są przeznaczone głównie do zastosowań
systemowych
systemowych
25 marca 2008 Układy programowalne 29
FPGA
FPGA
FPGA
Architecture
Architecture
Architecture
FPGA - Generic Structure
FPGA - Generic Structure
FPGA - Generic Structure
IS Interconnection switches
Logic IS
block
FPGA building blocks:
FPGA building blocks:
I/O
1. Programmable logic blocks
1. Programmable logic blocks
PLB Implement combinatorial
PLB Implement combinatorial
IS
IS IS IS IS
IS IS IS
and sequential logic
and sequential logic
2. Programmable interconnect
2. Programmable interconnect
IS IS
IS IS IS
IS IS
IS
Wires to connect inputs and
Wires to connect inputs and
outputs to logic blocks
outputs to logic blocks
3. Programmable I/O blocks
3. Programmable I/O blocks
Special logic blocks at the
Special logic blocks at the
IS
IS
IS IS IS IS
IS IS
periphery of device for
periphery of device for
external connections
external connections
I/O
25 marca 2008 Układy programowalne 31
I/O
I/O
FPGA
FPGA
FPGA
The FPGA contains versatile functions, configurable interconnects and
The FPGA contains versatile functions, configurable interconnects and
an input/output interface to adapt to the user specification.
an input/output interface to adapt to the user specification.
I/O pads
I/O pads
Programmable
Programmable
Logic Blocks
Logic Blocks
Programmable
Programmable
Interconnect
Interconnect
Points
Points
25 marca 2008 Układy programowalne 32
Other FPGA Building Blocks
Other FPGA Building Blocks
Other FPGA Building Blocks
1. Clock distribution
1. Clock distribution
2. Embedded memory blocks
2. Embedded memory blocks
3. Special purpose blocks:
3. Special purpose blocks:
DSP blocks:
Hardware multipliers, adders and registers
Embedded microprocessors/microcontrollers
High-speed serial transceivers
25 marca 2008 Układy programowalne 33
System-On-Chip
System-On-Chip
System-On-Chip
Notice that FPGA not only exist as simple components, but also as macro-blocs in
Notice that FPGA not only exist as simple components, but also as macro-blocs in
system-on-chip designs.
system-on-chip designs.
In the case of communication systems, the configurable logic may be dynamically changed to adapt
to improved communication protocol. In the case of very low power systems, the configurable logic
may handle several different tasks in series, rather than embedding all corresponding hardware
that never works in parallel.
25 marca 2008 Układy programowalne 34
FPGA
FPGA
FPGA
Field programmable gate arrays (FPGA) are specific integrated circuits that
Field programmable gate arrays (FPGA) are specific integrated circuits that
can be user-programmed easily.
can be user-programmed easily.
FPGAs allow rapid prototyping using custom logic structures, and are very
FPGAs allow rapid prototyping using custom logic structures, and are very
popular for limited production products.
popular for limited production products.
Modern FPGA are extremely dense, with a complexity of several
Modern FPGA are extremely dense, with a complexity of several
millions of gates which enable the emulation of very complex hardware such
millions of gates which enable the emulation of very complex hardware such
as parallel microprocessors, mixture of processor and signal processing.
as parallel microprocessors, mixture of processor and signal processing.
One key advantage of FPGA is their ability to be reprogrammed, in order to
One key advantage of FPGA is their ability to be reprogrammed, in order to
create a completely different hardware by modifying the logic gate array.
create a completely different hardware by modifying the logic gate array.
25 marca 2008 Układy programowalne 35
Example of 2 XOR
Example of 2 XOR
Example of 2 XOR
Programmable
Programmable
logic block
logic block
Programmable
Programmable
A Programmable
A configured as
configured as
pads configured
interconnect
interconnect
XOR
XOR
as inputs
points
points
B
B
Programmable
C
C
pad configured
as output
Interconnect lines A
Interconnect lines
XOR
XOR
B
S
XOR
XOR
C
25 marca 2008 Układy programowalne 36
Configurable Programmable Logic Blocks
Configurable Programmable Logic Blocks
Configurable Programmable Logic Blocks
The programmable logic block must be able to implement all
basic logic functions, that is INV, AND, NAND, OR, NOR,
XOR, XNOR, etc...
Several approaches are used in FPGA industry to achieve this
goal.
The first approach consists in the use of multiplexer,
use of multiplexer
the second one in the use of look-up tables.
use of look-up tables
25 marca 2008 Układy programowalne 37
Configurable Logic Circuits
Configurable Logic Circuits
Configurable Logic Circuits
Use of
Use of
Use of
Multiplexer
Multiplexer
Multiplexer
25 marca 2008 Układy programowalne 38
Configurable Logic Circuits
Configurable Logic Circuits
Configurable Logic Circuits
AND
AND
25 marca 2008 Układy programowalne 39
Configurable Logic Circuits
Configurable Logic Circuits
Configurable Logic Circuits
OR
OR
25 marca 2008 Układy programowalne 40
Configurable Logic Circuits
Configurable Logic Circuits
Configurable Logic Circuits
Not
Not
Buffer
Buffer
25 marca 2008 Układy programowalne 41
Configurable Logic Circuits
Configurable Logic Circuits
Configurable Logic Circuits
Although NOT, AND and OR are directly available, other functions such as NAND, NOR
and XOR cannot be built directly using a single 2-input multiplexer, but need at least
two multiplexer circuits.
25 marca 2008 Układy programowalne 42
Configurable Logic Circuits
Configurable Logic Circuits
Configurable Logic Circuits
2-Input XOR
2-Input XOR
25 marca 2008 Układy programowalne 43
Use of Multiplexer
Use of Multiplexer
Use of Multiplexer
C
C
X1
B
B
X2
3-input multiplexer block
3-input multiplexer block
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
S
0/1
0/1
Configuration memory
0/1
0/1
cells
0/1
0/1
0/1
0/1
X3
A
A
25 marca 2008 Układy programowalne 44
Adder
Adder
Adder
In the case of the 2 XOR, the set of values of S given in the truth-table,
We must assign manually the S truth-table to the multiplexer inputs. Then S
produces the XOR function of inputs A, B and C.
C B A S
A
A
0 0 0 0
F
F
B
B
C
C
0 0 1 1
0 1 0 1
0 1 1 0
1 0 0 1
1 0 1 0
1 1 0 0
25 marca 2008 Układy programowalne 45
1 1 1 1
Configurable Logic Circuits
Configurable Logic Circuits
Configurable Logic Circuits
Adder
Adder
0
0
1
1
1
1
0
0
1
1
0
0
0
0
1
1
25 marca 2008 Układy programowalne 46
Configurable Logic Circuits
Configurable Logic Circuits
Configurable Logic Circuits
Use of
Use of
Use of
Look Up Table
Look Up Table
Look Up Table
25 marca 2008 Układy programowalne 47
Look-Up-Table
Look-Up-Table
Look-Up-Table
The look-up table (LUT) is by far the most versatile circuit to create a configurable logic function.
look-up table (LUT)
The 3 bit look-up table has 3 main inputs F0,F1 and F2. The main output is Fout, which is a logical
The 3 bit look-up table has 3 main inputs F0,F1 and F2. The main output is Fout, which is a logical
function of F0, F1 and F2.
function of F0, F1 and F2.
The output Fout is defined by the values given to Value[0]..Value[7].
The three values F0,F1, F2 create a 3-bit address i between 0 and 7, so that Fout gets the value
of Value[i]. In the example the input creates the number 5, so Value[5] is routed to Fout. The
table below gives Value[i] for the most common logical functions of F0,F1 and F2.
25 marca 2008 Układy programowalne 48
Adder
Adder
Adder
In the case of the 2 XOR, the set of values of S given in the truth-table,
must be assigned to Value[0]..Value[7]. We must assign manually the S
truth-table to each of the 8 values. Then S produces the XOR function of
inputs A, B and C.
C B A S Assigned to
A
A
0 0 0 0 Value [0]
F
F
B
B
C
C
0 0 1 1 Value [1]
0 1 0 1 Value [2]
0 1 1 0 Value [3]
1 0 0 1 Value [4]
1 0 1 0 Value [5]
1 1 0 0 Value [6]
25 marca 2008 Układy programowalne 49
1 1 1 1 Value [7]
Look-Up-Table
Look-Up-Table
Look-Up-Table
We must assign manually the Fout
truth-table to each of the 8 value.
Then Fout produces the XOR function
of inputs F0, F1 and F2.
F2 F1 F0 Fout Assigned to
0 0 0 0 Value [0]
0 0 1 1 Value [1]
0 1 0 1 Value [2]
0 1 1 0 Value [3]
1 0 0 1 Value [4]
1 0 1 0 Value [5]
1 1 0 0 Value [6]
1 1 1 1 Value [7]
25 marca 2008 Układy programowalne 50
Look-Up-Table
Look-Up-Table
Look-Up-Table
We must assign manually the Fout
truth-table to each of the 8 value.
Then Fout produces the XOR function
of inputs F0, F1 and F2.
F2 F1 F0 Fout Assigned to
0 0 0 0 Value [0]
0 0 1 1 Value [1]
0 1 0 1 Value [2]
0 1 1 0 Value [3]
1 0 0 1 Value [4]
1 0 1 0 Value [5]
1 1 0 0 Value [6]
1 1 1 1 Value [7]
25 marca 2008 Układy programowalne 51
Memory points
Memory points
Memory points
Memory points are essential components of the configurable logic blocks. The memory point is
Memory points are essential components of the configurable logic blocks. The memory point is
used to store one logical value, corresponding to the logic truth table.
used to store one logical value, corresponding to the logic truth table.
For a 3-input function (F0,F1,F2 in the previous LUT), we need an array of 8 memory points to
For a 3-input function (F0,F1,F2 in the previous LUT), we need an array of 8 memory points to
store the information Value[0]..Value[7].
store the information Value[0]..Value[7].
There exist here also several approaches to store one single bit of information. One of them
There exist here also several approaches to store one single bit of information. One of them
consists of D flip-flops. Each register stores one logical information Value[i]. The D flip-flops are
consists of D flip-flops. Each register stores one logical information Value[i]. The D flip-flops are
chained in order to limit the control signals to one clock ClockProg and one data signal DataProg.
chained in order to limit the control signals to one clock ClockProg and one data signal DataProg.
The logical data Value[i] is fully programmed by a word of 8 bits sent in series to the signal
The logical data Value[i] is fully programmed by a word of 8 bits sent in series to the signal
DataProg
DataProg
Most FPGA designs use D flip-flops to store the LUT configuration. Notice that the configuration
Most FPGA designs use D flip-flops to store the LUT configuration. Notice that the configuration
is lost when the power supply is down.
is lost when the power supply is down.
V7 V6 V5 V4 V3 V2 V1 V0
V7 V6 V5 V4 V3 V2 V1 V0
25 marca 2008 Układy programowalne 52
Look-Up-Table
Look-Up-Table
Look-Up-Table
F2 F1 F0 Fout Assigned to
0 0 0 0 Value [0]
0 0 1 1 Value [1]
0 1 0 1 Value [2]
0 1 1 0 Value [3]
1 0 0 1 Value [4]
1 0 1 0 Value [5]
1 1 0 0 Value [6]
1 1 1 1 Value [7]
25 marca 2008 Układy programowalne 53
Programmable Logic Block
Programmable Logic Block
Programmable Logic Block
The programmable logic block consists of a look-up table, a D-register and some multiplexers.
The programmable logic block consists of a look-up table, a D-register and some multiplexers.
There exist numerous possible structures for logic blocks. We present a simple structure which
There exist numerous possible structures for logic blocks. We present a simple structure which
has some similarities with the Xilinx XC5200 series. The configurable block contains two active
has some similarities with the Xilinx XC5200 series. The configurable block contains two active
structures, the LUT and the D-reg, that may work independently or be mixed together.
structures, the LUT and the D-reg, that may work independently or be mixed together.
The output of the look-up-table is directly connected to the block output Fout. The output can
The output of the look-up-table is directly connected to the block output Fout. The output can
also serve as the input data for the D-register, thanks to the multiplexer controlled by
also serve as the input data for the D-register, thanks to the multiplexer controlled by
DataIn_Fout. The DataOut net can simply pass the signal DataIn, in that case the cell is
DataIn_Fout. The DataOut net can simply pass the signal DataIn, in that case the cell is
transparent. The DataOut signal can also pass the signal nQ, depending on the multiplexer status
transparent. The DataOut signal can also pass the signal nQ, depending on the multiplexer status
controlled by DataIn_nQ
controlled by DataIn_nQ
25 marca 2008 Układy programowalne 54
Programmable Logic Block
Programmable Logic Block
Programmable Logic Block
The block now consists of the LUT and the D-register. We chain the information DataIn_Fout and
The block now consists of the LUT and the D-register. We chain the information DataIn_Fout and
DataIn_nQ on the path of the shift register by adding 2 supplementary Dreg cells.
DataIn_nQ on the path of the shift register by adding 2 supplementary Dreg cells.
Each Dreg still uses the same clock ClockProg and chained input data DataProg.
Each Dreg still uses the same clock ClockProg and chained input data DataProg.
The configuring of the block is achieved thanks to 10 active clock edges on ClockProg, and 10 serial
The configuring of the block is achieved thanks to 10 active clock edges on ClockProg, and 10 serial
data on DataProg. The chain of Dreg starts at Dreg0 (Upper Dreg, which produced Value[0]) and
data on DataProg. The chain of Dreg starts at Dreg0 (Upper Dreg, which produced Value[0]) and
stops at Dreg9 (which produced DataIn/nQ). The information that flows at the far end of the
stops at Dreg9 (which produced DataIn/nQ). The information that flows at the far end of the
register chain is defined at the first cycle, while the closest register is configured by the data
register chain is defined at the first cycle, while the closest register is configured by the data
present at the last active clock edge.,
present at the last active clock edge.,
25 marca 2008 Układy programowalne 55
Programmable Logic Block
Programmable Logic Block
Programmable Logic Block
The block now consists of the LUT and the D-register. We chain the information DataIn_Fout and
The block now consists of the LUT and the D-register. We chain the information DataIn_Fout and
DataIn_nQ on the path of the shift register by adding 2 supplementary Dreg cells.
DataIn_nQ on the path of the shift register by adding 2 supplementary Dreg cells.
Each Dreg still uses the same clock ClockProg and chained input data DataProg.
Each Dreg still uses the same clock ClockProg and chained input data DataProg.
The configuring of the block is achieved thanks to 10 active clock edges on ClockProg, and 10 serial
The configuring of the block is achieved thanks to 10 active clock edges on ClockProg, and 10 serial
data on DataProg. The chain of Dreg starts at Dreg0 (Upper Dreg, which produced Value[0]) and
data on DataProg. The chain of Dreg starts at Dreg0 (Upper Dreg, which produced Value[0]) and
stops at Dreg9 (which produced DataIn/nQ). The information that flows at the far end of the
stops at Dreg9 (which produced DataIn/nQ). The information that flows at the far end of the
register chain is defined at the first cycle, while the closest register is configured by the data
register chain is defined at the first cycle, while the closest register is configured by the data
present at the last active clock edge.,
present at the last active clock edge.,
25 marca 2008 Układy programowalne 56
Application of the FPGA circuits
Application of the FPGA circuits
Application of the FPGA circuits
Full-Adder Example
Full-Adder Example
Full-Adder Example
The implementation of the CARRY and SUM function is achived by programming two look-up tables
The implementation of the CARRY and SUM function is achived by programming two look-up tables
according to the truthtables
according to the truthtables
One programmable logic block Block1 supports the generation of the sum for given logic values of
One programmable logic block Block1 supports the generation of the sum for given logic values of
the inputs A,B and C. The information needed to configure Block1 as a Sum function (3-input XOR)
the inputs A,B and C. The information needed to configure Block1 as a Sum function (3-input XOR)
is given in table. Notice that we only use the LUT in this programmable logic block. The Dreg is not
is given in table. Notice that we only use the LUT in this programmable logic block. The Dreg is not
active, and we only exploit the output of the LUT Fout, which is configured as the Sum.
active, and we only exploit the output of the LUT Fout, which is configured as the Sum.
The signal Sum propagates outside the block to the output interface
The signal Sum propagates outside the block to the output interface
region by exploiting the interconnect resources and switching
region by exploiting the interconnect resources and switching
matrix. The other programmable logic block Block2 supports the
matrix. The other programmable logic block Block2 supports the
S0 S1
S0 S1
generation of the signal Carry, from the same inputs A,B and C. The
generation of the signal Carry, from the same inputs A,B and C. The
F=A+B+C
F=A+B+C
SUM Carry
SUM Carry
result Carry is exported to the output interface region as for the
result Carry is exported to the output interface region as for the
Sum signal. Again, in this block, only the LUT is active.
Sum signal. Again, in this block, only the LUT is active.
0+0+0 0 0
0+0+0 0 0
1+0+0 1 0
1+0+0 1 0
0+1+0 1 0
0+1+0 1 0
0+0+1 1 0
0+0+1 1 0
ABC
ABC
1+1+0 0 1
1+1+0 0 1
1+0+1 0 1
1+0+1 0 1
0+1+1 0 1
0+1+1 0 1
25 marca 2008 Układy programowalne 57
Application of the FPGA circuits
Application of the FPGA circuits
Application of the FPGA circuits
Full-Adder Example
Full-Adder Example
Full-Adder Example
Serial data used to configure the logic blocks 1&2 as SUM and CARRY
Serial data used to configure the logic blocks 1&2 as SUM and CARRY
Block 1 Sum of F0, F1, F2
Block 1 Sum of F0, F1, F2
Cycle 1 2 3 4 5 6 7 8 9 10
Cycle 1 2 3 4 5 6 7 8 9 10
DataIn DataIn Val (7) Val (6) Val (5) Val (4) Val (3) Val (2) Val (1) Val (0)
DataIn DataIn Val (7) Val (6) Val (5) Val (4) Val (3) Val (2) Val (1) Val (0)
(Fout)
(Fout)
(nQ)
(nQ)
0 0 1 0 0 1 0 1 1 0
0 0 1 0 0 1 0 1 1 0
Block 2 Carry of F0, F1, F2
Block 2 Carry of F0, F1, F2
Cycle 1 2 3 4 5 6 7 8 9 10
Cycle 1 2 3 4 5 6 7 8 9 10
DataIn DataIn Val (7) Val (6) Val (5) Val (4) Val (3) Val (2) Val (1) Val (0)
DataIn DataIn Val (7) Val (6) Val (5) Val (4) Val (3) Val (2) Val (1) Val (0)
(Fout)
(Fout)
(nQ)
(nQ)
0 0 1 1 1 0 1 0 0 0
0 0 1 1 1 0 1 0 0 0
The programming sequence is contained in the piece-wise-linear symbols ProgBlock1 and
The programming sequence is contained in the piece-wise-linear symbols ProgBlock1 and
ProgBlcok2. As seen in the chronograms, the program clock ClockPgm is only active at the
ProgBlcok2. As seen in the chronograms, the program clock ClockPgm is only active at the
initialization phase, to shift the logic information to the memory points inside the blocks which
initialization phase, to shift the logic information to the memory points inside the blocks which
configure each multiplexer.
configure each multiplexer.
25 marca 2008 Układy programowalne 58
Interconnection between blocks
Interconnection between blocks
Interconnection between blocks
-Programmable Interconnect Point (PIP)
-Programmable Interconnect Point (PIP)
-Programmable Interconnect Point (PIP)
Programmable Interconnect Point consists of a configurable bridge between two
Programmable Interconnect Point consists of a configurable bridge between two
interconnects.
interconnects.
25 marca 2008 Układy programowalne 59
Interconnection between blocks
Interconnection between blocks
Interconnection between blocks
-Programmable Interconnect Point (PIP)
-Programmable Interconnect Point (PIP)
-Programmable Interconnect Point (PIP)
Programmable Interconnect Point consists of a configurable bridge between two
Programmable Interconnect Point consists of a configurable bridge between two
interconnects.
interconnects.
The bridge can be built from a transmission gate, controlled once again by a D-reg cell.
The bridge can be built from a transmission gate, controlled once again by a D-reg cell.
When the register information contains a 0, the transmission gate is off and no link exists
When the register information contains a 0, the transmission gate is off and no link exists
between Interco1 and Interco2. When the information held by the register is 1, the transmission
between Interco1 and Interco2. When the information held by the register is 1, the transmission
gate establishes a resistive link between Interco1 and Interco2. The resistance value is around
gate establishes a resistive link between Interco1 and Interco2. The resistance value is around
100 &!.
100 &!.
25 marca 2008 Układy programowalne 60
Interconnection between blocks
Interconnection between blocks
Interconnection between blocks
- Switching Matrix
- Switching Matrix
- Switching Matrix
The switching matrix is a sophisticated programmable interconnect point, which enables a
The switching matrix is a sophisticated programmable interconnect point, which enables a
wide range of routing combinations within a single interconnect crossing.
wide range of routing combinations within a single interconnect crossing.
The matrix includes 6 configurable
The matrix includes 6 configurable
bridges between the two main
bridges between the two main
interconnects.
interconnects.
Examples of 3x3 switching matrix is
Examples of 3x3 switching matrix is
given in figure. The routing
given in figure. The routing
possibilities are numerous, which
possibilities are numerous, which
improves the configurability of the
improves the configurability of the
logic blocs.
logic blocs.
25 marca 2008 Układy programowalne 61
Interconnection between blocks
Interconnection between blocks
Interconnection between blocks
- Switching Matrix
- Switching Matrix
- Switching Matrix
Implementation of the Switching Matrix
Implementation of the Switching Matrix
From a practical point of view, the switching matrix can be built from a regrouping of 6
From a practical point of view, the switching matrix can be built from a regrouping of 6
transmission gates.
transmission gates.
Each transmission gate is
Each transmission gate is
controlled by an associated
controlled by an associated
Dreg cell, which memorizes the
Dreg cell, which memorizes the
desired configuration. The
desired configuration. The
Dreg cells are chained so that
Dreg cells are chained so that
one single input DataIn and one
one single input DataIn and one
clock LoadClock are enough to
clock LoadClock are enough to
configure the matrix.
configure the matrix.
0 0 1 1 0 0
0 0 1 1 0 0
25 marca 2008 Układy programowalne 62
Interconnection between blocks
Interconnection between blocks
Interconnection between blocks
- Array of Blocs
- Array of Blocs
- Array of Blocs
The configurable blocs are associated with programmable interconnect points and switching matrix
The configurable blocs are associated with programmable interconnect points and switching matrix
to create a complete configurable core. An example of double configurable block and its associated
to create a complete configurable core. An example of double configurable block and its associated
25 marca 2008 Układy programowalne 63
Application of the FPGA circuits
Application of the FPGA circuits
Application of the FPGA circuits
Full-Adder Example
Full-Adder Example
Full-Adder Example
The routing of the signals A,B and C as well as Sum and Carry has been done manually. In reality,
The routing of the signals A,B and C as well as Sum and Carry has been done manually. In reality,
specific placement/routing tools are provided to generate the electrical structure automatically
specific placement/routing tools are provided to generate the electrical structure automatically
from the initial schematic diagram, which avoids manual errors and limits conflicts or omissions.
from the initial schematic diagram, which avoids manual errors and limits conflicts or omissions.
25 marca 2008 Układy programowalne 64
Application of the FPGA circuits
Application of the FPGA circuits
Application of the FPGA circuits
Full-Adder Example
Full-Adder Example
Full-Adder Example
The routing of the signals A,B and C as well as Sum and Carry has been done manually. In reality,
The routing of the signals A,B and C as well as Sum and Carry has been done manually. In reality,
specific placement/routing tools are provided to generate the electrical structure automatically
specific placement/routing tools are provided to generate the electrical structure automatically
from the initial schematic diagram, which avoids manual errors and limits conflicts or omissions.
from the initial schematic diagram, which avoids manual errors and limits conflicts or omissions.
25 marca 2008 Układy programowalne 65
Application of the FPGA circuits
Application of the FPGA circuits
Application of the FPGA circuits
Clock Divider Example
Clock Divider Example
Clock Divider Example
A second example is proposed as an application of the FPGA circuits. It concerns the clock division.
A second example is proposed as an application of the FPGA circuits. It concerns the clock division.
We recall the general structure and the typical chronograms of the clock division by four, which
We recall the general structure and the typical chronograms of the clock division by four, which
requires two Dreg cells, with a feedback from the output ~Q to the input D.
requires two Dreg cells, with a feedback from the output ~Q to the input D.
25 marca 2008 Układy programowalne 66
Application of the FPGA circuits
Application of the FPGA circuits
Application of the FPGA circuits
Clock Divider Example
Clock Divider Example
Clock Divider Example
Not used
Not used
25 marca 2008 Układy programowalne 67
Application of the FPGA circuits
Application of the FPGA circuits
Application of the FPGA circuits
Clock Divider Example
Clock Divider Example
Clock Divider Example
Data prog
Data prog
Clk prog
Clk prog
25 marca 2008 Układy programowalne 68
Application of the FPGA circuits
Application of the FPGA circuits
Application of the FPGA circuits
Clock Divider Example
Clock Divider Example
Clock Divider Example
Each programmable logic block is configured as a single stage clock divider. The information
Each programmable logic block is configured as a single stage clock divider. The information
needed to configure Block1 as a simple Dreg function is given in table.
needed to configure Block1 as a simple Dreg function is given in table.
Block 1 DataOut=nQ, D=DataIN
Block 1 DataOut=nQ, D=DataIN
Cycle 1 2 3 4 5 6 7 8 9 10
Cycle 1 2 3 4 5 6 7 8 9 10
DataIn DataIn Val (7) Val (6) Val (5) Val (4) Val (3) Val (2) Val (1) Val (0)
DataIn DataIn Val (7) Val (6) Val (5) Val (4) Val (3) Val (2) Val (1) Val (0)
(Fout)
(Fout)
(nQ)
(nQ)
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
Cycle 1 2 3 4 5 6 7 8 9 10
Cycle 1 2 3 4 5 6 7 8 9 10
DataIn DataIn Val (7) Val (6) Val (5) Val (4) Val (3) Val (2) Val (1) Val (0)
DataIn DataIn Val (7) Val (6) Val (5) Val (4) Val (3) Val (2) Val (1) Val (0)
(Fout)
(Fout)
(nQ)
(nQ)
1 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0
This serial data information creates a direct path from DataIn to input D of the Dreg cell, while
This serial data information creates a direct path from DataIn to input D of the Dreg cell, while
nQ propagates to DataOut. Notice that the look-up table is inactive in this configuration.
nQ propagates to DataOut. Notice that the look-up table is inactive in this configuration.
25 marca 2008 Układy programowalne 69
Application of the FPGA circuits
Application of the FPGA circuits
Application of the FPGA circuits
Clock Divider Example
Clock Divider Example
Clock Divider Example
Outside the programmable block, the signal nQ propagates to the input DataIn.
Outside the programmable block, the signal nQ propagates to the input DataIn.
The other programmable logic block Block2 is also programmed as a Dreg circuit with a feedback
The other programmable logic block Block2 is also programmed as a Dreg circuit with a feedback
from nQ to DataIn.
from nQ to DataIn.
25 marca 2008 Układy programowalne 70
Application of the FPGA circuits
Application of the FPGA circuits
Application of the FPGA circuits
Clock Divider Example
Clock Divider Example
Clock Divider Example
The first nanoseconds are dedicated to the programming of the blocks. Once properly configured,
The first nanoseconds are dedicated to the programming of the blocks. Once properly configured,
the counter starts to work according to the specifications. Notice the very important delay in
the counter starts to work according to the specifications. Notice the very important delay in
responding to the active edges, which is due to the intrinsic complexity of the configuration block,
responding to the active edges, which is due to the intrinsic complexity of the configuration block,
and to the long interconnect delay through the connection points and switching matrix.
and to the long interconnect delay through the connection points and switching matrix.
Timing of the clock divider circuit
Timing of the clock divider circuit
25 marca 2008 Układy programowalne 71


Wyszukiwarka

Podobne podstrony:
13 Programowalne i Specjalistyczne Układy Cyfrowe
Uklady Cyfrowe
Studia dzienne — Układy cyfrowe
pomoc uklady cyfrowe
uklady cyfrowe
Cyfrowe uklady scalone
10 Cyfrowe Układy Sekwencyjne
Cyfrowe uklady sekwencyjne
Wykład 4 Automaty, algebry i cyfrowe układy logiczne
F2 1 Cyfrowe układy scalone
2 WYKLAD Cyfrowe układy scalone

więcej podobnych podstron