ASIC - Application Specific Integreated Circuits
Specjalizowane ze względu na zastosowania układu scalone
PLD Programmable Logic Devices. Programowalne moduły logiczne
PAL Programmable Array Logic. Programowana logika matryc.
PLA Programmable Logic Array. Matryca programowalnej logiki.
MAX Makro Array (Multiple Array Matrix). Wielokrotna matryca.
MACH Makro Array CMOS High-density. Wieloktotna matryca CMOS o dużej gęstości.
CPLD Complex PLD. Złożone PLD.
GAL Generic Array Logic
EPLD Erasable PLD. Wymazywalny PLD.
PLS Programmable Logic Sequencer.
FPGA Field Programmable Gate Arrays. Przestrzennie programowane matryce bramek
TLU Table Look-up. Tablica prawdy.
MUX Multiplexer Based FPGA. FPGA z użyciem multipleksera.
LCA Logic Cell Array. Matryca komórek logicznych.
Projektowanie wspomagane komputerowo (CAD Computer Aided Design).
Reprezentacja
funkcjonalna: wyrażenia boolowskie - tablice prawdy - opis we/wy (mikrooperacje)
strukturalna: bramki - rejestry, liczniki - RAM, ROM, μP
graficzna (layout): komórki - moduły - połączenia modułów.
VHDL Very high speed integrated circuit Hardware Description Language.
Język opisu sprzetu bardzo szybkich układów scalonych.
PAL programowalne matryce logiczne składają się z matrycy bramek AND oraz matrycy bramek OR.
Matryca AND jest programowalna, a matryca OR ma stałe połączenia.
XILINX Rodzina XC4000 Field Programable Gate Arrays
CLB Configurable Logic Blocks Konfigurowalne bloki logiczne
IOB Input Output Blocks. Bloki we/wy
Inter Connections. Wewnętrzne połączenia
Pierwsze układy XC2000 LCA (Logic Cell Arrays - Komórkowe matryce logiczne) pojawiły się w 1985 r.
Można było zaprogramować 4 funkcje Boole'a i jedną pamięć. Posiadały od 1300 do 10 000 bramek i zegar 80 MHz.
Schemat blokowy uproszczony XC4000 C|LB - para przerzutników i dwa niezależne 4 wejściowe generatory funkcyjne CLB (13 wejść 4 wyjścia)
F1 - F4 cztero-wejściowa funkcja logiczna (LUT look-up table)
G1 - G4 cztero-wejściowa funkcja logiczna (LUT look-up table)
H1 - H3 trzy-wejściowa funkcja logiczna (LUT look-up table)
F' i G' wyjścia czterowejściowych funkcji boolowskich, H' wyjście trzywejściowych funkcji boolowskich.
Y=f(G',H') X=f(F',H')
Można zaimplementować dowolną funkcję 4 lub 5 zmiennych w bloku CLB oraz niektóre funkcje 9 zmiennych.
Można też blok CLB skonfigurować inaczej:
dwie niezależne funkcje czterech zmiennych
funkcję 2 zmiennych oraz funkcję 5 zmiennych
funkcję 9 zmiennych
Dwa przerzutniki typu D wyzwalane zboczem ze wspólnym zegarem (K) i wejściem EC (clock enable). Programowalny asynchroniczny SET i RESET (S/R) niezależny dla obu rejestrów. Dodatkowo globalny S/R (nie pokazany na rysunku). Każdy przerzutnik wyzwalany narastającym lub opadającym zboczem. Sygnał informacyjny jest programowany i pochodzi z F', G', H' lub DIN (wejście bezpośrednie). Przerzutnik posiada wyjścia XQ YQ.
Konfigurowalny blok logiczny (CLB) może być ustawiony w taki sposób by spełniał funkcje specjalnych elementów arytmetycznych, takich jak 2-bitowy sumator z wejściem pożyczki (borrow) i wyjściem przeniesienia (carry) lub pamięć zapisu i odczytu typu RAM o 16 bitach do przechowywania danych.
Taka konfiguracja zwiększa szybkość odpowiedzi: sumatorów, odejmowaczy, akumulatorów, komparatorów i liczników.
3 BITOWY LICZNIK SYNCHRONICZNY Z SYGNAŁEM ZEZWOLENIA
Qn a b c |
Zezwolenie e |
Qn+1 A B C |
Wyjście x y |
0 0 0 |
0 |
0 0 0 |
0 0 |
0 0 0 |
1 |
0 0 1 |
0 0 |
0 0 1 |
0 |
0 0 1 |
0 0 |
0 0 1 |
1 |
0 1 0 |
0 0 |
0 1 0 |
0 |
0 1 0 |
0 0 |
0 1 0 |
1 |
0 1 1 |
0 0 |
0 1 1 |
0 |
0 1 1 |
0 0 |
0 1 1 |
1 |
1 0 0 |
0 0 |
1 0 0 |
0 |
1 0 0 |
1 0 |
1 0 0 |
1 |
1 0 1 |
1 0 |
1 0 1 |
0 |
1 0 1 |
1 0 |
1 0 1 |
1 |
1 1 0 |
1 0 |
1 1 0 |
0 |
1 1 0 |
1 1 |
1 1 0 |
1 |
1 1 1 |
1 1 |
1 1 1 |
0 |
1 1 1 |
1 0 |
1 1 1 |
1 |
0 0 0 |
1 0 |
Komórka logiczna układu pASIC380
23 wejścia i 5 wyjść
Architektura komórek logicznych uzależniona jest od istniejących zasobów połączeń.
FPGA mają struktury z wieloma połączeniami i wieloma programowalnymi połączeniami, mniejsze komórki logiczne z większą liczbą wejść i wyjść (struktury z izolowanymi bezpiecznikami).
FPGA korzystające z technologii SRAM - mniej linii połączeń i większe komórki logiczne.
CPLD łatwiej szacować zależności czasowe niż w przypadku FPGA.
PARAMETRY CZASOWE
Czas propagacji (zmiana na zewnętrznych zaciskach - stabilna wartość na wyjściu układu kombinacyjnego)
Czas ustawiania (minimalny czas przez który sygnał wejścia przerzutnika pozostawać musi stabilny przed nadejściem aktywnego zbocza sygnału zegarowego)
Czas trzymania (minimalny czas przez który sygnał wejścia przerzutnika pozostawać musi stabilny po wystąpieniu wyzwalającego zbocza sygnału zegarowego)
Opóźnienie sygnału taktującego do wyjścia
Opóźnienie propagacji sygnału taktującego przez strukturę matrycy logicznej do wyjścia
Minimalny okres zegara taktującego (parametr wykorzystywany do obliczania maksymalnej częstotliwości pracy.
W naszym przykładzie komórki logicznej układu pASIC380 wyjścia zewnętrzne a, b, c i x są ustawiane we właściwym stanie logicznym po upływie 3,5 ns od zmiany wejściowego sygnału zegara.
Wyjście y osiąga właściwy stan logiczny po 7 ns od ostatniej zmiany sygnału zegara.
Czas na propagację sygnału z wyjścia jednego przerzutnika do wejścia drugiego przerzutnika wraz z czasem ustawiania drugiego przerzutnika: 5.5 ns czyli układ można taktować 180MHz, ale z powodu 7ns tylko 143 MHz.
VHDL
JEDNOSTKA PROJEKTOWA - entity
DEKLARACJA, CIAŁO ARCHITEKTURY - architecture body
SD
D Q
>
EC
RD
H'
F'
G'
H'
H1 din S/R EC
C1 C2 C3 C4
din
F'
G'
H'
din
F'
G'
H'
H'
Funkcja logiczna
G1
G2
G3
G4
F1
F2
F3
F4
G'
Funkcja logiczna
F'
Funkcja logiczna
Sterowanie
S/R
1
1
Sterowanie
S/R
SD
D Q
>
EC
RD
K
X
Y
YQ
XQ
F
A
X
X
X
X
B