In digitale electronica het toevoegen van binaire getallen van twee bits is mogelijk met halve opteller En als de invoerreeks een reeks van drie bits heeft, kan het optelproces worden voltooid door een volledige opteller te gebruiken. Maar als het aantal bits groter is in de invoervolgorde, kan het proces worden voltooid door een halve opteller te gebruiken. Omdat volledige opteller de optelbewerking niet kan voltooien. Deze nadelen kunnen dus worden ondervangen door 'Ripple Carry Adder' te gebruiken. Het is een uniek type logisch circuit gebruikt voor het optellen van de N-bit getallen bij digitale bewerkingen. Dit artikel beschrijft een overzicht van wat ripple-carry-adder is en hoe het werkt.
Wat is Ripple Carry Adder?
Een structuur van meerdere volledige optellers wordt in cascade geschakeld op een manier die de resultaten geeft van de toevoeging van een n bit binaire reeks. Deze opteller bevat gecascadeerde volledige optellers in zijn structuur, dus de carry wordt gegenereerd bij elke volledige optelfase in een rimpel-carry-optelcircuit. Deze carry-uitvoer bij elke volledige optelfase wordt doorgestuurd naar de volgende volledige opteller en daar als carry-invoer daarop toegepast. Dit proces gaat door tot de laatste volledige optelfase. Dus elk carry-uitvoerbit wordt gerimpeld naar de volgende fase van een volledige opteller. Om deze reden wordt het genoemd als 'RIPPLE CARRY ADDER'. Het belangrijkste kenmerk ervan is om de invoerbitreeksen toe te voegen, ongeacht of de reeks 4 bit of 5 bit of iets anders is.
“Een van de belangrijkste punten waarmee in deze carry-opteller rekening moet worden gehouden, is dat de uiteindelijke uitvoer pas bekend is nadat de carry-uitgangen zijn gegenereerd door elke volledige opteltrap en doorgestuurd naar de volgende stap. Er zal dus een vertraging zijn om het resultaat te krijgen bij het gebruik van deze carry-opteller ”.
Er zijn verschillende soorten ripple-carry-adders. Zij zijn:
- 4-bit rimpel-carry-opteller
- 8-bit rimpel-carry-opteller
- 16-bit rimpel-carry-opteller
Eerst beginnen we met 4-bit rimpel-carry-adder en vervolgens 8 bit en 16-bit rimpel-carry-adders.
4-bit Ripple Carry Adder
Het onderstaande diagram geeft de 4-bits rimpel-carry-opteller weer. In deze opteller zijn vier volledige optellers in cascade geschakeld. Co is het carry-invoerbit en is altijd nul. Wanneer deze input carry ‘Co’ wordt toegepast op de twee input sequenties A1 A2 A3 A4 en B1 B2 B3 B4, dan wordt output weergegeven met S1 S2 S3 S4 en output draagt C4.
4-bits RCA-diagram
Werking van 4-bit Ripple Carry Adder
- Laten we een voorbeeld nemen van twee invoerreeksen 0101 en 1010. Deze vertegenwoordigen de A4 A3 A2 A1 en B4 B3 B2 B1.
- Volgens dit optelconcept is invoeroverdracht 0.
- Wanneer Ao & Bo worden toegepast op de 1e volledige opteller samen met invoer, draagt 0.
- Hier A1 = 1 B1 = 0 Cin = 0
- Sum (S1) en carry (C1) worden gegenereerd volgens de Sum en Carry-vergelijkingen van deze opteller. Volgens de theorie is de outputvergelijking voor de Sum = A1⊕B1⊕Cin en Carry = A1B1⊕B1Cin⊕CinA1
- Volgens deze vergelijking, voor de 1e volledige opteller S1 = 1 en uitvoeruitvoer, d.w.z. C1 = 0.
- Hetzelfde als voor de volgende invoerbits A2 en B2, uitvoer S2 = 1 en C2 = 0. Hier is het belangrijke punt dat de volledige opteller van de tweede trap een invoeroverdracht krijgt, d.w.z. C1, de uitvoeroverdracht van de volledige opteller van de eerste stap.
- Op deze manier krijgt u de laatste uitvoersequentie (S4 S3 S2 S1) = (1 1 1 1) en de uitvoer draagt C4 = 0
- Dit is het optelproces voor 4-bits invoerreeksen wanneer het wordt toegepast op deze carry-opteller.
8-bit Ripple Carry Adder
- Het bestaat uit 8 volledige adders die in cascade-vorm zijn aangesloten.
- Elke volledige opteller-uitvoer is verbonden als een invoer-overdracht naar de volgende fase volledige opteller.
- De invoersequenties worden aangegeven met (A1 A2 A3 A4 A5 A6 A7 A8) en (B1 B2 B3 B4 B5 B6 B7 B8) en de relevante uitvoersequentie wordt aangegeven met (S1 S2 S3 S4 S5 S6 S7 S8).
- Het optelproces in een 8-bit rimpel-carry-opteller is hetzelfde principe dat wordt gebruikt in een 4-bit rimpel-carry-opteller, d.w.z. elk bit van twee inputsequenties wordt samen met input-carry toegevoegd.
- Dit wordt gebruikt bij het toevoegen van twee 8-bits binaire cijfers.
8bit-rimpel-carry-opteller
16-bit Ripple Carry Adder
- Het bestaat uit 16 volledige adders die in cascade-vorm zijn aangesloten.
- Elke volledige opteller-uitvoer is verbonden als een invoer-overdracht naar de volgende fase volledige opteller.
- De invoersequenties worden aangegeven met (Al… .. A16) en (B1 …… B16) en de relevante uitvoervolgorde wordt aangegeven met (S1 …… .. S16).
- Het optelproces in een 16-bit rimpel-carry-opteller is hetzelfde principe dat wordt gebruikt in een 4-bit rimpel-carry-opteller, d.w.z. dat elk bit van twee inputsequenties samen met input-carry wordt opgeteld.
- Dit wordt gebruikt bij het toevoegen van twee 16 bit binaire cijfers.
16-bit-rimpel-carry-opteller
Ripple Carry Adder Truth Table
Onderstaande waarheidstabel toont de outputwaarden voor de mogelijke combinaties van alle inputs voor rimpel-carry-opteller.
A1 | A2 | A3 | A4 | B4 | B3 | B2 | B1 | S4 | S3 | S2 | S1 | Draag |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 |
1 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 1 |
1 | 1 | 1 | 0 | 1 | 1 | 1 | 0 | 1 | 1 | 0 | 0 | 1 |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 |
Ripple Carry Adder VHDL-code
VHDL (VHSIC HDL) is de taal voor hardwarebeschrijvingen. Het is een digitale ontwerptaal. De VHDL-code voor deze carry-opteller wordt hieronder weergegeven.
bibliotheek IEEE
gebruik IEEE.STD_LOGIC_1164.ALL
entiteit Ripplecarryadder is
Poort (A: in STD_LOGIC_VECTOR (3 tot 0)
B: in STD_LOGIC_VECTOR (3 tot 0)
Cin: in STD_LOGIC
S: uit STD_LOGIC_VECTOR (3 tot 0)
Cout: uit STD_LOGIC)
einde Ripplecarryadder
architecture Gedrag van Ripplecarryadder is - Full Adder VHDL Code Component Declaration
component full_adder_vhdl_code
Poort (A: in STD_LOGIC
B: in STD_LOGIC
Cin: in STD_LOGIC
S: uit STD_LOGIC
Cout: uit STD_LOGIC)
eindcomponent
- Intermediate Carry-aangifte
Signaal c1, c2, c3: STD_LOGIC
beginnen
- Port Mapping Full Adder 4 keer
FA1: full_adder_vhdl_code poortkaart (A (0), B (0), Cin, S (0), c1)
FA2: full_adder_vhdl_code poortkaart (A (1), B (1), c1, S (1), c2)
FA3: full_adder_vhdl_code poortkaart (A (2), B (2), c2, S (2), c3)
FA4: full_adder_vhdl_code poortkaart (A (3), B (3), c3, S (3), Cout)
einde Gedrag
Ripple Carry Adder Verilog-code
Verilog-code is een hardware-beschrijvingstaal. Het wordt gebruikt in digitale circuits in het RTL-stadium voor ontwerp- en verificatiedoeleinden. De verilog-code voor deze carry-opteller wordt hieronder weergegeven.
module ripple_carry_adder (a, b, cin, sum, cout)
ingang [03: 0] a
invoer [03: 0] b
input cin
output [03: 0] som
output cout
draad [2: 0] c
fulladd a1 (a [0], b [0], cin, som [0], c [0])
fulladd a2 (a [1], b [1], c [0], som [1], c [1])
fulladd a3 (a [2], b [2], c [1], som [2], c [2])
fulladd a4 (a [3], b [3], c [2], som [3], cout)
eindmodule
fulladd module (a, b, CIN, sum, cout)
voer a, b, cin in
output som, cout
wijs sum = (a ^ b ^ cin)
toewijzen cout = ((a & b) | (b & cin) | (a & cin))
Ripple Carry Adder-applicaties
De toepassingen voor rimpel-carry-adder omvatten de volgende.
- Deze carry-adders worden meestal gebruikt naast n-bit-invoersequenties.
- Deze carry-adders zijn toepasbaar in de digitale signaalverwerking en microprocessoren
Voordelen van Ripple Carry Adder
De voordelen van rimpel-carry-adder omvatten de volgende.
- Deze carry-opteller heeft het voordeel dat we een optelproces kunnen uitvoeren voor n-bit-reeksen om nauwkeurige resultaten te krijgen.
- Het ontwerpen van deze adder is geen complex proces.
Ripple carry adder is een alternatief voor wanneer halve optellers en volledige optellers de optelbewerking niet uitvoeren wanneer de invoerbitreeksen groot zijn. Maar hier geeft het de uitvoer met enige vertraging, ongeacht de invoerbitsequenties. Zoals bij de digitale circuits, heeft het niet de voorkeur als het circuit een output met vertraging geeft. Dit kan worden ondervangen door een carry-look-ahead-optelschakeling.