Mục lục bài họcĐang ở d03-b3
← A-Level Computer Science
0/30 bài đã học xong
Chương 3 · Logic Gates and Boolean Algebra · Bài 3/3 của chương · bài 9/30 của A-Level Computer Science

Flip-flops and logic circuits in the computer

Mạch lật và ứng dụng logic trong máy tính
← Mục lục bài học
Lý thuyết · English

From combinational to sequential

Everything so far has been combinational: the output depends only on the current inputs. A flip-flop is sequential: it has feedback, so the output depends on the inputs and on what was stored before. That is how a circuit remembers a bit.

The SR flip-flop

Two cross-coupled NOR (or NAND) gates. $S=1,R=0$ sets $Q$ to 1; $S=0,R=1$ resets $Q$ to 0; $S=0,R=0$ holds the previous value. $S=1,R=1$ is invalid, because both outputs would go to the same value and the result on returning to $00$ depends on which gate switches first — an unpredictable state, which is exactly why the JK flip-flop was designed.

The JK flip-flop

Clocked, and the $J=K=1$ case toggles instead of being forbidden. A clock input means state changes only on an edge, so a whole register of flip-flops changes together — the basis of registers, counters and, in bulk, static RAM.

Adders

A half adder (XOR for sum, AND for carry) adds two bits but has nowhere to put an incoming carry. A full adder takes three inputs ($A$, $B$, carry-in) and produces sum and carry-out; chaining $n$ full adders gives an $n$-bit adder. This is the concrete link between Boolean logic and binary arithmetic.

Why this matters in the syllabus

Questions ask you to complete a characteristic table, explain why $S=R=1$ is invalid, or describe how flip-flops store data in a register. Answer with the feedback idea, not with a memorised diagram.

Giải thích tiếng Việt

Từ mạch tổ hợp sang mạch tuần tự

Mọi thứ tới đây đều là mạch tổ hợp: đầu ra chỉ phụ thuộc đầu vào hiện tại. Mạch lật (flip-flop) là mạch tuần tự: nó có đường hồi tiếp, nên đầu ra phụ thuộc đầu vào phụ thuộc giá trị đã lưu trước đó. Đó chính là cách một mạch điện nhớ được một bit.

Mạch lật SR

Hai cổng NOR (hoặc NAND) nối chéo nhau. $S=1,R=0$ đặt $Q$ lên $1$; $S=0,R=1$ đưa $Q$ về $0$; $S=0,R=0$ giữ nguyên giá trị cũ. $S=1,R=1$ là trạng thái không hợp lệ, vì cả hai đầu ra sẽ về cùng một giá trị và kết quả khi quay lại $00$ phụ thuộc cổng nào chuyển trạng thái trước — một trạng thái không đoán trước được, và đó đúng là lý do mạch lật JK ra đời.

Mạch lật JK

Có xung nhịp, và trường hợp $J=K=1$ thì đảo trạng thái thay vì bị cấm. Có đầu vào xung nhịp nghĩa là trạng thái chỉ đổi tại sườn xung, nhờ đó cả một thanh ghi gồm nhiều mạch lật đổi cùng lúc — đây là nền của thanh ghi, bộ đếm, và ở quy mô lớn là RAM tĩnh.

Mạch cộng

Nửa cộng (XOR cho tổng, AND cho nhớ) cộng được hai bit nhưng không có chỗ nhận bit nhớ mang sang. Cộng đầy đủ nhận ba đầu vào ($A$, $B$, nhớ vào) và cho ra tổng cùng nhớ ra; nối $n$ mạch cộng đầy đủ thì được bộ cộng $n$ bit. Đây là mối nối cụ thể giữa logic Boole và số học nhị phân.

Vì sao phần này quan trọng trong syllabus

Đề yêu cầu điền bảng đặc tính, giải thích vì sao $S=R=1$ không hợp lệ, hoặc mô tả cách mạch lật lưu dữ liệu trong thanh ghi. Hãy trả lời bằng ý tưởng hồi tiếp chứ đừng chép lại một sơ đồ đã thuộc lòng.

Ví dụ — vì sao S = R = 1 bị cấm

Một mạch lật SR dựng bằng hai cổng NOR nối chéo. Giải thích điều gì xảy ra khi $S=1$ và $R=1$, và vì sao trạng thái đó bị coi là không hợp lệ.

Giải.

Bước 1 — nhắc lại cấu trúc. Đầu ra $Q$ là đầu ra của cổng NOR thứ nhất, nhận $R$ và $\overline{Q}$; đầu ra $\overline{Q}$ là đầu ra của cổng NOR thứ hai, nhận $S$ và $Q$. Mỗi đầu ra là đầu vào của cổng kia — đó là hồi tiếp.

Bước 2 — đặt $S=R=1$. Cổng NOR cho $0$ nếu có bất kỳ đầu vào nào bằng $1$. Vì $R=1$ nên $Q=0$; vì $S=1$ nên $\overline{Q}=0$.

Bước 3 — vấn đề thứ nhất. Bây giờ $Q=0$ VÀ $\overline{Q}=0$. Hai đầu ra lẽ ra luôn là phủ định của nhau, nay bằng nhau — mạch vi phạm chính định nghĩa của nó, nên không còn biểu diễn một bit dữ liệu nào cả.

Bước 4 — vấn đề thứ hai, nghiêm trọng hơn. Khi đưa cả hai về $S=R=0$, mỗi cổng thấy đầu vào kia đang là $0$ nên đều "muốn" đưa đầu ra lên $1$. Cổng nào chuyển trạng thái nhanh hơn (do sai khác cực nhỏ trong sản xuất và nhiệt độ) sẽ khoá cổng còn lại. Kết quả cuối cùng là $Q=1$ hay $Q=0$ không đoán trước được và có thể khác nhau giữa hai lần chạy — gọi là trạng thái đua (race condition).

Kết luận. Không hợp lệ không phải vì mạch cháy, mà vì mạch mất tính xác định: cùng một chuỗi đầu vào có thể cho hai kết quả khác nhau. Mạch lật JK khắc phục bằng cách định nghĩa $J=K=1$ là ĐẢO trạng thái, và dùng xung nhịp để mọi thay đổi chỉ xảy ra tại sườn xung.

Bẫy hay mất điểm — Trả lời “$S=R=1$ làm hỏng mạch”. Mạch không hỏng — nó rơi vào trạng thái không xác định. Giám khảo tìm hai ý: $Q$ và $\overline{Q}$ cùng bằng $0$ (mâu thuẫn), và kết quả sau đó phụ thuộc cổng nào chuyển trước.
Phải nhớ — Mạch tổ hợp không nhớ, mạch tuần tự nhớ nhờ hồi tiếp. Nhớ bảng SR gồm đặt – xoá – giữ – không hợp lệ, nhớ JK dùng $J=K=1$ để đảo, và nhớ nửa cộng dùng XOR + AND còn cộng đầy đủ nhận thêm bit nhớ vào.

Đọc xong rồi — làm thử ngay

Bài tập của chương Logic Gates and Boolean Algebra gồm 14 câu trắc nghiệm và 3 đề tự luận. Đáp án hiện ngay khi chọn, miễn phí.

Làm bài tập chương →