zadanie 5 projekt licznika - scalak | micro & … projektowania systemów scalonych ke agh str....
TRANSCRIPT
Laboratorium Projektowania Systemów Scalonych
KE AGH str. 1
Laboratorium Projektowania Systemów Scalonych
Katedra Elektroniki
Akademia Górniczo-Hutnicza w Krakowie
Zadanie 5
Projekt licznika wykorzystanie komórek standardowych
Laboratorium Projektowania Systemów Scalonych
KE AGH str. 2
1. Cel
Zapoznanie się studenta z projektowaniem hierarchicznym wykorzystując komórki
standardowe na przykładzie projektu licznika. Szybkie układanie komórek, rysowanie ścieżek.
2. Zadanie
Zaprojektować schemat logiczny układu licznika dla wybranego z tabeli 1 tematu.
Narysować schemat układu wykorzystując elementy z dostępnej biblioteki komórek
standardowych. Wykonać symulację potwierdzającą poprawne działanie (np. analiza
transient).
Narysować topografię licznika. Ułożyć komórki w kilku rzędach i wykonać ścieżki łączące
wejścia i wyjścia elementów oraz zasilanie.
Wyekstrahować netlistę z layout'u z parametrami pasożytniczymi: R i C. Przeprowadzić
symulacje postlayoutowe w celu wyznaczenia parametrów czasowych (czas propagacji, czas
narastania i opadania sygnału wyjściowego) oraz średniego pobru mocy przy obciążeniu
licznika pojemnością 10fF.
Tabela 1. Tematy zadań do realizacji.
1 3-bit. licznik synchroniczny zliczający co 1 lub co 2 w górę w zależności od stanu wejścia sterującego
2 3-bit. licznik synchroniczny zliczający co 1 lub co 2 w dół w zależności od stanu wejścia sterującego
3 3-bitowy licznik synchroniczny zliczający „1 wprzód 2 w tył” (np.: 0, 1, 7, 0, 6, 7, 5,…)
4 3-bitowy licznik synchroniczny zliczający „1 w tył 2 wprzód” (np.: 0, 7, 1, 0, 2, 1, 3,…)
5 3-bitowy licznik synchroniczny góra/dół
6 3-bitowy programowalny (od 0 do N) licznik synchroniczny (dodatkowe wejścia programujące)
7 3-bitowy licznik synchroniczny z programowaniem wartości początkowej (liczy od ustawionej na dodatkowych wejściach wartości N do 7 i znów od N)
8 Licznik synchroniczny zliczający od 7 do 14 w NKB (na wyjściu kolejne liczby w kodzie binarnym)
9 Licznik synchroniczny zliczający od 7 do 14 w kodzie Grey’a
10 Licznik synchroniczny zliczający od 0 do 7 w NKB z synchronicznym kasowaniem
11 Licznik synchroniczny zliczający od 0 do 7 w kodzie Grey’a z synchronicznym kasowaniem
12 Licznik synchroniczny zliczający od 0 do 7 w NKB z synchronicznym ustawianiem
13 Licznik synchroniczny zliczający od 0 do 7 w kodzie Grey’a z synchronicznym ustawianiem
14 Licznik synchroniczny zliczający w górę w NKB od 0 do 14 co 2
15 Licznik synchroniczny zliczający w dół w NKB od 14 do 0 co 2
16 Licznik synchroniczny modulo 6 w górę z kasowaniem (może być asynchroniczne)
17 Licznik synchroniczny modulo 6 w dół z ustawianiem (może być asynchroniczne)
18 Asynchroniczny licznik 3-bitowy zliczający góra/dół
19 Asynchroniczny licznik modulo 12 z kasowaniem
20 Asynchroniczny licznik zliczający od 5 do 15 z kasowaniem (powrót do liczby 5)
Laboratorium Projektowania Systemów Scalonych
KE AGH str. 3
3. Wynik
Przedstawić topografię do sprawdzenia prowadzącemu zajęcia.
Napisać krótkie sprawozdanie zawierające: cel projektu, schemat licznika, wyniki symulacji
postlayoutowych – parametry licznika: czasy, średni pobór mocy (w określonych warunkach
pracy), wymiary i powierzchnia. Nie jest wymagane umieszczanie topografii
w sprawozdaniu, natomiast koniecznie należy podać ścieżkę i nazwę biblioteki z ostateczną
wersją projektu.
Sprawozdanie można wysłać mailem, po uzgodnieniu z prowadzącym zajęcia, wpisując
w temacie listu: SUiSE_zad5_imię_nazwisko.
4. Realizacja zadań – informacje pomocnicze
4.1. Ustawienia wstępne
Aby uzyskać dostęp do biblioteki komórek standardowych należy ją dodać do listy bibliotek
swojego projektu. W tym celu można skorzystać z Library Path Edytor dostępnego w głównym
menu Tools (rys.1.), gdzie należy wpisać nazwę biblioteki i ścieżkę do niej. Drugą możliwością jest
dopisanie biblioteki do pliku cds.lib w katalogu projektu:
DEFINE biblioteka /home/student/biblioteka
Rys. 1. Okno edytora ścieżek bibliotecznych
4.2. Rysowanie topografii z wykorzystaniem komórek standardowych
W bibliotece "biblioteka" znajduje się kilka przerzutników i bramek (proszę sprawdzić jakie)
oraz trzy komórki pomocnicze. Ogólnie, komórki standardowe są tak zaprojektowane aby ułatwić i
przyspieszyć rysowanie topografii naszego układu. Mają ustalone wymiary, sposób prowadzenia
linii zasilających i masy oraz wejść i wyjść. Na temat komórek standardowych można poczytać
w "Projektowanie układów scalonych" A. Gołda, A. Kos, strona 124 lub innej literaturze.
W naszym przypadku komórki mają wysokość 4,72 µm oraz minimalną szerokość zależną od
ilości tranzystorów i połączeń. Linie zasilani i masy zostały umieszczone, odpowiednio, u góry i u
dołu komórek, a na brzegach położono stosowne piny. Wejścia i wyjścia są umieszczone w
dowolnych miejscach i wyprowadzone metalem 3 – piny zrobione z metalu 3. W komórkach użyto
metalu 1 i 2. Na rysunku 2 przedstawiono komórkę bramki NAND oraz jej topografię wewnętrzna.
Laboratorium Projektowania Systemów Scalonych
KE AGH str. 4
a) b)
Rys. 2. Komórka standardowa 4-wej. bramki NAND (a) i jej topografia wewnętrzna (b)
Niektóre warstwy w komórkach zostały celowo zmniejszone ale jeżeli komórki będą układane
obok siebie na styk, to te warstwy będą się uzupełniały. Jedynie skrajne komórki rzędu muszą być
uzupełnione. W tym celu dostępne są komórki cell_L i cell_R. Dodatkowo zaprojektowano celę
fill_03, która może być umieszczona w środku pomiędzy innymi komórkami i zapewnia ciągłość
odpowiednich warstw. Jej szerokość to 0,3 µm. Ona może nachodzić na inne komórki, tak aby
wypełnić brakujące miejsce. Pozostałe cele należy układać na styk. Kolejne rzędy komórek mogą
się stykać ale muszą być odwrócone do „góry nogami” z powodu położenia linii zasilania i masy.
Rysunek 3 przedstawia przykładowe ułożenie kilku komórek w dwóch rzędach.
Rys. 3. Przykładowe ułożenie kliku komórek
Projektowanie topografii można rozpocząć od jej półautomatycznej generacji. Następnie
w opcjach wyświetlania (Display Options – klawisz E) należy zaznaczyć: Pin Names oraz
Instances Pins. Start i Stop w Display Levels ustawić na zera. Po takich ustawieniach będą
widoczne obrysy komórek oraz piny i ich nazwy (jak na Rys. 3), a nie będzie widoczna topografia
komórek.
W celu szybkiego poukładania komórek można skorzystać z operacji wyrównywania
elementów. Z menu wybieramy Edit → Advanced → Align. W oknie które się otworzy można
ustawić parametry i sposób wyrównywania obiektów oraz punkty/linie odniesienia. Następnie
zaznaczamy te obiekty, które mają być poukładane i zatwierdzamy przyciskiem Apply.
Laboratorium Projektowania Systemów Scalonych
KE AGH str. 5
Innym sposobem ułatwiającym układanie komórek jest funkcja szybkiego wyrównywania:
Edit → Quick Align (skrót klawiszowy A). W ybieramy krawędź komórki, która ma być
przesunięta (zaznaczona na fioletowo), następnie wybieramy krawędź innego obiektu do którego
wybrana komórka ma być wyrównana. Rysunek 4 przedstawia kolejne kroki takiego wyrównywania.
Rys. 4. Działanie instrukcji Quick Align – kolejne etapy wyrównywania komórek
Po ułożeniu komórek należy połączyć ich wejścia i wyjścia zgodnie ze schematem. Do łączenia
można wykorzystać metale 3, 4 i 5 prowadząc połączenia również po komórkach. Nie wolno
korzystać z metali 1 i 2 ponieważ zostały one użyte w komórkach. Nie zaleca się korzystania
z metalu 6 ponieważ wymaga on nieco innych reguł DRC. Tę warstwę metalu zwykle stosuje się
do rozprowadzenia zasilania w układzie scalonym ze względu na jej grubość.
Ścieżki połączeniowe można łatwo rysować korzystając z polecenia Create → Shape → Path
(skrót klawiszowy P). Należy wybrać odpowiednią warstwę z zasobnika i rozpocząć rysowanie. Na
rysunku 5 przedstawiono rysowanie ścieżki z metalu 3.
Rys. 5. (a) Rysowanie ścieżki z metalu3
Rysowana ścieżka automatycznie przyjmuje szerokość elementu, od którego rozpoczęto jej
rysowanie ale to można zmienić.
Laboratorium Projektowania Systemów Scalonych
KE AGH str. 6
Po naciśnięciu prawego przycisku myszy otwiera się menu podręczne z różnymi opcjami
dotyczącymi rysowania ścieżek, np. szerokość ścieżek, wstawianie przelotek itp. Zaleca się
stosowanie minimalnej szerokość ścieżek sygnałowych, ale linie zasilające powinny być szersze.
Na rysunku 6 przedstawiono zmianę parametrów rysowanej ścieżki w menu podręcznym.
Rys. 6. Menu podręczne rysowania ścieżki - zmiana szerokości
W trakcie rysowania ścieżek pomocne będzie wyświetlanie realizowanego połączenia za
pomocą kolorowych linii (net). Tę opcję można włączyć (w Layout GXL) wybierając z menu:
Connectivity → Incomlete Nets i następnie jedną z trzech opcji Show/Hide (Rys. 7).
Rys. 7. Włączanie wyświetlania linii połączeń (nets)
Laboratorium Projektowania Systemów Scalonych
KE AGH str. 7
Narysowane w ten sposób ścieżki można przesuwać lub rozciągać (stretch). Jeśli chcemy
ścieżkę rozciągnąć to klikamy na jej środkową linię (Rys. 8) i w trakcie tej operacji pojawiają
się cienkie białe linie oznaczające minimalną odległość do tej samej warstwy (Rys. 9).
Rys. 8. Wybór fragmentu ścieżki do rozciągania
Rys. 9. Zaznaczenie minimalnej odległości od ścieżki w trakcie jej przeciągania
Do rysowania połączeń w Virtuoso GXL można wykorzystać automatyczne łączenie
elementów, jednak zaleca się wtedy najpierw wykonać połączenia zasilania (vdd) i masy (gnd) np.
metalem 1 oraz sygnałów zegarowych (odpowiednim metalem 3 lub/i 4), a następnie z menu
głównego wybrać Route → Automatc Routing .