4 binární sčítačka - post. přenos příznaku přetečení v praxi

Ahoj,

prosím prosím o pomoc, mám ze čtyř FullAdderů vytvořenou sčítačku pro sčítání dvou 4-bitových čísel A a B, které jsou realiozovány 4+4 binárními vstupy. Sčítačka využívá postupného přenosu příznaku přetečení od nejnižšího řádu čísla v binárním tvaru k nejvyššímu.

A teď bych potřebovala poradit, jak zformulovat, proč se nepoužívá v praxi postupný přenos příznaku přetečení…?

:arrow_right: administrator: přejmenováno z "4 binární sčítačka"

podla mna to bude tym ze by sa pocas vypoctu menilo cislo na logickom vystupe… ce je niekedy neziaduce

kvůli tomu přetečení, že?
já s tím teprve začínám, tak proto takové otázky…

můžu se ještě zeptat pro ujasnění…
dvoubitová sčítačka, když to vezmeme přes “ruční” sčítání tak to je

např

0111
+0011

a čtyřbitová

110
+011
111
011
??? znamená to počet sloupcu, které počítám? a 4+4-1bitová sčítačka by vypadala?? jsem z toho zmatená :frowning:

U 2b sčítačky se sčítají dvoubitové operandy, tedy např. 10b+11b=01b + C.
Pro 4b jsou čtyřbitové, tedy: 0110b+0010b=1000b.

Úplná jednobitové sčítačka počítá 2 vstupní bity + C, celkem tedy 3 vstupy.
Problém je, že průchod signálu hradlem trvá určitou dobu. pro ilustraci počítejme 1us. Když budeš počítat předchozí příklad 0110b+0010b, bude situace následující:
čas T=0: všechny 1b sčítačky sečtou vstupní operandy a C z nižšího bitu. Předpokládejme, že všechny C jsou v čase 0 rovny nule. Sčítačka nultého bitu má výsledek 0+0+0=0, výsledek bitu 1 je 1+1+0=0+Carry, bit 2: 1+0+0=1, b3: 0+0+0=0. Přenos signálu na výstup sčítačky trvá 1us, tento výsledek je tedy na výstupu v čase T=1us a je roven 0100.

T=1us: všechny 1b sčítačky sečtou vstupní operandy a C z nižšího bitu.
vstupy A a B zůstávají, ale nyní se vyskytly změny na C (příznak přenosu).
výsledek bitu 0 zůstává 0+0+0=0, b1: 1+1+0=0+C. Na bitu 2 je změna - již se tam projeví výsledek výpočtu b1 z času T=0: 1+0+1=0+C. b3:0+0+0=0 zůstává(C z b2 se projeví až v dalším časovém okamžiku).
Výsledek v T=2us je tedy 0000.

T=2us: b0: 0+0+0=0, b1=1+1+0=0+C, b2=1+0+C=0+C.
b3: nyní se projeví změna C bitu2 z minuleho časového okamžiku. 0+0+C=1. Výpočet bude na výstupu opět o 1us později. Tedy v T=3us je výsledek 1000 - správný.

Ovšem než se došlo ke správnému výsledku, byl na výstupu v různých okamžicích různý špatný výsledek. Doba, která je nutná pro získání správného výsledku přirozeně roste s počtem sčítaných bitů.

proč se nepoužívá v praxi postupný přenos příznaku přetečení…?

rozumim li otazce dobre, tak jde o seriove razeni prenosu.
je to pomale, kazdy dalsi stupen musi cekat na ustaleni predchoziho.
v praxi se prenos generuje ve zvlastnich obvodech, ktere pracuji paralelne, tedy ve stejnem case jako samotna scitacka.
netusim, zda se dnes postupny prenos pouziva, s vyjimkou aplikace historickych integrovanych obvodu nebo jejioch emulace napr. v XILINX nebo Lattice obvodech.
Snad muj koment neni mimo tvuj zajem.

Často si při implementaci lze vybrat optimalizaci na množství zdrojů/rychlost. Pokud šetříš hradla, bude to ta obyčejná postupná lemra. Záleží, co potřebuješ.

pravda, vzdycky je to kompromis mezi rychlosti a cenou,
nebo take jednoduchosti navrhu, kde nemusim pocitat a hlidat zadne vyznamne zpozdeni vypoctu prenosu