লজিক গেট/অর্ধযোগকারী

testwiki থেকে
পরিভ্রমণে চলুন অনুসন্ধানে চলুন

অর্ধযোগকারী হলো সবচেয়ে সহজ সংমিশ্রণ সার্কিটগুলোর একটি যা দুটি একক বিটের বাইনারি সংখ্যা যোগ করতে পারে। এটি দুটি আউটপুট দেয়, যোগফল এবং ক্যারি। অর্ধযোগকারীকে ডিজিটাল গণনার সবচেয়ে মৌলিক সার্কিট বলা যায়, কারণ এর মধ্যেই লুকিয়ে আছে কম্পিউটারের গণনার মূল নীতি।

তবে অর্ধযোগকারীর একটি সীমাবদ্ধতা আছে, এটি কেবল দুটি বিট যোগ করতে পারে, পূর্ববর্তী ধাপ থেকে আসা ক্যারিকে ইনপুট হিসেবে নিতে পারে না। এই সমস্যার সমাধান করে পূর্ণযোগকারী।

ভূমিকা: কম্পিউটার কীভাবে যোগ করে?

তুমি কি কখনো ভেবেছ, কম্পিউটার কীভাবে দুটো সংখ্যা যোগ করে? তোমার হাতের ক্যালকুলেটরে যখন তুমি ৫ আর ৩ যোগ করো, ভেতরে কী হয়? উত্তরটা হলো, কম্পিউটার আসলে শুধু বিদ্যুৎ চেনে। বিদ্যুৎ আছে মানে ১, বিদ্যুৎ নেই মানে ০। এই দুটো অবস্থার বাইরে কম্পিউটার কিছুই জানে না।

তাহলে কম্পিউটার যোগ করে কীভাবে? উত্তর হলো, ছোট ছোট সার্কিটের সাহায্যে। আর সেই সার্কিটগুলোর মধ্যে সবচেয়ে ছোট এবং সবচেয়ে গুরুত্বপূর্ণ হলো অর্ধযোগকারী।

ধরো তোমার বাড়িতে দুটো সুইচ আছে, একটা সুইচ জ্বাললে একটা বাল্ব জ্বলে, আরেকটা সুইচ জ্বাললে আরেকটা বাল্ব জ্বলে। কিন্তু দুটো একসাথে জ্বাললে প্রথম বাল্বটা নেভে যায় এবং একটা আলাদা সাংকেতিক বাল্ব জ্বলে ওঠে। এই অদ্ভুত সুইচের কাহিনীই হলো অর্ধযোগকারীর গল্প।

এই অধ্যায়ে আমরা ধাপে ধাপে বুঝব:

  • বাইনারি যোগ কী এবং কেন এটা দশমিক যোগের চেয়ে সহজ
  • অর্ধযোগকারী কীভাবে কাজ করে
  • কোন লজিক গেট দিয়ে এটা তৈরি
  • এর শক্তি ও সীমাবদ্ধতা কোথায়
  • এবং কীভাবে এটা বড় সার্কিটের ভিত্তি হয়

বাস্তব জীবনের সাথে তুলনা

ধরো তুমি হাতে হাতে দুটি এক অঙ্কের সংখ্যা যোগ করছ। যেমন ৭+৮=১৫। এখানে যোগফলের একক স্থানে ৫ এবং দশক স্থানে ১ উঠে যায়, এই উঠে যাওয়া সংখ্যাটিকেই ক্যারি বলে। বাইনারিতে একই ঘটনা ঘটে, শুধু সংখ্যা দুটি হলো ০ বা ১।

মুদি দোকানের উদাহরণ

ধরো তোমার পাড়ার মুদি দোকানে দুটো ট্রে আছে। এক নম্বর ট্রেতে রাখা হয় একক দামের জিনিস, দুই নম্বর ট্রেতে রাখা হয় দশক দামের জিনিস। এখন একক ট্রেতে যদি ৯টা আপেল থাকে এবং তুমি আরো ৩টা দাও, তাহলে ১২ হয়। কিন্তু একক ট্রেতে ৯-এর বেশি রাখা যায় না। তাই ১০টা উপরের ট্রেতে চলে যায়, মানে ১টা "ক্যারি" হয় এবং একক ট্রেতে থাকে ২।

বাইনারিতে একই কথা, শুধু ট্রেতে ১-এর বেশি রাখা যায় না! ০ আর ০ যোগ হলে ০, ০ আর ১ যোগ হলে ১, কিন্তু ১ আর ১ যোগ হলে ২ হয়, যেটা বাইনারিতে ১০। মানে একক ঘরে ০ থাকে আর দশক ঘরে ১ যায়, এটাই ক্যারি।

আঙুলের হিসাব

আরেকটা সহজ উপায়ে ভাবো। তোমার হাতে দুটো আঙুল আছে ধরো, বাম হাতে একটা, ডান হাতে একটা। যদি শুধু বাম হাতের আঙুল তোলো, মানে ১ আর ০। যদি শুধু ডান হাতের আঙুল তোলো, মানে ০ আর ১। যদি দুটোই তোলো, মানে ১ আর ১। সেক্ষেত্রে মোট আঙুল হয় ২টা। কিন্তু বাইনারিতে "দুটো" বলার কোনো একক চিহ্ন নেই! তাই আমরা বলি "১০" মানে দুই হাতে একটা করে গুণা হয়েছে। এই একক ঘরটা শূন্য হয়ে যায়, এবং দশক ঘরে (বা পরের বিটে) ১ উঠে যায়।

বাইনারি সংখ্যা পদ্ধতির ভিত্তি

অর্ধযোগকারী বুঝতে হলে আগে বাইনারি সংখ্যা পদ্ধতি বুঝতে হবে। এটা আসলে খুবই সহজ, ভয় পাওয়ার কিছু নেই।

দশমিক পদ্ধতি থেকে বাইনারিতে

আমরা সাধারণত দশমিক পদ্ধতিতে গণনা করি, মানে ০ থেকে ৯ পর্যন্ত দশটা চিহ্ন ব্যবহার করি। ৯-এর পরে আর নতুন চিহ্ন নেই, তাই আমরা লিখি ১০ মানে "এক দশ আর শূন্য একক"।

বাইনারিতে মাত্র দুটো চিহ্ন আছে: ০ আর ১। তাই ১-এর পরেই আর নতুন চিহ্ন নেই। আমরা লিখি ১০ মানে "এক দুই আর শূন্য এক"।

দশমিক ও বাইনারির তুলনা
দশমিক সংখ্যা বাইনারি সংখ্যা ব্যাখ্যা
০ ০ কিছুই নেই
১ ১ এক
২ ১০ এক দুই আর শূন্য এক
৩ ১১ এক দুই আর এক এক
৪ ১০০ এক চার, শূন্য দুই, শূন্য এক
৫ ১০১ এক চার, শূন্য দুই, এক এক
৬ ১১০ এক চার, এক দুই, শূন্য এক
৭ ১১১ এক চার, এক দুই, এক এক
৮ ১০০০ এক আট, বাকি সব শূন্য

এই সারণী দেখে বোঝা যাচ্ছে, দশমিকে যেমন প্রতিটা ঘর ১০ গুণ বড় হয় (একক, দশক, শতক), বাইনারিতে প্রতিটা ঘর ২ গুণ বড় হয় (১, ২, ৪, ৮, ১৬...)।

বিট কী?

বাইনারিতে প্রতিটি ০ বা ১-কে বলা হয় একটি বিট। বিট শব্দটা এসেছে Binary digIT থেকে। একটা বিট হলো কম্পিউটারের তথ্য সংরক্ষণের সবচেয়ে ছোট একক।

অর্ধযোগকারী কাজ করে দুটো বিট নিয়ে। দুটো এক-বিট সংখ্যা যোগ করে দুটো এক-বিট আউটপুট দেয়।

