1
Elementy cyfrowe i układy
logiczne
Wykład 5
2
2
2
2
Legenda
Procedura projektowania
Podział układów VLSI
2
3
3
3
3
Procedura projektowania
Specyfikacja
Napisz, jeśli jeszcze nie istnieje,
specyfikację układu.
Opracowanie opisu formalnego
Wygeneruj tablicę prawdy lub początkowy zestaw
równań boolowskich, które definiują wymagane
zależności między wejściami a wyjściami układu.
Optymalizacja
Wykonaj dwupoziomową lub wielopoziomową
optymalizację. Narysuj schemat lub dostarcz listę połączeń
układu z wykorzystaniem bramek AND, OR, NOT.
Wybór i realizacja w technologii
Przekształć schemat logiczny lub listę połączeń w nowy schemat lub nową listę
połączeń zgodnie z wymaganiami dostępnej technologii implementacji układu.
Weryfikacja
Sprawdź poprawność
końcowego projektu.
4
4
4
4
Wyświetlacz segmentowy
Przykład: Projekt dekodera kodu BCD na kod
wyświetlacza 7-segmentowego
Wyświetlacz diodowy zbudowany z 7 segmentów
LED
(dioda
elektroluminescencyjna).
Każdy
segment może zostać podświetlony za pomocą
sygnału cyfrowego. Dekoder BCD na podstawie
cyfry dziesiętnej w kodzie BCD generuje sygnały
wyjściowe
dla
poszczególnych
segmentów
wyświetlacza.
Specyfikacja:
3
5
5
5
5
Wyświetlacz segmentowy
Opracowanie opisu formalnego:
Wejście BCD
Dekoder 7-segmentowy
A
B
C
D
a
b
c
d
e
f
g
0
0
0
0
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
0
1
0
1
0
0
0
1
1
0
0
1
1
0
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
0
1
0
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
Wszystkie
pozostałe
0
0
0
0
0
0
0
6
6
6
6
Wyświetlacz segmentowy
Optymalizacja:
CD
AB
00
01
11
10
00
01
11
10
0
1
1
1
1
0
0
0
1
1
0
0
1
1
0
0
a =
ABC
+
ABD
+
AC
ABD
+
C
B
A
CD
A
D
C
A
B
A
b
+
+
+
=
C
B
A
D
C
B
D
A
B
A
c
+
+
+
=
D
C
B
A
C
B
A
D
C
B
C
B
A
D
C
A
d
+
+
+
+
=
D
C
B
D
C
A
e
+
=
C
B
A
D
B
A
D
C
A
C
B
A
f
+
+
+
=
C
B
A
C
B
A
C
B
A
D
C
A
g
+
+
+
=
4
7
7
7
7
Wyświetlacz segmentowy
Optymalizacja:
Niezależna implementacja: AND – 27, OR – 20
Wspólne iloczyny: AND – 14
Przykład kończymy na optymalizacji
dwupoziomowej.
Można jeszcze zredukować liczbę wejść
bramkowych dzięki zastosowaniu optymalizacji
wielopoziomowej.
8
8
8
8
VLSI
5
9
9
9
9
Podział układów VLSI
VLSI
wielkie
standardy
ASIC
full-custom semi-custom
PLD
(EPROM)
standard-cells
gate-array
10
10
10
10
Podział układów
Wielkie standardy
- układy produkowane głównie z
inicjatywy
producenta.
Są
to
rodziny
układów
mikroprocesorowych i układów pamięciowych.
ASIC-
(application specific integrated circuits) - to
układy produkowane na zamówienie klienta.
6
11
11
11
11
Podział ASIC
układy na zamówienie z pełnym cyklem projektowania (full-custom):
Wykonywany jest cały projekt układu wraz ze szczegółami związanymi z rozplanowaniem
układu. Ze względu na wysokie koszty, metoda ta jest uzasadniona dla układów gęsto
upakowanych, szybkich i sprzedawanych w wielkich ilościach.
układy na zamówienie z ograniczonym (niepełnym) cyklem projektowania
(semi-custom)
, a w tym:
a) układy wykorzystujące komórki standardowe (standard-cells)
b) układy na płytkach wstępnie przygotowanych jak matryce
bramek AND (gate arrays)
Wymaga mniejszych nakładów finansowych; układ o mniejszej gęstości upakowania,
wolniejszy od układów full-custom.
układy programowane przez użytkownika
:
a) programowalne układy logiczne (programmable logic devices- PLD)
b) mikroprocesory jednoukładowe z pamięcią reprogramowalną
EPROM
12
12
12
12
Komórki
W
przypadku
technologii
z
niepełnym
cyklem
projektowania i technologii opartych na matrycach
bramkowych układy są konstruowane przez połączenie
komórek
.
Biblioteka komórek
– zbiór komórek dostępnych dla
danej technologii implementacji. Każda komórka jest
dokładnie
opisana.
Biblioteka
opisanych
komórek
stanowi fundament procesu wyboru i realizacji układów
w określonej technologii (ang. technology- mapping).
7
13
13
13
13
Specyfikacja komórek
• Schemat logiczny funkcji realizowanej przez komórkę.
• Wymagania dotyczące powierzchni zajmowanej przez komórkę,
często znormalizowanej względem powierzchni małej komórki
(np. inwertera).
• Obciążenie wejściowe, wyrażone w obciążeniach standardowych.
• Opóźnienia sygnału z każdego wejścia komórki do każdego
wyjścia komórki.
• Jeden lub wiele przykładowych zastosowań komórki.
• Jeden lub wiele modeli komórki w postaci opisów w HDL.
A także (opcjonalnie, jeśli narzędzie automatycznie generuje
rozmieszczenie elementów układu):
• Rozmieszczenie elementów układu scalonego dla komórki.
• Plan rozmieszczenia wejść, wyjść oraz połączeń zasilania i masy
komórki.
14
14
14
14
Przykład biblioteki komórek
8
15
15
15
15
Przykład biblioteki komórek
16
16
16
16
Procedura konwersji AND-OR
do NAND (NOR)
Krok 1:
Zastąp każdą bramkę AND i OR bramką
NAND (lub NOR) i inwerterem:
Krok 2:
Wyeliminuj wszystkie pary inwerterów.
9
17
17
17
17
Procedura konwersji AND-OR do
NAND (NOR)
Krok 3:
Nie zmieniając funkcji logicznej:
(a) „przepchnij” wszystkie inwertery leżące między wejściem układu
lub sterującym wyjściem bramki NAND (NOR) a sterowanymi
wejściami bramek NAND (NOR) w kierunku sterowanych wejść
bramki NAND (NOR); po wykonaniu tej operacji, jeżeli to
możliwe, usuń wszystkie pary szeregowych inwerterów;
X
X =
18
18
18
18
Procedura konwersji AND-OR
do NAND (NOR)
(b) zastąp inwertery połączone równolegle jednym
inwerterem,
który
przejmie
wszystkie
wyjścia
inwerterów równoległych;
(c) powtarzaj kroki (a) i (b), dopóki między wejściem
układu lub sterującym wyjściem bramki NAND
(NOR) a sterowanymi wejściami bramek NAND
(NOR) nie pozostanie co najwyżej jeden inwerter.
10
19
19
19
19
Przykład – NAND
(
)
(
)
E
D
AB
C
AB
AB
F
+
+
+
=
K
b
=12; 3 poziomy
20
20
20
20
Przykład – NOR
(
)
(
)
E
D
AB
C
AB
AB
F
+
+
+
=
Inwerter nr 1
„przepchnąć”
za pkt. X
K
b
=14; 5 poziomów
11
21
21
21
21
Koniec
Dziękuję za uwagę