লজিক গেট/শিফট রেজিস্টার

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

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

রেজিস্টার অধ্যায়ে আমরা দেখেছিলাম কীভাবে ডি ফ্লিপ-ফ্লপ ডেটা সংরক্ষণ করে। এই অধ্যায়ে আমরা দেখব সেই ফ্লিপ-ফ্লপগুলো একসারিতে সংযুক্ত করলে কীভাবে ডেটা "নড়াচড়া" করতে পারে।

শিফট রেজিস্টার কী এবং কেন দরকার?

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

শিফট রেজিস্টার ঠিক এই ট্রেনের মতো। প্রতিটি ফ্লিপ-ফ্লপ একটি কামরা। প্রতিটি ঘড়ির পালসে প্রতিটি ফ্লিপ-ফ্লপের মান পাশের ফ্লিপ-ফ্লপে চলে যায়।

শিফট রেজিস্টারের মূল ধারণা

সাধারণ রেজিস্টারে প্রতিটি ফ্লিপ-ফ্লপ তার নিজের ডেটা ইনপুট থেকে মান নেয়। কিন্তু শিফট রেজিস্টারে প্রতিটি ফ্লিপ-ফ্লপ পাশের ফ্লিপ-ফ্লপের আউটপুট থেকে মান নেয়।

সংযোগটি এরকম:

D1=Q0
D2=Q1
D3=Q2

অর্থাৎ প্রতিটি ফ্লিপ-ফ্লপের ডেটা ইনপুট আগের ফ্লিপ-ফ্লপের আউটপুটের সাথে সংযুক্ত। ঘড়ির পালসে সব ফ্লিপ-ফ্লপ একসাথে নতুন মান নেয়, ফলে পুরো তথ্যটি এক ঘর সরে যায়।

কেন শিফট রেজিস্টার দরকার?

ধরো তোমাকে ফোনে কাউকে একটি ৮-বিট সংখ্যা বলতে হবে। তুমি একসাথে ৮টি বিট বলতে পারবে না। তাই একটি একটি করে বলবে। শিফট রেজিস্টার ঠিক এই কাজ করে। সমান্তরাল ডেটাকে ধারাবাহিকভাবে পাঠায়।

আবার ধরো কেউ তোমাকে ফোনে একটি একটি করে বিট বলছে এবং তুমি সেগুলো লিখে রাখছ। শেষে তোমার কাছে পুরো সংখ্যাটি আছে। শিফট রেজিস্টার ধারাবাহিক ডেটাকে সমান্তরালভাবে সংগ্রহও করতে পারে।

শিফট রেজিস্টারের প্রকারভেদ

শিফট রেজিস্টার চার ধরনের।

শিফট রেজিস্টারের প্রকারভেদ
ধরন ইনপুট আউটপুট সংক্ষেপ প্রধান ব্যবহার
ধারাবাহিক-ইন ধারাবাহিক-আউট একটি বিট একসাথে একটি বিট একসাথে ধা-ইন ধা-আউট বিলম্ব রেখা, সারি
ধারাবাহিক-ইন সমান্তরাল-আউট একটি বিট একসাথে সব বিট একসাথে ধা-ইন স-আউট ধারাবাহিক থেকে সমান্তরাল রূপান্তর
সমান্তরাল-ইন ধারাবাহিক-আউট সব বিট একসাথে একটি বিট একসাথে স-ইন ধা-আউট সমান্তরাল থেকে ধারাবাহিক রূপান্তর
সমান্তরাল-ইন সমান্তরাল-আউট সব বিট একসাথে সব বিট একসাথে স-ইন স-আউট ডেটা বাফার, নিবন্ধন

ধারাবাহিক-ইন ধারাবাহিক-আউট শিফট রেজিস্টার

ধারণা

একটি পানির পাইপের কথা ভাবো। একপ্রান্তে পানি ঢালো, অন্য প্রান্ত থেকে বেরোয়। পাইপ যত লম্বা, পানি আসতে তত সময় লাগে।

ধারাবাহিক-ইন ধারাবাহিক-আউট শিফট রেজিস্টার ঠিক এই পাইপের মতো। বিট একপ্রান্তে ঢোকে, ধাপে ধাপে এগোয়, এবং কয়েকটি পালস পরে অন্য প্রান্ত থেকে বেরোয়। এটিকে ডিজিটাল বিলম্ব রেখাও বলা হয়।

গঠন

চারটি ডি ফ্লিপ-ফ্লপ পরপর সংযুক্ত:

  • FF0-এর ডি ইনপুট: ধারাবাহিক ইনপুট
  • FF1-এর ডি ইনপুট: Q0
  • FF2-এর ডি ইনপুট: Q1
  • FF3-এর ডি ইনপুট: Q2
  • ধারাবাহিক আউটপুট: Q3

