شیفت رجیستر – از صفر تا صد (+ دانلود فیلم آموزش رایگان)


شیفت رجیستر (Shift Register) یا ثبات انتقالدهنده یکی از انواع مدارات منطقی ترتیبی است که در ذخیرهسازی و انتقال دادههای باینری کاربرد دارد. در این مطلب قصد داریم به بررسی این نوع از مدارات منطقی بپردازیم. این ادوات ترتیبی دادههای موجود در ورودی خود را بارگذاری (Load) میکنند و سپس آنها را در هر پالس ساعت به خروجی منتقل (Shift) میکنند؛ از اینرو به آنها شیفت رجیستر میگویند.
یک شیفت رجیستر از چندین لچ (Latch) داده نوع T تک بیتی (یک عدد به ازای هر بیت داده) تشکیل میشود. این لچها هم به ازای منطق یک و هم منطق صفر وجود دارند و با آرایش زنجیری سری به یکدیگر متصل شدهاند تا خروجی یک لچ داده به ورودی برای لچ دیگر تبدیل شود و این توالی همچنان ادامه یابد.
بیتهای داده ممکن است به صورت سریال به یک شیفت رجیستر وارد و یا از آن خارج شوند. سریال به این معنی است که بیتهای داده یکی پس از دیگری از سمت چپ یا از سمت راست وارد یا خارج میشوند. این امکان نیز وجود دارد که همگی با هم در یک لحظه و با پیکربندی موازی وارد یا خارج شوند. تعداد لچهای تکی داده برای ساخت یک شیفت رجیستر معمولا توسط تعداد بیتهایی تعیین میشود، که باید به وسیله متداولترین ساختار با طول ۸ بیتی (یک بایت) از هشت لچ داده تکی ذخیره شوند. شیفت رجیسترها برای ذخیرهسازی یا انتقال داده مورد استفاده قرار میگیرند. بنابراین این ادوات بیشتر در ماشینحسابها یا کامپیوترها برای ذخیرهسازی دادههایی مانند دو عدد باینری قبل از جمع شدن با یکدیگر و یا تبدیل دادهها از فرمت سریال به موازی و یا از موازی به سریال مورد استفاده قرار میگیرند.
مدهای کاری شیفت رجیسترها
لچهای داده تکی که یک شیفت رجیستر را تشکیل میدهند، همگی از یک سیگنال کلاک مشترک تغذیه میشوند، بنابراین با یکدیگر سنکرون هستند. آیسیهای شیف رجیستر معمولا با یک قابلیت پاک کردن (Clear) یا ریست (Reset) تولید میشوند، تا در صورت لزوم، عملیات ست و یا ریست کردن در آنها به وقوع بپیوندد.
شیفت رجیسترها در یکی از چهار مد کاری مختلف زیر کار میکند، که با حرکت داده در طول شیفت رجیستر به وقوع میپیوندد.
- ورودی سریال-خروجی موازی (Serial-in to Parallel-out) یا SIPO: در این مد، شیفت رجیستر با داده سریال (در هر لحظه یک بیت) بارگذاری میشود، در حالیکه دادههای ذخیره شده به صورت موازی در خروجی ظاهر میشوند.
- ورودی سریال-خروجی سریال (Serial-in to Serial-out) یا SISO: در این مد، در هر لحظه یک داده به صورت سریال به شیفت رجیستر وارد یا خارج میشود و جهت انتقال میتواند تحت کنترل پالس ساعت به سمت راست یا چپ باشد.
- ورودی موازی-خروجی سریال (Parallel-in to Serial-out) یا PISO: دادهها با هم به صورت موازی در ورودی بارگذاری میشوند و تحت کنترل پالس ساعت در هر زمان یک بیت به صورت سریال به خروجی شیفت رجیستر منتقل میشود.
- ورودی موازی-خروجی موازی (Parallel-in to Parallel-out) یا PIPO: در این مد دادههای موازی با هم در ورودی بارگذاری میشوند و با هم تحت یک پالس ساعت به خروجی متناظر منتقل میشوند.
انتقال دادهها از چپ به راست در یک شیفت رجیستر به صورت گرافیکی در شکل زیر نشان داده شده است.

