Wprowadzenie do programu Uncle

1. Czym jest Uncle ?

Uncle (Universal Circuit Layout Editor) jest specjalistycznym edytorem do tworzenia zintegrowanych układów scalonych. Należy do grupy narzędzi CAD ze zbioru IMiOCAD – wykorzystywanych do projektowania, weryfikacji i symulacji zintegrowanych obwodów elektronicznych. Program ma możliwość zapisywania plików wyjściowych w różnych formatach (między innymi CIF , a także GDSII), które później można używać w narzędziach do analizy i weryfikacji. Program jest przeznaczony dla komputerów Macintosh.

Podstawowe funkcje (możliwości ) programu Uncle:

  1. hierarchiczna edycja obwodów w wielu oknach
  2. akceptacja danych w postaci pseudo-symbolicznej
  3. interfejs programu jest w pełni zintegrowany z systemem okienek w Macintoshu
  4. szybki sposób obsługi poprzez możliwość zdefiniowania makr przez użytkownika
  5. możliwość kontroli poprawności poszczególnych etapów projektu
  6. operacje undo i redo bez ograniczeń w głębokości (powrót do poprzednich stanów edytowanego projektu)
  7. możliwość eksportowania edytowanych układów między różnymi programami dla Macintosha
  8. przyjazny interfejs użytkownika ułatwiający poznanie reguł projektowania
  9. różne rodzaje formatów plików wyjściowych które później można wykorzystać w innych programach z grupy IMiOCAD

Początek pracy

Pracę z programem Uncle zaczniemy od zaprojektowania prostego układu jakim jest negator stanów logicznych.

Po uruchomieniu programu wybieramy opcję New z menu File.
Od tego momentu zaczniemy rysować komórki. Komórki są elementami z których zbudujemy nasz układ scalony. Po wywołaniu polecenia New wyświetli się okno dialogowe w którym wpisujemy nazwę projektowanego układu. Po nadaniu nazwy powinniśmy wybrać Folder w którym zapiszemy projekt naszego układu. Prostokąt narysowany przerywanymi liniami to Selector. Wyznacza obszar który będziemy pokrywać odpowiednią warstwą. Wielkość Selectora można dowolnie zmieniać w identyczny sposób jak rozmiary okienek.

Po lewej stronie okna znajduje się Pallete Box.

Każdy kwadrat z odpowiednim symbolem oznacza funkcję która wykorzystywana jest przy edycji układu np. wymazywanie, włączanie odpowiedniej warstwy którą będziemy aktualnie używać przy edycji.

W technologii N-CMOS w której tworzymy układ dostępne są następujące warstwy: diffusion, polisilicon, contact, metal1, metal2, via oraz pad.

Zanim zaczniemy edycję powinniśmy włączyć opcję kontroli rysowania- Continious checking w DRC menu. Włączenie tej opcji powoduje, że Uncle będzie na bieżąco sprawdzał czy rysowany układ spełnia standardowe reguły projektowe. Zmiana opcji Hide errors na Show errors (w DRC) menu spowoduje że wszystkie elementy nie spełniające reguł projektowych będą zaznaczone.

Najpierw wyznaczymy Selector o rozmiarach 6 na 6 i pokryjemy go warstwą typu difussion. Później wyznaczamy w Selector o rozmiarach 2 na 10 który przechodzi przez poprzedni i pokrywamy go warstwa polisylicon.

W ten oto sposób narysowaliśmy tranzystor z kanałem typu n.

Jeśli w jakikolwiek sposób złamiemy zasadę projektowania Uncle zaznaczy błędną część (pod warunkiem, że włączyliśmy opcję Show errors). Jeśli uruchomimy funkcję Find errors z DRC Menu pojawi się komunikat o błędzie wraz z jego opisem.


Np. jeśli pod tranzystorem z poprzedniego rysunku narysujemy warstwę polisyliconu o boku 2 na 2 w odległości 1 jednostki to powinniśmy otrzymać następujący komunikat

Przy włączonych opcjach weryfikacji tworzonego układu mamy pewność, że ewentualne błędy będą na bieżąco wykrywane.

Przy tworzeniu kolejnych komórek możemy skorzystać z menu, rozwijającego się po naciśnięciu i przytrzymaniu przycisku myszy przez pół sekundy, kiedy wskaźnik znajduje się w obszarze selektora.

Z menu możemy wybrać rodzaj warstwy, którą pokryjemy selector.
 

Teraz obok tranzystora z kanałem typu N narysujemy contact z warstwą dyfuzyjną typu N. Symbol contact - 

Kolejne elementy układ tworzymy w identyczny sposób, za każdy razem określając rozmiar i położenie selectora oraz wybierając odpowiednią warstwę. Cały czas Uncle sprawdza czy projektujemy układ zgodnie z zasadami.

Po narysowaniu wszystkich elementów układu warto jest opisać specyficzne elementy takie jak wejścia, wyjścia, żródła napięcia itd.

W większości przypadków wystarczy najechać wskażnikiem na warstwe którą chcemy opisać i nacisnąć dowolny klawisz z klawiatury bez trzymania klawiszy(control, option i command). Program zinterpretuje to jako próbę utworzenia etykiety i wyświetli menu etykiety.

Nasz negator zaprojektowany w programie Uncle wygląda tak:

Następnie zapisujemy zaprojektowany układ w formacie cif. Plik w tym formacie zawiera opis projektowanego układu czyli współrzędne położenia poszczególnych składowych projektu oraz ich parametry..
Oto przykład pliku cif opisującego nasz układ: inverter.cif

Stworzony plik wykorzystamy później do ekstrakcji elementów składowych w programie Excess.