সব ফ্লিপ-ফ্লপে একই ঘড়ি সংকেত।

সত্যক সারণী

ধা-ইন ধা-আউট শিফট রেজিস্টারের সত্যক সারণী
পালস ধারাবাহিক ইনপুট Q0 Q1 Q2 Q3 (আউটপুট) মন্তব্য
শুরু - ০ ০ ০ ০ প্রাথমিক অবস্থা
১ ১ ১ ০ ০ ০ প্রথম বিট ঢুকল
২ ০ ০ ১ ০ ০ দ্বিতীয় বিট ঢুকল
৩ ১ ১ ০ ১ ০ তৃতীয় বিট ঢুকল
৪ ১ ১ ১ ০ ১ চতুর্থ বিট ঢুকল, প্রথম বেরোল
৫ ০ ০ ১ ১ ০ দ্বিতীয় বিট বেরোল
৬ ০ ০ ০ ১ ১ তৃতীয় বিট বেরোল
৭ ০ ০ ০ ০ ১ চতুর্থ বিট বেরোল

ইনপুট ক্রম ছিল: ১, ০, ১, ১। আউটপুট ক্রম হলো: ১, ০, ১, ১ (পালস ৪ থেকে ৭)। একই ক্রম, কিন্তু ৪ পালস পরে।

বিলম্বের হিসাব

n-বিটের শিফট রেজিস্টারে ইনপুট থেকে আউটপুটে পৌঁছাতে ঠিক nটি পালস লাগে। ৪-বিটে ৪ পালস, ৮-বিটে ৮ পালস।

এই বিলম্বকে কাজে লাগানো হয় ডিজিটাল সার্কিটে দুটি সংকেতের মধ্যে নির্দিষ্ট সময়ের পার্থক্য তৈরি করতে।

ধারাবাহিক-ইন সমান্তরাল-আউট শিফট রেজিস্টার

ধারণা

ধরো তোমাকে একজন টেলিগ্রাফ অপারেটর একটি একটি করে মোর্স কোডের সংকেত পাঠাচ্ছে। তুমি সেগুলো একটি কাগজে একে একে লিখছ। কাগজ পূর্ণ হলে তুমি পুরো বার্তাটি একসাথে পড়তে পারবে।

ধারাবাহিক-ইন সমান্তরাল-আউট শিফট রেজিস্টার ঠিক এই কাজ করে। বিট একটা একটা করে ঢোকে, কিন্তু সব বিট একসাথে পড়া যায়।

গঠন

গঠন ধা-ইন ধা-আউট-এর মতোই। পার্থক্য শুধু এই যে প্রতিটি ফ্লিপ-ফ্লপের আউটপুট বাইরে সংযুক্ত থাকে।

  • ধারাবাহিক ইনপুট: FF0-এর ডি-তে
  • সমান্তরাল আউটপুট: Q0,Q1,Q2,Q3 সবই বাইরে পাওয়া যায়

উদাহরণ: ১০১১ গ্রহণ করা

প্রথম বিট পাঠানো হয় সবচেয়ে বামের বিট।

ধা-ইন স-আউট শিফট রেজিস্টারের উদাহরণ
পালস ধারাবাহিক ইনপুট Q3 Q2 Q1 Q0 সমান্তরাল আউটপুট
শুরু - ০ ০ ০ ০ ০০০০
১ ১ ১ ০ ০ ০ ১০০০ (অসম্পূর্ণ)
২ ০ ০ ১ ০ ০ ০১০০ (অসম্পূর্ণ)
৩ ১ ১ ০ ১ ০ ১০১০ (অসম্পূর্ণ)
৪ ১ ১ ১ ০ ১ ১১০১

চার পালস পর Q3Q2Q1Q0=১১০১। কিন্তু আমরা ১০১১ পাঠিয়েছিলাম। সমস্যা কোথায়?

বিট ক্রমের সমস্যা

সংখ্যা পাঠানোর দুটি পদ্ধতি আছে।

বাম থেকে ডানে (উচ্চ বিট আগে): ১০১১ পাঠাতে হলে প্রথমে ১, তারপর ০, তারপর ১, তারপর ১। প্রথম বিট ঢুকে সবচেয়ে ডানে চলে যাবে। তাই চার পালস পর: Q3Q2Q1Q0=১০১১।

উচ্চ বিট আগে পাঠানো
পালস ইনপুট Q3 Q2 Q1 Q0
শুরু - ০ ০ ০ ০
১ (উচ্চ বিট ১) ১ ১ ০ ০ ০
২ ০ ০ ১ ০ ০
৩ ১ ১ ০ ১ ০
৪ (নিম্ন বিট ১) ১ ১ ১ ০ ১