বাইনারি যোগের নিয়ম

দুটো বিট যোগ করার চারটি সম্ভাব্য অবস্থা আছে। একটু মনোযোগ দিয়ে দেখো:

দুটি বিটের বাইনারি যোগ
A B যোগফল ব্যাখ্যা
০ ০ ০ ০+০=০, কিছু না যোগ কিছু না, পাওয়া গেল শূন্য
০ ১ ১ ০+১=১, শূন্যে একটা যোগ, পাওয়া গেল এক
১ ০ ১ ১+০=১, একে শূন্য যোগ, পাওয়া গেল এক
১ ১ ১০ ১+১=২=১০ (বাইনারিতে), বিপদ!

শেষ সারিতে লক্ষ করো, ১+১=১০ বাইনারিতে। এর মানে যোগফলের বিট ০ এবং একটি ক্যারি ১ পরের ঘরে যায়। তাই অর্ধযোগকারীতে দুটি আউটপুট লাগে।

শেষ সারিটা একটু বিভ্রান্তিকর মনে হতে পারে। ১ আর ১ যোগ করলে দশমিকে ২ হয়। কিন্তু বাইনারিতে ২ বলে কোনো চিহ্ন নেই! তাই ২-কে বাইনারিতে লিখতে হয় ১০ হিসেবে। এই ১০-এ দুটো বিট আছে, ডানের বিট (যোগফল বিট) হলো ০, এবং বামের বিট (ক্যারি বিট) হলো ১।

এই কারণেই অর্ধযোগকারীকে দুটো আউটপুট দিতে হয়: একটা যোগফল এবং একটা ক্যারি।

বুলিয়ান রাশি

এখন একটু গণিত। কিন্তু ভয় পেও না, এটা আসলে খুবই সরল।

দুটি ইনপুট A ও B থেকে দুটি আউটপুট পাওয়া যায়:

যোগফল
S=A⊕B
ক্যারি
C=A⋅B

এখানে ⊕ মানে এক্স-অর (XOR) গেট এবং ⋅ মানে অ্যান্ড (AND) গেট।

এক্স-অর গেট কেন যোগফলের জন্য?

এক্স-অর মানে "কেবল তখনই ১ দেয় যখন দুটো ইনপুট ভিন্ন"। অর্থাৎ:

  • ০ আর ০: একই, তাই ০
  • ০ আর ১: ভিন্ন, তাই ১
  • ১ আর ০: ভিন্ন, তাই ১
  • ১ আর ১: একই, তাই ০

এটা ঠিক বাইনারি যোগফলের সাথে মেলে! কারণ ১+১ = ১০ মানে যোগফলের বিট ০, এবং ০+০ = ০০ মানে যোগফলের বিট ০। বাকি দুটো ক্ষেত্রে যোগফল ১।

অ্যান্ড গেট কেন ক্যারির জন্য?

অ্যান্ড গেট কেবল তখনই ১ দেয় যখন দুটো ইনপুটই ১। ক্যারি কখন হয়? শুধু যখন A=১ এবং B=১, মানে ১+১ = ২ হলে। এই একটাই ক্ষেত্রে ক্যারি হয়। তাই অ্যান্ড গেট একদম মানানসই।

সত্যক সারণী

এখন একটা পরিষ্কার সারণীতে সব দেখা যাক:

অর্ধযোগকারীর সত্যক সারণী
A B যোগফল S=A⊕B ক্যারি C=A⋅B বাইনারি যোগ ব্যাখ্যা
০ ০ ০ ০ ০+০=০০ দুটোই শূন্য, সব শূন্য
০ ১ ১ ০ ০+১=০১ যোগফল ১, ক্যারি নেই
১ ০ ১ ০ ১+০=০১ যোগফল ১, ক্যারি নেই
১ ১ ০ ১ ১+১=১০ যোগফল ০, ক্যারি ১

সারণীতে লক্ষ করো শেষ কলামে ক্যারি ও যোগফল একসাথে দুই বিটের ফলাফল দেখাচ্ছে। ক্যারি বিটটি উঁচু বিট (বাম দিকের বিট) এবং যোগফল বিটটি নিচু বিট (ডান দিকের বিট)।

সারণী পড়ার কৌশল

সারণীটা আরো ভালো বুঝতে শেষ দুটো কলাম মিলিয়ে পড়ো। যেমন শেষ সারিতে C=১ এবং S=০, তাই বাইনারি ফলাফল হলো CS = ১০ (ক্যারি বাম দিকে, যোগফল ডান দিকে)। দশমিকে এটা মানে ২, এবং ১+১ = ২ হওয়া উচিত। সঠিক!

লজিক গেট পরিচিতি

অর্ধযোগকারীতে দুটো গেট ব্যবহার হয়। এগুলো ভালো বুঝতে হলে আগে গেট কী সেটা জানতে হবে।

লজিক গেট কী?

লজিক গেট হলো একটা ইলেকট্রনিক সার্কিট যেটা একটা বা একাধিক ইনপুট নিয়ে নির্দিষ্ট নিয়মে একটা আউটপুট দেয়। ইনপুট এবং আউটপুট সবসময় ০ বা ১।

এটাকে দারোয়ানের সাথে তুলনা করা যায়। দারোয়ান যেমন কিছু শর্ত পূরণ হলে দরজা খোলে, লজিক গেটও তেমনি কিছু শর্ত পূরণ হলে ১ আউটপুট দেয়।

অ্যান্ড গেট

অ্যান্ড গেটের নিয়ম: "সবাই রাজি হলেই হ্যাঁ"। দুটো ইনপুটই ১ হলে তবেই আউটপুট ১। একটাও ০ হলে আউটপুট ০।

ভালো উদাহরণ: তুমি সিনেমায় যাবে যদি তোমার মা এবং বাবা দুজনেই অনুমতি দেন। যেকোনো একজন না বললেই যাওয়া হবে না।

অ্যান্ড গেটের সত্যক সারণী
A B আউটপুট A⋅B
০ ০ ০
০ ১ ০
১ ০ ০
১ ১ ১

অর গেট

অর গেটের নিয়ম: "যেকোনো একজন রাজি হলেই হ্যাঁ"। দুটো ইনপুটের যেকোনো একটা ১ হলেই আউটপুট ১। দুটোই ০ হলেই কেবল আউটপুট ০।

উদাহরণ: ট্রাফিক লাইট সবুজ হবে যদি উত্তর দিক থেকে কেউ আসে বা পূর্ব দিক থেকে কেউ আসে।

অর গেটের সত্যক সারণী
A B আউটপুট A+B
০ ০ ০
০ ১ ১
১ ০ ১
১ ১ ১

নট গেট

নট গেটের কাজ: সব উল্টে দাও। ০ পেলে ১ দাও, ১ পেলে ০ দাও। এটা একটাই ইনপুট নেয়।

উদাহরণ: ঘরে কেউ না থাকলে বাতি জ্বলে, কেউ থাকলে বাতি নেভে (মানে উল্টো সিস্টেম)।

এক্স-অর গেট

এক্স-অর গেটের নিয়ম: "দুজন ভিন্নমত হলেই হ্যাঁ, একমত হলে না"। দুটো ইনপুট আলাদা হলে আউটপুট ১, একই হলে আউটপুট ০।

চমৎকার উদাহরণ: একটা লাইট দুটো সুইচ দিয়ে নিয়ন্ত্রণ করা হচ্ছে (যেমন সিঁড়ির আলো)। দুটো সুইচই একদিকে থাকলে আলো জ্বলে না, কিন্তু একটা উপরে আরেকটা নিচে থাকলে আলো জ্বলে।

