Altifigence Academy

7 / 63 · Khái niệm

Đại số Boolean, biến đổi tương đương và chi phí cài đặt

Biến đổi mạch bằng De Morgan và đặt nhân tử chung; phân biệt tương đương logic với thời gian.

Biểu thức tương đương cho cùng đầu ra với mọi đầu vào

Đơn giản hóa mạch tổ hợp không chỉ nhằm viết biểu thức ngắn hơn. Phải giữ chức năng và xét số tầng logic, fan-in, fan-out cùng các cell thư viện thực. Trước hết, đọc dấu ++ và phép nhân trong đại số BooleanĐại số Boolean Đại số của 0, 1 và AND, OR, NOT. Dấu cộng thường biểu diễn OR, nên quy tắc khác phép cộng số nguyên. là OR và AND.

A+AB=A,A+A‾B=A+BA+AB=A,\qquad A+\overline A B=A+B

Có thể kiểm tra biểu thức thứ hai bằng cách xét từng trường hợp: A=1A=1 thì hai vế đều là 1; A=0A=0 thì hai vế đều là BB. Sau khi áp dụng đẳng thức đã thuộc, vẫn cần giải thích được ý nghĩa.

Đọc cấu trúc NAND, NOR bằng De Morgan

AB‾=A‾+B‾,A+B‾=A‾ B‾\overline{AB}=\overline A+\overline B,\qquad \overline{A+B}=\overline A\,\overline B

Ví dụ Y=AB+ACY=AB+AC bằng A(B+C)A(B+C). Dạng đầu có thể vẽ bằng hai AND và một OR; dạng sau bằng một OR và một AND. Nhưng khi thời điểm đầu vào tới hoặc tải khác nhau, ít cổng hơn không phải lúc nào cũng nhanh hơn.

Định lý consensus cũng hữu ích.

AB+A‾C+BC=AB+A‾CAB+\overline A C+BC=AB+\overline A C

Khi BC=1BC=1, nếu AA bằng 0 thì A‾C\overline A C đã bằng 1, còn nếu bằng 1 thì ABAB đã bằng 1; vì vậy BCBC là dư thừa đối với chức năng ổn định. Tuy nhiên, bỏ hạng này có thể thay đổi hazard trong lúc chuyển mức. Bài về độ trễ sau sẽ xét khác biệt đó.

Mỗi cột là một tổ hợp đầu vào ABC, không phải bước thời gian. Kiểm tra hai đầu ra có giống nhau ở mọi cột không. Số cổng và đường đi có thể khác, nhưng chức năng với đầu vào 0/1 ổn định giống nhau.

Tương đương giữa AB + AC và A(B + C)
Xem dữ liệu dạng sóng
Dữ liệu dạng sóng: mỗi ký tự là một khoảng; dấu chấm giữ trạng thái trước; p là một chu kỳ đồng hồ.
Tín hiệuDạng sóngGiá trị bus
ABC23452345000 → 001 → 010 → 011 → 100 → 101 → 110 → 111
AB+AC0....1..
A(B+C)0....1..

Tiêu chuẩn kiểm chứng tương đương

Đặt dạng trước và sau biến đổi là y_ref và y_opt; với không gian đầu vào nhỏ, so sánh toàn bộ đầu vào. Không được kết luận tương đương chỉ vì kết quả khớp ở một hai ví dụ.

SystemVerilog
assign y_ref = (a & b) | (a & c);
assign y_opt = a & (b | c);
assign mismatch = y_ref ^ y_opt;

mismatch phải luôn bằng 0 trong tám tổ hợp 0/1. Mô phỏng bốn trạng thái có X/Z hoặc tương đương mạch tuần tự cần điều kiện bổ sung. Nêu rõ phạm vi đã chứng minh là thói quen cơ bản khi rà soát thiết kế.

Tự thử

Rút gọn F=A‾B+AB+AB‾F=\overline A B+AB+A\overline B và cho biết số tổ hợp đầu vào cần kiểm tra.

Đọc giải thích

Hai hạng đầu là B(A‾+A)=BB(\overline A+A)=B, nên F=B+AB‾=A+BF=B+A\overline B=A+B. Có hai biến, cần kiểm tra bốn tổ hợp. Tương đương biểu thức không có nghĩa độ trễ lan truyền của hai cài đặt bằng nhau.

Lựa chọn áp dụng cho trình duyệt này. Có thể đổi ở chân trang bất cứ lúc nào.