অপেক্ষা করো! এখানে Q3Q2Q1Q0=১১০১ পাওয়া গেল। কারণ ডানে শিফট করলে প্রথমে ঢোকা বিট সবচেয়ে ডানে যায়। তাই উচ্চ বিট আগে পাঠাতে হলে বাম থেকে শুরু করতে হবে এবং বিট ক্রম হবে ১, ০, ১, ১ যা ডানে শিফটের রেজিস্টারে সঠিকভাবে বসবে।

সহজ করে মনে রাখো: ধারাবাহিক ইনপুটে প্রথমে যে বিট ঢোকে সে সবচেয়ে ডানে গিয়ে বসে।

সমান্তরাল-ইন ধারাবাহিক-আউট শিফট রেজিস্টার

ধারণা

একটি বইয়ের কথা ভাবো। বইয়ে একসাথে সব লেখা আছে। কিন্তু তুমি যখন কাউকে পড়ে শোনাও, একটি একটি করে পড়ো।

সমান্তরাল-ইন ধারাবাহিক-আউট শিফট রেজিস্টার ঠিক এই কাজ করে। চার বিট একসাথে লোড হয়, তারপর একটি একটি করে বেরোয়।

গঠন

এই রেজিস্টারে দুটি অপারেশন মোড থাকে।

লোড মোড: লোড সংকেত সক্রিয় হলে চার বিট একসাথে রেজিস্টারে ঢোকে। এটি ঠিক সমান্তরাল লোড রেজিস্টারের মতো।

শিফট মোড: লোড সংকেত নিষ্ক্রিয় হলে প্রতিটি পালসে ডেটা ডানে শিফট হয় এবং ধারাবাহিক আউটপুট থেকে একটি করে বিট বেরোয়।

প্রতিটি ফ্লিপ-ফ্লপের ডি ইনপুট একটি মাল্টিপ্লেক্সার দিয়ে নিয়ন্ত্রিত:

Di=Load⋅Datai+Load‾⋅Qi−1

যখন Load=১: Di=Datai, সমান্তরাল ডেটা লোড হয়। যখন Load=০: Di=Qi−1, শিফট হয়।

উদাহরণ: ১০১১ পাঠানো

স-ইন ধা-আউট শিফট রেজিস্টারের উদাহরণ
পালস মোড Q3 Q2 Q1 Q0 ধারাবাহিক আউটপুট (Q0) মন্তব্য
শুরু - ০ ০ ০ ০ - প্রাথমিক
১ লোড ১ ০ ১ ১ - ১০১১ লোড
২ শিফট ০ ১ ০ ১ ১ নিম্ন বিট বেরোল
৩ শিফট ০ ০ ১ ০ ১ দ্বিতীয় বিট বেরোল
৪ শিফট ০ ০ ০ ১ ০ তৃতীয় বিট বেরোল
৫ শিফট ০ ০ ০ ০ ১ উচ্চ বিট বেরোল

আউটপুট ক্রম (পালস ২ থেকে ৫): ১, ১, ০, ১। এটি ১০১১ নিম্ন বিট থেকে শুরু করে।

সমান্তরাল-ইন সমান্তরাল-আউট শিফট রেজিস্টার

ধারণা

এটি সবচেয়ে সহজ ধরন। ডেটা একসাথে ঢোকে এবং একসাথে বেরোয়। এটি মূলত একটি সাধারণ সমান্তরাল রেজিস্টার। তবে শিফট করার ক্ষমতাও আছে।

একটি ফটোকপিয়ার মেশিনের কথা ভাবো। পুরো পৃষ্ঠা একসাথে স্ক্যান হয় এবং পুরো পৃষ্ঠা একসাথে ছাপা হয়।

গঠন

এতে চারটি ডি ফ্লিপ-ফ্লপ আছে। সব ফ্লিপ-ফ্লপে আলাদা ডেটা ইনপুট আছে এবং সব আউটপুট বাইরে সংযুক্ত। ঘড়ির পালসে সব বিট একসাথে লোড হয় এবং সব বিট একসাথে পড়া যায়।

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

বৃত্তাকার শিফট রেজিস্টার

ধারণা

একটি ক্যারোসেলের কথা ভাবো। ঘোড়ারা বৃত্তাকারে ঘোরে। শেষ ঘোড়াটি ঘুরে আবার প্রথম ঘোড়ার পেছনে আসে। কোনো ঘোড়া কখনো হারিয়ে যায় না।