توجه به این نکته ضروری است که جهت انتقال دادهها در یک شیفت رجیستر میتواند به سمت راست (انتقال به راست)، چپ (انتقال به چپ)، ورود از سمت چپ و خروج از سمت راست (چرخش) و یا هم انتقال به راست و هم انتقال به چپ در یک رجیستر باشد، که در این صورت شیفت رجیستر دو جهته (Bidirectional) است. در این آموزش فرض میشود که تمام دادهها به سمت راست منتقل میشوند.
شیفت رجیستر ۴ بیتی ورودی سریال-خروجی موازی
در این قسمت به توضیح نحوه عملکرد این نوع شیفت رجیستر میپردازیم. شکل زیر نمایی از یک شیفت رجیستر ۴ بیتی ورودی سریال-خروجی موازی را نشان میدهد.

فرض میکنیم که تمام فلیپ فلاپهای FFA تا FFD ریست شدهاند و تمام خروجیهای تا در سطح منطقی صفر هستند. به عبارت دیگر هیچ داده موازی خارج نمیشود. حال اگر یک داده ۱ منطقی به پین ورودی فلیپ فلاپ FFA متصل شود، در نتیجه متناظر به سطح HIGH یا یک منطقی میرود، در حالی که تمام خروجیهای دیگر هنوز در سطح صفر منطقی باقی ماندهاند. حال فرض کنید که پین ورودی داده فلیپ فلاپ FFA دوباره به سطح صفر منطقی بازگشته است (یک پالس ورودی 0-1-0 وارد شده است).
پالس ساعت دوم، سطح خروجی فلیپ فلاپ FFA را به صفر و خروجی فلیپ فلاپ FFB، یعنی را به یک منطقی تغییر میدهد، زیرا ورودی این فلیپ فلاپ (یعنی D)، سطح یک منطقی را از خروجی فلیپ فلاپ FFA دریافت کرده است. بنابراین منطق یک در طول رجیستر یک بار به سمت راست منتقل شده است و در حال حاضر در قرار دارد.
زمانی که پالس ساعت سوم به مدار وارد شود، مقدار یک منطقی به خروجی فلیپ فلاپ FFC، یعنی منتقل میشود و این روند تا زمان رسیدن پنجمین پالس ساعت ادامه مییابد. با رسیدن پالس ساعت پنجم، تمام خروجیهای تا دوباره به سطح منطقی صفر باز میگردند.
تاثیر هر پالس ساعت، انتقال داده مربوط به هر مرحله به اندازه یک واحد به سمت راست است، تا جایی که داده 0001 به صورت کامل در رجیستر ذخیره شود. این مراحل در جدول زیر نشان داده شده است. مقدار این داده اکنون از طریق خروجیهای تا قابل خوانده شدن است.
بنابراین داده از فرم سریال در ورودی به فرم خروجی موازی تبدیل شده است. جدول درستی و شکل زیر نشاندهنده انتقال عدد یک در طول شیفت رجیستر از چپ به راست است.
شماره پالس ساعت | ||||
0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 1 | 1 |
0 | 0 | 1 | 0 | 2 |
0 | 1 | 0 | 0 | 3 |
1 | 0 | 0 | 0 | 4 |
0 | 0 | 0 | 0 | 5 |

توجه کنید بعد از اینکه پالس ساعت چهارم پایان یافت، چهار بیت داده (0001) در شیفت رجیستر ذخیره میشوند و مشروط بر اینکه پالس ساعت رجیستر متوقف شده باشد، در آن باقی خواهد ماند. در عمل، داده ورودی به رجیستر ممکن است از ترکیبات متنوعی از اعداد یک و صفر تشکیل شده باشد. متداولترین آیسیهای SIPO، آیسیهای استاندارد هشت بیتی 74LS164 و 74LS594 هستند.
شیفت رجیستر ورودی سریال-خروجی سریال
این نوع از شیفت رجیسترها نیز مشابه با شیفت رجیسترهای SIPO در قسمت قبل هستند. اما تفاوت بزرگ آنها در این است که قبلا داده به صورت موازی از خروجیهای تا خوانده میشد، اما اکنون دادهها مجاز هستند که مستقیما در رجیستر جریان یابند و از طرف دیگر خارج شوند. از آنجا که تنها یک خروجی وجود دارد، در نتیجه در هر لحظه یک بیت از دادهها با الگوی سریال، شیفت رجیستر را ترک میکنند. به همین دلیل به این نوع از رجیسترها ورودی سریال- خروجی سریال SISO میگویند.
شیفت رجیستر SISO به دلیل اینکه تنها دارای سه اتصال است، سادهترین نوع از چهار نوع شیفت رجیستر موجود محسوب میشود. ورودی سریال (SI)، تعیین میکند چه چیزی وارد فلیپ فلاپ سمت چپ شود. خروجی سریال، دادههای خروجی از فلیپ فلاپ سمت راست را دریافت میکند. سیگنال پالس ساعت رشتهای (CLK) نیز اتصال سوم این شیفت رجیستر است. تصویر زیر یک دیاگرام مداری کلی از شیفت رجیستر ورودی سریال-خروجی سریال را نشان میدهد.

