Or you want a quick look: Phép cộng nhị phân
Một mạch logic tổ hợp phổ biến và rất hữu ích khác có thể được xây dựng chỉ bằng một vài cổng logic cơ bản cho phép nó cộng hai hoặc nhiều số nhị phân với nhau là Binary Adder .
Một mạch Binary Adder cơ bản có thể được tạo ra từ các cổng AND và Ex-OR tiêu chuẩn cho phép chúng ta “cộng” hai số nhị phân bit đơn A và B lại với nhau .
Việc cộng hai chữ số này tạo ra một đầu ra được gọi là SUM của phép cộng và đầu ra thứ hai được gọi là bit CARRY hoặc Carry-out , (C OUT ) theo quy tắc cộng nhị phân. Một trong những ứng dụng chính của Binary Adder là trong các mạch số học và đếm. Hãy xem xét phép cộng đơn giản của hai số bậc ba (cơ số 10) dưới đây.
123 | A | |
+ 789 | B | (Addend) |
912 | TỔNG |
Từ các bài học toán ở trường, chúng tôi đã học được rằng mỗi cột số được cộng lại với nhau bắt đầu từ phía bên tay phải và mỗi chữ số có giá trị có trọng số tùy thuộc vào vị trí của nó trong các cột.
Khi mỗi cột được cộng lại với nhau, một giá trị mang được tạo ra nếu kết quả lớn hơn hoặc bằng 10, là số cơ sở. Số mang này sau đó được thêm vào kết quả của phép cộng cột tiếp theo bên trái, v.v., phép cộng của toán học đơn giản, thêm các số và mang.
Việc cộng các số nhị phân giống hệt như cách cộng các số thập phân với nhau nhưng lần này một giá trị mang chỉ được tạo ra khi kết quả trong bất kỳ cột nào lớn hơn hoặc bằng “2”, số nhị phân cơ sở. Nói cách khác, 1 + 1 tạo ra một gánh nặng.
Phép cộng nhị phân
Phép cộng nhị phân tuân theo các quy tắc cơ bản tương tự như đối với phép cộng bậc ba ở trên ngoại trừ trong hệ nhị phân chỉ có hai chữ số với chữ số lớn nhất là “1”. Vì vậy, khi thêm số nhị phân, một số thực hiện được tạo ra khi “SUM” bằng hoặc lớn hơn hai (1 + 1) và điều này trở thành bit “CARRY” cho bất kỳ phép cộng tiếp theo nào được chuyển sang cột tiếp theo để cộng và như vậy trên. Hãy xem xét việc bổ sung bit đơn bên dưới.
Phép cộng nhị phân của hai bit
1 | 1 | ||
+ 0 | + 1 | + 0 | + 1 |
1 | 1 | (mang) 1 ← 0 |
Khi hai bit đơn, A và B được thêm vào với nhau, việc thêm “0 + 0”, “0 + 1” và “1 + 0” dẫn đến “0” hoặc “1” cho đến khi bạn nhận được cột cuối cùng của “1 + 1” thì tổng bằng “2”. Tuy nhiên, số hai không tồn tại trong hệ nhị phân, số 2 trong hệ nhị phân bằng 10 , hay nói cách khác là số 0 cho tổng cộng với một bit mang thêm.
Sau đó, hoạt động của một bộ cộng đơn giản yêu cầu hai đầu vào dữ liệu tạo ra hai đầu ra, Tổng (S) của phương trình và một bit Carry (C) như được hiển thị.
Sơ đồ khối Bộ cộng nhị phân
Đối với vấn đề cộng 1 bit đơn giản ở trên, bit mang kết quả có thể bị bỏ qua nhưng bạn có thể nhận thấy điều gì đó khác liên quan đến việc cộng hai bit này, tổng của phép cộng nhị phân của chúng tương tự như của Cổng độc quyền HOẶC . Nếu chúng ta gắn nhãn hai bit là A và B thì bảng sự thật kết quả là tổng của hai bit nhưng không có giá trị cuối cùng.
Cổng Ex-OR 2 đầu vào
Biểu tượng | Bảng thực trị | ||
Cổng Ex-OR 2 đầu vào | B | A | S |
1 | 1 | ||
1 | 1 | ||
1 | 1 |
Chúng ta có thể thấy từ bảng sự thật ở trên, rằng cổng Exclusive-OR chỉ tạo ra đầu ra “1” khi một trong hai đầu vào ở mức logic “1”, nhưng không giống như đối với phép cộng nhị phân của hai bit trước đó. Tuy nhiên, để thực hiện phép cộng hai số, bộ vi xử lý và máy tính điện tử yêu cầu thêm bit mang để tính toán chính xác các phương trình, vì vậy chúng ta cần viết lại tổng kết trước đó để bao gồm hai bit dữ liệu đầu ra như hình dưới đây.
00 | 00 | 01 | 01 |
+ 00 | + 01 | + 00 | + 01 |
00 | 01 | 01 | 10 |
Từ các phương trình trên, bây giờ chúng ta biết rằng cổng Exclusive-OR sẽ chỉ tạo ra đầu ra “1” khi đầu vào “EITHER” ở mức logic “1”, vì vậy chúng ta cần một đầu ra bổ sung để tạo ra bit mang khi đầu vào “CẢ HAI” A và B ở mức logic “1”. Một cổng kỹ thuật số phù hợp với hóa đơn hoàn toàn tạo ra đầu ra “1” khi cả hai đầu vào A và B của nó là “1” (CAO) là Cổng AND tiêu chuẩn .
Cổng AND 2 đầu vào
Biểu tượng | Bảng thực trị | ||
Cổng AND 2 đầu vào | B | A | C |
1 | |||
1 | |||
1 | 1 | 1 |
Bằng cách kết hợp cổng Exclusive-OR với cổng AND dẫn đến một mạch cộng nhị phân kỹ thuật số đơn giản thường được gọi là mạch ” Cộng bán phần “.
Mạch cộng bán phần
Bộ cộng bán phần là một mạch logic thực hiện phép cộng trên hai chữ số nhị phân. Bộ cộng bán phần tạo ra một tổng và một giá trị mang cả hai chữ số nhị phân.
Bảng thực trị của Mạch cộng bán phần
Biểu tượng | Bảng sự thật | |||
B | A | TỔNG | MANG | |
1 | 1 | |||
1 | 1 | |||
1 | 1 | 1 |
Từ bảng sự thật của bộ cộng bán phần, chúng ta có thể thấy rằng đầu ra SUM ( S ) là kết quả của cổng Exclusive-OR và cổng Carry-out ( Cout ) là kết quả của cổng AND . Sau đó, biểu thức Boolean cho bộ cộng bán phần như sau.
Đối với bit SUM :
SUM = A XOR B = A ⊕ B
Đối với bit CARRY :
CARRY = A VÀ B = AB
Một nhược điểm lớn của mạch Half Adder khi được sử dụng như một bộ cộng nhị phân, đó là không có quy định cho “Phần bổ sung” từ mạch trước khi cộng nhiều bit dữ liệu với nhau.
Ví dụ: giả sử chúng ta muốn cộng hai byte dữ liệu 8 bit lại với nhau, bất kỳ bit mang nào kết quả sẽ cần có khả năng “gợn sóng” hoặc di chuyển trên các mẫu bit bắt đầu từ bit ít quan trọng nhất (LSB). Hoạt động phức tạp nhất mà bộ cộng bán phần có thể thực hiện là “1 + 1” nhưng vì bộ cộng bán phần không có đầu vào thực hiện nên giá trị gia tăng kết quả sẽ không chính xác. Một cách đơn giản để khắc phục vấn đề này là sử dụng mạch bộ cộng nhị phân loại Full Adder .
Mạch cộng toàn phần
Sự khác biệt chính giữa Full Adder và Half Adder trước đó là một bộ cộng đầy đủ có ba đầu vào. Hai đầu vào dữ liệu bit đơn A và B giống như trước đây cộng với một đầu vào Thêm vào ( C-in ) để nhận dữ liệu mang từ giai đoạn trước như được hiển thị bên dưới.
Sơ đồ khối bộ cộng đầy đủ
Sau đó, bộ cộng đầy đủ là một mạch logic thực hiện phép toán cộng trên ba chữ số nhị phân và giống như bộ cộng nửa, nó cũng tạo ra một phép cộng cho cột cộng tiếp theo. Khi đó, Giá trị mang theo là một khoản mang có thể có từ một chữ số ít quan trọng hơn, trong khi Giá trị mang ra biểu thị một khoản mang đến một chữ số có ý nghĩa hơn.
Theo nhiều cách, bộ cộng đầy đủ có thể được coi là hai bộ cộng nửa được kết nối với nhau, với bộ cộng nửa đầu chuyển mang nó đến bộ cộng nửa thứ hai như được minh họa.
Sơ đồ logic đầy đủ của bộ cộng
Vì mạch bộ cộng đầy đủ ở trên về cơ bản là hai bộ cộng nửa được kết nối với nhau, bảng chân trị cho bộ cộng đầy đủ bao gồm một cột bổ sung để tính đến đầu vào Thực hiện , C IN cũng như đầu ra tổng hợp, S và Giá trị mang ra , C OUT bit.
Bảng thực trị của bộ cộng đầy đủ
Biểu tượng | Bảng thực trị | ||||
C-in | B | A | Tổng | C-out | |
1 | 1 | ||||
1 | 1 | ||||
1 | 1 | 1 | |||
1 | 1 | ||||
1 | 1 | 1 | |||
1 | 1 | 1 | |||
1 | 1 | 1 | 1 | 1 |
Sau đó, biểu thức Boolean cho một bộ cộng đầy đủ như sau.
Đối với bit SUM ( S ):
SUM = (A XOR B) XOR Cin = (A ⊕ B) ⊕ Cin
Đối với bit CARRY-OUT ( Cout ):
CARRY-OUT = A VÀ B HOẶC Cin (A XOR B) = AB + Cin (A ⊕ B)
Bộ cộng nhị phân n-bit
Chúng ta đã thấy ở trên rằng các bộ cộng nhị phân 1 bit đơn lẻ có thể được xây dựng từ các cổng logic cơ bản. Nhưng điều gì sẽ xảy ra nếu chúng ta muốn cộng hai số n bit với nhau, thì n số bộ cộng đầy đủ 1 bit cần được kết nối hoặc “xếp tầng” với nhau để tạo ra thứ được gọi là Ripple Carry Adder .
“Bộ cộng mang theo gợn” chỉ đơn giản là “ n ”, các bộ cộng đầy đủ 1 bit được xếp cùng với mỗi bộ cộng đầy đủ đại diện cho một cột có trọng số duy nhất trong một phép cộng nhị phân dài. Nó được gọi là bộ cộng mang gợn sóng vì tín hiệu mang tạo ra hiệu ứng “gợn sóng” thông qua bộ cộng nhị phân từ phải sang trái, (LSB đến MSB).
Ví dụ: giả sử chúng ta muốn “cộng” hai số 4 bit với nhau, hai đầu ra của bộ cộng đầy đủ đầu tiên sẽ cung cấp tổng chữ số ở vị trí đầu tiên ( S ) của phép cộng cộng với một bit thực hiện hoạt động như bằng chữ số của bộ cộng nhị phân tiếp theo.
Bộ cộng nhị phân thứ hai trong chuỗi cũng tạo ra kết quả tổng hợp (bit thứ 2) cộng với một bit thực hiện khác và chúng ta có thể tiếp tục thêm nhiều bộ cộng đầy đủ hơn vào tổ hợp để thêm các số lớn hơn, liên kết đầu ra bit mang từ bộ cộng nhị phân đầy đủ đầu tiên đến trình bổ sung đầy đủ tiếp theo, v.v. Dưới đây là một ví dụ về bộ cộng 4 bit.
Bộ cộng Ripple Carry 4 bit
Một nhược điểm chính của việc “xếp tầng” cùng nhau các bộ cộng nhị phân 1 bit để thêm các số nhị phân lớn là nếu đầu vào A và B thay đổi, tổng ở đầu ra của nó sẽ không hợp lệ cho đến khi bất kỳ đầu vào mang nào “gợn sóng” qua mọi bộ cộng đầy đủ trong chuỗi vì MSB (bit quan trọng nhất) của tổng phải đợi bất kỳ thay đổi nào từ đầu vào mang của LSB (bit ít quan trọng hơn). Do đó, sẽ có một độ trễ hữu hạn trước khi đầu ra của bộ cộng phản ứng với bất kỳ thay đổi nào trong các đầu vào của nó dẫn đến độ trễ tích lũy.
Khi kích thước của các bit được thêm vào không quá lớn, chẳng hạn như 4 hoặc 8 bit, hoặc tốc độ tổng của bộ cộng là không quan trọng, thì độ trễ này có thể không quan trọng. Tuy nhiên, khi kích thước của các bit lớn hơn, ví dụ 32 hoặc 64 bit được sử dụng trong bộ cộng nhiều bit, hoặc tính tổng được yêu cầu ở tốc độ đồng hồ rất cao, độ trễ này có thể trở nên quá lớn với các quá trình cộng không được hoàn thành chính xác trong một chu kỳ đồng hồ.
Thời gian trễ không mong muốn này được gọi là độ trễ lan truyền . Ngoài ra, một vấn đề khác được gọi là “tràn” xảy ra khi bộ cộng n-bit thêm hai số song song với nhau có tổng lớn hơn hoặc bằng 2 n
Một giải pháp là tạo ra tín hiệu đầu vào mang trực tiếp từ đầu vào A và B thay vì sử dụng cách sắp xếp gợn sóng ở trên. Sau đó, điều này tạo ra một loại mạch cộng nhị phân khác được gọi là bộ cộng nhị phân Carry Look Ahead , trong đó tốc độ của bộ cộng song song có thể được cải thiện đáng kể bằng cách sử dụng logic thực hiện.
Ưu điểm của bộ cộng mang nhìn trước là khoảng thời gian mà bộ cộng nhìn trước cần để tạo ra SUM chính xác là độc lập với số bit dữ liệu được sử dụng trong hoạt động, không giống như thời gian chu kỳ mà bộ cộng gợn song song cần để hoàn thành SUM là một hàm của tổng số bit trong addend.
Các mạch bộ cộng 4 bit đầy đủ với các tính năng nhìn trước có sẵn dưới dạng gói IC tiêu chuẩn ở dạng bộ cộng nhị phân TTL 4 bit 74LS83 hoặc 74LS283 và CMOS 4008 có thể cộng hai số nhị phân 4 bit với nhau và tạo ra SUM và đầu ra CARRY như được hiển thị.
Biểu tượng logic 74LS83
Tóm tắt về bộ cộng nhị phân
Chúng ta đã thấy trong hướng dẫn này về Bộ cộng nhị phân mà các mạch bộ cộng có thể được sử dụng để “cộng” hai số nhị phân với nhau tạo ra “hiệu suất”. Ở dạng cơ bản nhất, bộ cộng có thể được tạo ra từ việc kết nối với nhau cổng Exclusive-OR với cổng AND để tạo ra mạch Half Adder . Hai bộ cộng nửa có thể được kết hợp để tạo ra một bộ cộng đầy đủ .
Có một số IC cộng đầy đủ 4 bit có sẵn như 74LS283 và CD4008. sẽ thêm hai số nhị phân 4 bit và cung cấp thêm một bit mang đầu vào, cũng như một bit mang đầu ra, vì vậy bạn có thể ghép chúng lại với nhau để tạo ra các bộ cộng 8 bit, 12 bit, 16 bit, nhưng truyền tải sự chậm trễ có thể là một vấn đề lớn trong các bộ cộng gợn sóng n-bit lớn.