এক্স-অর গেটের সত্যক সারণী
A B আউটপুট A⊕B কারণ
০ ০ ০ একই (দুটোই শূন্য)
০ ১ ১ ভিন্ন
১ ০ ১ ভিন্ন
১ ১ ০ একই (দুটোই এক)

লজিক সার্কিট

অর্ধযোগকারী সার্কিট তৈরিতে দুটো গেট লাগে:

অর্ধযোগকারীর লজিক সার্কিটে ব্যবহৃত গেট
আউটপুট ব্যবহৃত গেট বুলিয়ান রাশি কেন এই গেট?
যোগফল S এক্স-অর গেট S=A⊕B ভিন্ন ইনপুটে ১ দেয়, একই ইনপুটে ০, যা বাইনারি যোগের সাথে মেলে
ক্যারি C অ্যান্ড গেট C=A⋅B শুধু দুটোই ১ হলে ১ দেয়, যা ক্যারির শর্তের সাথে মেলে

উভয় গেটে একই দুটি ইনপুট A ও B দেওয়া হয়। এক্স-অর গেটের আউটপুট যোগফল এবং অ্যান্ড গেটের আউটপুট ক্যারি।

সার্কিট চিত্রের বর্ণনা

অর্ধযোগকারীর সার্কিট চিত্রটা মনে মনে ভাবো এভাবে:

বাম দিক থেকে দুটো তার আসছে, একটাতে ইনপুট A, আরেকটাতে ইনপুট B। এই দুটো তার দুটো জায়গায় যায়, একটা যায় এক্স-অর গেটে, আরেকটা যায় অ্যান্ড গেটে। এক্স-অর গেটের আউটপুট হলো যোগফল S, অ্যান্ড গেটের আউটপুট হলো ক্যারি C।

মাত্র দুটো গেট! এতটাই সহজ। কিন্তু এই দুটো গেটের সমন্বয়ই কম্পিউটারের যোগ করার মূল ক্ষমতার ভিত্তি।

অর্ধযোগকারীর ধাপে ধাপে কাজের পদ্ধতি

এখন একটু হাতে-কলমে দেখা যাক, বিভিন্ন ইনপুটের জন্য অর্ধযোগকারী কীভাবে কাজ করে।

ঘটনা ১: A = ০, B = ০

ইনপুট দুটো শূন্য। মাঠে কেউ নেই।

এক্স-অর গেটে: ০⊕০=০ (একই, তাই শূন্য) অ্যান্ড গেটে: ০⋅০=০ (দুটোই শূন্য, তাই শূন্য)

ফলাফল: S=০, C=০

যোগ: ০ + ০ = ০০ (দুই বিটে), যা সঠিক।

ঘটনা ২: A = ০, B = ১

একটা শূন্য, একটা এক।

এক্স-অর গেটে: ০⊕১=১ (ভিন্ন, তাই এক) অ্যান্ড গেটে: ০⋅১=০ (একটা শূন্য আছে, তাই শূন্য)

ফলাফল: S=১, C=০

যোগ: ০ + ১ = ০১ (দুই বিটে), যা সঠিক।

ঘটনা ৩: A = ১, B = ০

একটা এক, একটা শূন্য।

এক্স-অর গেটে: ১⊕০=১ (ভিন্ন, তাই এক) অ্যান্ড গেটে: ১⋅০=০ (একটা শূন্য আছে, তাই শূন্য)

ফলাফল: S=১, C=০

যোগ: ১ + ০ = ০১ (দুই বিটে), যা সঠিক।

ঘটনা ৪: A = ১, B = ১

দুটোই এক। এখানেই মজা!

এক্স-অর গেটে: ১⊕১=০ (একই, তাই শূন্য) অ্যান্ড গেটে: ১⋅১=১ (দুটোই এক, তাই এক)

ফলাফল: S=০, C=১

যোগ: ১ + ১ = ১০ (দুই বিটে), যা সঠিক। ক্যারি ১ পরের ঘরে যাবে।

ন্যান্ড গেট দিয়ে অর্ধযোগকারী

সার্বজনীন গেট হিসেবে ন্যান্ড গেট দিয়েও অর্ধযোগকারী তৈরি করা যায়। এক্স-অর গেটকে ন্যান্ড গেট দিয়ে প্রকাশ করলে:

S=A⊕B=A⋅AB‾‾⋅B⋅AB‾‾

এবং ক্যারির জন্য:

C=AB=AB‾‾

মোট চারটি ন্যান্ড গেট দিয়ে একটি সম্পূর্ণ অর্ধযোগকারী তৈরি করা যায়।

ন্যান্ড গেট কেন বিশেষ?

ন্যান্ড গেটকে বলা হয় সার্বজনীন গেট। এর মানে হলো শুধু ন্যান্ড গেট দিয়েই সব ধরনের লজিক সার্কিট তৈরি করা সম্ভব। এমনকি অ্যান্ড, অর, নট, এক্স-অর সব গেটই ন্যান্ড গেট দিয়ে বানানো যায়।

ন্যান্ড গেটের সত্যক সারণী
A B আউটপুট A⋅B‾ ব্যাখ্যা
০ ০ ১ অ্যান্ডের উল্টো: ০ এর উল্টো ১
০ ১ ১ অ্যান্ডের উল্টো: ০ এর উল্টো ১
১ ০ ১ অ্যান্ডের উল্টো: ০ এর উল্টো ১
১ ১ ০ অ্যান্ডের উল্টো: ১ এর উল্টো ০

ন্যান্ড গেট দিয়ে অ্যান্ড গেট

একটা ন্যান্ড গেটের আউটপুটে আরেকটা ন্যান্ড গেট লাগাও (যার দুটো ইনপুট একসাথে জোড়া), তাহলে অ্যান্ড গেট পাওয়া যায়। কারণ দুইবার উল্টালে আবার সোজা হয়।

ন্যান্ড গেট দিয়ে নট গেট

একটা ন্যান্ড গেটের দুটো ইনপুট একসাথে জোড়া দাও। তখন এটা নট গেটের মতো কাজ করে। কারণ ১ আর ১ দিলে ন্যান্ড ০ দেয়, ০ আর ০ দিলে ন্যান্ড ১ দেয়। ঠিক নটের মতো।

চারটি ন্যান্ড গেট দিয়ে অর্ধযোগকারী

১. প্রথম ন্যান্ড গেটে A এবং B ইনপুট দাও। আউটপুট হবে AB‾। ২. দ্বিতীয় ন্যান্ড গেটে A এবং AB‾ ইনপুট দাও। ৩. তৃতীয় ন্যান্ড গেটে B এবং AB‾ ইনপুট দাও। ৪. চতুর্থ ন্যান্ড গেটে দ্বিতীয় ও তৃতীয় গেটের আউটপুট দাও, এটাই S। ৫. প্রথম গেটের আউটপুটে আরেকটা ন্যান্ড গেট (নট হিসেবে) লাগাও, এটাই C।

এভাবে মাত্র চার থেকে পাঁচটা ন্যান্ড গেট দিয়ে পুরো অর্ধযোগকারী তৈরি হয়।

বুলিয়ান বীজগণিত ও প্রমাণ

এই অংশে আমরা একটু গভীরে যাব এবং বুলিয়ান বীজগণিত ব্যবহার করে প্রমাণ করব যে এক্স-অর এবং অ্যান্ড গেটই সঠিক পছন্দ।

বুলিয়ান বীজগণিতের মূল নিয়ম

বুলিয়ান বীজগণিত হলো এমন এক গণিত যেখানে চলকের মান শুধু ০ বা ১ হয়।

মূল নিয়মগুলো:

অ্যান্ড নিয়ম:

  • A⋅০=০
  • A⋅১=A
  • A⋅A=A
  • A⋅A‾=০

অর নিয়ম:

  • A+০=A
  • A+১=১
  • A+A=A
  • A+A‾=১

