CMOS Gate — Transistor জোড়া লাগিয়ে প্রথম Logic তৈরি
CMOS Logic Gates
একটা NMOS আর একটা PMOS-কে বিপরীতমুখী pull-down/pull-up নেটওয়ার্ক হিসেবে জোড়া দিলে প্রথম logic gate জন্ম নেয় — আর CMOS প্রযুক্তির গঠনগত কারণেই NAND/NOR সবচেয়ে সস্তা, AND/OR নয়।
আগে এটা বুঝি
আগের লেসনের build experiment-এ আমরা একটা NMOS আর একটা PMOS-এর Gate একসাথে জুড়েছিলাম, আর দেখেছিলাম তারা সবসময় বিপরীত অবস্থায় থাকে — একটা ON, অন্যটা OFF।
আজ সেই একই দুই transistor-কে একটু ভিন্নভাবে সাজিয়ে প্রথম প্রকৃত logic gate বানাব — একটা circuit যেটা একটা নির্দিষ্ট, সুসংজ্ঞায়িত Boolean function গণনা করে। আর দেখব CMOS প্রযুক্তিতে কোন gate “বিনামূল্যে” আসে, আর কোনটার জন্য বাড়তি কাজ লাগে।
মূল ধারণা
NOT Gate (Inverter) — সবচেয়ে সরল CMOS gate
একটা CMOS inverter ঠিক দুইটা transistor: একটা PMOS (উপরে, VDD-র
সাথে) আর একটা NMOS (নিচে, GND-র সাথে), দুইটার Gate একসাথে input
A, দুইটার Drain একসাথে output Y।
VDD
│
┌──┴──┐
A ──┤PMOS │
└──┬──┘
├─────── Y (output)
┌──┴──┐
A ──┤NMOS │
└──┬──┘
│
GNDA = 0 হলে: PMOS conduct করে (Gate LOW), NMOS conduct করে না।
Output Y VDD-র সাথে যুক্ত হয়ে যায় → Y = 1।
A = 1 হলে: PMOS conduct করে না, NMOS conduct করে (Gate HIGH)।
Output Y GND-র সাথে যুক্ত হয়ে যায় → Y = 0।
| A | PMOS | NMOS | Y |
|---|---|---|---|
| 0 | ON | OFF | 1 |
| 1 | OFF | ON | 0 |
ঠিক NOT — Y = A'।
গুরুত্বপূর্ণ পর্যবেক্ষণ: কোনো input combination-এই PMOS আর NMOS একসাথে ON হয় না — তাই VDD থেকে GND-এ কখনো সরাসরি পথ (শর্ট সার্কিট) তৈরি হয় না। এটা কাকতালীয় না — এটাই CMOS ডিজাইনের কেন্দ্রীয় নীতি, এখন NAND/NOR-এও দেখব।
NAND Gate — Series NMOS, Parallel PMOS
দুই-input NAND গঠন করতে: pull-down network (NMOS দিয়ে) — দুইটা NMOS series-এ; pull-up network (PMOS দিয়ে) — দুইটা PMOS parallel-এ।
VDD
│
┌─────┴─────┐
│ │
┌──┴──┐ ┌──┴──┐
A─┤PMOS │ B─┤PMOS │ ← parallel pull-up
└──┬──┘ └──┬──┘
└─────┬─────┘
├───────────── Y
┌──┴──┐
A─┤NMOS │
└──┬──┘
┌──┴──┐ ← series pull-down
B─┤NMOS │
└──┬──┘
│
GNDযুক্তি: Output Y GND-এ পৌঁছাতে (LOW হতে) দুইটা series NMOS-ই
conduct করতে হবে — মানে A=1 এবং B=1 দুইটাই লাগবে। অন্য
যেকোনো combination-এ অন্তত একটা NMOS OFF থাকবে, তাই pull-down path
নেই — তখন pull-up network (parallel PMOS-এর অন্তত একটা ON) output-কে
VDD-তে টেনে HIGH করে।
| A | B | Series NMOS পথ | Y |
|---|---|---|---|
| 0 | 0 | নেই (দুইটাই OFF) | 1 |
| 0 | 1 | নেই (A-NMOS OFF) | 1 |
| 1 | 0 | নেই (B-NMOS OFF) | 1 |
| 1 | 1 | আছে (দুইটাই ON) | 0 |
ঠিক NAND truth table।
NOR Gate — dual গঠন
NOR ঠিক বিপরীত টপোলজি: series PMOS, parallel NMOS।
Pull-up (PMOS, series): A এবং B দুইটাই 0 হলেই output HIGH-এ পৌঁছায়
Pull-down (NMOS, parallel): A অথবা B যেকোনো একটা 1 হলেই output LOW
| A | B | Y |
|---|---|---|
| 0 | 0 | 1 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 0 |
ঠিক NOR truth table।
ভেতরে কী ঘটছে
কেন NAND/NOR “স্বাভাবিক” কিন্তু AND/OR না
এটাই এই লেসনের মূল অন্তর্দৃষ্টি, আর প্রথমবার শোনা অনেকের কাছে অপ্রত্যাশিত মনে হয়।
CMOS-এর pull-up/pull-down duality নিয়ম: যেকোনো CMOS gate-এর pull-down network (NMOS দিয়ে) আর pull-up network (PMOS দিয়ে) সবসময় dual — যেখানে pull-down-এ series, pull-up-এ সেখানে parallel, আর উল্টো। এই দুই নেটওয়ার্ক-ই সবসময় একে অপরের পরিপূরক আউটপুট দেয় — একটাই কারণে কখনো শর্ট সার্কিট হয় না।
কিন্তু লক্ষ্য করুন — এই গঠনটা স্বাভাবিকভাবেই একটা inverting function দেয়: pull-down network conduct করলে output LOW (একটা NOT-এর মতো আচরণ)। তাই NAND আর NOR সরাসরি transistor-network দিয়ে তৈরি হয় — কোনো বাড়তি স্তর লাগে না।
AND বানাতে — NAND-এর পর একটা বাড়তি inverter (২টা বাড়তি
transistor) লাগে: AND = NOT(NAND(A,B))।
OR বানাতে — NOR-এর পর একটা বাড়তি inverter লাগে: OR = NOT(NOR(A,B))।
| Gate | Transistor সংখ্যা (2-input) |
|---|---|
| NOT | 2 |
| NAND | 4 |
| NOR | 4 |
| AND | 6 (NAND + inverter) |
| OR | 6 (NOR + inverter) |
এই একটা সারণিই ব্যাখ্যা করে কেন real ASIC standard-cell library-তে NAND/NOR-ভিত্তিক ডিজাইন প্রাধান্য পায় — কম transistor মানে কম এলাকা, কম বিদ্যুৎ, কম delay। পরের লেসনে আমরা দেখব NAND দিয়েই AND, OR, NOT — সবকিছু বানানো সম্ভব, তাই বাস্তবে chip designer-রা প্রায়ই NAND/NOR-ভিত্তিক কাঠামোতেই চিন্তা করেন।
Static Power — কেন CMOS জিতেছে
CMOS-এর আগে জনপ্রিয় logic family (যেমন TTL, বা পুরনো NMOS-only logic) সবসময় pull-up-এ একটা resistor ব্যবহার করত, transistor না। এর মানে যেকোনো স্থির অবস্থায় সার্কিটের মধ্য দিয়ে একটা ধ্রুবক current বইত (resistor-এর মধ্য দিয়ে) — এমনকি output স্থির থাকলেও, বিদ্যুৎ অবিরাম খরচ হতো।
CMOS-এ, দেখেছি, pull-up আর pull-down কখনো একসাথে conduct করে না — তাই স্থির অবস্থায় (কোনো switching হচ্ছে না) প্রায় শূন্য current বয়। বিদ্যুৎ খরচ হয় শুধু switching-এর মুহূর্তে (capacitance charge/discharge করতে, যাকে dynamic power বলে)।
উদাহরণ
একটা 3-input NAND — pattern-টা যাচাই করুন
তিন-input NAND: তিনটা NMOS series-এ (সবগুলো ON হলেই pull-down path সম্পূর্ণ), তিনটা PMOS parallel-এ (যেকোনো একটা ON হলেই pull-up path আছে)।
Y = 0 শুধুমাত্র যখন A=1 এবং B=1 এবং C=1 (তিনটা series NMOS-ই ON)
Y = 1 বাকি সাতটা combination-এএটাই NAND(A,B,C) = NOT(A · B · C) — ৮টা row-এর মধ্যে শুধু
A=B=C=1-এ Y=0, বাকি সবগুলোতে Y=1। Pattern-টা সরাসরি n-input-এ
সম্প্রসারিত হয়: n টা series NMOS, n টা parallel PMOS।
নিজে চালিয়ে দেখুন
Logisim/Digital-এ transistor থেকে NAND বানান
১. দুইটা PMOS parallel-এ (উপরে VDD-র সাথে), দুইটা NMOS series-এ
(নিচে GND-র সাথে) — উপরের diagram অনুযায়ী সাজান
২. A, B input-এর জন্য toggle switch, Y-তে একটা probe/LED
জুড়ুন
৩. চারটা input combination চালিয়ে output রেকর্ড করুন, উপরের truth
table-এর সাথে মেলান
৪. এবার Logisim-এর built-in “NAND gate” primitive দিয়ে একই সার্কিট
বানান — দুইটাই একই truth table দেয় তা নিশ্চিত করুন (built-in
gate আসলে ভেতরে এই একই transistor network-এর একটা শর্টকাট মাত্র)
Transistor-স্তরের সংযোগ থেকে সরাসরি একটা সঠিক NAND truth table বেরিয়ে আসে — কোনো 'জাদু gate primitive' লাগে না।
নিজে বানান
3-input NOR গেট ডিজাইন করুন
- তিনটা PMOS series-এ (pull-up), তিনটা NMOS parallel-এ (pull-down) সাজান
- সব 8টা input combination-এর truth table হাতে predict করুন
- তারপর simulator-এ চালিয়ে verify করুন
- Transistor সংখ্যা গুনুন, আর AND/OR-এর তুলনায় কত সস্তা তা হিসাব করুন
3-input NOR-এর pull-down (parallel NMOS): A, B, C যেকোনো
একটা 1 হলেই output GND-এ পৌঁছায় (LOW)। Pull-up (series PMOS):
তিনটাই 0 হলেই output VDD-তে পৌঁছায় (HIGH)।
শুধু A=B=C=0-এ Y=1, বাকি ৭টা combination-এ Y=0। ৬টা transistor
(vs. AND/OR-এর বেশি transistor প্রয়োজন) — একটা সংক্ষিপ্ত, সরাসরি
verification-যোগ্য উদাহরণ কেন NOR CMOS-এ সস্তা।
বাস্তব সিস্টেমে
CMOS বাস্তব চিপ ডিজাইনে
-
Standard cell library — বাস্তব ASIC ডিজাইনে হাজার হাজার প্রি-ডিজাইন করা, pre-characterized “cell” (NAND, NOR, inverter, flip-flop ইত্যাদির বিভিন্ন আকার) থেকে একটা চিপ কম্পোজ করা হয় — প্রতিটা cell-ই মূলত এই লেসনের নীতিতে তৈরি transistor network।
-
আধুনিক CPU-র বিলিয়ন গেট — Intel/AMD/ARM-এর processor design-এ synthesis tool (Level 12-র সংলগ্ন) হাই-লেভেল hardware বর্ণনাকে (Verilog, এই মডিউলের শেষ লেসন) স্বয়ংক্রিয়ভাবে NAND/NOR-এর মতো standard cell-এ রূপান্তর করে — মানুষ আর হাতে transistor সাজায় না, কিন্তু ভিত্তি ঠিক এই লেসনের নীতি।
-
Dynamic power ও CPU throttling — যেহেতু CMOS-এ বিদ্যুৎ খরচ মূলত switching-এর সময় হয়, বেশি clock speed মানে বেশি switching প্রতি সেকেন্ডে, মানে বেশি তাপ — এই কারণেই আধুনিক CPU-তে dynamic frequency scaling (কাজ কম থাকলে clock ধীর করে বিদ্যুৎ বাঁচানো)।
-
Transmission gate — CMOS-এর একটা variant যেখানে NMOS+PMOS parallel-এ একটা “সুইচ” হিসেবে ব্যবহার হয় (গেট না, শুধু পাস/ব্লক) — multiplexer ডিজাইনে (Level 2-এর পরের একটা লেসন) কার্যকর।
-
Solar-powered ক্যালকুলেটর — এত কম static power যে ছোট একটা solar cell দিয়েও কাজ করা সম্ভব, ১৯৮০-এর দশক থেকে জনপ্রিয়।
যে ভুলগুলো সবাই করে
“AND আর OR gate 'মৌলিক', NAND/NOR সেগুলোর সমন্বয়।”
Boolean algebra-র (Level 0) তাত্ত্বিক দৃষ্টিতে এটা সত্যি মনে হতে পারে — মানুষ প্রথমে AND/OR শেখে, NAND/NOR পরে। কিন্তু CMOS হার্ডওয়্যারে ঠিক উল্টো — NAND/NOR সরাসরি transistor network থেকে আসে, AND/OR তৈরি করতে বাড়তি inverter লাগে। “মৌলিক” কোনটা তা নির্ভর করে আপনি গণিতের দৃষ্টিতে দেখছেন নাকি প্রকৌশলের দৃষ্টিতে।
“একটা gate-এর ভেতরে কী ঘটছে তা জানা দরকার নেই — এটা শুধু একটা 'black box' যা truth table মেনে চলে।”
সফটওয়্যার লেখার সময় এটা প্রায়ই যথেষ্ট সত্যি — কিন্তু এই মডিউলের পুরো লক্ষ্যই এই black box খুলে দেখা। Transistor-স্তরের বোঝাপড়া ছাড়া বোঝা অসম্ভব কেন NAND AND-এর চেয়ে দ্রুত, কেন static power প্রায় শূন্য, বা কেন propagation delay-এর একটা ভৌত উৎস আছে (পরের লেসনগুলোয় গুরুত্বপূর্ণ হবে)।
বুঝেছেন কি না দেখুন
1একটা 2-input NAND gate-এ A=1, B=0। প্রতিটা transistor (২টা NMOS,
২টা PMOS) ON না OFF তা নির্ণয় করে output বের করুন।
প্রয়োগ
A=1, B=0। প্রতিটা transistor (২টা NMOS,
২টা PMOS) ON না OFF তা নির্ণয় করে output বের করুন।A-NMOS (Gate=A=1): ON। B-NMOS (Gate=B=0): OFF।
Series pull-down path সম্পূর্ণ হতে দুইটাই ON লাগে — একটা OFF থাকায় pull-down path নেই।
A-PMOS (Gate=A=1): OFF। B-PMOS (Gate=B=0): ON।
Parallel pull-up path-এ যেকোনো একটা ON হলেই path আছে — B-PMOS ON থাকায় pull-up path আছে।
Pull-up path আছে, pull-down নেই → output VDD-র সাথে যুক্ত → Y = 1।
যাচাই: NAND(1,0) = NOT(1 AND 0) = NOT(0) = 1 ✓
2একজন ডিজাইনার বলছেন “আমরা AND gate-ই সরাসরি বানাব, NAND+inverter
না — তাহলে একটা কম stage হবে, দ্রুত হবে।” এই যুক্তির ভুল কোথায়?
ডিজাইন
যুক্তিটা delay-এর দিক থেকে আংশিক সত্যি (একটা বাড়তি inverter stage সামান্য বাড়তি delay যোগ করে) — কিন্তু CMOS-এ “সরাসরি AND” বানানোর কোনো সস্তা উপায় নেই।
CMOS pull-up/pull-down duality নীতি অনুযায়ী, যেকোনো transistor-network gate স্বভাবতই inverting (pull-down conduct করলে output LOW)। “Non-inverting AND” সরাসরি একই ধরনের সরল series/parallel network দিয়ে বানানো যায় না — বাস্তবে AND মানেই “NAND + inverter” (৬ transistor), কোনো ৪-transistor বিকল্প নেই।
তাই বাস্তব trade-off হলো: (ক) NAND ব্যবহার করুন, এক stage বেশি delay মেনে নিয়ে, কিন্তু কম transistor/এলাকা/power; অথবা (খ) AND ব্যবহার করুন যদি non-inverting output সত্যিই জরুরি হয়, বাড়তি transistor-এর মূল্যে। এই কারণেই বড় ডিজাইনে (যেমন multi-level logic synthesis) প্রায়ই পুরো circuit-কে NAND/NOR-এর ভাষায় পুনর্গঠন করা হয়, শুধু নির্দিষ্ট জায়গায় দরকার হলেই non-inverting gate রাখা হয়।
3একটা ত্রুটিপূর্ণ CMOS NAND gate-এ ভুলবশত একটা NMOS parallel-এ
(series-এর বদলে) বসানো হয়েছে। নতুন truth table কী হবে, আর এটা
আসলে কোন gate-এ পরিণত হয়েছে?
যুক্তি
Pull-down NMOS parallel-এ মানে যেকোনো একটা input HIGH হলেই pull-down path আছে (series-এ যেমন দুইটাই লাগত)।
| A | B | Pull-down path? | Y |
|---|---|---|---|
| 0 | 0 | না | 1 |
| 0 | 1 | হ্যাঁ (B-NMOS ON) | 0 |
| 1 | 0 | হ্যাঁ (A-NMOS ON) | 0 |
| 1 | 1 | হ্যাঁ (দুইটাই ON) | 0 |
এটা NOR-এর truth table — pull-up network (এখনও parallel PMOS,
অপরিবর্তিত ধরে নিলে) NAND-এর জন্য ডিজাইন করা ছিল, কিন্তু pull-down
পাল্টে যাওয়ায় গোটা gate-টাই NOR-এ পরিণত হয়েছে।
গুরুত্বপূর্ণ সতর্কতা: বাস্তবে pull-up আর pull-down সবসময় dual হতে হয় (এক দিকে series তো অন্য দিকে parallel) নাহলে শর্ট-সার্কিট বা float (undefined) আউটপুট হতে পারে। এই প্রশ্নের উদাহরণে যদি pull-up ঠিক NAND-এর জন্য ডিজাইন করা থাকে (parallel PMOS) আর pull-down ভুলবশত parallel NMOS হয়, তাহলে দুইটা নেটওয়ার্কই “parallel” — dual সম্পর্কটা ভেঙে গেছে, যা বাস্তবে কিছু input combination-এ pull-up আর pull-down একসাথে conduct করাতে পারে (শর্ট-সার্কিট, বিদ্যুৎ অপচয়, সম্ভাব্য ক্ষতি) — শুধু “ভুল logic” না, একটা প্রকৃত হার্ডওয়্যার বিপদ।
4একটা 4-input NAND gate-এ কতটা NMOS আর কতটা PMOS লাগবে? এর propagation
delay 2-input NAND-এর তুলনায় বেশি না কম হবে বলে আপনি অনুমান করেন,
এবং কেন?
প্রয়োগ
Transistor সংখ্যা: ৪টা NMOS (series pull-down) + ৪টা PMOS (parallel pull-up) = ৮টা transistor।
Delay-এর অনুমান — বেশি হবে। Series-এ transistor সংখ্যা বাড়লে pull-down path-এর মোট resistance বাড়ে (প্রতিটা transistor নিজেই কিছুটা resistance যোগ করে, series-এ resistance যোগ হয়) — ফলে output capacitance discharge হতে বেশি সময় লাগে, delay বাড়ে।
এটাই বাস্তব কারণ কেন খুব বেশি-input NAND/NOR gate (যেমন 8-input বা তার বেশি) ব্যবহারিকভাবে এড়ানো হয় — designer-রা প্রায়ই সেগুলোকে ছোট gate-এর একটা tree হিসেবে ভেঙে ফেলেন (যেমন 4-input AND-কে দুইটা 2-input AND আর একটা 2-input AND দিয়ে, tree আকারে) — series চেইন ছোট রেখে delay কম রাখতে। এটা lesson 8 (ALU design)-এর বড় সংখ্যক-bit সার্কিটেও একই নীতিতে ফিরে আসবে।
এরপর কী
আমরা এখন জানি কীভাবে transistor থেকে NOT, NAND, NOR তৈরি হয় — আর কেন এই তিনটাই CMOS-এ “সস্তা”। কিন্তু AND, OR, XOR-এর মতো গুরুত্বপূর্ণ gate-গুলো কীভাবে পাব?
পরের লেসনে আমরা দেখব একটা চমকপ্রদ সত্য: শুধু NAND গেট দিয়েই যেকোনো Boolean function বানানো সম্ভব — AND, OR, NOT, এমনকি XOR পর্যন্ত। এটাকে বলে NAND-এর functional completeness। এই একটা তত্ত্বই ব্যাখ্যা করে কেন বাস্তব ASIC standard-cell library-তে NAND/NOR-ভিত্তিক ডিজাইন এত প্রাধান্য পায়।
আরও পড়ুন
- CMOS VLSI Design: A Circuits and Systems Perspective, Ch. 1-2 — Weste & Harris · CMOS gate topology-র প্রামাণ্য, শিল্প-মানের আলোচনা
- Digital Design and Computer Architecture, Ch. 1 — Sarah Harris, David Harris · Transistor থেকে gate পর্যন্ত অত্যন্ত স্বচ্ছ উপস্থাপনা