Ripple Carry Adder: การทำงานประเภทและการใช้งาน

ลองใช้เครื่องมือของเราเพื่อกำจัดปัญหา





ใน อิเล็กทรอนิกส์ดิจิทัล การเพิ่มเลขฐานสองสองบิตสามารถทำได้โดยใช้ แอดเดอร์ครึ่งตัว . และถ้าลำดับการป้อนข้อมูลมีลำดับสามบิตกระบวนการเพิ่มจะเสร็จสมบูรณ์โดยใช้ adder แบบเต็ม แต่ถ้าจำนวนบิตมากขึ้นในลำดับการป้อนข้อมูลก็สามารถดำเนินการให้เสร็จสิ้นได้โดยใช้แอดเดอร์ครึ่งตัว เนื่องจาก adder เต็มไม่สามารถดำเนินการเพิ่มได้ ดังนั้นจึงสามารถเอาชนะข้อเสียเหล่านี้ได้โดยใช้“ Ripple Carry Adder” เป็นประเภทที่ไม่เหมือนใคร วงจรลอจิก ใช้สำหรับเพิ่มตัวเลข N-bit ในการทำงานแบบดิจิทัล บทความนี้อธิบายภาพรวมของ ripple-carry-adder และการทำงานของมัน

Ripple Carry Adder คืออะไร?

โครงสร้างของตัวเติมเต็มหลายตัวเรียงซ้อนกันเพื่อให้ผลลัพธ์ของการเพิ่มลำดับไบนารี n บิต แอดเดอร์นี้มีตัวเพิ่มแบบเรียงซ้อนในโครงสร้างดังนั้นการพกพาจะถูกสร้างขึ้นในทุกขั้นตอนของแอดเดอร์เต็มรูปแบบในวงจรแอดเดอร์แบบกระเพื่อม สิ่งเหล่านี้นำเอาท์พุทในแต่ละขั้นตอนของ adder เต็มจะถูกส่งต่อไปยัง adder เต็มรูปแบบถัดไปและนำไปใช้เป็นอินพุตดำเนินการ กระบวนการนี้จะดำเนินต่อไปจนถึงขั้นตอนสุดท้ายของ adder ดังนั้นแต่ละบิตที่นำส่งออกจะถูกกระเพื่อมไปยังขั้นตอนถัดไปของแอดเดอร์เต็ม ด้วยเหตุนี้จึงมีชื่อว่า“ RIPPLE CARRY ADDER” คุณสมบัติที่สำคัญที่สุดคือการเพิ่มลำดับบิตอินพุตไม่ว่าจะเป็นลำดับ 4 บิตหรือ 5 บิตหรืออย่างใดอย่างหนึ่ง




“ จุดสำคัญที่สุดอย่างหนึ่งที่ต้องพิจารณาในแอ๊ดพกพานี้คือผลลัพธ์สุดท้ายจะทราบหลังจากที่เอาต์พุตพกพาถูกสร้างขึ้นโดยแอดเดอร์เต็มแต่ละสเตจ ดังนั้นจะมีความล่าช้าในการรับผลลัพธ์ด้วยการใช้แอพพกพานี้”

มีหลายประเภทในตัวเติมแบบกระเพื่อม พวกเขาคือ:



  • 4-bit ripple-carry adder
  • 8-bit ripple-carry adder
  • 16-bit ripple-carry adder

อันดับแรกเราจะเริ่มต้นด้วย ripple-carry-adder 4 บิตจากนั้นจึงเพิ่ม ripple-carry 8 บิตและ 16 บิต

Ripple Carry Adder 4 บิต

แผนภาพด้านล่างแสดงถึง adder 4-bit ripple-carry ในแอดเดอร์นี้ตัวเติมเต็มสี่ตัวเชื่อมต่อกันในน้ำตก Co เป็นบิตอินพุตดำเนินการและเป็นศูนย์เสมอ เมื่ออินพุตนี้ดำเนินการ ‘Co’ ถูกนำไปใช้กับลำดับอินพุตสองลำดับ A1 A2 A3 A4 และ B1 B2 B3 B4 เอาต์พุตที่แสดงด้วย S1 S2 S3 S4 และเอาต์พุตจะมี C4


แผนภาพ RCA 4 บิต

