Encoder
এনকোডার
এনকোডার (Encoder)
ভূমিকা — Keyboard থেকে CPU পর্যন্ত
তুমি যখন Keyboard-এ 'A' চাপো, তখন:
- Keyboard-এর 'A' key একটি specific electric signal তৈরি করে
- Encoder সেই signal-কে Binary code-এ রূপান্তর করে: 01000001 (= ASCII 65)
- CPU সেই Binary code পড়ে
Keyboard-এ 104টি key — প্রতিটি key চাপলে Encoder সেটাকে Binary-তে রূপান্তর করে CPU-কে পাঠায়।
মজার তথ্য: Encoder ছাড়া CPU বুঝতেই পারত না যে কোন key চাপা হয়েছে!
Encoder কেন দরকার?
ধরো একটি Circuit-এ 8টি input line আছে — প্রতিটি একটি ভিন্ন device represent করে। যখন device-1 active হয়, CPU জানাতে হবে "device-1 active।"
CPU-কে সরাসরি 8টি line পাঠানো ব্যয়বহুল। Encoder দিয়ে 8টি input কে মাত্র 3টি Binary line-এ convert করা যায়।
কম wire → কম cost → সহজ communication
চিত্রের মাধ্যমে বোঝো
4-to-2 Encoder:
D0 ─────┐
D1 ─────┤ ENCODER ├── A1 (output bit 1)
D2 ─────┤ ├── A0 (output bit 0)
D3 ─────┘
(4 inputs, 2 outputs, একসময় শুধু 1 input active)
যখন D1 active: D0=0, D1=1, D2=0, D3=0 → A1=0, A0=1 → 01₂ = 1
যখন D3 active: D0=0, D1=0, D2=0, D3=1 → A1=1, A0=1 → 11₂ = 3
বাস্তব জীবনের সাথে মিল
উপমা: ৪টি ঘরে ৪ জন মানুষ। প্রতিটি ঘরে একটি বেল বোতাম। বাইরে একটি display আছে যেখানে কোন ঘরের বেল বাজছে সেটা দেখায়। কিন্তু display-এ সরাসরি 4টি wire না লাগিয়ে, Encoder ব্যবহার করে 2টি wire-এ Binary code পাঠানো হয়। এটাই Encoder-এর কাজ।
Module 1: Encoder কী?
📌 সংজ্ঞা
Encoder হলো একটি Combinational Logic Circuit যার 2ⁿ টি input এবং n টি output থাকে। একটি নির্দিষ্ট সময়ে শুধুমাত্র একটি input active (HIGH) থাকে এবং Encoder সেই active input-এর Binary code output-এ দেয়।
2ⁿ inputs → n outputs
(Many → Few)
| Encoder Type | Inputs | Outputs |
|---|---|---|
| 4-to-2 | 4 = 2² | 2 |
| 8-to-3 (Octal) | 8 = 2³ | 3 |
| 16-to-4 | 16 = 2⁴ | 4 |
| 10-to-4 (BCD) | 10 | 4 |
💡 Encoder vs Decoder: Encoder = Many → Few, Decoder = Few → Many।
Module 2: 4-to-2 Encoder
4টি input (D0, D1, D2, D3) এবং 2টি output (A1, A0)।
Truth Table
| D3 | D2 | D1 | D0 | A1 | A0 |
|---|---|---|---|---|---|
| 0 | 0 | 0 | 1 | 0 | 0 |
| 0 | 0 | 1 | 0 | 0 | 1 |
| 0 | 1 | 0 | 0 | 1 | 0 |
| 1 | 0 | 0 | 0 | 1 | 1 |
Boolean Expressions
Truth Table থেকে:
A1 = D2 + D3 (A1 = 1 যখন D2 অথবা D3 active)
A0 = D1 + D3 (A0 = 1 যখন D1 অথবা D3 active)
Logic Circuit
D2 ─┐
├── OR ── A1
D3 ─┤
│
D1 ─┼─┐
│ ├── OR ── A0
D3 ─┘ │
(D3 দুটো OR-এই)
শুধু OR Gate দিয়ে তৈরি!
Module 3: 8-to-3 Octal Encoder
8টি input (D0–D7) এবং 3টি output (A2, A1, A0)।
Truth Table
| D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | A2 | A1 | A0 |
|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
| 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 |
| 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 |
| 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 1 |
| 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
| 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 |
| 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 |
| 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 |
Boolean Expressions
A2 = D4 + D5 + D6 + D7 (A2=1 যখন upper half active)
A1 = D2 + D3 + D6 + D7 (A1=1 যখন D2,D3 বা upper two active)
A0 = D1 + D3 + D5 + D7 (A0=1 যখন odd-numbered inputs active)
💡 Pattern মনে রাখো: A0 = সব odd-numbered input (D1,D3,D5,D7)।
Module 4: Priority Encoder
মূল সমস্যা
Basic Encoder-এ ধরে নেওয়া হয় একটি মাত্র input একসাথে active হবে। কিন্তু বাস্তবে একাধিক input একসাথে active হতে পারে।
Priority Encoder সমাধান
Priority Encoder বেশি সংখ্যাক (highest number) input-কে priority দেয়।
4-to-2 Priority Encoder Truth Table
(X = Don't care = 0 বা 1 যাই হোক)
| D3 | D2 | D1 | D0 | A1 | A0 | V |
|---|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | X | X | 0 |
| 0 | 0 | 0 | 1 | 0 | 0 | 1 |
| 0 | 0 | 1 | X | 0 | 1 | 1 |
| 0 | 1 | X | X | 1 | 0 | 1 |
| 1 | X | X | X | 1 | 1 | 1 |
V (Valid): V=1 মানে কোনো input active, V=0 মানে কোনো input নেই।
বাস্তব প্রয়োগ
- 🖥️ Interrupt Controller: CPU-তে একাধিক device interrupt চাইলে, Priority Encoder সবচেয়ে important টা বেছে নেয়।
Module 5: BCD Encoder (10-to-4)
10টি Decimal input (0–9) → 4-bit BCD output।
Truth Table (সংক্ষিপ্ত)
| Decimal Key | D9 | D8 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | A3 | A2 | A1 | A0 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
| 5 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 |
| 9 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 |
Calculator Keyboard-এ ঠিক এইভাবে Encoder কাজ করে।
Module 6: বাস্তব প্রয়োগ
- ⌨️ Keyboard Scanner: কোন key চাপা হলো → Binary code → CPU
- 🖥️ Interrupt Controller: কোন device interrupt করছে → Priority code → CPU
- 📷 Camera Sensor: কোন pixel/sensor triggered → Address code
- 🔢 Calculator: Decimal key → BCD code
- 📡 Multiplexer Control: কোন input select করবে
🧠 মূল শিক্ষা
মনে রাখো: Encoder হলো "many → few" — 2ⁿ inputs → n outputs। একসময় শুধু একটি input active। Priority Encoder একাধিক active input handle করে সবচেয়ে high number-কে priority দিয়ে। Encoder ≠ Decoder — এই দুটো বিপরীত।
🔁 নিজে পরীক্ষা করো
❓ প্রশ্ন ১: Encoder-এর সংজ্ঞা দাও।
✅ উত্তর: Encoder হলো Combinational Circuit যা 2ⁿ inputs কে n outputs-এ রূপান্তর করে। একটি input active থাকলে সেটার Binary code output দেয়।
❓ প্রশ্ন ২: 8-to-3 Encoder-এ কতটি input ও output থাকে?
✅ উত্তর: 8 inputs, 3 outputs।
❓ প্রশ্ন ৩: 4-to-2 Encoder-এ D3 active হলে output কত?
✅ উত্তর: A1=1, A0=1 → 11₂ = 3
❓ প্রশ্ন ৪: Priority Encoder এবং Basic Encoder-এর পার্থক্য কী?
✅ উত্তর: Basic Encoder-এ একটিমাত্র input active। Priority Encoder-এ একাধিক active হলে highest number input-কে priority দেয়।
❓ প্রশ্ন ৫: 8-to-3 Encoder-এ A0-এর Boolean expression কী?
✅ উত্তর: A0 = D1 + D3 + D5 + D7 (সব odd-numbered inputs)
📝 HSC পরীক্ষার প্রস্তুতি
পরীক্ষায় যা আসতে পারে
🎯 সংজ্ঞা: "Encoder কী?" — "2ⁿ inputs → n outputs" অবশ্যই লিখতে হবে।
🎯 Truth Table: 4-to-2 বা 8-to-3 Encoder-এর Truth Table।
🎯 Boolean Expression: Output-এর Boolean expression বের করো।
🎯 Priority Encoder: "Priority Encoder কী এবং কোথায় ব্যবহার হয়?"
🎯 Encoder vs Decoder পার্থক্য।
সাধারণ ভুলসমূহ
⚠️ ভুল ১: Encoder এবং Decoder গুলিয়ে ফেলা — Encoder = compression (many→few)।
⚠️ ভুল ২: "2n inputs → n outputs" লেখা — সঠিক: 2ⁿ inputs (exponential)।
⚠️ ভুল ৩: একাধিক input active হওয়ার সমস্যা উল্লেখ না করা।
মনে রাখার কৌশল
💡 "Encoder = Compression" — বড় থেকে ছোট, many → few।
💡 A0 = odd inputs, A1 = upper half — pattern মনে রাখো।
✅ সারাংশ
- Encoder: 2ⁿ inputs → n outputs (many → few)
- একটি input একসময় active থাকে
- 4-to-2 Encoder: A1=D2+D3, A0=D1+D3
- 8-to-3 Encoder: A2=D4+D5+D6+D7; A1=D2+D3+D6+D7; A0=D1+D3+D5+D7
- Priority Encoder: Multiple active inputs → highest priority wins; Valid bit V
- BCD Encoder: Decimal keys (0–9) → 4-bit BCD
- ব্যবহার: Keyboard, Interrupt controller, Camera sensors
🎯 অনুশীলন প্রশ্ন
-
সংজ্ঞা: Encoder কী? Decoder থেকে কীভাবে আলাদা?
-
Truth Table: 4-to-2 Encoder-এর সম্পূর্ণ Truth Table তৈরি করো।
-
Boolean Expression: 8-to-3 Octal Encoder-এর A2, A1, A0-এর Boolean expression লেখো।
-
Priority Encoder: Priority Encoder কী? কোথায় ব্যবহার হয় এবং কেন দরকার?
-
MCQ: Encoder-এর সংজ্ঞা অনুযায়ী 16-to-? Encoder হবে:
- (a) 2 (b) 4 (c) 8 (d) 16 উত্তর: (b) 4 (কারণ 16 = 2⁴, তাই 4 output)