Shift Register

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

শিফট রাইট (Shift Right) রেজিস্টারঃ

যে রেজিস্টারের মাধ্যমে বাইনারি বিটকে ডানদিকে দিকে সরানো যায় তাকে শিফট রাইট রেজিস্টার বলে। ফ্লিফ-ফ্লপগুলো চেইন আকারে একটির আউটপুট (Q) অন্যটির ইনপুট (D) -এর সাথে সংযুক্ত থাকে। সকল ফ্লিপ-ফ্লপ একটি কমন ক্লক (Clk) পালসের সাথে সংযুক্ত থাকে। প্রতিটি পালসে সিরিয়াল ইনপুটের একটি করে বাইনারী বিট ডান দিকের ফ্লিপফ্লপে স্থানান্তরিত হতে থাকে।
শুধুমাত্র D flip-flop ব্যবহার করে তৈরি রাইট শিফট রেজিস্টারের ব্লক ডায়াগ্রাম নিম্নরূপঃ
Shift Right রেজিস্টারের ব্লক ডায়াগ্রাম
3 বিটের শিফট রেজিস্টার সিমুলেশনঃ
[সিমুলেট করতে clock pulse বাটনে ক্লিক করো।]

D ফ্লিপ-ফ্লপে যে ইনপুট দেওয়া হয় তাই আউটপুট হিসেবে পাওয়া যায়। এখানে ফ্লিপ-ফ্লপগুলো ‘Positive Edge Triggering’ অর্থাৎ ক্লকের মান কেবলমাত্র ০ থেকে ১ এ উত্তীর্ণ হলেই সচল হয়। প্রাথমিক অবস্থায় প্রতিটি ফ্লিপ-ফ্লপের আউটপুট এর মান ০ থাকে। একবার ক্লক পালস দিলে প্রতিটি বিট ফ্লিপ-ফ্লপের ডান দিকে সরতে থাকে এবং সর্বশেষ বিটটি হারিয়ে যায়।

মনে করি, আউটপুট Q0 = 0 , Q1 = 0 , Q2 = 0 এবং আমরা সিরিয়াল ইনপুট 01101 দিলাম।

১ম ক্লক পালসেঃ ইনপুটের (01101) সর্ব ডানের বিটটি (LSB) প্রথম ফ্লিপ-ফ্লপের ইনপুট (D0হবে ফলে আউটপুট (Q0) এর মান হবে 0 থেকে 1 হবে,  এবং পূর্বের বিট স্থানান্তরিত হয়ে Q1 ও Qএর মান যথাক্রমে 0 ও 0 হবে।

২য় ক্লক পালসেঃ পূর্বের বিট স্থানান্তরিত হয়ে আউটপুট QQ1 ,ও Qএর মান যথাক্রমে 0, 1 ও 0 হবে।

য় ক্লক পালসেঃ পূর্বের বিট স্থানান্তরিত হয়ে আউটপুট QQ1 ,ও Qএর মান যথাক্রমে 1, 0 ও 1 হবে।

একইভাবে প্রতিটি পালসে ফ্লিপ-ফ্লপের আউটপুট এক বিট করে ডানে সরতে থাকবে এবং সর্বশেষ বিটটি হারিয়ে যাবে

সংক্ষেপেঃ 
  • প্রতিটি ফ্লিপ-ফ্লপের ক্লক একই লাইনে সংযুক্ত থাকে।
  • প্রাথমিক অবস্থায় সকল আউটপুট (Q) এর মান ০ থাকবে।
  • ক্লকের পজেটিভ ট্রানজিশনের জন্য কাজ করে।
  •  সার্কিট সচল হলে ইনপুটের মান ডান দিকের ফ্লিপ-ফ্লপে স্থানান্তর হতে থাকে। 
  • প্রতি ক্লক পালসে শেষের ফ্লিপ-ফ্লপে থাকা বিটটি হারিয়ে যায়।