# Components
## 1. Feedback & Flip-flop
- Ta xét 1 mạch điện như sau:

Nhắc lại: Đầu ra của một Inverter là $1$ nếu đầu vào là $0$ và ngược lại. Đóng công tắc ở mạch bên trên sẽ làm cho rơle luân phiên đóng mở. Như vậy, ta có thể thấy rằng: Đầu ra của mạch điện thay đổi nhanh chóng giữa 0 và 1. Mạch điện như vậy được gọi là: mạch dao động (oscillator). Ta có thể biểu diễn mối tương quan giữa thời gian và đầu ra như đồ thị dưới đây:

Từ đây, ta có các khái niệm:
- Chu kì: (period) là khoảng thời gian cần để oscillator thực hiện 1 vòng (tức từ khi đầu ra thay đổi cho đến khi quay trở lại giá trị ban đầu)
- Tần số: (frequency) là nghịch đảo của chu kì. Giả sử chu kì là $0.05s$ thì tần số là: $20hz$, đồng nghĩa với việc thực hiện $20$ vòng trong $1$ giây thì đầu ra của oscillator quay lại giá trị ban đầu
- Tiếp theo, ta sẽ xem xét mạch điện sau với $2$ cổng NOR, $2$ công tắc và $1$ bóng đèn:

Chú ý: Đầu ra của cổng NOR ở bên trái là đầu vào của cổng NOR ở bên phải và ngược lại, đầu ra của cổng NOR ở bên phải lại là đầu vào của cổng NOR ở bên trái. Đây là 1 loại cơ chế phải hồi (feedback). Ban đầu, dòng điện duy nhất chảy trong mạch là từ đầu ra của cổng NOR trái. Bây giờ, ta sẽ đóng công tắc ở bên trên. Đầu ra của cổng NOR trái lúc này sẽ là 0, dẫn đến đầu ra của cổng NOR phải là 1 và bóng đèn sẽ sáng.

Điều kì diệu là nếu bây giờ ta mở công tắc trên, đầu ra của cổng NOR bên trái vẫn là 0 và bóng đèn vẫn tiếp tục sáng mặc dù 2 công tắc đều mở giống hình 1 ở bên trên

Thông thường, đầu ra của 1 mạch điện phụ thuộc hoàn toàn vào đầu vào. Tuy nhiên, trong trường hợp này nó không còn đúng. Bây giờ, công tắc ở bên trên không còn tác dụng ảnh hưởng đến đầu ra nữa vì đầu ra của cổng NOR bên trái lúc này sẽ luôn là 0.
Bây giờ ta thử đóng công tắc ở bên dưới:

Mở lại:

Như ta có thể thấy thì đóng hay mở công tắc dưới cũng không ảnh hưởng đến bóng đèn. Tóm lại:
- Đóng công tắc ở bên trên làm cho bóng đèn sáng, và nó vẫn duy trì khi mở công tắc này.
- Đóng công tắc ở bên dưới làm cho bóng đèn không sáng, và nó vẫn duy trì khi mở công tắc này.
Chúng ta nói rằng: Mạch điện như trên có 2 trạng thái ổn định (stable states) khi cả 2 công tắc cùng mở, hay còn được gọi là flip-flop. Một mạch điện flip-flop có khả năng lưu lại thông tin. Có 4 loại flip-flop chính, đó là SR flip-flop, D flip-flop, JK flip-flop, T flip-flop.
- SR flip-flop:
Mạch điện SR flip-flop có sơ đồ như hình vẽ:

