Flip Flop
ফ্লিপ ফ্লপ
ফ্লিপ ফ্লপ (Flip-Flop)
ভূমিকা — Computer-এর স্মৃতিশক্তি
তোমার Computer-এর RAM বিদ্যুৎ চলে গেলে সব data মুছে যায়। কিন্তু বিদ্যুৎ থাকা পর্যন্ত প্রতিটি bit মনে রাখে।
এই "মনে রাখার" কাজটি করে Flip-Flop Circuit।
প্রতিটি Flip-Flop একটি মাত্র bit সংরক্ষণ করে — হয় 0 অথবা 1। লক্ষ কোটি Flip-Flop মিলে তৈরি হয় RAM, CPU Register, Cache।
মজার তথ্য: তোমার 8GB RAM মানে প্রায় 64 বিলিয়ন Flip-Flop! প্রতিটি 1 bit সংরক্ষণ করছে।
Flip-Flop কেন দরকার?
আমরা এতদিন যে Logic Gate শিখেছি সেগুলো Combinational Logic — output শুধু current input-এর উপর নির্ভর করে।
কিন্তু Computer-কে মনে রাখতে হয় — যেমন:
- Loop counter: শেষবার কত ছিল?
- Register: CPU-তে এই মুহূর্তে কী data আছে?
- Flag: আগের operation-এ overflow হয়েছিল?
এই "পূর্ববর্তী অবস্থা মনে রাখার" জন্য দরকার Sequential Logic — এবং Sequential Circuit-এর মৌলিক building block হলো Flip-Flop।
চিত্রের মাধ্যমে বোঝো
Combinational vs Sequential:
Combinational:
Inputs → [Gate] → Output
(আগের কিছু মনে নেই)
Sequential (Flip-Flop):
Inputs ──────┐
├── [FF] → Q (output)
Clock ───────┘ ↑
Previous state মনে আছে
বাস্তব জীবনের সাথে মিল
উপমা: Light switch vs রুমের thermostat। Switch = Combinational (চালু/বন্ধ শুধু বর্তমান position-এ)। Thermostat = Sequential (আগে কত ছিল মনে রেখে সিদ্ধান্ত নেয়)। Flip-Flop হলো Thermostat-এর মতো — previous state মনে রাখে।
Module 1: Sequential Logic ও Combinational Logic পার্থক্য
| বিষয় | Combinational Logic | Sequential Logic |
|---|---|---|
| Output নির্ভর করে | শুধু current input-এ | Current input + Previous state-এ |
| Memory | নেই | আছে (Flip-Flop দিয়ে) |
| উদাহরণ | AND/OR Gate, Adder | Flip-Flop, Register, Counter |
| Clock | লাগে না | প্রায়ই লাগে |
Clock Signal কী?
Flip-Flop সাধারণত Clock-এর Rising Edge (0→1) বা Falling Edge (1→0)-এ trigger হয়।
Clock: _____|‾‾‾‾‾|_____|‾‾‾‾‾|_____
↑ ↑
Rising Edge Rising Edge
(FF trigger) (FF trigger)
Module 2: SR Flip-Flop (Set-Reset)
📌 সংজ্ঞা
SR Flip-Flop হলো সবচেয়ে সরল Flip-Flop। এর দুটি input আছে:
- S (Set): Q কে 1 করে
- R (Reset): Q কে 0 করে
এবং দুটি output:
- Q: বর্তমান state
- Q̄: Q-এর complement
Truth Table
| S | R | Q (next) | মন্তব্য |
|---|---|---|---|
| 0 | 0 | Q | No Change (আগের state মনে রাখে) |
| 0 | 1 | 0 | Reset (Q = 0 হয়) |
| 1 | 0 | 1 | Set (Q = 1 হয়) |
| 1 | 1 | ? | Forbidden / Invalid State |
SR=11 কেন Forbidden?
S=1 AND R=1 দিলে একই সময় Set এবং Reset — Q-এর মান undefined/indeterminate। এটা circuit-এ অস্থির অবস্থা তৈরি করে।
⚠️ সতর্কতা: SR Flip-Flop-এ S=R=1 কখনো দেওয়া উচিত নয়। এটা "Forbidden State।"
NAND Gate দিয়ে SR Latch Circuit
S ──┤NAND├──────── Q
│ │ │
└────┘ │
│
R ──┤NAND├──────── Q̄
│ │
└────┘
(Cross-coupled NAND gates)
Module 3: JK Flip-Flop
📌 সংজ্ঞা
JK Flip-Flop হলো SR Flip-Flop-এর উন্নত সংস্করণ যেখানে Forbidden State নেই। J=K=1 দিলে output Toggle (পরিবর্তন) হয়।
- J (Jump/Set): SR-এর S-এর মতো
- K (Kill/Reset): SR-এর R-এর মতো
Truth Table
| J | K | Q (next) | মন্তব্য |
|---|---|---|---|
| 0 | 0 | Q | No Change |
| 0 | 1 | 0 | Reset |
| 1 | 0 | 1 | Set |
| 1 | 1 | Q̄ | Toggle (SR-এর forbidden = JK-এর toggle!) |
🎯 Key Insight: SR-এর সমস্যা (J=K=1 → undefined) কে JK সুন্দরভাবে সমাধান করেছে — Toggle করে।
JK Toggle উদাহরণ
Initial Q = 0, J=1, K=1:
After clock: Q = Q̄ = 1 (toggle হলো)
Next clock (Q=1, J=1, K=1):
After clock: Q = Q̄ = 0 (আবার toggle)
Clock pulse: 1 2 3 4 5
J=K=1 রাখলে: Q: 0 1 0 1 0 (দোলানো)
এই toggle behavior থেকেই T Flip-Flop তৈরি।
Module 4: D Flip-Flop (Data/Delay)
📌 সংজ্ঞা
D Flip-Flop সবচেয়ে সরল এবং সহজ বোধগম্য। Clock edge-এ input D-এর value output Q-তে copy হয়।
Q(next) = D
Truth Table
| D | Q (next) | মন্তব্য |
|---|---|---|
| 0 | 0 | D-এর value Q-তে store হয় |
| 1 | 1 | D-এর value Q-তে store হয় |
SR থেকে D তৈরি
S = D, R = D̄
(SR-এর forbidden state automatically avoid হয়)
বাস্তব প্রয়োগ
- Data Latch: এক clock cycle-এ data store করে
- Register: CPU-তে 8/16/32/64 D Flip-Flop মিলে register তৈরি
- Shift Register: Data shift করার জন্য
Module 5: T Flip-Flop (Toggle)
📌 সংজ্ঞা
T Flip-Flop এ T=1 হলে প্রতিটি clock edge-এ output toggle হয় (0→1 বা 1→0)। T=0 হলে কোনো পরিবর্তন নেই।
Truth Table
| T | Q (next) | মন্তব্য |
|---|---|---|
| 0 | Q | No Change |
| 1 | Q̄ | Toggle |
JK থেকে T তৈরি
J = K = T — JK-এ J এবং K একসাথে connect করলে T Flip-Flop।
বাস্তব প্রয়োগ
- Binary Counter: T=1 রাখলে প্রতি clock-এ 0,1,0,1... — frequency divider
- Frequency Divider: ১ টা T FF clock frequency অর্ধেক করে
চার ধরনের Flip-Flop তুলনা
| Type | Inputs | বিশেষ বৈশিষ্ট্য | সমস্যা | ব্যবহার |
|---|---|---|---|---|
| SR | S, R | সরল | S=R=1 Forbidden | Basic storage |
| JK | J, K | Toggle (J=K=1) | Race condition | Universal FF |
| D | D | Q_next = D | — | Registers, Latches |
| T | T | Toggle (T=1) | — | Counters |
Module 6: বাস্তব প্রয়োগ
- 💾 RAM (SRAM): প্রতিটি memory cell-এ Flip-Flop (static RAM)
- 🖥️ CPU Register: প্রতিটি register = D Flip-Flop-এর সমষ্টি
- ⏱️ Counter: JK বা T Flip-Flop দিয়ে Digital counter তৈরি
- 📡 Shift Register: Serial data transmission-এ
- 🔢 Frequency Divider: T Flip-Flop cascade করলে clock ÷2, ÷4 হয়
🧠 মূল শিক্ষা
মনে রাখো: Flip-Flop হলো Digital Memory-র মৌলিক unit। SR-এ S=R=1 forbidden, JK-এ J=K=1 = Toggle — এটাই SR-এর সমস্যার সমাধান। D Flip-Flop সবচেয়ে সহজ (Q=D), T Flip-Flop counter তৈরিতে ব্যবহার হয়। Clock-এর edge-এ trigger হওয়াই Flip-Flop-কে Combinational Gate থেকে আলাদা করে।
🔁 নিজে পরীক্ষা করো
❓ প্রশ্ন ১: SR Flip-Flop-এ S=R=1 দিলে কী হয়?
✅ উত্তর: Forbidden/Invalid state — output undefined।
❓ প্রশ্ন ২: JK Flip-Flop-এ J=K=1 দিলে কী হয়?
✅ উত্তর: Toggle — Q-এর বর্তমান মান পরিবর্তন হয় (0→1 বা 1→0)।
❓ প্রশ্ন ৩: D Flip-Flop-এ Q(next) = ?
✅ উত্তর: D (input D-এর value output Q-তে copy হয়)।
❓ প্রশ্ন ৪: কোন Flip-Flop Counter তৈরিতে সবচেয়ে বেশি ব্যবহার হয়?
✅ উত্তর: T Flip-Flop (Toggle behavior-এর কারণে)।
❓ প্রশ্ন ৫: Sequential Logic এবং Combinational Logic-এর মূল পার্থক্য কী?
✅ উত্তর: Sequential Logic-এ output পূর্ববর্তী state-এর উপরও নির্ভর করে (memory আছে)। Combinational-এ শুধু current input।
📝 HSC পরীক্ষার প্রস্তুতি
পরীক্ষায় যা আসতে পারে
🎯 JK Flip-Flop Truth Table: সবচেয়ে বেশি আসে। পুরো table মুখস্থ।
🎯 SR vs JK পার্থক্য: "SR-এর Forbidden State কী এবং JK কীভাবে সমাধান করল?"
🎯 Sequential vs Combinational: Definition এবং পার্থক্য।
🎯 D Flip-Flop: সংজ্ঞা এবং বাস্তব প্রয়োগ।
সাধারণ ভুলসমূহ
⚠️ ভুল ১: SR Flip-Flop-এ S=R=1 হলে Q=1 লেখা — সঠিক: Undefined/Forbidden।
⚠️ ভুল ২: JK Toggle অবস্থায় নির্দিষ্ট মান দেওয়া — toggle মানে আগের মানের বিপরীত।
⚠️ ভুল ৩: Flip-Flop কে Combinational Circuit বলা — এটা Sequential।
⚠️ ভুল ৪: Clock-এর কথা উল্লেখ না করা — Flip-Flop clock-triggered।
মনে রাখার কৌশল
💡 SR → JK evolution: "JK = SR without forbidden state + Toggle bonus।"
💡 "D = Data, T = Toggle, JK = versatile, SR = basic"
✅ সারাংশ
Sequential Logic: output = f(inputs + previous state) — Memory আছে।
SR Flip-Flop:
- S=0,R=0 → No change; S=0,R=1 → Reset; S=1,R=0 → Set; S=1,R=1 → Forbidden
JK Flip-Flop:
- J=0,K=0 → No change; J=0,K=1 → Reset; J=1,K=0 → Set; J=1,K=1 → Toggle
D Flip-Flop:
- Q(next) = D (সরল copy)
T Flip-Flop:
- T=0 → No change; T=1 → Toggle
Comparison:
- SR: Basic, has forbidden state
- JK: Universal, solves SR problem
- D: Simplest, used in registers
- T: Toggle, used in counters
🎯 অনুশীলন প্রশ্ন
-
Truth Table: JK Flip-Flop-এর সম্পূর্ণ Truth Table তৈরি করো।
-
SR পার্থক্য: SR এবং JK Flip-Flop-এর মধ্যে পার্থক্য লেখো। JK কীভাবে SR-এর সমস্যা সমাধান করে?
-
D Flip-Flop: D Flip-Flop কী? এটি কোথায় ব্যবহার হয়?
-
State Diagram: JK Flip-Flop-এর Q=0 থেকে শুরু করে J=1, K=1 দিলে 5টি clock pulse-এ Q-এর মান কী কী হবে?
-
MCQ: কোন Flip-Flop-এ Toggle state আছে?
- (a) শুধু SR (b) শুধু D (c) JK এবং T (d) শুধু JK উত্তর: (c) JK এবং T