বৃত্তাকার শিফট রেজিস্টারে শেষ ফ্লিপ-ফ্লপের আউটপুট প্রথম ফ্লিপ-ফ্লপের ইনপুটে ফিরে আসে।

গঠন

সাধারণ শিফট রেজিস্টারে শেষ ফ্লিপ-ফ্লপের আউটপুট বেরিয়ে যায়। বৃত্তাকার রেজিস্টারে সেই আউটপুট আবার প্রথমে ফিরে আসে।

D0=Q3 (শেষের আউটপুট প্রথমে ফেরত)
D1=Q0
D2=Q1
D3=Q2

উদাহরণ

বৃত্তাকার শিফট রেজিস্টারের উদাহরণ
পালস Q3 Q2 Q1 Q0 মন্তব্য
শুরু ১ ০ ০ ১ প্রাথমিক
১ ১ ১ ০ ০ ডানে একধাপ
২ ০ ১ ১ ০ আবার ডানে
৩ ০ ০ ১ ১ আবার ডানে
৪ ১ ০ ০ ১ আবার শুরুতে

চার পালস পর রেজিস্টার আবার প্রাথমিক অবস্থায় ফিরে আসে। n-বিটের বৃত্তাকার রেজিস্টার nটি পালসে একবার পুরো চক্র সম্পন্ন করে।

বৃত্তাকার শিফটের ব্যবহার

  • একই প্যাটার্ন বারবার তৈরিতে
  • জনসন গণনাকারী তৈরিতে
  • সিউডো-র‍্যান্ডম সংখ্যা তৈরিতে

জনসন গণনাকারী

ধারণা

জনসন গণনাকারী একটি বিশেষ বৃত্তাকার শিফট রেজিস্টার। এখানে শেষ ফ্লিপ-ফ্লপের পরিপূরক আউটপুট (Q3¯) প্রথম ফ্লিপ-ফ্লপের ইনপুটে ফেরত আসে।

D0=Q3¯

উদাহরণ

চার-বিট জনসন গণনাকারীর ক্রম
পালস Q3 Q2 Q1 Q0 মন্তব্য
শুরু ০ ০ ০ ০ প্রাথমিক
১ ১ ০ ০ ০ Q3¯=১ ঢুকল
২ ১ ১ ০ ০ আবার ১
৩ ১ ১ ১ ০ আবার ১
৪ ১ ১ ১ ১ সব ১
৫ ০ ১ ১ ১ এখন Q3¯=০
৬ ০ ০ ১ ১ ০ ছড়াচ্ছে
৭ ০ ০ ০ ১ প্রায় শুরুতে
৮ ০ ০ ০ ০ আবার শুরুতে

n-বিটের জনসন গণনাকারী 2nটি আলাদা অবস্থা তৈরি করে। চার-বিটে ৮টি অবস্থা।

জনসন গণনাকারীর সুবিধা

সাধারণ গণনাকারী ও জনসন গণনাকারীর তুলনা
বৈশিষ্ট্য সাধারণ গণনাকারী জনসন গণনাকারী
n বিটে অবস্থা সংখ্যা ২n 2n
৪ বিটে অবস্থা ১৬টি ৮টি
প্রতিটি ধাপে পরিবর্তন একাধিক বিট একটিমাত্র বিট
নকশার জটিলতা জটিল সহজ
প্রসারণ বিলম্ব বেশি কম

সিউডো-র‍্যান্ডম বিট ক্রম জেনারেটর

ধারণা

একটি বিশেষ ধরনের বৃত্তাকার শিফট রেজিস্টারে নির্দিষ্ট ফ্লিপ-ফ্লপের আউটপুট এক্সক্লুসিভ অর গেট দিয়ে একত্রিত করে প্রথম ফ্লিপ-ফ্লপের ইনপুটে দেওয়া হয়। এটি একটি দীর্ঘ ছদ্ম-অনিয়মিত বিট ক্রম তৈরি করে।

একটি n-বিটের এই রেজিস্টার সর্বোচ্চ 2n−1টি আলাদা অবস্থা তৈরি করতে পারে।

চার-বিটের উদাহরণ

যদি D0=Q3⊕Q2 করা হয়:

চার-বিট সিউডো-র‍্যান্ডম জেনারেটর (আংশিক)
পালস Q3 Q2 Q1 Q0 D0=Q3⊕Q2
শুরু ১ ০ ০ ১ ১⊕০=১
১ ১ ১ ০ ০ ১⊕১=০
২ ০ ১ ১ ০ ০⊕১=১
৩ ১ ০ ১ ১ ১⊕০=১

ক্রমটি অনিয়মিত মনে হলেও আসলে একটি নির্দিষ্ট চক্রে ঘোরে।

