cw4_5.pdf

(119 KB) Pobierz
Ćwiczenie laboratoryjne 4_5
Celem tego ćwiczenia jest zaprojektowanie układu do konwersji liczby binarnej na liczbę BCD oraz
realizacja układu sumującego dwie liczby BCD.
Część 1
Z zagadnieniem przetwarzania kodu dwójkowego (BIN) na kod dwójkowo-dziesiętny i odwrotnie
mamy do czynienia przy wprowadzaniu i wyprowadzaniu informacji z urządzeń cyfrowych. Kod
wewnętrzny układów cyfrowych to kod dwójkowy, natomiast dla człowieka bardziej czytelnym jest
kod dziesiętny. Ponieważ istnieje wiele algorytmów konwersji BIN/BCD i BCD/BIN oraz
możliwości realizacji tych samych algorytmów różnymi układami temat ten jest realizowany
osobno.
Schemat funkcjonalny układu znajduje się na rys. 1. Zadaniem komparatora jest wykrycie czy
liczba V jest większa od 9. Układ A to układ korekcji, który do trzech młodszych bitów bitów (dla
liczb większych od 9) dodaje 110. Wynik dodawania pojawia się na wyjściu multiplekserów tylko
dla liczb większych od 9 (z=1). Układ B to układ sterowania wyświetlaczem 7-segmentowym.
Wyświetlacz d1 wyświetla liczbę dziesiątek. 7-segmentowy dekoder steruje wyświetlaczem d0,
który wyświetla jedności.
Należy zaprojektować układ do konwersji 4-bitowego numeru V=v3v2v1v0 na dwie cyfry
dziesiętne D=d1d0 zgodnie z tablicą 1.
Wartość binarna
Wartość dziesiętna
0 0 0 0
0 0
0 0 0 1
0 1
0 0 1 0
0 2
0 0 1 1
0 3
0 1 0 0
0 4
0 1 0 1
0 5
0 1 1 0
0 6
0 1 1 1
0 7
1 0 0 0
0 8
1 0 0 1
0 9
1 0 1 0
1 0
1 0 1 1
1 1
1 1 0 0
1 2
1 1 0 1
1 3
1 1 1 0
1 4
1 1 1 1
1 5
Tabela 1. Tabela konwersji BIN/BCD
896328690.179.png 896328690.190.png 896328690.201.png 896328690.212.png 896328690.001.png 896328690.012.png 896328690.022.png 896328690.033.png 896328690.044.png 896328690.055.png 896328690.066.png 896328690.077.png 896328690.088.png 896328690.099.png 896328690.110.png 896328690.121.png 896328690.132.png 896328690.143.png 896328690.144.png 896328690.145.png 896328690.146.png 896328690.147.png 896328690.148.png 896328690.149.png 896328690.150.png 896328690.151.png 896328690.152.png 896328690.153.png 896328690.154.png 896328690.155.png 896328690.156.png 896328690.157.png 896328690.158.png 896328690.159.png 896328690.160.png 896328690.161.png 896328690.162.png 896328690.163.png 896328690.164.png 896328690.165.png 896328690.166.png
 
0
Komparator
5
1
6
z
7
Układ B
4
2
3
v3
m3
0
0
1
0
v2
0
m2
5
1
1
6
7-segmentowy
dekoder
7
4
2
v1
0
m1
3
1
v0
0
m0
1
Układ A
Rysunek 1. Schemat funkcjonalny układu do konwersji liczby binarnej na liczbę BCD.
Wykonaj następujące czynności w celu zaimplementowania układu konwersji:
1. Stwórz nowy projekt w programie Quartus II. Z biblioteki układów wybierz układ Cyclone
II EP2C35F672C6.
2. Opisz w VHDL układ komparatora, układ multipleksera, dekoder 7-segmentowy, układ
sterowania wyświetlaczem B oraz układ korekcji A. Przełącznikami SW3-0 będzie
wprowadzany liczba binarna V. Wyświetlacze HEX1, HEX0 będą pokazywały odpowiednio
d1 i d0.
3. Podłącz wejścia i wyjścia do odpowiednich pinów układu.
4. Skompiluj projekt.
5. Zaprogramuj skompilowanym projektem układ FPGA. Sprawdź działanie układu,
przełączając przełączniki SW i obserwując wyświetlacze.
896328690.167.png 896328690.168.png 896328690.169.png 896328690.170.png 896328690.171.png 896328690.172.png 896328690.173.png 896328690.174.png 896328690.175.png 896328690.176.png 896328690.177.png 896328690.178.png 896328690.180.png 896328690.181.png 896328690.182.png 896328690.183.png 896328690.184.png 896328690.185.png 896328690.186.png 896328690.187.png 896328690.188.png 896328690.189.png 896328690.191.png 896328690.192.png 896328690.193.png 896328690.194.png 896328690.195.png 896328690.196.png 896328690.197.png 896328690.198.png 896328690.199.png 896328690.200.png 896328690.202.png 896328690.203.png 896328690.204.png 896328690.205.png 896328690.206.png 896328690.207.png 896328690.208.png 896328690.209.png 896328690.210.png 896328690.211.png 896328690.213.png 896328690.214.png 896328690.215.png 896328690.216.png 896328690.217.png 896328690.218.png 896328690.219.png 896328690.220.png 896328690.221.png 896328690.222.png 896328690.002.png 896328690.003.png 896328690.004.png 896328690.005.png 896328690.006.png 896328690.007.png 896328690.008.png 896328690.009.png 896328690.010.png 896328690.011.png 896328690.013.png 896328690.014.png 896328690.015.png 896328690.016.png 896328690.017.png 896328690.018.png 896328690.019.png 896328690.020.png 896328690.021.png
 
