Trình rút gọn đại số Boolean

Dùng A, B, C... làm biến. Toán tử: & (AND), | (OR), ! (NOT), ^ (XOR), ( )

Với một biểu thức Boolean — A·B + A·¬B + ¬A·B hoặc bảng chân trị có minterms — trình rút gọn này trả về dạng sum-of-products tối thiểu bằng thuật toán Quine-McCluskey, kèm trực quan Karnaugh map cho tối đa sáu biến. Nó hiển thị mọi bước (prime implicants, essential prime implicants, bảng phủ), nên hữu ích không chỉ cho bài tập mà cả khi audit lựa chọn của minimiser bên trong công cụ synthesis.

Quá trình rút gọn Boolean chạy như thế nào

  1. 1

    Nhập biểu thức hoặc minterms

    Dùng toán tử · (AND), + (OR), ' hoặc ¬ (NOT), ⊕ (XOR). Hoặc dán chỉ số minterm như m(0,1,3,7).

  2. 2

    Bảng chân trị được tạo

    Mọi phép gán biến được đánh giá và output của hàm được đưa vào bảng.

  3. 3

    Quine-McCluskey tìm prime implicants

    Minterms được nhóm và kết hợp lặp lại. Các nhóm kề nhau (khác một biến) được gộp cho đến khi không thể giảm nữa.

  4. 4

    Essential implicants phủ hàm

    Bảng phủ theo phương pháp Petrick chọn tập prime implicants nhỏ nhất. Kết quả là SOP đã rút gọn. Dạng POS được suy ra từ phần bù.

Ký hiệu toán tử được hỗ trợ

Phép toán Ký hiệu chấp nhận
AND ·, *, &, , dấu cách
OR +, |,
NOT \', ¬, !, ~, dấu gạch trên (A có dấu gạch trên hiển thị thành A\')
XOR , ^
Hằng số 0, 1

Ví dụ

Đầu vào: A·B + A·¬B + ¬A·B

Bảng chân trị:

A B F
0 0 0
0 1 1
1 0 1
1 1 1

Minterms: m(1, 2, 3). SOP tối thiểu rút gọn thành A + B (OR của hai biến). Trình rút gọn đi qua:

  1. Nhóm minterms theo số lượng bit 1
  2. Kết hợp các cặp kề nhau: (1,3) → -B, (2,3) → A-
  3. Bảng phủ cho thấy cả hai đều essential — dạng cuối: A + B

Vì sao cần tối thiểu hóa

  • Ít gate hơn: mỗi hạng AND/OR đều tốn silicon hoặc FPGA LUTs.
  • Critical path ngắn hơn: logic nhỏ hơn thường nghĩa là độ trễ lan truyền thấp hơn.
  • Công suất thấp hơn: ít nút chuyển mạch hơn.

Giới hạn thuật toán

  • Số biến: Quine-McCluskey tăng theo O(3^n / n) trong trường hợp xấu nhất. Công cụ xử lý thoải mái đến 8 biến; vượt mức đó, hãy dùng minimiser heuristic kiểu Espresso (không bảo đảm tối thiểu tuyệt đối nhưng khả thi).
  • Don’t-care terms: thêm bằng cú pháp d(indices) để có kết quả nhỏ hơn khi một số tổ hợp input không thể xảy ra.

Câu hỏi thường gặp

Sum-of-products là OR-của-AND (như AB + CD); product-of-sums là AND-của-OR (như (A+B)(C+D)). Cùng một hàm, cấu trúc khác nhau. Trình rút gọn trả cả hai — chọn dạng phù hợp với công cụ downstream của bạn.

Có. Nhập chúng dưới dạng d(index1, index2, ...) cùng với minterms. Minimiser xem chúng là “tự do” để gán giá trị nào tạo kết quả nhỏ hơn.

Cả hai đều tạo chi phí tối thiểu nếu bạn chọn đúng, nhưng K-map phụ thuộc vào việc người làm có nhận ra nhóm lớn nhất có thể hay không. Quine-McCluskey có tính quyết định và luôn tìm nghiệm tối ưu.

XOR được khai triển thành AND/OR/NOT trước khi tối thiểu hóa. Bạn sẽ nhận SOP tương đương nhưng cấu trúc XOR bị mất. Nếu muốn tối ưu vẫn giữ XOR, cần thuật toán khác (Reed-Muller).

Công cụ liên quan