ĆWICZENIE 4 Zapoznanie ze środowiskiem CUPL Realizacja układów kombinacyjnych na układach PLD ZAGADNIENIA algebra Boola, bramki logiczne, Przygotowanie plików źródłowych w języku CUPL, Zasady kompilacji i symulacji za pomocą pakietu WinCUPL, Sposoby definiowania aktywnych poziomów logicznych dla wejść i wyjść. CEL ĆWICZENIA Zapoznanie z metodami realizacji układów kombinacyjnych na układach PLD, Zapoznanie ze środowiskiem WinCUPL, Zapoznanie ze składniami języka CUPL. ZADANIA Zad. 1. Realizacja bramki AND (Dodatek A). Przygotować plik źródłowy (AND.PLD), Dokonać kompilacji plików źródłowych, Przeprowadzić symulację (zapoznać się z plikiem AND.SI). Zad. 2. Zaprojektować układ realizujący funkcje NOT, AND, OR, NAND, NOR, XOR i XNOR. Układ powinien posiadać 2 wejścia A i B oraz 8 wyjść NOTA, NOTB, AND, itd. Przeprowadzić symulację układu. Zad. 3. Zmodyfikować układ z zad. 2, tak aby wszystkie wyjścia układu były aktywne w stanie niskim. Zad. 4. Symulacja dwubitowego multipleksera 2 na 1 (Dodatek B). Zad. 5. Zaprojektować trzybitowy multiplekser specjalizowany (4 na 1) działający zgodnie z tablicą: S2 S1 S0 F[0..2] 0 0 0 A[0..2] 0 0 1 B[0..2] 0 1 0 A[0..2] 0 1 1 C[0..2] 1 0 0 A[0..2] 1 0 1 D[0..2] 1 1 0 A[0..2] 1 1 1 B[0..2] Gdzie trzy bitowe wejście S jest wejściem adresowym, trzybitowe wejścia A, B, C i D są wejściami danych i są przepisywane na trzybitowe wyjście F zgodnie z tablicą prawdy. RozwaŜyć przypadki, gdy wejścia aktywne są w stanie wysokim lub niskim. Zad. 6. Zapoznać się z realizacją komparatora 1-bitowego (dodatek C, COMP1BIT.PLD) za pomocą tablicy prawdy. Przeprowadzić kompilację i symulację. Podczas kompilacji tablica zostanie zapisana w postaci równań w pliku *.DOC.
Następnie dokończyć komparator 4-bitowy (dodatek C, KOMP4BIT.PLD). PoniewaŜ w funkcji nie moŝna stosować tablicy prawdy, w ciel funkcji naleŝy wpisać równania uzyskane podczas kompilacji komparatora 1-bitowego. Zad. 7. Wykorzystując podaną funkcje sumatora 1-bitowego zaprojektować sumator 4-bitowy. Przeprowadzić symulację układu. FUNCTION A1B(A, B, Cin, Cout) { Cout = Cin & A # Cin & B # A & B; A1B = (A $ B) $ Cin; } SPRAWOZDANIE Sprawozdanie powinno zawierać: wydruki plików źródłowych, wydruki istotnych fragmentów plików dokumentacyjnych analizowanych układów, wydruki wyników symulacji, interpretacje wyników, wnioski.
DODATEK A Wydruk pliku AND.PLD Name Bramka AND; Partno AND01; Date 1/10/04; Company Uniwersytet Zielonogorski; Location None; Assembly None; Device G16V8; /*******Realizacja bramki AND w jezyku CUPL*******/ /* Wejscia */ Pin 1 = a; Pin 2 = b; /* Wyjscia */ Pin 19 = and; /* Logika */ and = a & b; /* bramka AND */ Wydruk pliku AND.SI Name Bramka AND; Partno AND01; Date 1/10/04; Company Uniwersytet Zielonogorski; Location None; Assembly None; Device G16V8; /*******Symulacja bramki AND*******/ /* Definicja kolejnosci, polaryzacji I wyjsc */ Order: a, %2, b, %6, and; /* Definicja wymuszen i oczekiwanych wartosci */ Vectors: $msg "-> Symulacja bramki AND <-"; $msg ""; $msg " a b a AND b"; $msg " - - -------"; 00 L 01 L 10 L 11 H 1X * X1 * 0X * X0 * XX X
DODATEK B Wydruk pliku M2NA1.PLD Name Multiplekser 2 na 1; Partno Multi01; Date 1/10/05; Company Uniwersytet Zielonogorski; Location None; Assembly None; Device G16V8; Mikrosystemy cyfrowe /******* Multiplekser 2 na 1*******/ /** Inputs **/ Pin [1..2] = [A0..1]; Pin [3..4] = [B0..1]; Pin 5 = S; /** Outputs **/ Pin [18,19]= [F0..1]; /** Logic Equations **/ FIELD AA = [A0..1]; FIELD BB = [B0..1]; FIELD FF = [F0..1]; FF = AA & S:0 # BB & S:1;
DODATEK C Wydruk pliku COMP1BIT.PLD Name Komparator_1_bitowy; Partno 001; Date 09/11/98; Company UZ; Assembly none; Location none; DEVICE P16H8; /** Wejscia **/ Pin 1=A; Pin 2=B; Pin 3=AGi; Pin 4=BGi; Pin 12=AGo; Pin 13=BGo; FIELD ins=[a,b,agi,bgi]; FIELD outs=[ago,bgo]; TABLE ins => outs { 'b'0000=>'b'00; 'b'0010=>'b'10; 'b'0001=>'b'01; 'b'0011=>'b'00; 'b'0100=>'b'01; 'b'0110=>'b'10; 'b'0101=>'b'01; 'b'0111=>'b'01; 'b'1000=>'b'10; 'b'1010=>'b'10; 'b'1001=>'b'01; 'b'1011=>'b'10; 'b'1100=>'b'00; 'b'1101=>'b'01; 'b'1110=>'b'10; 'b'1111=>'b'00; }
Wydruk pliku COMP4BIT.PLD Name Komparator_4_bitowy; Partno 001; Date 09/11/98; Company UZ; Assembly none; Location none; DEVICE P16H8; /** Wejscia **/ Pin [1..4]=[A3..0]; Pin [5..8]=[B3..0]; Pin 9 =AGi; Pin 11=BGi; /** Wyjscia **/ Pin [12..15]=[AGo0..3]; Pin [16..19]=[Bgo0..3]; FUNCTION C1B (A, B, AGi, BGi, AGo, BGo) { /* TUTAJ WPISAC ROWNANIA Z PLIKU COMP1BIT.DOC */ } C1B (A3, B3, AGi, BGi, AGo3, BGo3); C1B (A2, B2, AGo3, BGo3, AGo2, BGo2); C1B (A1, B1, AGo2, BGo2, AGo1, BGo1); C1B (A0, B0, AGo1, BGo1, AGo0, BGo0);