ডিজিটাল সার্কিট/রেজিস্টার ও কাউন্টার
একটি ডিজিটাল সার্কিট হলো একটি সার্কিট যেখানে সংকেত অবশ্যই দুটি পৃথক স্তরের একটি হতে হবে৷ প্রতিটি স্তরকে দুটি ভিন্ন অবস্থার একটি হিসাবে ব্যাখ্যা করা হয় (উদাহরণস্বরূপ, চালু/বন্ধ, ০/১, সত্য/মিথ্যা)৷ ডিজিটাল সার্কিট বুলিয়ান যুক্তি সঞ্চালনের জন্য লজিক গেট(যা এক ধরনের বর্তনী) তৈরি করতে ট্রানজিস্টর ব্যবহার করে।
রেজিস্টার
[সম্পাদনা]রেজিস্টার হলো ফ্লিপ-ফ্লপগুলির গ্রুপ, যেখানে প্রতিটি ফ্লিপ-ফ্লপ এক বিট তথ্য সংরক্ষণ করতে সক্ষম। একটি এন-বিট রেজিস্টার হল "এন" ফ্লিপ-ফ্লপের একটি গ্রুপ। একটি রেজিস্টারের মৌলিক কাজ হলো একটি ডিজিটাল প্রক্রিয়াতে তথ্য ধারণ করা এবং কম্পিউটিং(গণনা) প্রক্রিয়ার জন্য লজিক উপাদানগুলির জন্য এটি উপলব্ধ করা।
রেজিস্টারে সীমিত সংখ্যক ফ্লিপ-ফ্লপ থাকে। যেহেতু প্রতিটি ফ্লিপ-ফ্লপ একটি "০" বা একটি "১" সংরক্ষণ করতে সক্ষম, তাই একটি সীমিত সংখ্যক ০-১ সংমিশ্রণ রয়েছে যা একটি রেজিস্টারে সংরক্ষণ করা যেতে পারে। এই সংমিশ্রণগুলির প্রত্যেকটি রেজিস্টারের রাষ্ট্র বা বিষয়বস্তু হিসাবে পরিচিত।
ফ্লিপ-ফ্লপ দিয়ে আমরা বিটওয়াইসে উপাত্ত সংরক্ষণ করতে পারি কিন্তু সাধারণত ডেটা একক বিট হিসাবে প্রদর্শিত হয় না। পরিবর্তে ৪, ৮, ১৬, ৩২ বা ৬৪ বিটের সাধারণ শব্দের দৈর্ঘ্য সহ এন বিটের উপাত্ত শব্দ সংরক্ষণ করা সাধারণ। এইভাবে, অনেকগুলি ফ্লিপ-ফ্লপকে একত্রিত করে সম্পূর্ণ উপাত্ত শব্দগুলি সংরক্ষণ করার জন্য একটি রেজিস্টার তৈরি করা হয়। রেজিস্টার হল সিঙ্ক্রোনাস সার্কিট এইভাবে সমস্ত ফ্লিপ-ফ্লপ একটি সাধারণ ঘড়ির লাইন দ্বারা নিয়ন্ত্রিত হয়। যেহেতু রেজিস্টারগুলি প্রায়শই সিরিয়াল উপাত্ত (ডেটা)সংগ্রহ করতে ব্যবহৃত হয় সেগুলিকে সঞ্চয়কারীও বলা হয়। সেখানে অনেক ধরনের রেজিস্টার রয়েছে–
শিফট রেজিস্টার
[সম্পাদনা]একটি রেজিস্টার যেখানে উপাত্ত প্রবেশ করে (বা উপাত্ত প্রবেশ করানো হয়) এবং ধারাবাহিক আকারে নেওয়া হয় তাকে শিফট রেজিস্টার বলা হয়।
তথ্য প্রায়শই বিটওয়াইজে আসে অর্থাৎ প্রতি ঘড়ির স্পন্দনে এক বিট আসে। শিফট রেজিস্টার এই ধরনের তথ্য সংরক্ষণ করতে ব্যবহার করা হয়। একটি শিফট রেজিস্টারে একটি সিরিয়াল ইনপুট থাকে। প্রতিটি ঘড়ির স্পন্দন এক বিট সিরিয়াল থেকে রেজিস্টারের প্রথম ফ্লিপ-ফ্লপে লোড করা হয় যখন সমস্ত প্রকৃত ফ্লিপ-ফ্লপ বিষয়বস্তু শেষ বিট বাদ দিয়ে পরবর্তী ফ্লিপ-ফ্লপে স্থানান্তরিত হয়। শিফট রেজিস্টারে একটি সিরিয়াল আউটপুট থাকতে পারে যাতে রেজিস্টারের বাইরে স্থানান্তরিত হওয়া শেষ বিটটি আরও প্রক্রিয়া করা যায়। এইভাবে প্রতিটি সিরিয়ালকে অন্য একটি শিফট রেজিস্টারের সিরিয়ালের সাথে সংযুক্ত করে শিফট রেজিস্টারের একটি চেইন তৈরি করা সম্ভব, কার্যকরভাবে একটি বড় শিফট রেজিস্টার তৈরি করা। একই রেজিস্টারের সিরিয়ালের সাথে সিরিয়ালটি সংযুক্ত করে একটি সাইক্লিক রেজিস্টার (পরবর্তী অনুচ্ছেদ দেখুন) তৈরি করাও সম্ভব। শিফট রেজিস্টার সার্কিটগুলিতে অতিরিক্ত প্যারালাল-ইন কার্যকারিতাও থাকতে পারে যা পৃথক বিটগুলির হেরফের করার অনুমতি দেয়। যদি সমস্ত ফ্লিপ-ফ্লপের আউটপুট (এবং তাই রেজিস্টারের সম্পূর্ণ বিষয়বস্তু) লাইন Q1 থেকে Qn পর্যন্ত পড়া হয় তাহলে রেজিস্টারটি সিরিয়াল ইন – প্যারালাল আউট (SIPO) হিসাবে ব্যবহৃত হয়। এই ধরনের একটি SIPO রেজিস্টারের একটি সাধারণ উদ্দেশ্য হলো বিটওয়াইসে বিতরণ করা এবং এন-বিট ডেটা শব্দে প্রয়োজনীয় উপাত্ত সংগ্রহ করা (যেমন একটি কম্পিউটারের সিরিয়াল পোর্ট থেকে সংকেত রূপান্তর করা: লাইনটি একবারে ১ বিট পরিবহন করে, কম্পিউটার ব্যবহার করে ৮, ১৬ বা ৩২ বিট ডেটাওয়ার্ড)। গাণিতিক ক্রিয়াকলাপের জন্য শিফটিং বিটগুলি গুরুত্বপূর্ণ: যদি পুরো রেজিস্টারের আউটপুটকে বাইনারি সংখ্যা হিসাবে ব্যাখ্যা করা হয়, তবে এক বিট স্থানান্তর করা ২ দ্বারা গুণ বা ভাগ করার সাথে মিলে যায় (যার উপর নির্ভর করে ফ্লিপ-ফ্লপকে MSB হিসাবে ব্যাখ্যা করা হয়)। ৪ ধরণের শিফট রেজিস্টার রয়েছে যথা:সিরিয়াল ইন-প্যারালাল আউট (SIPO), সিরিয়াল ইন-সিরিয়াল আউট (SISO), প্যারালাল ইন-সিরিয়াল আউট (PISO), প্যারালাল ইন-প্যারালাল আউট (PIPO)।
সাইক্লিক রেজিস্টার
[সম্পাদনা]কখনও কখনও একই মানগুলিকে বারবার "পুনর্ব্যবহার" করা প্রয়োজন। এইভাবে যে বিটটি সাধারণত বাদ দেওয়া হয় তা আবার একটি সাইক্লিক রেজিস্টার পেতে রেজিস্টার ইনপুটে দেয়া হয়।
প্যারালাল ইন সিরিয়াল আউট
[সম্পাদনা]সিরিয়াল - প্যারালাল(সমান্তরাল) রূপান্তরের প্রয়োজন হিসাবে বিপরীত অপারেশন সমানভাবে প্রয়োজন। এটি একটি yta শব্দ দ্বারা রেজিস্টারে লোড করা হয়। এটি একটি পরিষ্কার ফাংশন ব্যবহার করে ফ্লিপফ্লপ আউটপুটের সমস্ত স্থিতি পরিষ্কার করে প্রস্তুত করা হয় অর্থাৎ প্রতিটি ফ্লিপফ্লপ ০ এর সমান তারপর প্রদত্ত ইনপুটের একটি একক বিট নিয়ে এটি স্থানান্তর করে যা ইনপুট ফ্লিপফ্লপের বর্তমান বিটগুলিকে পরবর্তী ফ্লিপফ্লপে স্থানান্তরিত করে।
ব্যারেল শিফটার
[সম্পাদনা]একটি ব্যারেল শিফটার হলো একটি ডিজিটাল সার্কিট যা একটি ঘড়ির চক্রে একটি নির্দিষ্ট সংখ্যক বিট দ্বারা একটি উপাত্ত শব্দকে স্থানান্তর করতে পারে। এটি মাল্টিপ্লেক্সার (mux.) এর একটি ক্রম হিসাবে প্রয়োগ করা যেতে পারে এবং এই জাতীয় বাস্তবায়নে একটি mux এর আউটপুট পরবর্তী mux এর ইনপুটের সাথে এমনভাবে সংযুক্ত থাকে যা স্থানান্তরের দূরত্বের উপর নির্ভর করে। উদাহরণস্বরূপ, A, B, C এবং D ইনপুট সহ একটি চার বিট ব্যারেল শিফটার নিন। শিফটারটি ABCD বিটগুলির ক্রমকে DABC, CDAB, বা BCDA হিসাবে চক্র করতে পারে; এই ক্ষেত্রে, কোন বিট হারিয়ে না. অর্থাৎ, এটি সমস্ত আউটপুটকে তিনটি অবস্থান পর্যন্ত ডানদিকে স্থানান্তর করতে পারে (এবং এইভাবে A, B, C এবং D-এর যেকোন চক্রীয় সমন্বয় তৈরি করতে পারে)। ব্যারেল শিফটারের বিভিন্ন ধরনের অ্যাপ্লিকেশন রয়েছে, যার মধ্যে মাইক্রোপ্রসেসরের একটি দরকারী উপাদান (ALU-এর পাশাপাশি)। ব্যারেল শিফটারের একটি সাধারণ ব্যবহার হল ফ্লোটিং-পয়েন্ট গাণিতিকের হার্ডওয়্যার বাস্তবায়নে। একটি ফ্লোটিং-পয়েন্ট যোগ বা বিয়োগ ক্রিয়াকলাপের জন্য, দুটি সংখ্যার তাৎপর্যকে অবশ্যই সারিবদ্ধ করতে হবে, যার জন্য ছোট সংখ্যাটিকে ডানদিকে স্থানান্তরিত করতে হবে, এর সূচক বাড়াতে হবে, যতক্ষণ না এটি বড় সংখ্যার সূচকের সাথে মেলে। এটি সূচকগুলি বিয়োগ করে এবং ব্যারেল শিফটার ব্যবহার করে একটি চক্রে পার্থক্যের দ্বারা ছোট সংখ্যাটিকে ডানদিকে স্থানান্তরিত করার মাধ্যমে করা হয়। যদি একটি সাধারণ শিফটার ব্যবহার করা হয়, n বিট অবস্থান দ্বারা স্থানান্তরের জন্য n ঘড়ি চক্রের প্রয়োজন হবে।
ক্যাসকেড শিফটার
[সম্পাদনা]ক্যাসকেড শিফটার হল সার্কিট যা প্রতিটি সিরিয়ালের বিষয়বস্তুকে একটি ডিকোডারের মাধ্যমে প্যারালাল আউট রেজিস্টারে পরিবর্তন করে।
কাউন্টার
[সম্পাদনা]একটি কাউন্টার হল একটি অনুক্রমিক সার্কিট যা – গণনা করে। এর অর্থ হল এটি একটি পূর্ব-নির্ধারিত ক্রমগুলির মধ্য দিয়ে এগিয়ে যায় যেখানে সার্কিটের অবস্থা তার সমস্ত ফ্লিপ ফ্লপগুলির অবস্থা দ্বারা নির্ধারিত হয়। যেহেতু সার্কিটের প্রতিটি অবস্থা একটি প্রদত্ত সংখ্যা হতে পারে, আমরা বলতে পারি যে একটি কাউন্টার সংখ্যাগুলির একটি ক্রম তৈরি করে। একটি সাধারণভাবে ব্যবহৃত পদ্ধতি হল একটি সার্কিটের অবস্থাকে দ্বৈত সংখ্যা হিসাবে ব্যাখ্যা করা, তাই যদি ফ্লিপ-ফ্লপ A, B এবং C সবকটি 0 হয় তাহলে কাউন্টারের অবস্থা 0 হয়। যদি A ১(1) হয়, B 0 এবং C ১(1) হয় তাহলে কাউন্টারের অবস্থা ১০১ হয় = ৫ এবং তাই। সর্বাধিক মৌলিক কাউন্টারগুলি প্রতিটি ঘড়ির স্পন্দনের সাথে ১ দ্বারা বৃদ্ধি পাবে, তাই স্টেট ১০০ এর পরে এটি ১০১ এ যাবে; পরবর্তী পালস এটিকে ১১০ ইত্যাদিতে স্যুইচ করতে দেবে। যেকোনো প্রয়োজনীয় গণনা ক্রম সহ কাউন্টার ডিজাইন করা সম্ভব। যদিও অ্যাসিঙ্ক্রোনাস ক্রমিক সার্কিটগুলি এই কোর্সের বিষয় নয়, অসিঙ্ক্রোনাস কাউন্টারটি এখানে ব্যতিক্রমীভাবে উপস্থাপন করা হয়েছে যাতে সামান্য ধারণা দেওয়া যায়।
সাধারণত কাউন্টার দুই ধরণের
[সম্পাদনা]- অ্যাসিঙ্ক্রোনাস বা রিপল কাউন্টার
- সিঙ্ক্রোনাস কাউন্টার অ্যাসিনক্রোনাস কাউন্টার
এই কাউন্টারগুলির জন্য একটি ফ্লিপ-ফ্লপে একটি বাহ্যিক ঘড়ির সংকেত প্রয়োগ করা হয় এবং তারপরে পূর্ববর্তী ফ্লিপ-ফ্লপের আউটপুট পরবর্তী ফ্লিপের ঘড়ির সাথে সংযুক্ত করা হয়। ফ্লপ ঘড়ি প্রথম ফ্লিপ ফ্লপ প্রয়োগ করা হয়।
উদাহরণস্বরূপ, একটি টি ফ্লিপ ফ্লপ (এফএফ) ভিত্তিক রিপল কাউন্টার বিবেচনা করুন। ঘড়িটি সিরিজের প্রথম এফএফ-এ প্রয়োগ করা হয়, এবং টি ইনপুটটি ১ এ সেট করা হয়। প্রথম এফএফ-এর আউটপুট Q তারপর দ্বিতীয় এফএফ-এর সাথে ঘড়ির ইনপুট হিসাবে সংযুক্ত হয়। এটি কার্যকরভাবে ঘড়ির ইনপুটটিকে দ্বিতীয় এফএফ-এ অর্ধেক করে দেয় এবং যখনই পূর্ববর্তী এফএফ ০ (পরে ১) হিট করে তখন এটি টগল করে। এটি রিপল অ্যাকশন নামে পরিচিত, অর্থাৎ, পরবর্তী সমস্ত এফএফ জুড়ে টগল রিপলস, কার্যকরভাবে আমরা যা গণনা অপারেশন হিসাবে জানি তার জন্ম দেয়।
এই কার্যকারিতা প্রদর্শনের একটি সুন্দর উদাহরণ এখানে পাওয়া যাবে। [১]
সিঙ্ক্রোনাস কাউন্টার
[সম্পাদনা]সিঙ্ক্রোনাস কাউন্টারে সমস্ত ফ্লিপ ফ্লপ একই সাথে বাহ্যিক ঘড়ির স্পন্দন গ্রহণ করে। রিং কাউন্টার এবং জনসন কাউন্টার হল সিঙ্ক্রোনাস কাউন্টারের উদাহরণ। সিঙ্ক্রোনাস সার্কিটে, সমস্ত ফ্লিপ ফ্লপগুলিতে প্রয়োগ করা বাহ্যিক ঘড়ি সার্কিটের সাথে সিঙ্ক্রোনাইজেশনে থাকে।