การทำงานของ Ripple Carry Adder 4 บิต

  • ลองดูตัวอย่างของลำดับการป้อนข้อมูล 2 ลำดับ 0101 และ 1010 ซึ่งเป็นตัวแทนของ A4 A3 A2 A1 และ B4 B3 B2 B1
  • ตามแนวคิดของ adder นี้ input carry คือ 0
  • เมื่อใช้ Ao & Bo ที่ adder เต็มตัวที่ 1 พร้อมกับ input carry 0
  • ที่นี่ A1 = 1 B1 = 0 Cin = 0
  • Sum (S1) และ carry (C1) จะถูกสร้างขึ้นตามสมการ Sum และ Carry ของแอดเดอร์นี้ ตามทฤษฎีสมการผลลัพธ์ของ Sum = A1⊕B1⊕Cinและ Carry = A1B1⊕B1Cin⊕CinA1
  • ตามสมการนี้สำหรับแอดเดอร์เต็มตัวที่ 1 S1 = 1 และเอาท์พุท Carry นั่นคือ C1 = 0
  • เช่นเดียวกับบิตอินพุตถัดไป A2 และ B2 เอาต์พุต S2 = 1 และ C2 = 0 ที่นี่จุดสำคัญคือแอดเดอร์เต็มขั้นที่สองได้รับอินพุตดำเนินการเช่น C1 ซึ่งเป็นเอาท์พุตของแอดเดอร์เต็มระยะเริ่มต้น
  • เช่นนี้จะได้ลำดับเอาต์พุตสุดท้าย (S4 S3 S2 S1) = (1 1 1 1) และเอาต์พุตพกพา C4 = 0
  • นี่คือกระบวนการเพิ่มเติมสำหรับลำดับการป้อนข้อมูล 4 บิตเมื่อนำไปใช้กับแอดเดอร์พกพานี้

8-bit Ripple Carry Adder

  • ประกอบด้วยส่วนเติมเต็ม 8 ตัวซึ่งเชื่อมต่อกันในรูปแบบเรียงซ้อน
  • เอาท์พุตพกพาของแอดเดอร์เต็มแต่ละตัวจะเชื่อมต่อเป็นอินพุตนำไปยังแอดเดอร์เต็มขั้นตอนถัดไป
  • ลำดับอินพุตแสดงโดย (A1 A2 A3 A4 A5 A6 A7 A8) และ (B1 B2 B3 B4 B5 B6 B7 B8) และลำดับเอาต์พุตที่เกี่ยวข้องจะแสดงโดย (S1 S2 S3 S4 S5 S6 S7 S8)
  • กระบวนการเพิ่มเติมใน ripple-carry-adder 8 บิตเป็นหลักการเดียวกันกับที่ใช้ใน ripple-carry-adder 4 บิตนั่นคือแต่ละบิตจากลำดับอินพุตสองลำดับจะถูกเพิ่มพร้อมกับการป้อนข้อมูล
  • สิ่งนี้จะใช้เมื่อเพิ่มลำดับเลขฐานสอง 8 บิตสองตัว
8bit-ripple-carry-adder

8bit-ripple-carry-adder

Ripple Carry Adder 16 บิต

  • ประกอบด้วยตัวเติมเต็ม 16 ตัวซึ่งเชื่อมต่อกันในรูปแบบเรียงซ้อน
  • เอาท์พุตพกพาของแอดเดอร์เต็มแต่ละตัวจะเชื่อมต่อเป็นอินพุตนำไปยังแอดเดอร์เต็มขั้นตอนถัดไป
  • ลำดับอินพุตแสดงโดย (A1 … .. A16) และ (B1 …… B16) และลำดับเอาต์พุตที่เกี่ยวข้องแสดงด้วย (S1 …… .. S16)
  • กระบวนการเพิ่มเติมใน ripple-carry-adder 16 บิตเป็นหลักการเดียวกันกับที่ใช้ใน ripple-carry adder 4 บิตนั่นคือแต่ละบิตจากลำดับอินพุตสองลำดับจะเพิ่มพร้อมกับ input carry
  • สิ่งนี้จะใช้เมื่อเพิ่มลำดับเลขฐานสอง 16 บิตสองตัว
16-bit-ripple-carry-adder

16-bit-ripple-carry-adder

Ripple Carry Adder ตารางความจริง

ตารางความจริงด้านล่างแสดงค่าเอาต์พุตสำหรับการรวมกันที่เป็นไปได้ของอินพุตทั้งหมดสำหรับ ripple-carry-adder

A1 A2 A3 A4 B4 B3 B2 B1 S4 S3 S2 S1

พก

0

000000000000
010001001000

0

1

000100000001
101010100100

1

110011001000

1

111011101100

1

111111111110

1

Ripple Carry Adder รหัส VHDL

VHDL (VHSIC HDL) เป็นภาษาอธิบายฮาร์ดแวร์ เป็นภาษาการออกแบบดิจิทัล โค้ด VHDL สำหรับแอดเดอร์พกพานี้แสดงไว้ด้านล่าง

