Katedra Elektroniki Akademia Górniczo-Hutnicza w Krakowie Zadanie 5 Projekt licznika wykorzystanie komórek standardowych KE AGH str. 1
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) KE AGH str. 2
3. Wynik Przedstawić topografię do sprawdzenia prowadzącemu zajęcia. Napisać krótkie sprawozdanie zawierające: cel projektu, wyniki symulacji postlayoutowych parametry licznika: czasy, średni pobór mocy (w określonych warunkach pracy), wymiary i powierzchnia. Nie jest wskazane 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. KE AGH str. 3
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 piny oraz 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. KE AGH str. 4
Innym sposobem ułatwiającym układanie komórek jest funkcja szybkiego wyrównywania: Edit Quick Align (skrót klawiszowy A). Teraz wybieramy krawędź komórki, która ma być przesunięta (zaznaczona na fioletowo), a następnie wybieramy krawędź innego obiektu do której wybrana komórka ma być wyrównana. Rysunek 4 przedstawia kolejne kroki tego 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). Po wybraniu warstwy ścieżka będzie miała minimalną szerokość dopuszczalną dla danej warstwy. Na rysunku 5 przedstawiono rysowanie ścieżki z metalu 3. Rys. 5. Rysowanie ścieżki z metalu3 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 Nets i następnie jedną z trzech opcji Show/Hide (Rys. 6). KE AGH str. 5
Rys. 6. Włączanie wyświetlania linii połączeń (nets) 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. 7) i w trakcie tej operacji pojawiają się cienkie białe linie oznaczające minimalną odległość do tej samej warstwy (Rys. 8). Rys. 7. Wybór fragmentu ścieżki do rozciągania Rys. 8. Zaznaczenie minimalnej odległości od ścieżki w trakcie jej przeciągania KE AGH str. 6