নট নিয়ম:

  • A‾‾=A

এক্স-অর গেটের বুলিয়ান রাশি প্রমাণ

এক্স-অর গেটকে অ্যান্ড, অর, নট গেট দিয়ে প্রকাশ করা যায়:

A⊕B=AB‾+A‾B

এর মানে: "A সত্য কিন্তু B মিথ্যা" অথবা "A মিথ্যা কিন্তু B সত্য"।

এটা ঠিক বাইনারি যোগের যোগফল বিটের সাথে মেলে। যখন দুটো আলাদা হয় তখনই ১ পাই, যখন দুটো একই হয় তখন ০ পাই।

অ্যান্ড গেটের ক্যারি প্রমাণ

ক্যারি কেবল তখনই ১ হয় যখন দুটো ইনপুটই ১:

C=A⋅B

এটা অ্যান্ড গেটের সংজ্ঞার সাথেই মিলে যায়।

অর্ধযোগকারীর সীমাবদ্ধতা

অর্ধযোগকারী কেবল দুটি ইনপুট বিট যোগ করতে পারে, পূর্ববর্তী ধাপ থেকে আসা ক্যারি ইনপুট নেওয়ার কোনো ব্যবস্থা নেই। তাই একাধিক বিটের সংখ্যা যোগ করতে গেলে সমস্যা হয়।

সমস্যাটা বিস্তারিত

ধরো তুমি দুটো দুই-বিটের সংখ্যা যোগ করতে চাও: ১১২+০১২।

দশমিকে এটা: ৩ + ১ = ৪।

বাইনারিতে ধাপে ধাপে:

প্রথম ধাপ (একক বিট বা ডান দিকের বিট):

১+১=১০

যোগফল বিট = ০, ক্যারি = ১।

দ্বিতীয় ধাপ (দ্বিতীয় বিট বা বাম দিকের বিট):

১+০+১(ক্যারি)=?

এখানে তিনটা সংখ্যা যোগ হচ্ছে! অর্ধযোগকারী মাত্র দুটো ইনপুট নিতে পারে, তৃতীয় ইনপুট (ক্যারি-ইন) নেওয়ার কোনো ব্যবস্থা নেই।

তাই ১ + ০ + ১ = ২ = বাইনারিতে ১০ হওয়া উচিত। কিন্তু অর্ধযোগকারী শুধু ১ + ০ করতে পারে এবং ক্যারি-ইনটা হিসাবে নেয় না।

এই সীমাবদ্ধতার কারণে অর্ধযোগকারী দিয়ে শুধু সর্বনিম্ন বিটের যোগই করা যায়, বাকি বিটগুলোর জন্য পূর্ণযোগকারী দরকার।

একটা মজাদার তুলনা

ধরো তুমি একটা দলে কাজ করছ যেখানে প্রথম সদস্য দুটো সংখ্যা যোগ করে ফলাফল ও একটা চিরকুট পরের সদস্যকে দেয়। অর্ধযোগকারী হলো সেই প্রথম সদস্য, যে চিরকুট পাঠাতে পারে কিন্তু আগের কারো কাছ থেকে চিরকুট নিতে পারে না। পূর্ণযোগকারী হলো মাঝখানের বা শেষের সদস্য, যে আগের চিরকুটও নেয় এবং পরেরজনকেও চিরকুট পাঠায়।

পূর্ণযোগকারী: অর্ধযোগকারীর উত্তরসূরি

পূর্ণযোগকারী তিনটা ইনপুট নেয়: A, B, এবং ক্যারি-ইন Cin। দুটো আউটপুট দেয়: যোগফল S এবং ক্যারি-আউট Cout।

পূর্ণযোগকারীর সত্যক সারণী

পূর্ণযোগকারীর সত্যক সারণী
A B Cin S Cout ব্যাখ্যা
০ ০ ০ ০ ০ ০+০+০=০
০ ০ ১ ১ ০ ০+০+১=১
০ ১ ০ ১ ০ ০+১+০=১
০ ১ ১ ০ ১ ০+১+১=২=১০
১ ০ ০ ১ ০ ১+০+০=১
১ ০ ১ ০ ১ ১+০+১=২=১০
১ ১ ০ ০ ১ ১+১+০=২=১০
১ ১ ১ ১ ১ ১+১+১=৩=১১

পূর্ণযোগকারীর বুলিয়ান রাশি

পূর্ণযোগকারীর যোগফল ও ক্যারির রাশি:

S=A⊕B⊕Cin
Cout=A⋅B+Cin⋅(A⊕B)

দুটো অর্ধযোগকারী দিয়ে পূর্ণযোগকারী

পূর্ণযোগকারী বানানো যায় দুটো অর্ধযোগকারী এবং একটা অর গেট দিয়ে।

ধাপ ১: প্রথম অর্ধযোগকারীতে A ও B ইনপুট দাও। এটা দেয় S1=A⊕B এবং C1=A⋅B।

ধাপ ২: দ্বিতীয় অর্ধযোগকারীতে S1 ও Cin ইনপুট দাও। এটা দেয় S=S1⊕Cin এবং C2=S1⋅Cin।

ধাপ ৩: অর গেটে C1 ও C2 দাও। এটা দেয় চূড়ান্ত ক্যারি-আউট Cout=C1+C2।

এই পদ্ধতিতে দুটো অর্ধযোগকারী আর একটা অর গেট দিয়ে পুরো পূর্ণযোগকারী তৈরি।

অর্ধযোগকারী ও পূর্ণযোগকারীর তুলনা

অর্ধযোগকারী ও পূর্ণযোগকারীর বিস্তারিত তুলনা
বৈশিষ্ট্য অর্ধযোগকারী পূর্ণযোগকারী
ইনপুটের সংখ্যা ২ (A, B) ৩ (A, B, ক্যারি-ইন)
আউটপুটের সংখ্যা ২ (যোগফল, ক্যারি) ২ (যোগফল, ক্যারি-আউট)
ক্যারি-ইন নেই আছে
প্রয়োজনীয় গেট এক্স-অর + অ্যান্ড দুটো অর্ধযোগকারী + অর গেট
বহু-বিট যোগে ব্যবহার কেবল সর্বনিম্ন বিটে যেকোনো বিটে
জটিলতা সহজ মাঝারি
গেটের সংখ্যা ২ ৫ (বা ৯ ন্যান্ড গেট)
ব্যবহারক্ষেত্র সব বহু-বিট যোগে

বহু-বিট যোগকারীতে অর্ধযোগকারীর ভূমিকা

দুটো বহু-বিট সংখ্যা যোগ করতে একটি অর্ধযোগকারী ও একাধিক পূর্ণযোগকারীর প্রয়োজন হয়। সর্বনিম্ন বিট অর্থাৎ একক স্থানে অর্ধযোগকারী ব্যবহার করা হয় (কারণ সেখানে কোনো ক্যারি-ইন নেই) এবং বাকি সব বিটে পূর্ণযোগকারী ব্যবহার করা হয়।

চার বিটের যোগকারী

উদাহরণ হিসেবে চার বিটের যোগকারীতে:

সর্বনিম্ন বিট (বিট ০) অর্ধযোগকারী: এটা A এর বিট ০ এবং B এর বিট ০ যোগ করে। ক্যারি-ইন নেই কারণ এটাই প্রথম ধাপ।

দ্বিতীয় বিট (বিট ১) পূর্ণযোগকারী: এটা A এর বিট ১, B এর বিট ১ এবং বিট ০ এর ক্যারি যোগ করে।

তৃতীয় বিট (বিট ২) পূর্ণযোগকারী: এটা A এর বিট ২, B এর বিট ২ এবং বিট ১ এর ক্যারি যোগ করে।

চতুর্থ বিট (বিট ৩) পূর্ণযোগকারী: এটা A এর বিট ৩, B এর বিট ৩ এবং বিট ২ এর ক্যারি যোগ করে।