Mạch điện bao gồm 2 đầu vào là R (Reset) và S (Set) và 2 đầu ra là Q(t) và Q(t)'. Hai lối ra này bao giờ cũng ở trạng thái trái ngược nhau
Clk được gọi là lối vào xung nhịp (Clock Pulse). Clk được mắc với R và S bằng 2 cổng AND. Điều đó chỉ ra rằng các giá trị lối vào R và S chỉ làm cho flip-flop hoạt động khi có xung nhịp Clk tác dụng.
Bảng dưới đây là bảng trạng thái (state table) của SR flip-flop:
| S | R | $Q_t$ |
| -------- | -------- | -------- |
| 0 | 0 |$Q_t$ |
| 0 | 1 | 0 |
| 1 | 0 | 1 |
| 1 | 1 | - |
Trong đó: Q(t) và Q(t + 1) lần lượt là trạng thái hiện tại và trạng thái tiếp theo. Để hiểu rõ hơn về bảng trạng thái này, ta cùng phân tích:
a/ Khi S = 0 và R = 0
Nếu trạng thái ban đầu là Q(t) = 0, cả 2 lối vào của cổng NOR ở bên dưới đều bằng 0 nên lối ra của nó Q(t + 1)' = 1. Lúc này, vì cổng NOR ở bên trên có 1 lối vào là 1 nên và lối ra của nó là Q(t + 1) bằng 0. Tức là nó đã nhớ trạng thái trước đó là Q(t) = 0. Tương tự như vậy với Q(t) = 1
b/ Khi S = 1, R = 0
Vì cổng NOR ở bên dưới có 1 lối vào là 1 nên lối ra là Q' = 0. Lúc này, cổng NOR ở bên trên có 2 lối vào là 0 nên lối ra là Q = 1. Đây còn được gọi là trạng thái xác lập.
c/ Khi S = 0, R = 1
Vì cổng NOR ở bên trên có 1 lối vào là 1 nên lối ra là Q = 0. Lúc này, cổng NOR ở bên dưới có 2 lối vào là 0 nên lối ra là Q' = 1. Đây còn được gọi là trạng thái xoá.
d/ Khi S = 1, R = 1
Lúc này, cả 2 cổng NOR đều cho lối ra Q = 0 và Q' = 0. Tình huống này không được phép vì quy ước Q và Q' phải ngược giá trị. Đây là trạng thái cấm không được dùng.
Tóm lại, SR flip-flop giúp ta thực hiện được 3 chức năng như đã nói ở trên: giữ trạng thái trước đó, xác lập và xoá. Một lần nữa cần chú ý rằng: Nó chỉ thực hiện 3 chức năng trên khi xung nhịp CLK được kích hoạt.
- D flip-flop:
Mạch điện D flip-flop có sơ đồ như hình vẽ:

Mạch điện bao gồm 1 đầu vào D và 2 đầu ra là Q(t) và Q(t)'
Bảng trạng thái của D flip-flop như sau:
| D | Q(t+1) |
| -------- | -------- |
| 0 | 0 |
| 1 | 1 |
Vì vậy, D flip-flop có chức năng giữ thông tin khi xung nhịp CLK được kích hoạt. Do đó, nó được sử dụng trong các thanh ghi (registers), các thanh ghi dịch (shift registers) và các bộ đếm (counters).
- JK flip-flop:
Trong SR flip-flop có một tổ hợp biến cấm dùng là S = R = 1, trạng thái sẽ được xác định nếu gặp phải tổ hợp này. Ta có thể khắc phục tình trạng này bằng cách dùng 2 mạch phản hồi từ Q về R và từ Q' về S. JK flip-flop trông giống SR: J tương ứng với S và K tương ứng với R. Sơ đồ mạch điện của JK flip-flop như hình vẽ:

Bảng trạng thái của JK flip-flop như sau:
| J | K | Q(t + 1) |
| ---- | --- | ---- |
| 0 | 0 | Q(t) |
| 0 | 1 | 0 |
| 1 | 0 | 1 |
| 1 | 1 | Q(t)' |
Khác với SR flip-flop, khi S = R = 1 thì đầu ra đổi trạng thái ngược lại so với trạng thái trước đó (Toggle). Do đó, JK flip-flop giúp ta thực hiện 4 chức năng gồm giữ trạng thái hiện tại, đảo trạng thái hiện tại, xoá trạng thái hiện tại và xác lập trạng thái mới khi xung nhịp CLK được kích hoạt.
- T flip-flop:
T flip-flop là một dạng đơn giản hơn của JK flip-flop. Nó được tạo bằng cách ta kết nối cùng một đầu vào T với 2 đầu vào của JK flip-flop. Sơ đồ mạch điện của T flip-flop như sau:

Bảng trạng thái của T flip-flop như sau:
| D | Q(t + 1) |
| -------- | -------- |
| 0 | Q(t) |
| 1 | Q(t)' |
Do đó, ta thấy rằng T flip-flop giúp ta thực hiện 2 chức năng là giữ và đảo trạng thái hiện tại khi xung nhịp CLK được kích hoạt. Ngoài ra, T flip-flop còn được sử dụng nhiều trong các bộ đếm.