ممکن است این سوال پیش بیاید که اگر دادهها به همان ترتیبی که وارد میشوند، از شیفت رجیستر خارج شوند، در این صورت خاصیت این نوع رجیسترها چیست؟ در پاسخ باید گفت، این نوع از شیفت رجیسترها به عنوان یک وسیله برای ذخیرهسازی موقت اطلاعات در نظر گرفته میشوند. همچنین این شیفت رجیسترها میتوانند به عنوان وسیلهای برای ایجاد تاخیر زمانی در دادهها عمل کنند. میزان تاخیر زمانی را می توان به دو روش کنترل کرد. روش اول کنترل توسط تعداد طبقات در رجیستر (۴، ۸ یا ۱۶) و روش دوم تغییر در پالس ساعت است.
شیفت رجیستر ورودی موازی-خروجی سریال
این نوع شیفت رجیستر دقیقا برعکس شیفت رجیستر ورودی سریال-خروجی موازی عمل میکند. دادهها با فرم موازی در شیفت رجیستر بارگذاری میشوند. در این حالت تمام بیتهای داده به صورت همزمان به ورودی وارد میشوند. در واقع بیتهای داده به پینهای ورودی موازی تا اعمال میشوند. سپس دادههای موجود در ورودی در مد نرمال شیفت به راست، از خروجی Q شیفت رجیستر به صورت رشتهای خوانده میشوند.
در هر لحظه یک بیت از دادهها، به صورت سریال خارج میشود. توجه به این نکته ضروری است که این نوع شیفت رجیستر به پالس ساعت برای بارگذاری داده به صورت موازی نیاز ندارد؛ زیرا دادهها خود به این صورت هستند، اما چهار پالس ساعت برای تخلیه (Unload) اطلاعات مورد نیاز هستند. شکل زیر نمایی از یک شیفت رجیستر ۴ بیتی ورودی موازی-خروجی سریال را نشان میدهد.

چون این نوع شیفت رجیسترها، دادههای موازی مانند دادههای کلمات هشت بیتی را به فرمت سریال تبدیل میکنند، در نتیجه این نوع شیفت رجیسترها میتوانند برای مالتی پلکس کردن (Multiplexing) چندین خط داده متفاوت به یک خط داده سریال مورد استفاده قرار گیرند که میتواند مستقیما به یک کامپیوتر منتقل و یا در کانال مخابراتی مخابره شود. متداولترن آیسی شیفت رجیستر نوع ورودی موازی-خروجی سری، آیسی هشت بیتی 74HC166 است.
شیفت رجیستر ورودی موازی-خروجی موازی
آخرین نوع از مدهای عملکردی شیفت رجیسترها، مد ورودی موازی-خروجی موازی است. این نوع شیفت رجیسترها نیز میتوانند به عنوان وسایل ذخیرهسازی موقت و یا تاخیر زمانی مشابه با شیفت رجیستر SISO عمل کنند. دادهها با فرمت موازی در پینهای ورودی تا حاضر میشوند و سپس با یکدیگر مستقیما به پینهای خروجی متناظر تا منتقل میشوند. سپس یک پالس ساعت اعمال میشود و شیفت رجیستر را تخلیه میکند. دیاگرام این نوع شیفت رجیستر در شکل زیر نشان داده شده است.