সর্বশেষ ক্যারি যদি ১ হয়, তাহলে পাঁচ বিটের ফলাফল।

আট বিটের যোগকারী

একইভাবে আট বিটের যোগকারীতে একটা অর্ধযোগকারী এবং সাতটা পূর্ণযোগকারী লাগে।

ষোল বিটের যোগকারীতে একটা অর্ধযোগকারী এবং পনেরোটা পূর্ণযোগকারী লাগে।

আধুনিক কম্পিউটারে ৬৪ বিটের যোগকারী থাকে, মানে একটা অর্ধযোগকারী এবং ৬৩টা পূর্ণযোগকারী।

রিপল ক্যারি যোগকারী

এই পদ্ধতিতে যেখানে ক্যারি একটার পর একটা ধাপে এগিয়ে যায়, সেটাকে বলা হয় রিপল ক্যারি যোগকারী। এখানে প্রতিটা ধাপ আগের ধাপের ক্যারির জন্য অপেক্ষা করে, তাই কিছুটা ধীর।

এই সমস্যা সমাধানে আধুনিক কম্পিউটারে ক্যারি লুকঅ্যাহেড যোগকারী ব্যবহার হয়, যেটা আগে থেকেই ক্যারি হিসাব করে রাখে।

অর্ধযোগকারীর বাস্তব প্রয়োগ

এখন দেখা যাক অর্ধযোগকারী বাস্তব জীবনে কোথায় কোথায় লাগে।

ক্যালকুলেটর

তোমার হাতের ক্যালকুলেটর থেকে শুরু করে কম্পিউটারের প্রসেসর পর্যন্ত সব জায়গায় যোগকারী সার্কিট আছে। এই যোগকারীগুলোর মূলে আছে অর্ধযোগকারী এবং পূর্ণযোগকারী।

ডিজিটাল ঘড়ি

ডিজিটাল ঘড়িতে সময় গণনার জন্য যোগ করার দরকার হয়। প্রতি সেকেন্ডে ১ যোগ হয়। এই গণনায় বাইনারি যোগকারী সার্কিট ব্যবহার হয়।

মেমরি ঠিকানা গণনা

কম্পিউটারের মেমরিতে ডেটা পড়তে বা লিখতে ঠিকানা হিসাব করতে হয়। এই হিসাবেও বাইনারি যোগ লাগে।

প্রোগ্রামেবল লজিক ডিভাইস

ফিল্ড প্রোগ্রামেবল গেট অ্যারে তে অর্ধযোগকারী একটি মূল মডিউল হিসেবে ব্যবহৃত হয়।

বিটকয়েন মাইনিং

বিটকয়েন মাইনিংয়ে যে হ্যাশ ফাংশন ব্যবহার হয়, সেখানে প্রচুর বাইনারি যোগ দরকার। বিশেষ মাইনিং চিপে কোটি কোটি যোগকারী সার্কিট একসাথে কাজ করে।

ট্রানজিস্টর স্তরে অর্ধযোগকারী

এখন আরো গভীরে যাই। লজিক গেটগুলো কীভাবে বানানো হয়?

ট্রানজিস্টর কী?

ট্রানজিস্টর হলো একটা ইলেকট্রনিক সুইচ। এটা নিয়ন্ত্রণ সংকেত দিয়ে চালু বা বন্ধ করা যায়। একটা আধুনিক প্রসেসরে কয়েক বিলিয়ন ট্রানজিস্টর থাকে।

সিমস ট্রানজিস্টর দিয়ে গেট

আধুনিক চিপে সিমস ট্রানজিস্টর ব্যবহার হয়। এতে দুই ধরনের ট্রানজিস্টর থাকে: পি-চ্যানেল এবং এন-চ্যানেল।

একটা সিমস অ্যান্ড গেটে ৬টা ট্রানজিস্টর লাগে। একটা সিমস এক্স-অর গেটে প্রায় ১২টা ট্রানজিস্টর লাগে।

তাহলে একটা অর্ধযোগকারীতে মোট প্রায় ১৮টা ট্রানজিস্টর লাগে।

আধুনিক ৭ ন্যানোমিটার প্রযুক্তিতে প্রতিটা ট্রানজিস্টরের আকার একটা ভাইরাসের চেয়ে ছোট!

বাস্তব চিপের নকশা

একটা ৬৪ বিটের প্রসেসরের অ্যারিথমেটিক লজিক ইউনিটে অনেক যোগকারী সার্কিট থাকে। এর সাথে থাকে বিয়োগ, গুণ, ভাগের সার্কিটও। আধুনিক প্রসেসরে এই হিসাবগুলো মাত্র কয়েক ন্যানোসেকেন্ডে হয়।

কার্নো মানচিত্র =

বুলিয়ান রাশি সরল করার একটা চমৎকার পদ্ধতি হলো কার্নো মানচিত্র। অর্ধযোগকারীর জন্যও এটা ব্যবহার করা যায়।

যোগফলের কার্নো মানচিত্র

যোগফল S=A⊕B এর জন্য কার্নো মানচিত্র:

যোগফলের কার্নো মানচিত্র
| style="background:#3498DB; color:white;" | B=০ B=১
A=০ ০ ১
A=১ ১ ০

এই মানচিত্রে ১-গুলো কোনো দল গঠন করে না, তাই সরল করার সুযোগ নেই। এটাই এক্স-অর গেটের বৈশিষ্ট্য।

ক্যারির কার্নো মানচিত্র

ক্যারি C=A⋅B এর জন্য কার্নো মানচিত্র:

ক্যারির কার্নো মানচিত্র
B=০ B=১
A=০ ০ ০
A=১ ০ ১

এখানে একটামাত্র ১ আছে, A=১ এবং B=১ ঘরে। কোনো সরলীকরণ সম্ভব নয়। সরলতম রাশি হলো C=AB, যা অ্যান্ড গেট।

ইন্টিগ্রেটেড সার্কিটে অর্ধযোগকারী

শুধু তত্ত্বে নয়, বাস্তবে অর্ধযোগকারী কীভাবে তৈরি হয়?

TTL পরিবার

ট্রানজিস্টর-ট্রানজিস্টর লজিক পরিবারে ৭৪ সিরিজের চিপ ব্যবহৃত হতো। এই চিপগুলোতে বিভিন্ন লজিক ফাংশন তৈরি করা ছিল।

CMOS পরিবার

আধুনিক ইলেকট্রনিক্সে সিমস প্রযুক্তি ব্যবহার হয়। এটা বিদ্যুৎ কম খরচ করে এবং আকারে ছোট।

ফিল্ড প্রোগ্রামেবল গেট অ্যারে

ফিল্ড প্রোগ্রামেবল গেট অ্যারে তে নির্দিষ্ট লজিক ব্লক থাকে যেগুলো প্রোগ্রামিং করে বিভিন্ন সার্কিট তৈরি করা যায়। এখানে অর্ধযোগকারী একটি মূল মডিউল।

সিমুলেশন ও পরীক্ষা

একটা অর্ধযোগকারী কীভাবে সিমুলেট বা পরীক্ষা করা যায়?

ব্রেডবোর্ডে পরীক্ষা

ব্রেডবোর্ড হলো একটা প্লাস্টিকের বোর্ড যেখানে কোনো সোল্ডার না করে সার্কিট তৈরি করা যায়।

অর্ধযোগকারী তৈরির উপকরণ:

  • একটা ৭৪৮৬ চিপ (যাতে চারটা এক্স-অর গেট আছে)
  • একটা ৭৪০৮ চিপ (যাতে চারটা অ্যান্ড গেট আছে)
  • দুটো সুইচ (ইনপুটের জন্য)
  • দুটো এলইডি (আউটপুট দেখার জন্য)
  • রেজিস্টর ও তার