ไลบรารี IEEE
ใช้ IEEE.STD_LOGIC_1164.ALL

เอนทิตี Ripplecarryadder คือ
พอร์ต (A: ใน STD_LOGIC_VECTOR (3 ถึง 0)
B: ใน STD_LOGIC_VECTOR (3 ถึง 0)
Cin: ใน STD_LOGIC
S: ออก STD_LOGIC_VECTOR (3 ถึง 0)
Cout: ออก STD_LOGIC)
สิ้นสุด Ripplecarryadder

สถาปัตยกรรม Behavioral of Ripplecarryadder คือ - การประกาศส่วนประกอบของโค้ด Adder VHDL แบบเต็ม
ส่วนประกอบ full_adder_vhdl_code
พอร์ต (A: ใน STD_LOGIC
B: ใน STD_LOGIC
Cin: ใน STD_LOGIC
S: ออก STD_LOGIC
Cout: ออก STD_LOGIC)
องค์ประกอบท้าย

- ใบแจ้งการดำเนินการขั้นกลาง
สัญญาณ c1, c2, c3: STD_LOGIC

เริ่ม

- Port Mapping Full Adder 4 ครั้ง
FA1: แผนที่พอร์ต full_adder_vhdl_code (A (0), B (0), Cin, S (0), c1)
FA2: แผนที่พอร์ต full_adder_vhdl_code (A (1), B (1), c1, S (1), c2)
FA3: แผนที่พอร์ต full_adder_vhdl_code (A (2), B (2), c2, S (2), c3)
FA4: แผนที่พอร์ต full_adder_vhdl_code (A (3), B (3), c3, S (3), Cout)

สิ้นสุดพฤติกรรม

Ripple Carry Adder Verilog Code

รหัส Verilog เป็นภาษาอธิบายฮาร์ดแวร์ ใช้ในวงจรดิจิทัลในขั้นตอน RTL เพื่อวัตถุประสงค์ในการออกแบบและตรวจสอบ โค้ด verilog สำหรับ carry adder นี้แสดงอยู่ด้านล่าง

โมดูล ripple_carry_adder (a, b, cin, sum, cout)
อินพุต [03: 0] ก
อินพุต [03: 0] ข
อินพุต cin
เอาท์พุท [03: 0] ผลรวม
เอาท์พุท cout
ลวด [2: 0] ค
เต็มเพิ่ม a1 (a [0], b [0], cin, sum [0], c [0])
เต็มเพิ่ม a2 (a [1], b [1], c [0], ผลรวม [1], c [1])
เต็มเพิ่ม a3 (a [2], b [2], c [1], ผลรวม [2], c [2])
เต็มเพิ่ม a4 (a [3], b [3], c [2], ผลรวม [3], cout)
endmodule
โมดูล fulladd (A, B, CIN รวม, ศาล)
ป้อน a, b, cin
ผลรวมเอาท์พุท cout
กำหนด sum = (a ^ b ^ cin)
กำหนด cout = ((a & b) | (b & cin) | (a & cin))

แอปพลิเคชั่น Ripple Carry Adder

แอปพลิเคชั่น ripple-carry-adder มีดังต่อไปนี้

  • ส่วนเติมพกพาเหล่านี้ส่วนใหญ่จะใช้นอกเหนือจากลำดับอินพุต n-bit
  • ตัวเพิ่มพกพาเหล่านี้ใช้ได้ในการประมวลผลสัญญาณดิจิตอลและ ไมโครโปรเซสเซอร์ .

ข้อดีของ Ripple Carry Adder

ข้อดีของ ripple-carry-adder มีดังต่อไปนี้

  • Carry Adder นี้มีข้อได้เปรียบเช่นเราสามารถดำเนินการเพิ่มเติมสำหรับลำดับ n-bit เพื่อให้ได้ผลลัพธ์ที่แม่นยำ
  • การออกแบบแอดเดอร์นี้ไม่ใช่กระบวนการที่ซับซ้อน

Ripple พก adder เป็นอีกทางเลือกหนึ่งสำหรับเมื่อแอดเดอร์ครึ่งตัวและแอดเดอร์เต็มไม่ดำเนินการเพิ่มเมื่อลำดับบิตอินพุตมีขนาดใหญ่ แต่ที่นี่จะให้เอาต์พุตสำหรับลำดับบิตอินพุตใด ๆ ที่มีการหน่วงเวลา ตามวงจรดิจิทัลหากวงจรให้เอาต์พุตที่มีการหน่วงเวลาจะไม่เป็นที่ต้องการ สิ่งนี้สามารถเอาชนะได้โดยวงจรแอดเดอร์พกพามองไปข้างหน้า