uc lab4

Sumator 2-bitowy

library IEEE;

use IEEE.std_logic_1164.all;

entity ha is

port (a, b : in std_logic;

sum : out std_logic;

carry : out std_logic);

end ha;

architecture structure of ha is

begin

sum <= a xor b;

carry <= a and b;

end structure;

library IEEE;

use IEEE.std_logic_1164.all;

entity fa is

port(a, b, ci : in std_logic;

sum : out std_logic;

co : out std_logic);

end fa;

architecture structure of fa is

begin

sum <= (a xor b) xor ci;

carry <= (a and b) or ((a xor b) and ci);

end structure;

library IEEE;

use IEEE.std_logic_1164.all;

use IEEE.std_logic_unsigned.all;

entity sum_3 is

port (A : in std_logic_vector(1 downto 0); -- wejscie 1

B : in std_logic_vector(1 downto 0); -- wejscie 2

Q : out std_logic_vector(2 downto 0)); -- wyjscie (suma)

end sum_3;

architecture sum_3_a of sum_3 is

component ha is

port (a, b : in std_logic; -- wejscia

sum : out std_logic; -- suma

carry : out std_logic); -- przeniesienie

end component;

component fa is

port(a, b, ci : in std_logic; -- wejscia

sum : out std_logic; -- suma

co : out std_logic); -- przeniesienie

end component;

signal cc : std_logic;

begin

blok1: ha port map (a=>A(0), b=>B(0), sum=>Q(0), carry=>cc);

blok2: fa port map (a=>A(1), b=>B(1), ci=>cc, sum=>Q(1), co=>Q(2));

end sum_3_a;

Sumator 2-bitowy

Sumator 1-bitowy (z przeniesieniem)

Tabela prawdy

Sumator – (Full Adder) jest w stosunku do półsumatora poszerzony o dodatkowe wejście (C-in przeniesienie z poprzedniego układu) z poprzedniego sumatora lub półsumatora.

Wyrażenia opisujące sumę I przeniesienie:

Subtraktor 2-bitowy

library IEEE;

use IEEE.std_logic_1164.all;

entity ha is

port (a, b : in std_logic;

sub : out std_logic; -- odejmowanie

p : out std_logic); -- pozyczka

end ha;

architecture structure of ha is

begin

sub <= a xor b;

p <= (not a) and b;

end structure;

library IEEE;

use IEEE.std_logic_1164.all;

entity fa is

port(a, b, wp : in std_logic; -- wp – wczesniejsza pozyczka

sub : out std_logic; -- odejmowanie

p : out std_logic); -- pozyczka

end fa;

architecture structure of fa is

begin

sub <= (a xor b) xor wp;

p <= ((not a) and b) or (((not a) xor b) and wp);

end structure;

library IEEE;

use IEEE.std_logic_1164.all;

use IEEE.std_logic_unsigned.all;

entity sub_3 is

port (A : in std_logic_vector(1 downto 0); -- wejscie 1

B : in std_logic_vector(1 downto 0); -- wejscie 2

Q : out std_logic_vector(2 downto 0)); -- wyjscie (suma)

end sub_3;

architecture sub_3_a of sub_3 is

component ha is

port(a, b : in std_logic; -- wejscia

sub : out std_logic; -- roznica

p : out std_logic); -- pozyczka

end component;

component fa is

port(a, b, wp : in std_logic; -- wejscia

sub : out std_logic; -- roznica

p : out std_logic); -- pozyczka

end component;

signal cc : std_logic;

begin

blok1: ha port map (a=>A(0), b=>(not B(0)), sub=>Q(0), p=>cc);

blok2: fa port map (a=>A(1), b=>(not B(1)), wp=>cc, sub=>Q(1), p=>Q(2));

end sub_3_a;

Polsumator

library IEEE;

use IEEE.std_logic_1164.all;

entity psum is

port(A0, B0 : in std_logic;

S0, C1 : out std_logic);

end psum;

architecture structure of psum is

begin

S0 <= A0 xor B0;

C1 <= A0 and B0;

end structure;

Półsumator jest uproszczoną wersją sumatora jednobitowego, służy do dodawania dwóch liczb jednobitowych. Układ nie posiada wejścia przeniesienia z poprzedniej pozycji.

Wyrażenie opisujące półsumator:

Kod U1

W kodzie U1 uzupełniamy wartość bezwzględną liczby ujemnej do 1, tzn. w naturalnym zapisie dwójkowym zamieniamy zera na jedynki, a jedynki na zera (dla liczb ujemnych).

Uzupełnienie do 1 powstaje przez zanegowanie wszystkich bitów liczby wyjściowej:

P = 1011100ZM = 0100011U1

Kod U2

Uzupełnienie do 2 powstaje przez dodanie 1 do liczby U1:

P = 1011100ZM = 0100011U1=0100100U2

1. Podstawowe właściwości układu 74181

Jednostka aytmetyczno-logiczna UCY 74181 jako uniwersalny element elektroniki cyfrowej może spełniać funkcje komparatora, sumatora oraz dziewiętnaście innych funkcji logicznych, jak i kilkanaście funkcji arytmetycznych.

Układ UCY 74181 ma czternaście wejść:

Osiem wejść informacyjnych A'3 - A'0 i B'3 - B'0

cztery wejścia selekcyjne S3 - S0

wejście sterujące M