সংযোগ: ১. এক্স-অর গেটের দুটো ইনপুটে দুটো সুইচ লাগাও। ২. অ্যান্ড গেটের দুটো ইনপুটেও একই সুইচ দুটো লাগাও। ৩. এক্স-অর গেটের আউটপুটে একটা এলইডি লাগাও (যোগফল দেখাবে)। ৪. অ্যান্ড গেটের আউটপুটে আরেকটা এলইডি লাগাও (ক্যারি দেখাবে)।

এখন সুইচ অন-অফ করে চারটা অবস্থা পরীক্ষা করো।

সফটওয়্যার সিমুলেশন

লজিসিম নামের বিনামূল্যের সফটওয়্যারে অর্ধযোগকারী সিমুলেট করা যায়। এতে গেট টেনে এনে সংযোগ করা যায় এবং সত্যক সারণী যাচাই করা যায়।

অ্যালগরিদম স্তরে বাইনারি যোগ

এখন একটু উপর থেকে দেখা যাক, সফটওয়্যারে বাইনারি যোগ কীভাবে হয়।

বিটওয়াইজ অপারেশন

প্রোগ্রামিং ভাষায় বিটওয়াইজ অপারেটর থাকে যেগুলো সরাসরি বিট স্তরে কাজ করে।

এক্স-অর অপারেটর (^): দুটো সংখ্যার প্রতিটা বিট এক্স-অর করে। অ্যান্ড অপারেটর (&): দুটো সংখ্যার প্রতিটা বিট অ্যান্ড করে। বাম শিফট অপারেটর (<<): বিটগুলো বাম দিকে সরায়।

বাইনারি যোগের অ্যালগরিদম

দুটো পূর্ণ সংখ্যা a এবং b যোগ করার অ্যালগরিদম শুধু বিটওয়াইজ অপারেশন দিয়ে:

ধাপ ১: যোগফল বিট = a⊕b (ক্যারি ছাড়া যোগ) ধাপ ২: ক্যারি বিট = (a&b)≪১ (ক্যারি এক বিট বাম দিকে শিফট) ধাপ ৩: ক্যারি শূন্য না হওয়া পর্যন্ত ১ এবং ২ ধাপ নিয়ে আবার করো।

এই অ্যালগরিদম ঠিক অর্ধযোগকারীর নীতি ব্যবহার করে। প্রতিটা পুনরাবৃত্তিতে একটা অর্ধযোগকারী কাজ করে।

বিশেষ ক্ষেত্র: বিয়োগ, গুণ ও ভাগ

বাইনারি যোগকারীকে অন্য অপারেশনেও ব্যবহার করা যায়।

বিয়োগ: দ্বির পূরক পদ্ধতি

কম্পিউটারে বিয়োগ করা হয় নেতিবাচক সংখ্যার যোগ করে। একটা সংখ্যার নেতিবাচক মান পাওয়া যায় দ্বির পূরক পদ্ধতিতে।

দ্বির পূরক = সব বিট উল্টাও এবং ১ যোগ করো।

উদাহরণ: ৫ কে ৮ বিটে দেখাও: ০০০০০১০১। এর দ্বির পূরক: ১১১১১০১১।

তাহলে ৭ বিয়োগ ৫ = ৭ যোগ (-৫) = ৭ যোগ (দ্বির পূরক ৫)।

এই পদ্ধতিতে একই যোগকারী সার্কিট বিয়োগেও ব্যবহার করা যায়। শুধু একটা নট গেট এবং ক্যারি-ইনে ১ দিলেই হলো।

গুণ: বারবার যোগ

গুণ আসলে বারবার যোগ। তবে বিটওয়াইজ শিফট এবং যোগের সমন্বয়ে গুণ করা যায়।

উদাহরণ: ৬ গুণন ৩ = ৬ গুণন (২+১) = (৬ গুণন ২) + (৬ গুণন ১) = ১২ + ৬ = ১৮।

হার্ডওয়্যারে গুণের জন্য বারবার যোগ এবং বিট শিফটের সংমিশ্রণ ব্যবহার হয়।

ভাগ: বিয়োগ ভিত্তিক

ভাগ করা হয় বারবার বিয়োগ করে। তবে আধুনিক কম্পিউটারে দ্রুততর পদ্ধতি ব্যবহার হয়।

ইতিহাস ও উদ্ভব

অর্ধযোগকারীর ইতিহাস বেশ চমকপ্রদ।

বুলিয়ান বীজগণিতের জন্ম

১৮৫৪ সালে জর্জ বুল তার "লজিকের গাণিতিক বিশ্লেষণ" বইয়ে বুলিয়ান বীজগণিত প্রকাশ করেন। এই গণিত যেখানে চলকের মান শুধু সত্য বা মিথ্যা হয়।

ক্লড শ্যানন এর অবদান

১৯৩৭ সালে ক্লড শ্যানন তার মাস্টার্স থিসিসে দেখান যে বুলিয়ান বীজগণিত দিয়ে ইলেকট্রিক সুইচিং সার্কিট ডিজাইন করা যায়। এই কাজকে বলা হয় "ইতিহাসের সবচেয়ে মূল্যবান মাস্টার্স থিসিস"।

প্রথম ডিজিটাল কম্পিউটার

১৯৪০-এর দশকে প্রথম ইলেকট্রনিক কম্পিউটার তৈরি হয়। এনিয়াক কম্পিউটারে ১৭,৪৬৮টা ভ্যাকুয়াম টিউব ছিল যেগুলো লজিক গেটের কাজ করত।

ট্রানজিস্টরের আবিষ্কার

১৯৪৭ সালে বেল ল্যাবসে ট্রানজিস্টর আবিষ্কার হয়। এর ফলে ভ্যাকুয়াম টিউব সরিয়ে ছোট, দ্রুত এবং কম বিদ্যুৎ-খরচের সার্কিট তৈরি সম্ভব হয়।

ইন্টিগ্রেটেড সার্কিট

১৯৫৮ সালে জ্যাক কিলবি ইন্টিগ্রেটেড সার্কিট আবিষ্কার করেন। এর ফলে একটা চিপেই হাজার হাজার ট্রানজিস্টর ধরানো সম্ভব হয়।

মুরের সূত্র

১৯৬৫ সালে গর্ডন মুর পর্যবেক্ষণ করেন যে প্রতি দুই বছরে চিপে ট্রানজিস্টরের সংখ্যা দ্বিগুণ হচ্ছে। এই প্রবণতা আজও অব্যাহত আছে।

সংখ্যা পদ্ধতি ও অর্ধযোগকারীর বিস্তার

এখন একটু ভিন্ন দিক থেকে দেখা যাক।

ষোড়দশ পদ্ধতিতে বাইনারি

প্রোগ্রামিংয়ে বাইনারি সংখ্যা প্রায়ই ষোড়দশ পদ্ধতিতে লেখা হয়। ষোড়দশ পদ্ধতিতে ০ থেকে ৯ এবং A থেকে F পর্যন্ত ষোলটা চিহ্ন আছে।

প্রতিটা ষোড়দশ সংখ্যা চারটা বিটের সমান।

বাইনারি ও ষোড়দশ রূপান্তর
বাইনারি ষোড়দশ দশমিক
০০০০ ০ ০
০০০১ ১ ১
০০১০ ২ ২
১০১০ A ১০
১১১১ F ১৫

বাইনারি কোডেড দশমিক

বাইনারি কোডেড দশমিক পদ্ধতিতে প্রতিটা দশমিক অঙ্ককে চারটা বিট দিয়ে প্রকাশ করা হয়। যেমন দশমিক ৯৩ লেখা হয় ১০০১ ০০১১ হিসেবে।

এই পদ্ধতিতে যোগ করার জন্য বিশেষ সংশোধন দরকার।

