অ্যাডার (Adder): হাফ অ্যাডার ও ফুল অ্যাডার
এইচএসসি আইসিটি অধ্যায় ৩: হাফ অ্যাডার ও ফুল অ্যাডারের বিস্তারিত আলোচনা। সত্যক সারণি, সমীকরণ, লজিক সার্কিট এবং দুটি হাফ অ্যাডার দিয়ে ফুল অ্যাডার বাস্তবায়নের পূর্ণ
অ্যাডার (Adder): হাফ অ্যাডার ও ফুল অ্যাডার
- অ্যাডার (Adder): হাফ অ্যাডার ও ফুল অ্যাডার
- কম্পিউটার কীভাবে যোগ করে?
- অ্যাডার (Adder) কী?
- হাফ অ্যাডার (Half Adder)
- হাফ অ্যাডারের সত্যক সারণি
- হাফ অ্যাডারের সার্কিট ও সমীকরণ
- ফুল অ্যাডারের প্রয়োজনীয়তা
- ফুল অ্যাডার (Full Adder) ও সত্যক সারণি
- ফুল অ্যাডারের সমীকরণ সরলীকরণ
- ফুল অ্যাডারের লজিক সার্কিট
- দুটি হাফ অ্যাডার দিয়ে ফুল অ্যাডার (ধারণা)
- বাস্তবায়ন: হাফ অ্যাডার থেকে ফুল অ্যাডার সার্কিট
- ৪-বিট প্যারালাল অ্যাডার
- সারাংশ ও বাড়ির কাজ
অ্যাডার (Adder): হাফ অ্যাডার ও ফুল অ্যাডার - বিস্তারিত আলোচনা
কম্পিউটার কীভাবে যোগ করে? আমরা ছোটবেলায় যেভাবে হাতে গুনে যোগ শিখি, কম্পিউটার ঠিক সেভাবে কাজ করে না। কম্পিউটারের মস্তিষ্ক বা সিপিইউ (CPU) শুধুমাত্র ০ এবং ১ চেনে। তাই যোগ করার জন্য এটি বিশেষ এক ধরনের লজিক সার্কিট ব্যবহার করে। এই সার্কিটগুলো ইনপুট হিসেবে বাইনারি সংখ্যা গ্রহণ করে এবং আউটপুট হিসেবে যোগফল (Sum) ও হাতে থাকা সংখ্যা বা ক্যারি (Carry) প্রদান করে।
আজকের পাঠে আমরা কম্পিউটারের এই গাণিতিক কাজের মূল ভিত্তি অ্যাডার (Adder) সম্পর্কে বিস্তারিত জানব। এটি ডিজিটাল ডিভাইসে গাণিতিক ও লজিক্যাল ইউনিট (ALU) এর একটি অপরিহার্য অংশ।
সংজ্ঞা: কম্বিনেশনাল সার্কিট (Combinational Circuit)
যে লজিক সার্কিটের আউটপুট শুধুমাত্র বর্তমান ইনপুটের ওপর নির্ভর করে (অতীতের কোনো ইনপুটের ওপর নয়) এবং যার কোনো মেমোরি বা স্মৃতি নেই, তাকে কম্বিনেশনাল সার্কিট বলে। অ্যাডার, এনকোডার, ডিকোডার ইত্যাদি হলো কম্বিনেশনাল সার্কিটের উদাহরণ।
সংজ্ঞা: অ্যাডার (Adder)
যে সমবায় বর্তনী বা Combinational Circuit কম্পিউটারে বাইনারি সংখ্যার যোগফল নির্ণয় করতে ব্যবহৃত হয়, তাকে অ্যাডার বলে। এটি বাইনারি বিটগুলো যোগ করে এবং প্রয়োজনে ক্যারি বিট তৈরি করে।
অ্যাডার প্রধানত দুই প্রকার:
১. হাফ অ্যাডার (Half Adder)
২. ফুল অ্যাডার (Full Adder)
হাফ অ্যাডার (Half Adder): মৌলিক যোগের বর্তনী
যে লজিক সার্কিটের সাহায্যে দুটি বাইনারি বিট যোগ করে একটি যোগফল (Sum) ও একটি হাতে থাকা সংখ্যা বা ক্যারি (Carry) পাওয়া যায়, তাকে হাফ অ্যাডার বলে।
গুরুত্বপূর্ণ (Important):
হাফ অ্যাডার শুধুমাত্র দুটি বিট (A এবং B) যোগ করতে পারে। এটি পূর্ববর্তী বিট থেকে আসা কোনো ক্যারি (Carry In) গ্রহণ করতে পারে না। একারণেই একে "অর্ধ" বা "হাফ" অ্যাডার বলা হয়।
হাফ অ্যাডারের সত্যক সারণি (Truth Table)
দুটি ইনপুট A ও B এর জন্য সম্ভাব্য চারটি অবস্থা এবং তাদের যোগফল (S) ও ক্যারি (C) নিচে দেওয়া হলো:
| ইনপুট A | ইনপুট B | যোগফল (Sum - S) | ক্যারি (Carry - C) |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | 1 |
সমীকরণ প্রতিপাদন (Equation Derivation)
সত্যক সারণি থেকে আমরা আউটপুট S এবং C এর জন্য বুলিয়ান সমীকরণ তৈরি করতে পারি।
যোগফল (Sum, S):
লক্ষ্য করো, S এর মান ১ হয় যখন (A=0, B=1) অথবা (A=1, B=0)।
মিন-টার্ম (Minterm) অনুযায়ী:
$$S = \bar{A}B + A\bar{B}$$
আমরা জানি, এটি XOR গেইটের সমীকরণ।
$$S = A \oplus B$$
ক্যারি (Carry, C):
C এর মান ১ হয় শুধুমাত্র যখন (A=1, B=1)।
$$C = A \cdot B$$
উপরের চিত্রে বাম পাশে ব্লক ডায়াগ্রাম এবং ডান পাশে লজিক সার্কিট দেখানো হয়েছে। এখানে Sum বের করার জন্য একটি XOR গেইট এবং Carry বের করার জন্য একটি AND গেইট ব্যবহার করা হয়েছে।
ফুল অ্যাডার (Full Adder): পূর্ণাঙ্গ যোগের সমাধান
হাফ অ্যাডারের প্রধান সীমাবদ্ধতা হলো এটি ক্যারি বিট ইনপুট হিসেবে নিতে পারে না। কিন্তু বাস্তবে বড় কোনো সংখ্যা যোগ করতে গেলে (যেমন: ১০১ + ১১০) হাতে থাকা ক্যারি পরের ধাপে যোগ করতে হয়। এই সমস্যা সমাধানের জন্যই ফুল অ্যাডারের প্রয়োজন।
সংজ্ঞা: ফুল অ্যাডার (Full Adder)
যে সমবায় বর্তনী তিনটি ইনপুট বিট (দুটি নিজস্ব বিট A, B এবং একটি পূর্ববর্তী ক্যারি বিট $C_i$) যোগ করে একটি যোগফল (Sum) ও একটি ক্যারি আউটপুট ($C_o$) প্রদান করে, তাকে ফুল অ্যাডার বলে।
ফুল অ্যাডারের সত্যক সারণি
এখানে ইনপুট তিনটি: A, B এবং $C_i$ (Carry In)। আউটপুট দুটি: S (Sum) এবং $C_o$ (Carry Out)।
| A | B | $C_i$ | Sum ($S$) | Carry Out ($C_o$) | মন্তব্য |
|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | 0+0+0 = 0 |
| 0 | 0 | 1 | 1 | 0 | 0+0+1 = 1 |
| 0 | 1 | 0 | 1 | 0 | 0+1+0 = 1 |
| 0 | 1 | 1 | 0 | 1 | 0+1+1 = 10 (S=0, C=1) |
| 1 | 0 | 0 | 1 | 0 | 1+0+0 = 1 |
| 1 | 0 | 1 | 0 | 1 | 1+0+1 = 10 |
| 1 | 1 | 0 | 0 | 1 | 1+1+0 = 10 |
| 1 | 1 | 1 | 1 | 1 | 1+1+1 = 11 (S=1, C=1) |
সমীকরণ সরলীকরণ (Simplification)
পরীক্ষায় ফুল অ্যাডারের সমীকরণ সরলীকরণ করতে বলা হয়। চলো ধাপে ধাপে এটি দেখি।
Sum (S) এর সমীকরণ:
সত্যক সারণিতে যে লাইনগুলোতে S=1 আছে, সেই মিন-টার্মগুলো নিয়ে পাই:
$$S = \bar{A}\bar{B}C_i + \bar{A}B\bar{C_i} + A\bar{B}\bar{C_i} + ABC_i$$
সরলীকরণ:
$$S = C_i(\bar{A}\bar{B} + AB) + \bar{C_i}(\bar{A}B + A\bar{B})$$
$$S = C_i(\overline{A \oplus B}) + \bar{C_i}(A \oplus B)$$
ধরি, $X = A \oplus B$, তাহলে $S = C_i\bar{X} + \bar{C_i}X$
এটি আবার XOR গেইটের সূত্র পড়ে।
$$S = X \oplus C_i$$
$$S = A \oplus B \oplus C_i$$
Carry Out ($C_o$) এর সমীকরণ:
যেখানে $C_o = 1$ আছে, সেই মিন-টার্মগুলো নিয়ে পাই:
$$C_o = \bar{A}BC_i + A\bar{B}C_i + AB\bar{C_i} + ABC_i$$
সরলীকরণ:
$$C_o = C_i(\bar{A}B + A\bar{B}) + AB(\bar{C_i} + C_i)$$
$$C_o = C_i(A \oplus B) + AB(1)$$
$$C_o = AB + C_i(A \oplus B)$$
ফুল অ্যাডারের চূড়ান্ত সমীকরণ:
$$Sum, S = A \oplus B \oplus C_i$$
$$Carry, C_o = AB + C_i(A \oplus B)$$
সবচেয়ে গুরুত্বপূর্ণ: দুটি হাফ অ্যাডার দিয়ে ফুল অ্যাডার বাস্তবায়ন
এটি বোর্ড পরীক্ষার জন্য সবচেয়ে গুরুত্বপূর্ণ টপিক। অনেক সময় প্রশ্ন আসে: "মৌলিক গেইট দিয়ে ফুল অ্যাডার তৈরি কর" অথবা "হাফ অ্যাডারের সাহায্যে ফুল অ্যাডার তৈরি কর"। আমরা এখানে দেখব কীভাবে দুটি হাফ অ্যাডার এবং একটি OR গেইট ব্যবহার করে ফুল অ্যাডার তৈরি করা যায়।
পরীক্ষার টিপস (Exam Tip):
উদ্দীপকে যদি এমন চিত্র থাকে যেখানে দুটি একই রকম বক্স (হাফ অ্যাডার) যুক্ত হয়ে একটি বড় সার্কিট তৈরি করেছে, তবে বুঝবে এটি এই প্রশ্নটিই। প্রমাণ করার সময় সমীকরণগুলো স্পষ্টভাবে লিখতে হবে।
লজিক ডায়াগ্রাম ও কার্যপ্রণালী
একটি ফুল অ্যাডার তৈরি করতে আমাদের প্রয়োজন:
১. দুটি হাফ অ্যাডার (HA)
২. একটি OR গেইট
গাণিতিক প্রমাণ (Mathematical Proof)
ধাপ ১: প্রথম হাফ অ্যাডার
- ইনপুট: A, B
- আউটপুট (Sum): $S_1 = A \oplus B$
- আউটপুট (Carry): $C_1 = A \cdot B$
ধাপ ২: দ্বিতীয় হাফ অ্যাডার
- ইনপুট: প্রথমটির Sum ($S_1$) এবং ফুল অ্যাডারের ক্যারি ইনপুট ($C_i$)
- আউটপুট (ফাইনাল Sum): $S = S_1 \oplus C_i$
মান বসিয়ে পাই:
$$S = (A \oplus B) \oplus C_i$$
(যা ফুল অ্যাডারের Sum এর সমীকরণের সমান)
- আউটপুট (দ্বিতীয় Carry): $C_2 = S_1 \cdot C_i$
মান বসিয়ে পাই:
$$C_2 = (A \oplus B)C_i$$
ধাপ ৩: ফাইনাল ক্যারি (Carry Out)
- দুটি হাফ অ্যাডারের ক্যারি ($C_1$ এবং $C_2$) একটি OR গেইট দিয়ে যোগ করা হয়।
$$C_{out} = C_1 + C_2$$
মান বসিয়ে পাই:
$$C_{out} = AB + (A \oplus B)C_i$$
বা, $C_{out} = AB + C_i(A \oplus B)$
(যা ফুল অ্যাডারের Carry Out এর সমীকরণের সমান)
সিদ্ধান্ত: যেহেতু প্রাপ্ত সমীকরণ দুটি ফুল অ্যাডারের সমীকরণের হুবহু অনুরূপ, তাই বলা যায় দুটি হাফ অ্যাডার ও একটি OR গেইট দিয়ে ফুল অ্যাডার বাস্তবায়ন সম্ভব।
হাফ অ্যাডার ও ফুল অ্যাডারের তুলনা
| বৈশিষ্ট্যের ভিত্তি | হাফ অ্যাডার (Half Adder) | ফুল অ্যাডার (Full Adder) |
|---|---|---|
| কাজ | দুটি বিট যোগ করে। | তিনটি বিট (দুটি ইনপুট + ১টি ক্যারি) যোগ করে। |
| ইনপুট সংখ্যা | ২ টি (A, B) | ৩ টি (A, B, $C_i$) |
| আউটপুট সংখ্যা | ২ টি (S, C) | ২ টি (S, $C_o$) |
| পূর্ববর্তী ক্যারি | পূর্বের ক্যারি যোগ করতে পারে না। | পূর্বের ক্যারি যোগ করতে পারে। |
| গঠন | ১টি XOR ও ১টি AND গেইট দিয়ে তৈরি। | ২রি HA ও ১টি OR গেইট দিয়ে তৈরি। |
| ব্যবহার | শুধুমাত্র এলএসবি (LSB) বা প্রথম বিট যোগে ব্যবহৃত হয়। | পরবর্তী সকল বিট যোগে ব্যবহৃত হয়। |
প্যারালাল অ্যাডার বা রিপল ক্যারি অ্যাডার
একটি ফুল অ্যাডার মাত্র ১ বিট যোগ করতে পারে। কিন্তু আমরা যখন ৪ বিট বা ৮ বিট বা তার চেয়ে বড় সংখ্যা যোগ করতে চাই (যেমন: ১১০১ + ১০১০), তখন একাধিক ফুল অ্যাডারকে পাশাপাশি যুক্ত করতে হয়।
- ৪ বিট বাইনারি অ্যাডার তৈরি করতে ১টি হাফ অ্যাডার এবং ৩টি ফুল অ্যাডার (অথবা ৪টি ফুল অ্যাডার) প্রয়োজন।
- একে Ripple Carry Adder বলা হয় কারণ একটি অ্যাডারের ক্যারি আউটপুট ঢেউয়ের (Ripple) মতো পরবর্তী অ্যাডারের ক্যারি ইনপুট হিসেবে প্রবাহিত হয়।
সংক্ষিপ্ত সারাংশ (Quick Revision):
- হাফ অ্যাডার: ২ বিট যোগ। সমীকরণ: $S = A \oplus B$, $C = AB$।
- ফুল অ্যাডার: ৩ বিট যোগ। সমীকরণ: $S = A \oplus B \oplus C_i$, $C_o = AB + C_i(A \oplus B)$।
- বাস্তবায়ন: ফুল অ্যাডার = ২ x হাফ অ্যাডার + ১ x OR গেইট।
- কম্বিনেশনাল সার্কিট: যার মেমোরি নেই, আউটপুট বর্তমান ইনপুটের ওপর নির্ভরশীল।
পরিভাষা (Glossary)
| শব্দ (Term) | ব্যাখ্যা (Definition) |
|---|---|
| Adder | যে ডিজিটাল সার্কিট বাইনারি যোগের কাজ সম্পন্ন করে। |
| Combinational Circuit | লজিক গেইটের সমন্বয়ে তৈরি সার্কিট যার আউটপুট শুধুমাত্র বর্তমান ইনপুটের ওপর নির্ভর করে। |
| Carry Bit | যোগের ফলে উৎপন্ন অতিরিক্ত বামদিকের বিট যা পরবর্তী কলামে যোগ হয়। |
| XOR Gate | যে গেইট বিজোড় সংখ্যক ১ ইনপুট পেলে আউটপুট ১ দেয়; এটি যোগের (Sum) জন্য ব্যবহৃত হয়। |