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.

Podobne dokumenty