wejście przeniesienia/ pożyczki - C0

Oraz osiem wyjść:

cztery wyjścia funkcyjne F'3 - F'0

wyjście komparatora A=B

wyjście przeniesienia - C4

dwa wyjścia pomocnicze P' i G'

Pojedynczy układ może realizować funkcje dla słów 4-ro bitowych jednak łącząc kolejne układy UCY 74181 można realizować funkcje na dłuższych słowach.

2. Różnice między sumą logiczną a arytmetyczną

Operacje logiczne są operacjami działającymi na poszczególnych bitach, dzięki czemu można je całkowicie opisać przedstawiając jak oddziałują ze sobą dwa bity.

Suma logiczna jest funkcją dwuargumentową, tzn. jej wynik Y zależy od stanu dwóch argumentów A i B. Wynik przyjmuje stan 1, jeśli dowolny z argumentów ma również stan 1. Stan 0 występuje na wyjściu tylko wtedy, gdy wszystkie argumenty mają również stan 0.

Ogólnie chodzi o to, że w przypadku sumy logicznej ważne jest ustawienie jedynki na wyjściu, podczas gdy dla operacji sumy arytmetycznej ważny jest wynik sumowania dwóch wartości.

Wyniki w przypadku sumy logicznej i arytmetycznej mogą się różnić:

suma logiczna suma arytmetyczna

1 0 1 1 0 0 1 0 0
+ 0 0 1 1 0 1 0 1 1
1 0 1 0 1 0 1 1 1 1
1 0 1 1 0 0 1 0 0
+ 0 0 1 1 0 1 0 1 1
1 0 1 1 0 1 1 1 1

3. Algorytm operacji mnożenia

Wszystko jest dokładnie tak samo jak w przypadku liczb dziesiętnych

4. Sposoby realizacji układów mnożących

Do wykonania operacji mnożenia dwóch liczb binarnych wykorzystuje się multiplikator – na rys. multiplikator 2-bitowych słów

Wikipedia podaje takie sposoby: (ogólnie bardziej chodzi w tym sposobach o analogowe układy mnożące)

1. Na dwóch generatorach funkcji kwadratowej

2. Na trzech wzmacniaczach logarytmicznych według wzoru:

3. Na modulatorze 

4. Na tranzystorowym układzie mnożącym, będącym precyzyjnym mieszaczem iloczynowym.

5. Właściwości kodu Gray’a

Kod Graya, zwany również kodem refleksyjnym, jest dwójkowym kodem bezwagowym niepozycyjnym, który charakteryzuje się tym, że dwa kolejne słowa kodowe różnią się tylko stanem jednego bitu. Jest również kodem cyklicznym, bowiem ostatni i pierwszy wyraz tego kodu także spełniają w/w zasadę.

Kod dziesiętny naturalny Kod dziesiętny refleksyjny Kod dwójkowy naturalny Kod dwójkowy refleksyjny
0 0 0 0
1 1 1 1
2 2 10 11
3 3 11 10
4 4 100 110
5 5 101 111
6 6 110 101
7 7 111 100
8 8 1000 1100
9 9 1001 1101
10 19 1010 1111
11 18 1011 1110
12 17 1100 1010
13 16 1101 1011
14 15 1110 1001
15 14 1111 1000
16 13 10000 11000
17 12 10001 11001
18 11 10010 11011
19 10 10011 11010
20 20 10100 11110
21 21 10101 11111

Konwerter kodu 8421 na kod Gray’a

Konwerter kodu Gray’a na kod 8421

7. Budowa i zasada działania sumatora dziesiętnego BCD

Układ górny 7483 jest sumatorem dwu liczb binarnych (liczby A3 A2 A1 A0 i liczby B3 B2 B1 B0) oraz przeniesienia C0. Trzy bramki NAND oraz element zaprzeczenia tworzą układ podający na wyjście C (przeniesienie) jedynkę logiczną, gdy suma liczb A3 A2 A1 A0, B3 B2 B1 B0 i przeniesienia C0 jest większa, niż 9.

Dolny układ 7483 jest sumatorem korygującym wynik. Jeśli C=0, to do wyniku podawanego z sumatora górnego do sumatora dolnego jest dodawana liczba binarna 0000 i wynik nie ulega zmianie. Jeśli C=1, wtedy następuje korekcja wyniku: do powstałego w sumatorze

górnym wyniku dodawana jest w sumatorze dolnym liczba 0110 (=6d); na wyjściu sumatora dolnego (przewody S3 S2 S1 S0) mamy wynik skorygowany.


Wyszukiwarka

Podobne podstrony:
RAK P UC
Lab4
UC W2
Lab4
lab4 8
czy uC zaczyna pracę wraz z załączeniem zasilania czy potrzebny jest sygnał wyzwalający, Pierdoły, j
Systemy Operacyjne lab4, Politechnika Wrocławska, Systemy Operacyjne
[4]tabelka, Elektrotechnika AGH, Semestr II letni 2012-2013, Fizyka II - Laboratorium, laborki, labo
lab4 opr
Lab4
lab4 wejściówka
SI LAB4
SI2 lab4 raport
pkm lab4
lab4 przetwSygnCzest a
i9g1s1 wozniak lab4 sd
L4 - pytania, Studia, Wytrzymałość materiałów II, lab4 wm2 studek
lab4 Kwerendy, bazy danych

więcej podobnych podstron