Tuesday, May 31, 2011

HW: Scitacka

Povedzme si najprv, co na to wikipedia.

"Binárna sčítačka (alebo len sčítačka) je kombinačný logický obvod, realizujúci sčítanie čísel, reprezentovaných v binárnej číselnej sústave. Tvorí dôležitú súčasť aritmeticko-logickej jednotky (ALU) centrálneho procesora (CPU) počítačaV prípade použitia dvojkového doplnkového kódovania záporných čísel sa dá sčítačka veľmi jednoducho rozšíriť na sčítačku-odčítačku.
zdroj: wikipedia.sk


Takze, navrhujeme kombinacny logicky obvod, ktory dokaze scitat binarne cisla. Zacneme polovicnou scitackou, ktora scitava dva jednobitove scitance a vystupom je sucet a prenos do vyssieho radu. Rozdiel medzi polovicnou a uplnou scitackou je, ze polovicna prenos nedokaze spocitat prenos z predchadzajuceho radu, zatial co uplna dokaze. 


Polovicna scitacka (Half Adder)


IN: scitance a, b
OUT: vysledok s a prenos q




Pravdivostna tabulka
a    b  |  q    s
--------------------
0    0  |  0    0                      a odtialto vysledne rovnice
0    1  |  0    1                      s = a XOR 
1    0  |  0    1                      q = a.b
1    1  |  1    0






V tejto chvili by sme uz mali byt schopny navrhnut obvod pre polovicnu scitacku (c na obrazku je rovne q v rovnici)





Schematicka znacka polovicnej scitacky je dost intuitivna :) a najdete ju v obrazku pre uplnu scitacku, ktora vo svojej znacke nema zlomok 1/2. 




Uplna scitacka


Uplna scitacka dokaze spracovat prenos z nizsieho radu a lahko ju ziskame zlozenim dvoch polovicnych scitaciek. 






a   b   p  |  s  q
----------------------
0   0   0  |   0  0    
0   0   1  |   1  0
0   1   0  |   1  0
0   1   1  |   0  1
1   0   0  |   1  0
1   0   1  |   0  1
1   1   0  |   0  1
1   1   1  |   1  1


Rovnice v tomto pripade uz nie su take priamociare a mozme pouzit karnaughove mapy, aby sme ziskali minimalizovane verzie, hoci tolko uz dokazeme aj z tabulky :). Vysledok bude nasledujuci: 


s = a'b'p + a'bp' + ab'p' + abp = p(a'b' + ab) + p'(a'b + ab') = p + p'(a XOR b) = p XOR a XOR b
q = a'bp + ab'p + abp' + abp = ab(p + p') + p(a'b + ab') = ab + p(a XOR b)


Tu sa ukazuje, preco su mapy dobry napad ;) Ak pouzijeme mapy, tak vysledok pre q by mal byt ap + bp + ab = ab + p(a XOR b) ??? (tak toto si treba zistit). 


Pre nakres obvodu som si pozical pekny obrazok z wiki, kde su farebne oddelene jednotlive pol-scitacky. 






A je hotovo ;) 


http://www.copsu.cz/mikrop/didakticka_pomucka/cislicova_technika/komb_log_obvody/uplna_scitacka/uplna_scitacka.html
http://www.copsu.cz/mikrop/didakticka_pomucka/cislicova_technika/komb_log_obvody/polov_scitacka/polovicni_scitacka.html