ব্যবহার

  • নিরাপদ যোগাযোগে তথ্য মিশ্রণে
  • পরীক্ষামূলক সার্কিটে এলোমেলো ডেটা তৈরিতে
  • যোগাযোগ ব্যবস্থায় সংকেত ছড়িয়ে দিতে

শিফট রেজিস্টারের বাস্তব প্রয়োগ

ধারাবাহিক যোগাযোগ

ইউএসবি, এসপিআই, আইটুসি সহ প্রায় সব ধারাবাহিক যোগাযোগ প্রোটোকলে শিফট রেজিস্টার ব্যবহার হয়।

একটি মাইক্রোকন্ট্রোলার থেকে একটি সেন্সরে ডেটা পাঠাতে:

১. মাইক্রোকন্ট্রোলারে সমান্তরাল ডেটা একটি স-ইন ধা-আউট রেজিস্টারে লোড হয়। ২. ঘড়ির পালসে বিট একটি একটি করে বেরোয় এবং সংযোগ তারে যায়। ৩. সেন্সরের পাশে একটি ধা-ইন স-আউট রেজিস্টারে বিট জমে। ৪. পুরো বাইট পৌঁছালে সমান্তরালভাবে পড়া হয়।

এতে আটটি তারের বদলে মাত্র দুটি তার (ডেটা ও ঘড়ি) লাগে।

পিক্সেল শিফটিং

এলইডি ম্যাট্রিক্স ডিসপ্লেতে শিফট রেজিস্টার ব্যবহার হয়। একটি ৮-বিট শিফট রেজিস্টারে আটটি এলইডি সংযুক্ত থাকে। ধারাবাহিকভাবে ডেটা পাঠিয়ে যেকোনো প্যাটার্ন দেখানো যায়।

বড় ডিসপ্লেতে অনেকগুলো শিফট রেজিস্টার ধারাবাহিকভাবে সংযুক্ত থাকে। প্রথম রেজিস্টার ভরলে পরের রেজিস্টারে ডেটা চলে যায়।

বাইনারি গুণ ও ভাগ

প্রসেসরে দ্রুত গুণ ও ভাগের জন্য শিফট অপারেশন ব্যবহার হয়।

শিফট ও গাণিতিক অপারেশনের সম্পর্ক
অপারেশন শিফটের দিক শিফটের পরিমাণ উদাহরণ
২ দিয়ে গুণ বামে ১ ০০১১(3)→০১১০(6)
৪ দিয়ে গুণ বামে ২ ০০১১(3)→১১০০(12)
৮ দিয়ে গুণ বামে ৩ ০০০১(1)→০০০১(8)
২ দিয়ে ভাগ ডানে ১ ১০০০(8)→০১০০(4)
৪ দিয়ে ভাগ ডানে ২ ১০০০(8)→০০১০(2)
2n দিয়ে গুণ বামে n সাধারণ নিয়ম
2n দিয়ে ভাগ ডানে n সাধারণ নিয়ম

ডিজিটাল সংকেত প্রক্রিয়াকরণ

ডিজিটাল ফিল্টার, বহনযোগ্য সংকোচন সার্কিট সহ অনেক ডিজিটাল সংকেত প্রক্রিয়াকরণ কাজে শিফট রেজিস্টার ব্যবহার হয়। অডিও সমীকরণকারীতে বিভিন্ন বিলম্বের সংকেত মিশ্রণে শিফট রেজিস্টার কাজ করে।

ক্রিপ্টোগ্রাফিতে

আধুনিক এনক্রিপশন অ্যালগরিদমে শিফট রেজিস্টার গুরুত্বপূর্ণ ভূমিকা পালন করে। ডেটা স্ট্রিমকে এনক্রিপ্ট করতে সিউডো-র‍্যান্ডম বিট ক্রম জেনারেটর ব্যবহার হয়।

চলমান আলোর প্রভাব

চলন্ত আলোর সজ্জায় শিফট রেজিস্টার ব্যবহার হয়। একটি বিট শিফট করলে আলো একটি এলইডি থেকে পরেরটিতে যায়। এভাবে আলো ছুটতে থাকার প্রভাব তৈরি হয়।

চিপ পরিচিতি

৭৪এইচসি১৬৪

এটি একটি ৮-বিট ধা-ইন স-আউট শিফট রেজিস্টার।

৭৪এইচসি১৬৪-এর পিন বিবরণ
পিনের নাম ধরন কাজ
A,B ধারাবাহিক ইনপুট দুটি ইনপুট অ্যান্ড গেটে সংযুক্ত
CLK ঘড়ি উর্ধ্বমুখী প্রান্তে শিফট হয়
CLR‾ পরিষ্কার সক্রিয়-নিম্ন, তাৎক্ষণিক পরিষ্কার
QA থেকে QH আউটপুট ৮টি সমান্তরাল আউটপুট