উন্নত বিষয়: ক্যারি লুকঅ্যাহেড

রিপল ক্যারি যোগকারীতে সমস্যা হলো ক্যারি একটার পর একটা ধাপে এগোয়, তাই সময় বেশি লাগে।

প্রি-পেইড ক্যারি

ক্যারি লুকঅ্যাহেড যোগকারীতে আগে থেকেই হিসাব করে রাখা হয় কোন বিটে ক্যারি হবে।

দুটো ফাংশন সংজ্ঞায়িত করা হয়:

ক্যারি জেনারেট: Gi=Ai⋅Bi (এই বিটেই ক্যারি তৈরি হবে) ক্যারি প্রোপাগেট: Pi=Ai⊕Bi (আগের ক্যারি এগিয়ে দেবে)

এই দুটো ফাংশন ব্যবহার করে যেকোনো বিটের ক্যারি আগে থেকে হিসাব করা যায়।

গতির পার্থক্য

রিপল ক্যারিতে ৬৪ বিটের যোগে ৬৩টা ধাপ অপেক্ষা করতে হয়।

ক্যারি লুকঅ্যাহেডে মাত্র কয়েকটা স্তরে সব ক্যারি হিসাব হয়।

কোয়ান্টাম কম্পিউটিংয়ে যোগ

ভবিষ্যতের কম্পিউটিংয়ে কোয়ান্টাম কম্পিউটার ব্যবহার হবে।

কিউবিট

কোয়ান্টাম কম্পিউটারে বিট এর বদলে কিউবিট থাকে। কিউবিট একসাথে ০ এবং ১ উভয়ই হতে পারে, একে বলা হয় সুপারপজিশন।

কোয়ান্টাম যোগ

কোয়ান্টাম কম্পিউটারেও যোগকারী সার্কিট লাগে। কোয়ান্টাম অর্ধযোগকারী ক্লাসিক অর্ধযোগকারীর মতোই কাজ করে, তবে কিউবিট দিয়ে।

কোয়ান্টাম এক্স-অর গেটকে বলা হয় সিএনওটি গেট।

উদাহরণ

উদাহরণ ১: সরল যোগ

A=১, B=১ হলে অর্ধযোগকারীর আউটপুট নির্ণয় করো।

প্রথমে এক্স-অর গেট দিয়ে যোগফল হিসাব করি:

S=A⊕B=১⊕১=০

কারণ: দুটো ইনপুট একই (দুটোই ১), তাই এক্স-অর দেয় ০।

এরপর অ্যান্ড গেট দিয়ে ক্যারি হিসাব করি:

C=A⋅B=১⋅১=১

কারণ: দুটো ইনপুটই ১, তাই অ্যান্ড দেয় ১।

ফলাফল: যোগফল =০, ক্যারি =১।

যাচাই: বাইনারিতে ১+১=১০, যার ডান বিট (যোগফল) = ০ এবং বাম বিট (ক্যারি) = ১। সঠিক!

উদাহরণ ২: শূন্য ও এক

A=০, B=১ হলে অর্ধযোগকারীর আউটপুট নির্ণয় করো।

এক্স-অর:

S=০⊕১=১

কারণ: দুটো ইনপুট ভিন্ন (০ এবং ১), তাই এক্স-অর দেয় ১।

অ্যান্ড:

C=০⋅১=০

কারণ: একটা ইনপুট ০, তাই অ্যান্ড দেয় ০।

ফলাফল: যোগফল =১, ক্যারি =০।

যাচাই: ০+১=০১, যার ডান বিট = ১ এবং বাম বিট = ০। সঠিক!

উদাহরণ ৩: দুই বিটের যোগ যাচাই

(১১)২+(০১)২ এর সর্বনিম্ন বিটে অর্ধযোগকারীর আউটপুট নির্ণয় করো।

দশমিকে এটা: ৩ + ১ = ৪, বাইনারিতে হওয়া উচিত ১০০।

একক স্থানে A=১, B=১:

S=১⊕১=০
C=১⋅১=১

সর্বনিম্ন বিটের যোগফল ০ এবং দ্বিতীয় বিটে ক্যারি ১ যাবে।

দ্বিতীয় বিটে পূর্ণযোগকারী দিয়ে: A=১, B=০, Cin=১:

S2=১⊕০⊕১=০
C2=১⋅০+১⋅(১⊕০)=০+১⋅১=১

তৃতীয় বিট হলো এই ক্যারি = ১।

চূড়ান্ত ফলাফল: বিট ২ = ১, বিট ১ = ০, বিট ০ = ০, মানে ১০০। দশমিকে ৪। সঠিক!

উদাহরণ ৪: সত্যক সারণী হাতে তৈরি

একটি অর্ধযোগকারীর জন্য হাতে সত্যক সারণী তৈরি করো এবং প্রতিটি ঘরের মান ব্যাখ্যা করো।

সারণীর চারটি সারি আছে কারণ দুটো এক-বিট ইনপুটের সংমিশ্রণ সর্বোচ্চ ২২=৪টা।

সারি ১: A=০, B=০। এক্স-অর: ০⊕০ = ০ (একই, তাই শূন্য) অ্যান্ড: ০·০ = ০ (দুটোই শূন্য) S=০, C=০। যোগ: ০+০=০০

সারি ২: A=০, B=১। এক্স-অর: ০⊕১ = ১ (ভিন্ন, তাই এক) অ্যান্ড: ০·১ = ০ (একটা শূন্য) S=১, C=০। যোগ: ০+১=০১

সারি ৩: A=১, B=০। এক্স-অর: ১⊕০ = ১ (ভিন্ন, তাই এক) অ্যান্ড: ১·০ = ০ (একটা শূন্য) S=১, C=০। যোগ: ১+০=০১

সারি ৪: A=১, B=১। এক্স-অর: ১⊕১ = ০ (একই, তাই শূন্য) অ্যান্ড: ১·১ = ১ (দুটোই এক) S=০, C=১। যোগ: ১+১=১০

উদাহরণ ৫: ন্যান্ড গেট যাচাই

ন্যান্ড গেট দিয়ে তৈরি অর্ধযোগকারীতে A=১, B=০ দিলে ফলাফল নির্ণয় করো।

প্রথম ন্যান্ড গেট: N₁ = NAND(A, B) = NAND(১, ০) = ১ (কারণ অ্যান্ড ০, তার উল্টো ১)

দ্বিতীয় ন্যান্ড গেট: N₂ = NAND(A, N₁) = NAND(১, ১) = ০

তৃতীয় ন্যান্ড গেট: N₃ = NAND(B, N₁) = NAND(০, ১) = ১

যোগফল: S = NAND(N₂, N₃) = NAND(০, ১) = ১

ক্যারি: C = NAND(N₁, N₁) = NAND(১, ১) = ০ (এটা নট(N₁·N₁) = নট(N₁))

ফলাফল: S=১, C=০। এটা A=১, B=০ এর সঠিক উত্তর!

উদাহরণ ৬: বাস্তব সমস্যা

একটি ডিজিটাল ব্যবস্থায় দুটো সেন্সর আছে। সেন্সর A সক্রিয় হলে ১, নিষ্ক্রিয় হলে ০। একইভাবে সেন্সর B। যদি দুটো সেন্সরই একসাথে সক্রিয় হয়, তাহলে একটা বিশেষ সংকেত পাঠাতে হবে (ক্যারি আউটপুট)। আর যদি ঠিক একটা সেন্সর সক্রিয় হয়, তাহলে সাধারণ সংকেত (যোগফল আউটপুট)।

এই ব্যবস্থা কীভাবে তৈরি করবে?

