OBSAH WEBU
ČTĚTE!
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
temata:02-kombinacni_obvody:main [2013/02/02 15:55] marho [Binární sčítačka] |
temata:02-kombinacni_obvody:main [2013/02/03 12:39] (aktuální) marho [Binární sčítačka] |
||
---|---|---|---|
Řádek 129: | Řádek 129: | ||
<box round blue 90%> | <box round blue 90%> | ||
**Popis**\\ | **Popis**\\ | ||
- | Princip je sčítání jednotlivých bitů na stejných pozicích spolu s přenosem, pokud dojde k sečtení dvou jedniček. \\ | + | Princip je sčítání jednotlivých bitů na stejných pozicích spolu s přenosem, který vzniká pokud dojde k sečtení dvou jedniček. \\ |
\\ | \\ | ||
</box> | </box> | ||
Řádek 136: | Řádek 136: | ||
<box round blue 90%> | <box round blue 90%> | ||
- | Taková, která neuvažuje přenos (carry) z nižšího řádu (pro sčítání nejnižších bitů) | + | Taková, která __neuvažuje přenos__ (carry) z nižšího řádu (pro sčítání nejnižších bitů) |
<m>S_0 = \overline{A_0}B_0 + A_0\overline{B_0} = A_0 ⊕ B_0</m> | <m>S_0 = \overline{A_0}B_0 + A_0\overline{B_0} = A_0 ⊕ B_0</m> | ||
Řádek 151: | Řádek 151: | ||
<box round blue 90%> | <box round blue 90%> | ||
- | Oproti poloviční sčítačce bereme přenos z nižšího řádu | + | Oproti poloviční sčítačce __uvažujeme přenos__ z nižšího řádu |
{{:temata:02-kombinacni_obvody:scitacka1.jpg?200}} | {{:temata:02-kombinacni_obvody:scitacka1.jpg?200}} | ||
Řádek 157: | Řádek 157: | ||
{{:temata:02-kombinacni_obvody:scitacka2.jpg?300}} | {{:temata:02-kombinacni_obvody:scitacka2.jpg?300}} | ||
- | **Úplnou sčítačku je také možné vytvořit pomocí neúplných** | + | **Úplnou sčítačku je také možné vytvořit pomocí polovičních** |
{{:temata:02-kombinacni_obvody:02-uplna-scitacka.png?300}} | {{:temata:02-kombinacni_obvody:02-uplna-scitacka.png?300}} | ||
Řádek 163: | Řádek 163: | ||
</box> | </box> | ||
- | === Sériová sčítačka === | + | === Vícebitová sčítačka === |
+ | |||
+ | == Sériová sčítačka == | ||
<box round blue 90%> | <box round blue 90%> | ||
- | {{:temata:02-kombinacni_obvody:serscitacka.jpg?300}}\\ | + | Pomocí __jedné sčítačky__, D klopného obvodu a pomocných registrů víme vypočítat součet dvou __libovolně dlouhých__ binárních čísel. Jedná se o synchronní sčítačku s taktem <m>T_c</m>. Do KO D se ukládá mezivýsledek (hodnota carry). |
- | \\ | + | |
- | Jedná se o synchronní sčítačku s taktem <m>T_c</m>. Do KO D se ukládá mezivýsledek. | + | {{:temata:02-kombinacni_obvody:serscitacka.jpg?300}} |
</box> | </box> | ||
- | === Paralelní sčítačka === | + | == Sčítačka s postupným šířením přenosu == |
<box round blue 90%> | <box round blue 90%> | ||
+ | |||
+ | * Je tvořena zřetězení několik jednobitových úplných sčítačiek. | ||
+ | * __Pseudo-paralerní__ (Carry musí procházet přes všechny stupně sčítačky) | ||
+ | * Cenově výhodné řešení | ||
+ | * Pomalé - Zpoždění jednoho logického členu je <m>\Delta</m> => zpoždění jedné sčítačky <m>2\Delta</m>, pro n bitů je doba zpoždění <m>2n\Delta</m>. -> Pro 32, 64 bitové čísla je lepší CLA (Carry Look - Ahead). | ||
{{:temata:02-kombinacni_obvody:parscitacka.jpg?300}} | {{:temata:02-kombinacni_obvody:parscitacka.jpg?300}} | ||
- | Zpoždění jednoho logického členu je <m>\Delta</m> => zpoždění jedné sčítačky <m>2\Delta</m>, pro n bitů je doba zpoždění <m>2n\Delta</m>.\\ | ||
- | Pro 32, 64 bitové čísla nevýhodné, lepší CLA (Carry Look - Ahead). | ||
</box> | </box> | ||
- | === CLA === | + | == Paralelní sčítačka - CLA (Carry Look Ahead) == |
<box round blue 90%> | <box round blue 90%> | ||
+ | |||
+ | * Přenos se negeneruje postupně ale __paralelně__. | ||
+ | * Tyto obvody se označují jako sčítačky se __zrychleným přenosem__. | ||
+ | * Dokáže __sečíst__ dvě binární čísla v __logaritmickém čase__. | ||
{{:temata:02-kombinacni_obvody:cla.jpg?400}} | {{:temata:02-kombinacni_obvody:cla.jpg?400}} | ||
Řádek 246: | Řádek 256: | ||
| Přeskakování přenosu | O(<m>\sqrt{n}</m>) | O(<m>n</m>) | | | Přeskakování přenosu | O(<m>\sqrt{n}</m>) | O(<m>n</m>) | | ||
| Výběr přenosu | O(<m>\sqrt{n}</m>) | O(<m>n</m>) | | | Výběr přenosu | O(<m>\sqrt{n}</m>) | O(<m>n</m>) | | ||
+ | |||
+ | |||
+ | === Detekce přetečení (Overflow) === | ||
+ | |||
+ | <box round blue 90%> | ||
+ | |||
+ | * Přetečení je detekováno když je __součet__ obou čísel v absolutní hodnotě __větší__, než maximální hodnota kterou __je možné uložit__ do výsledku. Př. Když na 8 bitech sečteme 200 a 200, na 8 bitů sa uloží pouze výsledek 144. Proto je nutné brát v potaz i bit vzniklý přetečením. | ||
+ | * Předpokládáme, že čísla jsou reprezentována ve __dvojkovém doplňku__. | ||
+ | * Závisí na hodnotách najvyšších bitov oboch sčítancov, na nejvyšším bite výsledku a na hodnotě přenosu. | ||
+ | |||
+ | {{:temata:02-kombinacni_obvody:02-preteceni.png?350}} | ||
+ | |||
+ | <m>OV = \overline{A_3 ⊕ B_3} . (C_4 ⊕ S_3)</m> | ||
+ | |||
+ | </box> | ||
===== Odkazy ===== | ===== Odkazy ===== |