Układy cyfrowe - Uniwersytet Zielonogórski
Transkrypt
Układy cyfrowe - Uniwersytet Zielonogórski
Układy cyfrowe - laboratorium przygotował: dr inż. Piotr Miczulski 4. PROJEKTOWANIE UKŁADÓW KOMBINACYJNYCH NA PRZYKŁADZIE SUMATORÓW CEL ĆWICZENIA Celem laboratorium są ćwiczenia z zakresu projektowania układów kombinacyjnych na przykładzie sumatorów. PRZYGOTOWANIE DO ZAJĘĆ Sumowanie liczb w systemie binarnym. ZADANIE 1 Celem zadania jest zaprojektowanie jednobitowego sumatora uwzględniającego przeniesienie początkowe i końcowe. Sumator powinien zostać zaprojektowany w postaci niezależnego bloku logicznego, z wykorzystaniem elementów domyślnej biblioteki (bramki AND, OR oraz XOR). Interfejs układu powinny tworzyć następujące wejścia: A i B – sumowane liczby, CIN – przeniesienie początkowe oraz wyjścia: S – suma i COUT – przeniesienie końcowe. Otwarcie istniejącej grupy projektów 1. Otwórz grupę projektów z poprzedniego laboratorium. Dodanie nowego projektu do istniejącej grupy projektów 2. Wzorując się na jednej z wcześniejszych instrukcji dodaj do grupy projektów nowy, pusty projekt o nazwie Lab_UC04. Zaprojektowanie bloku logicznego jednobitowego sumatora 3. Utwórz nowy plik schematu i nazwij go Sumator1B_Test. Schemat ten posłuży do przetestowania działania zaprojektowanego sumatora. 4. Narysuj symbol (Rysunek 1) definicji bloku logicznego, wybierając przycisk skrótu F lub opcję Fub z paska narzędzi. Alternatywnie, kliknij prawym przyciskiem myszy na schemat i wybierz opcję Fub. Symbol nazwij Sumator1B. 5. Prawym przyciskiem myszy naciśnij na symbol sumatora i wybierz opcję Edit. A Cin B Sumator 1-bitowy Cout S Rysunek 1. Symbol sumatora jednobitowego Układy cyfrowe - laboratorium przygotował: dr inż. Piotr Miczulski 6. Zdefiniuj interfejs wejść sumatora: A, B, CIN. W tym celu zaznacz w oknie Add New Pins (po prawej stronie schematu, Rysunek 2) element In i umieść go w obszarze symbolu układu. Rysunek 2. Okno z listą dostępnych wyprowadzeń układu 7. Zdefiniuj interfejs wyjść sumatora: S, COUT. W tym celu zaznacz w oknie Add New Pins element Out i umieść go w obszarze symbolu układu. 8. Przypisz nazwy poszczególnym wejściom oraz wyjściom. W tym celu kliknij prawym przyciskiem myszy na wstawionym wyprowadzeniu układu i wybierz polecenie Properties. W oknie dialogowym Pin Properties, wpisz w polu Name nazwę wyprowadzenia. 9. Wróć do modułu głównego, klikając poza obszar projektowanego modułu. 10. Wyznacz funkcje wyjść sumatora: S i COUT. 11. Prawym przyciskiem myszy naciśnij na symbol sumatora i wybierz opcję Push. 12. Jako typ pliku wybierz schemat (Block Diagram). 13. Utwórz schemat układu realizującego funkcję sumatora i nazwij go Sumator1B. Testy zaprojektowanego sumatora jednobitowego 14. Skompiluj plik zawierający moduł Sumator1B. 15. Wróć do modułu nadrzędnego Sumator1B_Test, wybierając opcję Hierarchy Pop z menu Design lub wybierając odpowiedni przycisk z paska narzędzi. Dodaj porty wejściowe: A, B, Cin i połącz z odpowiednimi wejściami układu Sumator1B (Rysunek 3). Następnie dodaj porty wyjściowe S, Cout, także łącząc je odpowiednimi wyjściami modułu Sumator1B. A B U1 B A Cin C in C o ut Cout S Sumator1B S Rysunek 3. Model sumatora jednobitowego 16. Skompiluj plik zawierający moduł Sumator1B_Test. 17. Przetestuj zaprojektowany układ w środowisku Active-HDL. Sprawdź, czy otrzymane wyniki odpowiadają oczekiwanym rezultatom. W przypadku uzyskania niepoprawnych danych, zmodyfikuj strukturę modułu Sumator1B. 18. Jeżeli testy zostały zakończone pomyślnie, dokonaj konwersji definicji bloku logicznego na symbol układu. W tym celu naciśnij prawym przyciskiem myszy na symbol sumatora i wybierz opcję Convert Fub to Symbol. Układy cyfrowe - laboratorium przygotował: dr inż. Piotr Miczulski ZADANIE 2 Zaprojektuj czterobitowy sumator wykorzystując w tym celu zaprojektowany wcześniej jednobitowy sumator Sumator1B. Interfejs układu tworzą wejścia: A i B – sumowane liczby czterobitowe, CIN – przeniesienie początkowe oraz wyjścia: S – czterobitowy wynik sumy i COUT – przeniesienie końcowe. Utworzenie nowego schematu i symbolu definicji sumatora 19. Utwórz nowy plik schematu i nazwij go Sumator4B_Test. Schemat ten posłuży do przetestowania działania zaprojektowanego sumatora czterobitowego. 20. Narysuj na utworzonym schemacie symbol definicji (Fub) czterobitowego sumatora i nazwij go Sumator4B. Zdefiniowanie wyprowadzeń układu 21. Kliknij prawym przyciskiem myszy nad obszarem definicji symbolu i wybierz polecenie Edit. Otwarte zostanie okno definiowania nóżek układu. 22. Zdefiniuj port wejściowy typu magistrala dla czterobitowej liczby A. W tym celu zaznacz w oknie Add New Pins (Rysunek 4) element Bus In i umieść go w obszarze symbolu układu. Rysunek 4. Okno z listą dostępnych nóżek układu 23. Kliknij prawym przyciskiem myszy na wstawionym wyprowadzeniu układu i wybierz polecenie Properties. W oknie dialogowym Pin Properties, wpisz w polu Name nazwę wyprowadzenia, czyli A. 24. Następnie zdefiniuj w polu Range rozmiar magistrali. Ponieważ liczba A jest czterobitowa, to zdefiniuj zakres o długości trzech bitów, od 3 do 0 (Rysunek 5). Rysunek 5. Okno właściwości wybranego wyprowadzenia układu Układy cyfrowe - laboratorium przygotował: dr inż. Piotr Miczulski 25. W analogiczny sposób zdefiniuj wyprowadzenie układu dla liczby B. 26. Zdefiniuj standardowe wyprowadzenia dla wejścia (In) CIN oraz dla wyjścia (Out) COUT. 27. Dla wyjścia S (czterobitowy wynik sumy liczb A i B) zdefiniuj wyprowadzenie typu Bus Out i określ zakres magistrali od 3 do 0. 28. Zapisz definicję interfejsu układu. Schemat układu czterobitowego sumatora 29. Utwórz schemat układu realizującego funkcję sumatora (Rysunek 6) i nazwij go Sumator4B. A0 Cin (C0) B0 A1 C1 Sumator 1-bitowy S0 B1 A2 C2 Sumator 1-bitowy B2 A3 C3 Sumator 1-bitowy Cout Sumator 1-bitowy S2 S1 B3 S3 Rysunek 6. Schemat sumatora czterobitowego 30. Łącząc kaskadowo jednobitowe sumatory Sumator1B możemy otrzymać sumator czterobitowy. W tym celu umieść na schemacie Sumator4B, cztery instancje sumatora jednobitowego (Rysunek 7). Symbol sumatora Sumator1B znajduje się w oknie Symbols Toolbox, w liście symboli dla Lab_UC04 (nazwa aktualnego projektu). 31. Połącz port wejściowy CIN z wejściem CIN sumatora U1. Następnie połącz kolejno wyjście COUT sumatora U1, z wejściem CIN sumatora U2, wyjście COUT sumatora U2 z wejściem CIN sumatora U3 oraz wyjście COUT sumatora U3 z wejściem CIN sumatora U4. Na koniec połącz przewodem wyjście COUT sumatora U4 z portem wyjściowym COUT. 32. Wybierz narzędzie do rysowania magistral (polecenie Bus z menu Diagram, przycisk na pasku narzędzi Diagram Items – VHDL, lub klawisz B). Narysuj po lewej stronie sumatorów pionową magistralę i podłącz do niej port wejściowy A. Następnie w analogiczny sposób narysuj obok drugą magistralę i podłącz do niej port wejściowy B. 33. Wybierz narzędzie do rysowania przewodów (np. klawisz W). Połącz przewodem magistralę, podłączoną do portu A, z wejściem A sumatora U1. Aby zdefiniować, który sygnał z czterobitowej magistrali zostanie przekazany na wejście A sumatora, kliknij prawym przyciskiem myszy na narysowanym przewodzie i wybierz polecenie Properties. W oknie dialogowym Wire Properties wpisz polu Segment wartość A(0) i naciśnij przycisk OK. Oznacza to, że na wejście A sumatora U1 zostanie podana wartość najmniej znaczącego bitu liczby A. A(3:0) A(0) A(1) B(3:0) B(0) U1 Sumator1B S(1) Cout C out S Sumator1B S(0) Cin S S S Sumator1B Cout B Cin A Cout B(3) U4 B Cin B(2) A Cout A(3) U3 B A Cin B(1) U2 B A C in A(2) Sumator1B S(2) S(3) S(3:0) Rysunek 7. Implementacja sumatora czterobitowego Układy cyfrowe - laboratorium przygotował: dr inż. Piotr Miczulski 34. Następnie podłącz pozostałe bity liczby A do sumatorów U2, U3 i U4. 35. W analogiczny sposób podłącz do wejść B jednobitowych sumatorów, odpowiednie bity liczby B. 36. Narysuj magistralę po prawej stronie wstawionych sumatorów i podłącz do niej magistralą port wyjściowy S. 37. Następnie połącz przewodem narysowaną magistralę z wyjściami S sumatorów oraz zdefiniuj dla każdego wyjścia, numer odpowiadającego mu bitu liczby S. Testy zaprojektowanego sumatora czterobitowego 38. Wyjdź do modułu nadrzędnego Sumator4B_Test. 39. Podłącz do każdego wyprowadzenia zaprojektowanego sumatora (Rysunek 8) odpowiedni rodzaj portu wejściowego i wyjściowego (porty podłączone do A i B powinny być portem wejściowym typu magistrala: Bus In, a do wyprowadzenia S należy podłączyć port wyjściowy typu Bus Out). U1 A(3:0) A (3 :0 ) B(3:0) B (3 :0 ) S (3 :0 ) C o ut Cin S(3:0) Output0 C in Sumator4B Rysunek 8. Model sumatora czterobitowego 40. Skompiluj układy i ustaw schemat Sumator4B_Test jako nadrzędny schemat symulacji. 41. Otwórz edytor przebiegów czasowych i wstaw do okna sygnałów, sygnały A, B, CIN, S i COUT. 42. Zarówno dla czterobitowych sygnałów wejściowych A oraz B, jak i dla wejścia Cout przypisz wartość Random. 43. Przetestuj zaprojektowany układ i sprawdź, czy otrzymane wyniki odpowiadają oczekiwanym rezultatom. 44. Jeżeli testy zostały zakończone pomyślnie, to przekonwertuj definicję bloku logicznego do postaci symbolu. LISTA OMÓWIONYCH ZAGADNIEŃ 45. Realizacja 1-bitowego i 4-bitowego sumatora. 46. Zastosowanie magistral do grupowania sygnałów.