ডিজিটাল সার্কিট/অ্যাডার
হাফ অ্যাডার
[সম্পাদনা]দুটি বাইনারি সংখ্যা একসাথে যোগ করার কথা বিবেচনা করুন:
আমরা দেখতে পাচ্ছি যে দুই এর কলামের বিট তৈরি হয় যখন যোগ করা হয়। একটি হাফ-অ্যাডার হল একটি সার্কিট যা দুটি বিটকে একসাথে যোগ করে এবং সেই দুটি বিটের যোগফল বের করে। অর্ধ-যোগকারীর দুটি আউটপুট রয়েছে: যোগফল এবং বহন । যোগফল A+B/2 পূর্ণসংখ্যা বিভাজনের অবশিষ্টাংশকে উপস্থাপন করে, যখন বহন হল ফলাফল। এটি নিম্নরূপ প্রকাশ করা যেতে পারে:
|
ফুল অ্যাডার
[সম্পাদনা]অর্ধ-সংযোজনকারীদের একটি বড় সীমাবদ্ধতা রয়েছে যে তারা পূর্ববর্তী পর্যায় থেকে একটি ক্যারি বিট গ্রহণ করতে পারে না, যার অর্থ মাল্টি-বিট নম্বর যোগ করার জন্য তাদের একসাথে চেইন করা যায় না। যাইহোক, একটি হাফ-অ্যাডারের দুটি আউটপুট বিট A+B=3 ফলাফলকে যোগফল হিসাবে উপস্থাপন করতে পারে এবং উভয়কেই উচ্চতা বহন করতে পারে।
যেমন, পূর্ণ-যোগকারী একটি ইনপুট হিসাবে তিনটি বিট গ্রহণ করতে পারে। সাধারণত, এক বিটকে ক্যারি-ইন বিট বলা হয়। একটি আউটপুটকে পরেরটির ইনপুটে নিয়ে যাওয়াকে ডেইজি-চেইনিং করে যেকোন সংখ্যক বিটের অ্যাডার তৈরি করতে ফুল অ্যাডারগুলি ক্যাসকেড করা যেতে পারে।
|
পূর্ণ-যোগকারীকে সাধারণত একটি একক হিসাবে দেখানো হয়। যোগফল আউটপুট সাধারণত ব্লকের নীচে থাকে এবং ক্যারি-আউট আউটপুট বাম দিকে থাকে, তাই ডিভাইসগুলিকে একসাথে চেইন করা যেতে পারে, সবচেয়ে উল্লেখযোগ্য বিট বামদিকে:
রিপল-ক্যারি অ্যাডার
[সম্পাদনা]একটি রিপল ক্যারি অ্যাডার হল একটি সিরিজে সংযুক্ত বেশ কয়েকটি পূর্ণ সংযোজন যাতে সংযোজন সম্পূর্ণ হওয়ার আগে বহনকে অবশ্যই প্রতিটি পূর্ণ সংযোজনের মাধ্যমে প্রচার করতে হবে। রিপল ক্যারি অ্যাডারগুলির জন্য সমস্ত অ্যাডারের সর্বনিম্ন পরিমাণ হার্ডওয়্যার প্রয়োজন, তবে সেগুলি সবচেয়ে ধীর।
নিম্নলিখিত চিত্রটি একটি চার-বিট সংযোজক দেখায়, যা A[3:0] এবং B[3:0] সংখ্যা যোগ করে, পাশাপাশি একটি বহন ইনপুট, S[3:0] এবং বহন আউটপুট তৈরি করতে।
সম্পূর্ণ যোগকারীতে প্রচার বিলম্ব
[সম্পাদনা]বাস্তব লজিক গেট ইনপুটগুলিতে তাৎক্ষণিকভাবে প্রতিক্রিয়া দেখায় না, এবং সেইজন্য ডিজিটাল সার্কিটের সর্বোচ্চ গতি থাকে। সাধারণত, একটি ডিজিটাল সার্কিটের মাধ্যমে বিলম্ব গেট-বিলম্বে পরিমাপ করা হয়, কারণ এটি বিভিন্ন ডিভাইসের জন্য একটি নকশার বিলম্ব গণনা করার অনুমতি দেয়। AND এবং OR গেটগুলির 1টি গেট-বিলম্বের একটি নামমাত্র বিলম্ব আছে, এবং XOR গেটের 2টি বিলম্ব আছে, কারণ তারা সত্যিই ANDs এবং ORs-এর সমন্বয়ে গঠিত।
একটি সম্পূর্ণ সংযোজনকারী ব্লকের নিম্নোক্ত সবচেয়ে খারাপ ক্ষেত্রে প্রচারে বিলম্ব হয়:
- A i বা B i থেকে C i+1 : 4 গেট-বিলম্ব (XOR → AND → OR)
- A i বা B i থেকে S i পর্যন্ত : 4 গেট-বিলম্ব (XOR → XOR)
- C i থেকে C i+1 পর্যন্ত : 2 গেট-বিলম্ব (AND → OR)
- C i থেকে S i পর্যন্ত : 2 গেট-বিলম্ব (XOR)
যেহেতু এক পর্যায়ের ক্যারি-আউট হল পরের ইনপুট, সবচেয়ে খারাপ ক্ষেত্রে প্রচারে বিলম্ব হয়:
- 4 গেট-প্রথম বহন সংকেত উৎপন্ন হতে বিলম্ব ( A 0 / B 0 → C 1 )।
- মধ্যবর্তী পর্যায়ে 2টি গেট-বিলম্ব ( C i → C i+1 )।
- 2 শেষ পর্যায়ে যোগফল এবং বহন-আউটপুট উভয় উত্পাদন করতে গেট-বিলম্ব ( C n-1 → C n এবং S n-1 )।
সুতরাং একটি এন -বিট অ্যাডারের জন্য, আমাদের মোট প্রচার বিলম্ব রয়েছে, এর t p :
এটি n এ রৈখিক, এবং একটি 32-বিট সংখ্যার জন্য, গণনাটি সম্পূর্ণ করতে 66টি চক্র লাগবে। এটি বরং ধীর, এবং আমাদের ডিভাইসে শব্দের দৈর্ঘ্য কিছুটা সীমাবদ্ধ করে। আমরা এটির গতি বাড়ানোর উপায় খুঁজতে চাই।
ক্যারি-লুকহেড অ্যাডার
[সম্পাদনা]সংখ্যা যোগ করার একটি দ্রুত পদ্ধতিকে ক্যারি-লুকহেড বলা হয়। এই পদ্ধতিতে পর্যায়ক্রমে পর্যায়ক্রমে প্রচারের জন্য বহন সংকেত প্রয়োজন হয় না, যার ফলে বাধা সৃষ্টি হয়। পরিবর্তে এটি বহন তথ্যের প্রচার এবং উত্পাদন ত্বরান্বিত করতে অতিরিক্ত যুক্তি ব্যবহার করে, আরও হার্ডওয়্যারের ব্যয়ে দ্রুত সংযোজনের অনুমতি দেয়।
জেনারেট ফাংশন, G i, নির্দেশ করে যে এই পর্যায়ে একটি ক্যারি-আউট সিগন্যাল C i জেনারেট করা হবে যদি কোনো ক্যারি-ইন সিগন্যাল না থাকে। এটি ঘটে যদি উভয় সংযোজনে সেই বিটে একটি 1 থাকে:
প্রপাগেট ফাংশন, P i, নির্দেশ করে যে মঞ্চে ক্যারি-ইন স্টেজের জন্য ক্যারি-আউটে পাস করা হয়েছে কিনা। এটি ঘটে যদি সংযোজনগুলির যে কোনও একটিতে সেই বিটে 1 থাকে:
নোট করুন যে এই উভয় মান একটি একক গেট বিলম্বের একটি ধ্রুবক সময়ে ইনপুট থেকে গণনা করা যেতে পারে। এখন, একটি স্টেজ থেকে ক্যারি-আউট ঘটে যদি সেই স্টেজটি একটি ক্যারি ( G i = 1) তৈরি করে বা একটি ক্যারি-ইন থাকে এবং স্টেজটি ক্যারি ( P i · C i = 1) প্রচার করে:
নীচের সারণী এটির সারসংক্ষেপ:
ক i | খ i | গ i | G i | পি i | সি i+1 | |
---|---|---|---|---|---|---|
0 | 0 | 0 | 0 | 0 | 0 | |
0 | 0 | 1 | 0 | 0 | 0 | |
0 | 1 | 0 | 0 | 1 | 0 | |
0 | 1 | 1 | 0 | 1 | 1 | |
1 | 0 | 0 | 0 | 1 | 0 | |
1 | 0 | 1 | 0 | 1 | 1 | |
1 | 1 | 0 | 1 | 1 | 1 | |
1 | 1 | 1 | 1 | 1 | 1 |
আমরা পূর্ববর্তী পর্যায়ে বহন-আউটের জন্য অভিব্যক্তি প্রতিস্থাপন করে ক্যারি-আউটের জন্য অভিব্যক্তিকে প্রসারিত করতে পারি:
মনে রাখবেন যে এটির জন্য পূর্ববর্তী ধাপগুলি থেকে বহন-আউট সংকেত প্রয়োজন হয় না, তাই আমাদের সার্কিটের মাধ্যমে পরিবর্তনের জন্য অপেক্ষা করতে হবে না। প্রকৃতপক্ষে, একটি প্রদত্ত পর্যায়ের বহন সংকেত গণনা করা যেতে পারে যখন প্রচার এবং উৎপন্ন সংকেতগুলি আরও দুটি গেট বিলম্বের সাথে প্রস্তুত হলে (একটি এবং একটি OR)। এইভাবে একটি নির্দিষ্ট পর্যায়ের জন্য বহন-আউট ধ্রুবক সময়ের মধ্যে গণনা করা যেতে পারে, এবং তাই যোগফল হতে পারে।
অপারেশন | প্রয়োজনীয় ডেটা | গেট বিলম্ব |
---|---|---|
পর্যায় উত্পন্ন এবং সংকেত প্রচার | যোগ ( a এবং b ) | 1 |
স্টেজ ক্যারি-আউট সিগন্যাল তৈরি করুন, C 1 থেকে C n | P এবং G সংকেত, এবং C 0 | 2 |
যোগফল তৈরি করুন, এস | সংকেত এবং সংযোজন বহন | 3 |
মোট | 6 |
S, P, এবং G সংকেতগুলি একটি "আংশিক পূর্ণ সংযোজনকারী" (PFA) নামক একটি সার্কিট দ্বারা উত্পন্ন হয়, যা একটি সম্পূর্ণ সংযোজনের অনুরূপ।
উল্লেখ্য যে উপরের সার্কিট ডায়াগ্রামে P সিগন্যালটি A OR B হিসাবে উত্পন্ন হওয়ার সময়, আরেকটি বৈধ পছন্দ হবে A XOR B, সুবিধা হল A XOR B ইতিমধ্যেই সার্কিট ডায়াগ্রামে উপস্থিত রয়েছে এবং এর জন্য অতিরিক্ত গেটের প্রয়োজন হবে না। এর কারণ সূত্রে এটা কোন উপায় কোন ব্যাপার না বাস্তবায়িত হয়, যেহেতু এবং পাঠক একটি সত্য টেবিল ব্যবহার করে যাচাই করতে পারে হিসাবে সমতুল্য অভিব্যক্তি.
একটি সামান্য ছোট সার্কিটের জন্য, প্রোপাগেট সিগন্যালকে ডেডিকেটেড OR গেট ব্যবহার করার পরিবর্তে প্রথম XOR গেটের আউটপুট হিসাবে নেওয়া যেতে পারে, কারণ A এবং B উভয়ই জোর দেওয়া হলে, জেনারেট সিগন্যালটি বহন করতে বাধ্য করবে। যাইহোক, এই সরলীকরণের অর্থ হল প্রপাগেট সিগন্যালটি উৎপন্ন হতে দুটি গেট বিলম্ব করবে, একটির পরিবর্তে।
একটি ক্যারি লুকআহেড অ্যাডারে তারপরে n PFAs এবং স্টেজ থেকে ক্যারিগুলি তৈরি করার যুক্তি থাকে এবং সংকেত তৈরি করে:
তাই দুইটি সংখ্যা ধ্রুবক সময়ে যোগ করা যেতে পারে, O(1), মাত্র 6টি গেট বিলম্বের, সংখ্যার দৈর্ঘ্য নির্বিশেষে, n । যাইহোক, এর জন্য এন পর্যন্ত ইনপুট সহ AND এবং OR গেট প্রয়োজন। লজিক গেট সীমিত সংখ্যক ইনপুট সহ উপলব্ধ থাকলে, এগুলো গণনা করার জন্য গাছ তৈরি করতে হবে এবং সামগ্রিক গণনার সময় লগারিদমিক, O(ln( n )), যা এখনও রিপল অ্যাডারের জন্য রৈখিক সময়ের চেয়ে অনেক ভালো। .
ক্যাসকেডিং ক্যারি-লুকহেড অ্যাডার
[সম্পাদনা]একটি বেসিক ক্যারি-লুকহেড অ্যাডার খুব দ্রুত কিন্তু এর অসুবিধা রয়েছে যে এটি প্রয়োগ করতে প্রচুর পরিমাণে লজিক হার্ডওয়্যার লাগে। প্রকৃতপক্ষে, প্রয়োজনীয় হার্ডওয়্যারের পরিমাণ n এর সাথে প্রায় দ্বিঘাত, এবং 4-এর বেশি n-এর জন্য খুব জটিল হতে শুরু করে।
এই কারণে, বেশিরভাগ সিএলএ 4-বিট সিএলএ সমন্বিত "ব্লক" থেকে তৈরি করা হয়, যা একটি বড় সিএলএ তৈরি করতে ক্যাসকেড হয়।
ক্যারি-সেভ অ্যাডার
[সম্পাদনা]ক্যারি-সেভ অ্যাডার হল এক ধরনের অ্যাডার যার কম প্রচার বিলম্ব (গুরুত্বপূর্ণ পথ), কিন্তু একটি যোগফল আউটপুটে দুটি ইনপুট সংখ্যা যোগ করার পরিবর্তে, এটি একটি আউটপুট জোড়া সংখ্যায় তিনটি ইনপুট সংখ্যা যোগ করে। যখন এর দুটি আউটপুট একটি প্রথাগত ক্যারি-লুকহেড বা রিপল-ক্যারি অ্যাডার দ্বারা যোগ করা হয়, তখন আমরা তিনটি ইনপুটের যোগফল পাই।
তিনটি বা ততোধিক সংখ্যা একসাথে যোগ করার সময়, একটি ক্যারি-লুকহেড অ্যাডারের ক্রম থেকে একটি ক্যারি-সেভ অ্যাডারের সমাপ্তি ক্যারি-লুকহেড অ্যাডারের ক্রম থেকে অনেক ভালো প্রচার বিলম্ব প্রদান করে। বিশেষ করে, ক্যারি-সেভ অ্যাডারের বংশবিস্তার বিলম্ব যুক্ত হওয়া ভেক্টরের প্রস্থের দ্বারা প্রভাবিত হয় না।
ক্যারি-সেভ অ্যাডার (CSA) হল একটি বিশেষ ধরণের অ্যাডার যা মূলত কম্পিউটার গণনায় ব্যবহৃত হয়। এটি একাধিক সংখ্যার যোগফল দ্রুত বের করতে সাহায্য করে। CSA সরাসরি চূড়ান্ত যোগফল বের না করে, মধ্যবর্তী যোগফল এবং ক্যারি তৈরি করে। পরে এই মধ্যবর্তী ফলাফলগুলি সাধারণ অ্যাডার (যেমন, রিপল-ক্যারি অ্যাডার বা ক্যারি-লুকআহেড অ্যাডার) ব্যবহার করে একত্রিত করা হয়। এটি গুণ ও ডিজিটাল সিগন্যাল প্রসেসিংয়ের মতো ক্ষেত্রে বিশেষভাবে উপকারী যেখানে একাধিক সংখ্যা একত্রে যোগ করা হয়।
ক্যারি-সেভ অ্যাডারের গঠন ও কার্যপ্রণালী
ক্যারি-সেভ অ্যাডার একটি পূর্ণ অ্যাডারগুলির সমান্তরাল বিন্যাসে সাজানো। এর গঠন ও কার্যপ্রণালী ধাপে ধাপে নিচে দেওয়া হল:
ইনপুট ভেক্টর: CSA তে তিনটি ইনপুট ভেক্টর থাকে। প্রতিটি পূর্ণ অ্যাডার সার্কিটের A, B, এবং Cin ইনপুটে এই ভেক্টরের প্রতিটি বিট লোড করা হয়।
ফলাফল ও ক্যারি উৎপাদন: প্রতিটি পূর্ণ অ্যাডার দুইটি আউটপুট তৈরি করে - একটি সাম (S) এবং একটি ক্যারি (Cout)। সাম আউটপুটটি একটি আউটপুট বিটে সংযুক্ত থাকে, এবং ক্যারি আউটপুটটি দ্বিতীয় আউটপুটের পরবর্তী উচ্চ বিটে সংযুক্ত থাকে।
ক্যারির প্রাথমিক ইনপুট: দ্বিতীয় আউটপুটের সর্বনিম্ন বিটটি সরাসরি ক্যারি-সেভের Cin ইনপুট থেকে ফিড করা হয়।
এই প্রক্রিয়াটি দ্রুত এবং কার্যকরভাবে যোগফল বের করতে সাহায্য করে, বিশেষ করে যখন একাধিক সংখ্যার যোগফল বের করতে হয়।
Template:Digital Circuits Stub