شیفت رجیستر ورودی موازی-خروجی موازی نیز دارای سه اتصال است و به همین دلیل میتوان گفت، دارای ساختار سادهای است. ورودی موازی (PI) تعیین میکند چه ورودی به فلیپ فلاپ وارد شود. خروجی موازی (PO) و سیگنال پالس ساعت (CLK) نیز دو اتصال دیگر این نوع شیفت رجیستر هستند. همانطور که اشاره کردیم، مشابه با شیفت رجیسترهای ورودی سریال-خروجی سریال، این نوع از شیفت رجیسترها نیز به عنوان ادوات ذخیره سازی موقت و نیز ایجاد تاخیر زمانی مورد استفاده قرار میگیرند. مقدار این تاخیر زمانی توسط تغییر فرکانس پالس ساعت تعیین میشود. توجه کنید در این نوع شیفت رجیستر فلیپ فلاپها با یکدیگر ارتباط داخلی ندارند؛ زیرا انتقال سریال داده وجود ندارد.
شیفت رجیستر عمومی (Universal)
امروزه شیفت رجیسترهای دو جهته (Bi-Directional) عمومی سرعت بالای متنوعی مانند CMOS 4035 یا نوع TTL 74LS194 و نیز 74LS195 وجود دارند. این قطعات به صورت چهار بیتی و چندکاره (Multi-Function) هستند، یعنی میتوانند برای انتقال به چپ، انتقال به راست و نیز در هر چهار مد سریال به سریال، سریال به موازی، موازی به سریال و موازی به موازی مورد استفاده قرار گیرند؛ به همین دلیل به آنها آیسیها عمومی میگویند.
این نوع آیسیها به چند ورودی اضافی برای تعیین مد کاری و نیز بارگذاری دادهها و عمل ریست نیاز دارند. نمایی از یک آیسی 74LS194 در شکل زیر نشان داده شده است.

عملکرد دو ورودی و در جدول زیر آورده شده است.
نوع رجیستر | ||
نگهدار | 0 | 0 |
شیفت به راست | 1 | 0 |
شیفت به چپ | 0 | 1 |
مد موازی | 1 | 1 |
شیفت رجیسترهای عمومی ادوات دیجیتال بسیار کاربردی هستند. این قطعات قادر به پاسخ به نیاز کاربر در صورت احتیاج به فرم خاصی از ذخیرهسازهای موقت یا تاخیرسازهای زمانی اطلاعات و یا انتقال داده از یک پین به پین دیگر چه به صورت موازی و چه سریال هستند. شیفت رجیسترهای عمومی در عملیات حسابی برای انتقال دادهها به راست، چپ، ضرب کردن دادهها و یا تقسیم آنها مورد استفاده قرار میگیرند.
اگر علاقهمند به یادگیری مباحث مشابه مطلب بالا هستید، آموزشهایی که در ادامه آمدهاند نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای مهندسی الکترونیک
- آموزش مدارهای منطقی (طراحی دیجیتال)
- مجموعه آموزشهای نرمافزارهای مهندسی برق و الکترونیک
- آموزش مدار منطقی (مرور – تست کنکور ارشد)
- منطق دیجیتال — از صفر تا صد
- آموزش سیستمهای باینری — مجموعه مقالات جامع وبلاگ فرادرس
- تایمر ۵۵۵ — راهنمای جامع
^^
سلام و عرض ادب
در متن بخش شیفت رجیستر یونیورسال نوشته شده است که این بلوک قابلیت شیفت رجیسترهای سریال به سریال و موازی به سریال را نیز دارد، در حالیکه این بلوک دارای خروجی سریال نمی باشد! درست میگویم؟
با سلام خدمت شما؛
شیفت رجیسترهای یونیورسال به دلیل قابلیت پیکربندی بالایی که دارند، میتوانند بهعنوان شیفت رجیسترهای سریال به سریال و موازی به سریال عمل کنند. وجود یا عدم وجود خروجی سریال در این نوع شیفت رجیسترها به پیکربندی داخلی آنها بستگی دارد. بسیاری از مدلهای موجود در بازار دارای پینهای خروجی سریال هستند که به شما اجازه میدهند دادهها را به صورت سریال از آنها بخوانید.
از همراهی شما با مجله فرادرس سپاسگزاریم.
بسیار خوب آموزش داده بود سپاسگزارم
بسیار مفید،آموزنده و کاربردی بود.
باتشکر از(خانم آقایی) عزیز و تیم آموزشی
(فرادرس)
خیلی به دردم خورد ممنون
خیلی به دردم خورد.
ممنون از زحمتی که کشیدین واسه این آموزش.