Projektowania Układów Elektronicznych CAD Laboratorium ĆWICZENIE NR 3 Temat: Symulacja układów cyfrowych. Ćwiczenie demonstruje podstawowe zasady analizy układów cyfrowych przy wykorzystaniu programu PSpice. Ćwiczenie przeprowadzane jest na przykładzie wybranych, prostych układów cyfrowych, zrealizowanych w oparciu o bramki logiczne i przerzutniki. 1. Konwerter kodu NKB na kod Gray a Korzystając z doświadczeń z poprzednich ćwiczeń utworzyć nowy projekt używając PC Board Wizard o nazwie SymUklCyfrowych i dodać do niego bibliotekę eval.olb. Korzystając z doświadczeń z poprzednich ćwiczeń narysować schemat jak na rys. 3.1. Rys. 3.1. Konwerter kodu NKB na kod Gray a dla zakresu wartości od 0 do 7 (x3, x2, x1, x0 wektor wejściowy w kodzie NKB, x0 bit najmniej znaczący; q3, q2, q1, q0 wektor wyjściowy w kodzie Gray a, q0 bit najmniej znaczący). Lista elementów potrzebnych do narysowania ww. układu obejmuje: a) STIM1 (elementy S1) 1-bit. źródło przebiegu prostokątnego (SOURCE), b) 7486 bramki EXOR (EVAL), c) PORTNO-L port hierarchiczny (z przybornika Place Port w pasku Draw porównaj Ćw. 1, p. 2). 1
Korzystając z menu podręcznego, otwieranego po kliknięciu prawym przyciskiem myszy na karcie schematu SCHEMATIC1, zmienić nazwę karty (opcja Rename) np. na KonwNKB2Gray. Klikając dwukrotnie lewym przyciskiem myszy na kolejnych elementach STIM1, zadeklarować (kolejne pola COMMAND w oknie Property Editor), współrzędne czasu i wartości binarnych dla przebiegi sygnałów x0, x1, x2, x3 - w sposób jaki ilustruje rys. 3.2, tj. w przedziale czasu od 0 do 140 ns z krokiem 20ns (aby uzyskać pionową konfigurację okna Property Editor należy wybrać opcję Pivot w menu podręcznym pod prawym przyciskiem myszy), tak aby przebiegi tych sygnałów reprezentowały kolejne cyfry, od 0 do 7, w kodzie NKB zgodnie z ilustracją pokazaną na rys. 3.3. Rys. 3.2. Ustawienia (czas w nanosekundach, wartość binarna 0) przebiegu sygnału x3 Korzystając z doświadczeń z poprzednich ćwiczeń utworzyć nowy profil symulacji, np. CyfroweTRAN, a następnie wyedytować jego ustawienia tak, aby możliwe było przeprowadzenie analizy i wizualizacja interesujących przebiegów w przedziale czasu od 0 do 160ns. Przeprowadzić symulację i skomentować wyniki zwłaszcza w odniesieniu do opóźnień w odpowiedzi układu. 2
Rys. 3.3. Reprezentacja cyfr 0:7 (kolejne cyfry w kolejnych, 20ns przedziałach czasu) w kodzie NKB na sygnałach x3:x0. Przejść ponownie do edycji profilu symulacji do zakładki Options i kategorii Gate-level Simulation. Zmienić wybrane pole wyboru Timing Mode na Minimum, zgodnie z ilustracją pokazaną na rys. 3.4. Rys. 3.4. Opcje profilu symulacji w kategorii Gate-level Simulation Pola wyboru Timing Mode reprezentują odpowiednio minimalne, typowe oraz maksymalne wartości opóźnień czasowych w propagacji sygnałów wnoszonych przez poszczególne elementy projektowanego układu zgodnie z przypisami dokonanymi w modelach tych elementów. Ostatni, niewymieniony wyżej tryb Worst-case (min/max), pozwala na weryfikację pracy układu w warunkach stanowiących najbardziej niekorzystną kombinację minimalnych lub maksymalnych opóźnień poszczególnych elementów. Niejednoznaczne zachowanie układu powodowane ww. warunkami, można obserwować w programie Probe jako stany logiczne typu R (Rising), F (Falling) lub X (Unknown). 3
Przeanalizować działanie konwertera w trybie Maximum, a następnie w trybie Worst-case (min/max) przedyskutować wyniki. Zaprojektować, następnie przeanalizować, wersję konwertera dla zakresu cyfr od 0 do 15. 2. Układ z przerzutnikami typu D Korzystając ze schematu postępowania określonego w punkcie 1, narysować i przeanalizować działanie układu przedstawionego na rys. 3.5. Przyjąć, że źródło DSTM1 generuje sygnał zegarowy (o wypełnieniu 50%) i o okresie 10us (można w tym celu wykorzystać element DigClock z biblioteki SOURCE). Skomentować uzyskane przebiegi i określić typ badanego układu. Rys. 3.5. Układ przeznaczony do zbadania. Lista elementów potrzebnych do narysowania ww. układu obejmuje: a) DSTM1 (element DigClock) źródło przebiegu zegarowego - (SOURCE), b) 7408 dwuwejściowe bramki AND (EVAL), c) 7432 dwuwejściowe bramki OR (EVAL), d) 7411 trójwejściowa bramka AND (EVAL), e) 7474 przerzutniki typu D (EVAL), f) $D_HI stan wysoki logiczne 1 (z przybornika Place ground w pasku Draw), g) PORTNO-L port hierarchiczny (z przybornika Place port w pasku Draw). Przed uruchomieniem symulacji należy wybrać 0 na liście Initialize all flip-flops to w kategorii Gate-level Simulation okna opcji profilu symulacji (porównaj rys. 3.4). Przeanalizować działanie układu przedstawionego na rys. 3.5 kolejno zwiększając częstotliwość sygnału zegarowego do wartości: 1 MHz, 10 Mhz, 100 Mhz, dostosowując odpowiednio czas trwania analizy. Skomentować uzyskane przebiegi w kontekście zmian ustawienia Timing Mode (jak na rys. 3.4) oraz parametrów czasowych modeli elementów. 4
Modele elementów cyfrowych definiują ich działanie w trzech, następujących zakresach: a) funkcjonalnym, b) we/wy, c) szybkości działania wyrażonej poprzez czasy propagacji sygnałów. Ostatni z ww. zakresów definiowany jest poprzez tzw. model czasowy (Timing model) układu, którego nazwa jest elementem definicji zakresu funkcjonalnego. Przykładowo, wybranie opcji Edit PSpice Model z menu podręcznego dla elementu 7408, wyświetla okno z częścią modelu tego układu definiującą jego zakres funkcjonalny przedstawiony na rys. 3.6. Rys. 3.6. Model elementu 7408 zakres funkcjonalny. Zakres szybkości działania tego elementu zdefiniowany jest, jak można przeczytać w zaznaczonym fragmencie definicji pokazanej na rys. 3.6, w modelu o nazwie D_08. Model D_08, chociaż niewidoczny w oknie PSpice Model Editor, jest częścią tej samej biblioteki o nazwie 7400.lib (C:\Cadence\SPB_16.3\tools\pspice\library\7400.lib). Fragment tej biblioteki, wraz z definicją modelu D_08, pokazuje rys. 3.7. Rys. 3.7. Model elementu 7408 zakres funkcjonalny. 5
Parametry tego modelu określają: a) tplhty czas narastania (ang. rise time) wartość typowa, b) tphlty czas opadania (ang. fall time) wartość typowa, c) tplhmx czas narastania (ang. rise time) wartość maksymalna, d) tphlmx czas opadania (ang. fall time) wartość maksymalna. Określenia wartość typowa i wartość maksymalna bezpośrednio korespondują z ustawieniami Typical i Maximum pola Timing Mode (rys. 3.4). W najszybszych układach czasy te są krótsze niż 1 ns. W typowych układach cyfrowych wynoszą one natomiast od kilku do 100 ns. Czasy propagacji układów cyfrowych, tj. czasy opóźnień sygnałów na wyjściu w stosunku do sygnałów na wejściu są zwykle tego samego rzędu co ww. czasy narastania i opadania. 6