৭৪এইচসি১৬৫

এটি একটি ৮-বিট স-ইন ধা-আউট শিফট রেজিস্টার।

৭৪এইচসি১৬৫-এর পিন বিবরণ
পিনের নাম ধরন কাজ
A থেকে H সমান্তরাল ইনপুট ৮ বিট লোড করার ইনপুট
SER ধারাবাহিক ইনপুট শিফটের সময় নতুন বিট ঢোকানো
SH/LD‾ মোড নির্বাচন উচ্চ = শিফট, নিম্ন = লোড
CLK ঘড়ি উর্ধ্বমুখী প্রান্তে কাজ হয়
CLKINH ঘড়ি বাধা উচ্চ হলে ঘড়ি কাজ করে না
QH ধারাবাহিক আউটপুট শিফট করা বিট বেরোয়
QH‾ পরিপূরক আউটপুট QH-এর পরিপূরক

৭৪এইচসি১৯৪

এটি একটি ৪-বিট দ্বিমুখী সার্বজনীন শিফট রেজিস্টার। এটি নিয়ে রেজিস্টার অধ্যায়ে বিস্তারিত আলোচনা করা হয়েছে।

উদাহরণ

উদাহরণ ১: ধা-ইন ধা-আউট রেজিস্টারে বিলম্ব

একটি ৪-বিট ধা-ইন ধা-আউট রেজিস্টারে ১, ০, ১, ১, ০, ০ বিট ক্রমে পাঠানো হলো। আউটপুট ক্রম কী হবে?

উদাহরণ ১-এর বিশ্লেষণ
পালস ইনপুট Q0 Q1 Q2 Q3 (আউটপুট)
শুরু - ০ ০ ০ ০
১ ১ ১ ০ ০ ০
২ ০ ০ ১ ০ ০
৩ ১ ১ ০ ১ ০
৪ ১ ১ ১ ০ ১
৫ ০ ০ ১ ১ ০
৬ ০ ০ ০ ১ ১
৭ ০ ০ ০ ০ ১
৮ ০ ০ ০ ০ ০

আউটপুট ক্রম (পালস ৪ থেকে ৮): ১, ০, ১, ১, ০। ইনপুট ক্রমের মতোই, শুধু ৪ পালস পরে।

উদাহরণ ২: বৃত্তাকার রেজিস্টারের চক্র

একটি ৩-বিটের বৃত্তাকার শিফট রেজিস্টারে প্রাথমিক অবস্থা Q2Q1Q0=১০১। কত পালস পর প্রাথমিক অবস্থায় ফিরবে?

উদাহরণ ২-এর বৃত্তাকার ক্রম
পালস Q2 Q1 Q0
শুরু ১ ০ ১
১ ১ ১ ০
২ ০ ১ ১
৩ ১ ০ ১

৩ পালস পর প্রাথমিক অবস্থায় ফিরে এসেছে। n-বিটের বৃত্তাকার রেজিস্টার n পালসে একবার চক্র সম্পন্ন করে।

উদাহরণ ৩: স-ইন ধা-আউট দিয়ে সংখ্যা পাঠানো

১৩ (দশমিক) সংখ্যাটি ৪-বিট স-ইন ধা-আউট রেজিস্টার দিয়ে ধারাবাহিকভাবে পাঠাও।

দশমিক ১৩ = বাইনারি ১১০১।

প্রথমে এক পালসে লোড করি, তারপর শিফট করি:

উদাহরণ ৩-এর বিশ্লেষণ
পালস মোড Q3 Q2 Q1 Q0 আউটপুট (Q0) মন্তব্য
১ লোড ১ ১ ০ ১ - ১৩ লোড হলো
২ শিফট ০ ১ ১ ০ ১ নিম্ন বিট বেরোল
৩ শিফট ০ ০ ১ ১ ০ দ্বিতীয় বিট বেরোল
৪ শিফট ০ ০ ০ ১ ১ তৃতীয় বিট বেরোল
৫ শিফট ০ ০ ০ ০ ১ উচ্চ বিট বেরোল

পাঠানো বিট ক্রম (পালস ২ থেকে ৫): ১, ০, ১, ১। এটি ১১০১ নিম্ন বিট থেকে শুরু করে।

উদাহরণ ৪: ধা-ইন স-আউট দিয়ে বাইট গ্রহণ