সমাধান: এটা ঠিক অর্ধযোগকারীর মতো!

  • যোগফল আউটপুট (এক্স-অর): ঠিক একটা সেন্সর সক্রিয় হলে ১ দেবে
  • ক্যারি আউটপুট (অ্যান্ড): দুটোই সক্রিয় হলে ১ দেবে

তাই একটা এক্স-অর গেট এবং একটা অ্যান্ড গেট দিয়ে এই ব্যবস্থা তৈরি হবে।

অনুশীলনী

সহজ প্রশ্ন

  1. A=০, B=০ হলে অর্ধযোগকারীর S ও C এর মান কত? প্রতিটি গেটের জন্য হিসাব দেখাও।
  1. অর্ধযোগকারীতে কখন ক্যারি আউটপুট ১ হয়? একটি বাস্তব উদাহরণ দিয়ে ব্যাখ্যা করো।
  1. A=১, B=০ হলে S ও C নির্ণয় করো এবং বাইনারি যোগ যাচাই করো।
  1. এক্স-অর গেটের পরিবর্তে কোন গেট দিয়ে যোগফল বিট তৈরি করলে ভুল হবে এবং কেন? তিনটি ভুল উদাহরণ দাও।
  1. অ্যান্ড গেটের পরিবর্তে অর গেট দিয়ে ক্যারি বিট তৈরি করলে কোন সারিতে ভুল হবে? সত্যক সারণী করে দেখাও।

মাঝারি প্রশ্ন

  1. দুটো অর্ধযোগকারী দিয়ে কি একটি পূর্ণযোগকারী তৈরি করা যায়? কীভাবে? সংযোগ চিত্র এঁকে দেখাও।
  1. (১০১)২+(০১১)২ যোগের জন্য কতটা অর্ধযোগকারী এবং কতটা পূর্ণযোগকারী লাগবে? ধাপে ধাপে যোগ করো।
  1. ন্যান্ড গেট দিয়ে অর্ধযোগকারী তৈরিতে কতটা গেট লাগে? প্রতিটা গেটের ভূমিকা ব্যাখ্যা করো।
  1. A এবং B উভয়ই ০ হলে অর্ধযোগকারীর আউটপুট কী হবে? যদি দুটো অর্ধযোগকারী শ্রেণিতে সংযুক্ত থাকে?
  1. অর্ধযোগকারী এবং পূর্ণযোগকারীর মধ্যে পাঁচটা পার্থক্য লেখো।

কঠিন প্রশ্ন

  1. বুলিয়ান বীজগণিত ব্যবহার করে প্রমাণ করো যে A⊕B=AB‾+A‾B।
  1. একটি ৪ বিটের রিপল ক্যারি যোগকারী তৈরিতে মোট কতটা গেট লাগবে? বিস্তারিত হিসাব করো।
  1. ক্যারি লুকঅ্যাহেড যোগকারীর জেনারেট এবং প্রোপাগেট ফাংশন ব্যাখ্যা করো। ৪ বিটের জন্য রাশি লিখো।
  1. দ্বির পূরক পদ্ধতিতে একটি যোগকারী দিয়ে বিয়োগ করার পদ্ধতি বর্ণনা করো। ৭−৩ এর উদাহরণ দাও।
  1. বুলিয়ান বীজগণিত ব্যবহার করে প্রমাণ করো যে দুটো অর্ধযোগকারী ও একটি অর গেট দিয়ে পূর্ণযোগকারীর যোগফল রাশি পাওয়া যায়।

সৃজনশীল প্রশ্ন

  1. তিনটি বিট যোগ করার জন্য একটা সার্কিট ডিজাইন করো। কতটা গেট লাগবে?
  1. শুধুমাত্র নর গেট দিয়ে অর্ধযোগকারী তৈরি করো। কতটা নর গেট লাগবে?
  1. দশমিক যোগকারী তৈরিতে অর্ধযোগকারী কোথায় কোথায় লাগবে? ব্যাখ্যা করো।
  1. একটি ডিজিটাল তালার সার্কিট ডিজাইন করো যেটা দুটো সুইচের নির্দিষ্ট সমন্বয়ে খুলবে। অর্ধযোগকারীর ধারণা ব্যবহার করো।

উত্তর (সহজ প্রশ্ন)

  1. এক্স-অর: S=০⊕০=০ (একই ইনপুট, তাই শূন্য), অ্যান্ড: C=০⋅০=০ (দুটোই শূন্য, তাই শূন্য)।
  2. কেবল যখন উভয় ইনপুট A=১ এবং B=১, কারণ ১+১ = ২ = বাইনারিতে ১০, এবং ডান বিট ক্যারি। উদাহরণ: একই সময়ে দুটো সেন্সর সক্রিয় হলে।
  3. এক্স-অর: S=১⊕০=১ (ভিন্ন ইনপুট, তাই এক), অ্যান্ড: C=১⋅০=০; বাইনারিতে ১+০=০১, সঠিক।
  4. অ্যান্ড গেট দিয়ে যোগফল তৈরি করলে ভুল হবে। ০+১=০১ হওয়া উচিত কিন্তু ০·১=০, ভুল। ১+০=০১ হওয়া উচিত কিন্তু ১·০=০, ভুল। ০+০=০ সঠিক, ১+১ এর যোগফল বিট ০ হওয়া উচিত এবং ১·১=১, এটাও ভুল।
  5. অর গেট দিয়ে ক্যারি করলে তৃতীয় এবং দ্বিতীয় সারিতে ভুল হবে। ০+১ এর ক্যারি ০ হওয়া উচিত, কিন্তু ০|১=১, ভুল। ১+০ এর ক্যারি ০ হওয়া উচিত, কিন্তু ১|০=১, ভুল।

সংক্ষেপ ও মূল বিষয়

এই অধ্যায়ে আমরা অর্ধযোগকারী নিয়ে বিস্তারিত জেনেছি। মূল বিষয়গুলো একনজরে:

অর্ধযোগকারীর মূল বিষয়সমূহ
বিষয় বিবরণ
সংজ্ঞা দুটো এক-বিট বাইনারি সংখ্যা যোগ করে যোগফল ও ক্যারি দেওয়ার সার্কিট
ইনপুট দুটো: A এবং B
আউটপুট দুটো: যোগফল S এবং ক্যারি C
যোগফলের রাশি S=A⊕B (এক্স-অর গেট)
ক্যারির রাশি C=A⋅B (অ্যান্ড গেট)
প্রয়োজনীয় গেট একটা এক্স-অর গেট এবং একটা অ্যান্ড গেট
বিকল্প বাস্তবায়ন চারটা ন্যান্ড গেট দিয়ে
মূল সীমাবদ্ধতা ক্যারি-ইন নেওয়ার ব্যবস্থা নেই
ব্যবহার বহু-বিট যোগকারীর সর্বনিম্ন বিটে
সম্পর্কিত সার্কিট পূর্ণযোগকারী, রিপল ক্যারি যোগকারী, ক্যারি লুকঅ্যাহেড যোগকারী


অর্ধযোগকারী থেকে কম্পিউটার

অর্ধযোগকারী থেকে পূর্ণযোগকারী, পূর্ণযোগকারী থেকে বহু-বিট যোগকারী, বহু-বিট যোগকারী থেকে অ্যারিথমেটিক লজিক ইউনিট, অ্যারিথমেটিক লজিক ইউনিট থেকে প্রসেসর, এবং প্রসেসর থেকে কম্পিউটার। এই সিঁড়িতে সবার নিচে দাঁড়িয়ে আছে সেই ছোট্ট অর্ধযোগকারী।

পরের অধ্যায়ে পূর্ণযোগকারী নিয়ে আলোচনা করা হবে, যেটা অর্ধযোগকারীর সীমাবদ্ধতা কাটিয়ে তিনটি ইনপুট নিয়ে কাজ করতে পারে।

[[টেমপ্লেট:BOOKCATEGORY]]