DSCH2 to program do edycji i symulacji układów logicznych. DSCH2 jest wykorzystywany do sprawdzenia architektury układu logicznego przed rozpoczęciem projektowania fizycznego. DSCH2 zapewnia ergonomiczne środowisko do projektowania hierarchicznych układów logicznych i symulacji złożonych układów razem z analizą opóźnień. Inwerter logiczny Pierwszy przykład pokazuje prostą symulację układu logicznego inwertera. Należy wybrać z menu File Open i otworzyć plik z układem inwertera (Inverter.sch). Ten układ zawiera jeden przycisk, układ inwertera, diodę oraz przykład realizacji inwertera z użyciem tranzystorów MOS. Aby rozpocząć symulację należy wybrać z menu Simulate Start simulation. Ilustracja 1: Układ do symulacji inwertera (Inverter.sch) Naciskając na przycisk po lewej stronie układu zmienia się sygnał wejściowy. Sygnał wyjściowy pokazuje dioda. Kolor czerwony oznacza logiczne 1, kolor czarny logiczne 0. Aby zatrzymać symulację i powrócić do edytora należy nacisnąć przycisk Stop simulation. Ilustracja 2: Przycisk Stop Simulation Należy nacisnąć ikonę chronogram aby uzyskać dostęp do wykresów czasowych symulacji. Jak widać na wykresach, wartość sygnału wejściowego jest logicznym przeciwieństwem sygnału wyjściowego.
Podstawowe bramki logiczne Program DSCH2 umożliwia budowę złożonych układów z podstawowych bramek logicznych. Poniższa tabela pokazuje symbole podstawowych bramek razem z opisem ich funkcji logicznych. Symbol & oznacza operację logiczną AND, oznacza OR, ~ oznacza NOT a ^ oznacza XOR. Nazwa układu Funkcja logiczna Symbol NOT Y = ~A AND Y = A & B NAND Y = ~(A & B) OR Y = A + B NOR Y = ~(A + B) XOR Y = A ^ B XNOR Y = ~(A ^ B) Bramka NAND Tablica prawdy bramki NAND i schemat układu do symulacji są pokazane na kolejnej stronie. Aby zbudować ten układ w programie DSCH2 należy wybrać z palety poszczególne elementy układu: bramkę NAND, dwa przyciski oraz diodę. W razie konieczności można wykorzystać interconnects do połączenia elementów. Po zbudowaniu układu należy zweryfikować poprawność jego działania w symulacji.
A B Y 0 0 1 0 1 1 1 0 1 1 1 0 Bramki AND, OR, NOR, XOR W podobny sposób jak opisany wcześniej, należy zbudować i przetestować układy zawierające bramki AND, OR, NOR, oraz XOR. 3-wejściowa bramka OR Tablica prawdy trójwejściowej bramki OR i schemat układu do symulacji są pokazane poniżej. Do zbudowania układu należy wykorzystać trójwejściową bramkę NOR oraz układ inwertera. A B C Y 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 1 Realizacja złożonych funkcji logicznych Jedną z możliwości realizacji złożonych funkcji logicznych jest zastosowanie kombinacji kilku bramek. Ilustrację układu zbudowanego z kilku podstawowych bramek stanowi realizacja funkcji logicznej opisanej następującym wzorem: Y = ~(A + (B & C)) Układ logiczny odpowiadający powyższej funkcji jest pokazany poniżej. Zbudowany jest on z bramki NOR oraz AND. Jego działanie należy zweryfikować w symulacji, porównując działanie układu z własnoręcznie wykonaną tablicą prawdy. A B C Y
Układ półsumatora Układ półsumatora i jego tablica prawdy są pokazane poniżej. Funkcja SUM jest zrealizowana za pomocą bramki XOR, funkcja CARRY z wykorzystaniem bramki AND. Poprawne działanie należy zweryfikować w symulacji. A B SUM CARRY 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 Układ pełnego sumatora Zbudowany wcześniej schemat półsumatora należy wyeksportować jako osobny symbol, korzystając z menu File Schema to new symbol. Następnie należy utworzyć nowy schemat i korzystając z dwóch półsumatorów (Insert User symbol (.SYM)) utworzyć pełny sumator. Sumator czterobitowy Korzystając z opracowanego komponentu pełnego sumatora wykonać sumator czterobitowy. Poprawność działania zweryfikować dodając do siebie następujące pary liczb: 3 + 1; 1 + 14; 10 + 10; 15 + 15 Projekt licznika czterobitowego synchronicznego Korzystając z przerzutników typu D zaprojektować układ licznika synchronicznego, którego sekwencja stanów przedstawiona jest poniżej. Wynikiem procesu projektowania powinien być zestaw równań opisujących stany na poszczególnych wejściach D w zależności od stanów na poszczególnych wyjściach Q.
Realizacja zaprojektowanego licznika Zestaw równań otrzymany w drodze projektowania automatu stanowego D 5 = D 4 = D 3 = D 2 = D 1 = D 0 = Zaprojektowany licznik należy wykonać w programie DSCH2. Stosując przerzutnik typu D w programie DSCH2, warto pamiętać o następujących jego własnościach: wejście zegarowe oznaczone jest literą H (od fr. horloge); aktywnym zboczem zegara jest zbocze opadające; aby uniknąć stanu nieustalonego na wyjściu, należy przerzutnik zainicjalizować (zapewniając zdefiniowany stan logiczny na wejściu D, bądź korzystając z wejścia RST). Realizacja bramki NAND w technologii CMOS Należy zapoznać się z przedstawionym poniżej sposobem realizacji bramki NAND w najbardziej rozpowszechnionej technologii produkcji układów scalonych CMOS. Działanie przedstawionego poniżej układu należy zweryfikować z użyciem programu DSCH2. Użyteczne uproszczenia: Tranzystor nmos bramka kanał Kanał otwiera się po podaniu logicznej 1 na bramkę Tranzystor pmos Kanał otwiera się po podaniu logicznego 0 na bramkę
Realizacja bramki AND Korzystając z opracowanej wcześniej struktury bramki NAND, należy zbudować bramkę AND. Zgodnie z intuicją, konwersję wykonuje się dołączając układ inwertera do wyjścia bramki NAND. Realizacja bramek NOR oraz OR Opierając się na wiedzy zdobytej podczas przygotowywania struktur bramek NAND oraz AND należy samodzielnie zaprojektować strukturę bramki NOR. Następnie, w analogiczny sposób należy zaprojektować układ realizujący funkcję OR. Niskopoziomowa realizacja złożonych funkcji logicznych Ilu tranzystorów potrzeba aby zrealizować funkcję Y = ~(A + (B & C)) za pomocą bramki NOR i AND? Wykorzystując przygotowaną wcześniej tablicę prawdy dla powyższej funkcji należy opracować strukturę obwodu CMOS realizującego opisaną operację. Ilu tranzystorów potrzeba do realizacji tego obwodu kombinacyjnego? Ilu tranzystorów potrzeba do zrealizowania k-wejściowego układu kombinacyjnego w technologi CMOS? Czy realizowany w ten sposób obwód może być dowolnie skomplikowany? Generacja pliku do symulacji w środowisku SPICE Należy otworzyć plik schematu bramki NAND wykonanej w technologii CMOS a następnie skorzystać z menu File Generate SPICE File. Korzystając ze Zwięzłego opisu programu PSPICE dostępnego na stronie http://neo.dmcs.pl/pme6 należy zaobserwować w jaki sposób opisane zostały poszczególne elementy schematu.