Część 2
Rysunek 2 przedstawia sumator pełny, jego symbol i tablicę prawdy sumatora. Sumator pozwala na
dodawanie liczb jednobitowych. W celu wykonania operacji dodawania na liczbach wielobitowych
zbudować należy sumator kaskadowy rysunek 3.
Ci
XOR
S
inst
A
XOR
B
inst1
21mux
A
Co
B
Y
S
MULTIPLEXER
inst2
A
B
Ci
S
Co
ass
0
0
0
0
0
Ci
cin
0
0
1
1
0
A
dataa[0]
A
S
result[0]
A+B
0
1
0
1
0
B
datab[0]
B
0
1
1
0
1
Co
cout
inst3
1
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
Rys.2. Sumator pełny jednobitowy-schemat, symbol, tablica prawdy.
A0
B3
A3
B2
A2
B1
A1
B0
Cin
Cout
S3
S2
S1
S0
Rys.3. Kaskadowy sumator czterobitowy.
896328690.023.png 896328690.024.png 896328690.025.png 896328690.026.png 896328690.027.png 896328690.028.png 896328690.029.png 896328690.030.png 896328690.031.png 896328690.032.png 896328690.034.png 896328690.035.png 896328690.036.png 896328690.037.png 896328690.038.png 896328690.039.png 896328690.040.png 896328690.041.png 896328690.042.png 896328690.043.png 896328690.045.png 896328690.046.png 896328690.047.png 896328690.048.png 896328690.049.png 896328690.050.png 896328690.051.png 896328690.052.png 896328690.053.png 896328690.054.png 896328690.056.png 896328690.057.png 896328690.058.png 896328690.059.png 896328690.060.png 896328690.061.png 896328690.062.png 896328690.063.png 896328690.064.png 896328690.065.png 896328690.067.png 896328690.068.png 896328690.069.png 896328690.070.png 896328690.071.png 896328690.072.png 896328690.073.png 896328690.074.png 896328690.075.png 896328690.076.png 896328690.078.png 896328690.079.png 896328690.080.png 896328690.081.png 896328690.082.png 896328690.083.png 896328690.084.png 896328690.085.png 896328690.086.png 896328690.087.png 896328690.089.png 896328690.090.png 896328690.091.png 896328690.092.png 896328690.093.png 896328690.094.png 896328690.095.png 896328690.096.png 896328690.097.png 896328690.098.png 896328690.100.png 896328690.101.png 896328690.102.png 896328690.103.png 896328690.104.png 896328690.105.png 896328690.106.png 896328690.107.png 896328690.108.png 896328690.109.png 896328690.111.png 896328690.112.png 896328690.113.png 896328690.114.png 896328690.115.png 896328690.116.png 896328690.117.png 896328690.118.png 896328690.119.png 896328690.120.png 896328690.122.png 896328690.123.png 896328690.124.png 896328690.125.png 896328690.126.png 896328690.127.png 896328690.128.png 896328690.129.png 896328690.130.png 896328690.131.png 896328690.133.png 896328690.134.png 896328690.135.png 896328690.136.png 896328690.137.png 896328690.138.png 896328690.139.png 896328690.140.png 896328690.141.png 896328690.142.png
Wykonaj następujące czynności w celu zaimplementowania układu sumatora:
1. Stwórz nowy projekt w programie Quartus II. Z biblioteki układów wybierz układ Cyclone
II EP2C35F672C6.
2. Opisz w VHDL układ sumatora czterobitowego wykorzystując jako komponent pełny
sumator jednobitowy. Przełącznikami SW7-4 oraz SW3-0 wprowadzamy odpowiednio
liczby A, B. SW8 podłączyć do wejścia przeniesienia cin. Przełączniki SW podłączyć do
diód LEDR, wyjścia układu podłączyć do diód LEDG.
3. Podłącz wejścia i wyjścia do odpowiednich pinów układu.
4. Skompiluj projekt.
5. Zaprogramuj skompilowanym projektem układ FPGA. Sprawdź działanie układu,
przełączając przełączniki SW i obserwując diody.
Część 3.
Zaprojektować układ sumujący dwie liczby dziesiętne dwucyfrowe A i B. Suma ma być
wyświetlana na trzech wyświetlaczach. Liczba A ma być wyświetlana na wyświetlaczach HEX7,
HEX6, liczba B powinna być wyświetlana na wyświetlaczach HEX5, HEX4. Wynik w postaci
dziesiętnej wyświetlić należy na wyświetlaczach HEX2,1,0. Do wprowadzania liczb wykorzystać
należy przełączniki SW. Liczby wprowadzamy w postaci liczb BCD.
Wykonaj następujące czynności w celu zaimplementowania układu sumatora:
1. Stwórz nowy projekt w programie Quartus II. Z biblioteki układów wybierz układ Cyclone
II EP2C35F672C6.
2. Opisz w VHDL układ sumatora dwóch liczb dwucyfrowych wykorzystując jako
komponenty pełny sumator jednobitowy. Przełącznikami SW17-8 oraz SW7-0
wprowadzamy odpowiednio liczby A, B. Liczba A ma być wyświetlana na wyświetlaczach
HEX7, HEX6, liczba B powinna być wyświetlana na wyświetlaczach HEX5, HEX4. Wynik
w postaci dziesiętnej wyświetlić należy na wyświetlaczach HEX2,1,0
3. Podłącz wejścia i wyjścia do odpowiednich pinów układu.
4. Skompiluj projekt.
5. Zaprogramuj skompilowanym projektem układ FPGA. Sprawdź działanie układu,
przełączając przełączniki SW i obserwując wyświetlacze.
Część 4.
Opisać sumator 2 liczb dwucyfrowych BCD zgodnie z poniższym algorytmem:
1. T 0 =A 0 +B 0
2. if (T 0 >9) then
3. Z 0 =10
4. C 1 =1
5. else
6. Z 0 =0
7. C 1 =0
8. end if
9. S 0 =T 0 - Z 0
10. T 1 =A 1 +B 1 +C 1
11. if (T 1 > 9)
12. Z 1 =10
13. C 2 =1
14. else
15. Z 1 =0
16. C 2 =0
17. end if
18. S 1 =T 1 – Z 1
19. S 2 = C 2
Powyższy algorytm pozwala zrealizować dodawanie stosując trzy rodzaje układów:
sumatory (linie 1, 9, 10, 18),
multipleksery (linie 2-8, linie 11-17)
komparatory (linie 2, 11).
Wykonaj następujące czynności w celu zaimplementowania układu sumatora:
1. Stwórz nowy projekt w programie Quartus II. Z biblioteki układów wybierz układ Cyclone
II EP2C35F672C6.
2. Opisz w VHDL układ sumatora dwóch liczb dwucyfrowych wykorzystując jako
komponenty pełny sumator jednobitowy. Przełącznikami SW17-8 oraz SW7-0
wprowadzamy odpowiednio liczby A, B. Liczba A ma być wyświetlana na wyświetlaczach
HEX7, HEX6, liczba B powinna być wyświetlana na wyświetlaczach HEX5, HEX4. Wynik
w postaci dziesiętnej wyświetlić należy na wyświetlaczach HEX2,1,0
3. Podłącz wejścia i wyjścia do odpowiednich pinów układu.
4. Skompiluj projekt.
5. Zaprogramuj skompilowanym projektem układ FPGA. Sprawdź działanie układu,
przełączając przełączniki SW i obserwując wyświetlacze.
Część 5.
Zaprojektować 8-bitowy sumator zgodnie ze schematem rys. 4. Układ musi być zaprojektowany dla
liczb ze znakiem w kodzie uzupełnieniowym do 2. Na wyjściu przeniesienia musi być 1 dla sumy
przekraczającej dozwolony zakres liczb powyżej górnej jak i dolnej granicy.
Zgłoś jeśli naruszono regulamin