ধারাবাহিক সংযোগে ১, ০, ১, ১ বিট আসছে (উচ্চ বিট আগে, অর্থাৎ ১০১১)। একটি ৪-বিট ধা-ইন স-আউট রেজিস্টার দিয়ে বাইটটি গ্রহণ করো।

উদাহরণ ৪-এর বিশ্লেষণ
পালস ধারাবাহিক ইনপুট Q3 Q2 Q1 Q0 মন্তব্য
শুরু - ০ ০ ০ ০ খালি
১ ১ (উচ্চ বিট) ১ ০ ০ ০ শুরু
২ ০ ০ ১ ০ ০ এগোচ্ছে
৩ ১ ১ ০ ১ ০ এগোচ্ছে
৪ ১ (নিম্ন বিট) ১ ১ ০ ১ সম্পূর্ণ

চার পালস পর Q3Q2Q1Q0=১১০১। কিন্তু আমরা ১০১১ পাঠিয়েছিলাম!

কারণটা হলো: উচ্চ বিট আগে পাঠালে সেই বিট সবচেয়ে ডানে চলে যায়। তাই প্রাপকের কাছে বিটের ক্রম উল্টো হয়।

এই সমস্যা সমাধানের দুটি পদ্ধতি:

পদ্ধতি ১: নিম্ন বিট আগে পাঠানো। ক্রম: ১, ১, ০, ১। তাহলে চার পালস পর Q3Q2Q1Q0=১০১১ হবে।

পদ্ধতি ২: প্রাপকের রেজিস্টারের বিট ক্রম উল্টিয়ে নেওয়া। অর্থাৎ আউটপুট হিসেবে Q0Q1Q2Q3 পড়া।

উদাহরণ ৫: জনসন গণনাকারীর অবস্থা

একটি ৩-বিটের জনসন গণনাকারীতে প্রাথমিক অবস্থা ০০০। পুরো একটি চক্র দেখাও।

D0=Q2¯
৩-বিট জনসন গণনাকারীর সম্পূর্ণ চক্র
পালস Q2 Q1 Q0 D0=Q2¯
শুরু ০ ০ ০ ১
১ ১ ০ ০ ১
২ ১ ১ ০ ১
৩ ১ ১ ১ ০
৪ ০ ১ ১ ০
৫ ০ ০ ১ ০
৬ ০ ০ ০ ১

৬ পালসে একটি চক্র সম্পন্ন হলো। ৩-বিট জনসন গণনাকারীতে 2×3=6টি আলাদা অবস্থা।

শিফট রেজিস্টারের তুলনামূলক সারণি

চার ধরনের শিফট রেজিস্টারের তুলনা
বৈশিষ্ট্য ধা-ইন ধা-আউট ধা-ইন স-আউট স-ইন ধা-আউট স-ইন স-আউট
ইনপুটের ধরন ধারাবাহিক ধারাবাহিক সমান্তরাল সমান্তরাল
আউটপুটের ধরন ধারাবাহিক সমান্তরাল ধারাবাহিক সমান্তরাল
পালস প্রয়োজন n (সংরক্ষণ) + n (বের করা) n (সংগ্রহ) ১ (লোড) + n (পাঠানো) ১ (লোড)
গেট সংখ্যা সবচেয়ে কম কম মধ্যম বেশি
প্রধান ব্যবহার বিলম্ব রেখা ধারাবাহিক গ্রহণ ধারাবাহিক প্রেরণ ডেটা বাফার
তথ্যের ক্রম বজায় থাকে বজায় থাকে নিম্ন বিট আগে বজায় থাকে

অনুশীলনী

  1. একটি ৩-বিট ধা-ইন ধা-আউট রেজিস্টারে প্রাথমিক অবস্থা ০০০। ১, ১, ০ ক্রমে ইনপুট দিলে প্রতিটি পালসের পর রেজিস্টার কী থাকবে?
  2. ধা-ইন ধা-আউট রেজিস্টারে বিলম্ব কীভাবে তৈরি হয়? ৮-বিট রেজিস্টারে কত পালসের বিলম্ব?
  3. একটি ৪-বিট ধা-ইন স-আউট রেজিস্টারে ১, ০, ০, ১ ক্রমে ইনপুট দেওয়া হলো (প্রথম বিট সবচেয়ে বামে যাবে)। চার পালস পর Q3Q2Q1Q0 কী?
  4. একটি ৪-বিট স-ইন ধা-আউট রেজিস্টারে ১০১১ লোড করা হলো। নিম্ন বিট থেকে শুরু করে ধারাবাহিক আউটপুটের ক্রম কী?
  5. বৃত্তাকার শিফট রেজিস্টার ও সাধারণ শিফট রেজিস্টারের মূল পার্থক্য কী?
  6. একটি ৪-বিট বৃত্তাকার রেজিস্টারে ০০০১ আছে। ৬ পালস পর কী থাকবে?
  7. জনসন গণনাকারীতে Q¯-এর বদলে Q ফেরত দিলে কী হয়? তখন কী ধরনের সার্কিট পাওয়া যায়?
  8. একটি ৫-বিট জনসন গণনাকারী কতটি আলাদা অবস্থা তৈরি করে?
  9. স-ইন ধা-আউট রেজিস্টারে ১৫ (দশমিক) লোড করে ধারাবাহিকভাবে পাঠাও। আউটপুট ক্রম কী হবে?
  10. একটি ৪-বিট শিফট রেজিস্টার দিয়ে ৬ (দশমিক) কে ২ দিয়ে গুণ করো। প্রাথমিক মান লোড করো এবং বামে এক শিফট দিয়ে ফলাফল দেখাও।
  11. ধা-ইন স-আউট এবং স-ইন ধা-আউট রেজিস্টার একসাথে ব্যবহার করে কীভাবে ধারাবাহিক যোগাযোগ ব্যবস্থা তৈরি করা যায়?
  12. একটি ৩-বিট সিউডো-র‍্যান্ডম বিট ক্রম জেনারেটরে D0=Q2⊕Q1 এবং প্রাথমিক অবস্থা ০০১। প্রথম পাঁচটি পালসে Q0-এর মান কী হবে?

উত্তর:

  1. পালস ১: ১০০; পালস ২: ১১০; পালস ৩: ০১১
  2. ইনপুট থেকে আউটপুটে পৌঁছাতে nটি পালস লাগে কারণ ডেটা nটি ফ্লিপ-ফ্লপের মধ্য দিয়ে যায়; ৮-বিটে ৮ পালসের বিলম্ব
  3. পালস ১: ১০০০; পালস ২: ০১০০; পালস ৩: ০০১০; পালস ৪: ১০০১; তাই Q3Q2Q1Q0=১০০১
  4. আউটপুট ক্রম (পালস ১ থেকে ৪): ১, ১, ০, ১ (নিম্ন বিট ১ প্রথমে)
  5. বৃত্তাকারে শেষ ফ্লিপ-ফ্লপের আউটপুট প্রথমে ফেরত আসে তাই ডেটা হারায় না; সাধারণ শিফট রেজিস্টারে শেষ ফ্লিপ-ফ্লপের ডেটা বেরিয়ে যায় এবং নতুন বিট বাইর থেকে ঢোকে
  6. ০০০১ ডানে শিফট হয়ে ৪ পালসে এক চক্র, তাই ৬ পালসে: ০০০১ (৪ পালস = এক চক্র), ৫ম পালসে ১০০০, ৬ষ্ঠ পালসে ০১০০
  7. Q ফেরত দিলে বৃত্তাকার শিফট রেজিস্টার পাওয়া যায়; জনসন গণনাকারীতে পরিপূরক (Q¯) ফেরত দেওয়াই বিশেষত্ব
  8. 2×5=10টি আলাদা অবস্থা
  9. ১৫ = ১১১১; লোড করে শিফট করলে আউটপুট ক্রম: ১, ১, ১, ১
  10. ৬ = ০১১০; লোড করে বামে এক শিফট (SIL=০): ১১০০ = ১২; ৬ × ২ = ১২
  11. প্রেরকের পাশে এস-ইন ধডি-আউট রেজিস্টার ডেটা লোড করে ধারাবাহিকভাবে পাঠায়; প্রাপকের পাশে ধা-ইন স-আউট রেজিস্টার বিট একটি একটি করে জমায় এবং সব পৌঁছালে সমান্তরালভাবে পড়া হয়; এতে দুটি তার (ডেটা ও ঘড়ি) দিয়ে যেকোনো প্রশস্ততার ডেটা পাঠানো যায়
  12. প্রাথমিক Q2Q1Q0=০০১, তাই D0=০⊕০=০; পালস ১: ০০০, Q0=০; পালস ২: D0=০⊕০=০, ০০০ থেকে ০০০, Q0=০; এই রেজিস্টারে শূন্য অবস্থায় আটকে গেছে কারণ সব শূন্য থেকে ০⊕০=০; প্রাথমিক অবস্থা পরিবর্তন করে আবার চেষ্টা করতে হবে, যেমন ০০১ এর বদলে ০১১ নিলে: পালস ১: D0=০⊕১=১, অবস্থা ১০১, Q0=১; পালস ২: D0=১⊕০=১, অবস্থা ১১০, Q0=০; ক্রম চলতে থাকে

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