شیفت رجیستر (Shift Register)، نوع دیگری از مدار منطقی ترتیبی میباشد که از آن میتوان برای ذخیره یا انتقال دادههای باینری استفاده شود.
این المان، داده را روی ورودیهایش بارگزاری میکند و سپس آنها را با اعمال هر پالس کلاک به خروجیهایش شیفت میدهد. بنابراین از آن به عنوان شیفت رجیستر یا ثبات شیفت یاد میشود.
یک شیفت رجیستر شامل تعداد زیادی قفل داده نوع D تک بیتی است که به یکدیگر به صورت سری daisy chain متصل شدهاند تا خروجی یک لچ داده، ورودی لچ بعدی شود.
بیتهای داده میتوانند به صورت سریال از ثبات خارج یا به آن وارد شوند. بیتها به ترتیب از چپ یا از راست از ثبات عبور میکنند. اما در پیکربندی موازی میتوان همه دادهها را به صورت یکجا از ثبات عبور داد.
تعداد لچهای داده ای که برای ساخت یک شیفت رجیستر نیاز است، توسط تعداد بیتهایی که باید ذخیره شوند تعیین میشود که در اکثر مواقع 8 بیت (یک بایت) میباشد. که از 8 لچ داده ساخته میشوند.
از ثباتهای شیفت برای ذخیره داده یا حرکت داده استفاده میشود. بنابراین از آنها به وفور در ساخت ماشین حسابها یا کامپیوترها استفاده میشود تا دادههایی مانند اعداد باینری پیش از جمع شدن با یکدیگر در ثبات ذخیره شوند یا برای تبدیل داده از سریال به موازی یا برعکس از ثباتهای شیفت استفاده میشود. همچنین برخی از لچهای داده وجود دارند که میتوانند یک شیفت رجیستر را به وجود بیاورند و از آن جایی که این قفلهای داده با پالس کلاک (Clk) یکسانی راهاندازی میشوند، المانهایی سنکرون میباشند.
IC شیفت رجیسترها معمولا دارای پایه ی Clear یا Reset هستند تا بتوانند در زمانهای مقتضی Set یا Reset شوند. به طور کلی، شیفت رجیسترها در یکی از 4 حالتی که در زیر ذکر شده قرار دارند:
- ورودی سریال – خروجی موازی (SIPO) (Serial-in to Parallel-out):
در این حالت دادههای سریال روی ثبات بارگزاری میشوند و دادههای ذخیره شده در خروجی به صورت موازی ظاهر میگردند.
- ورودی سریال- خروجی سریال (SISO) (Serial-in to Serial-out):
دیتا به صورت سریال وارد یا خارج میشود (یک بیت در هر لحظه) از جهت راست یا چپ به ازای هر کلاک یک بیت داده از ثبات عبور میکند.
- ورودی موازی – خروجی سریال (PISO) (Parallel-in to Serial-out):
دادههای موازی در ثبات به صورت همزمان بارگزاری میشوند. اما به صورت تک به تک (سریال) و به ازای هر پالس کلاک روی خروجی نمایان میشوند.
- ورودی موازی – خروجی موازی (PIPO) (Parallel-in to Parallel-out)
دادههای موازی به صورت همزمان در ثبات بارگزاری میشوند و همگی با اعمال پالس کلاک به خروجیهای متناظرشان هدایت میشوند.
انتقال داده از چپ به راست در یک شیفت رجیستر میتواند به صورت زیر نشان داده شود:
همچنین جهت حرکت داده در یک شیفت رجیستر میتواند به سمت چپ (شیفت چپ) یا به سمت راست (شیفت راست) باشد. با این وجود، ثباتهای شیفتی نیز وجود دارند که در دو جهت انتقال داده را انجام میدهند. در این مقاله این طور فرض خواهد شد که تمام انتقال دادهها به سمت راست (شیفت راست) میباشد.
شیفت رجیستر ورودی سریال - خروجی موازی (SIPO)
حال فرض کنید که تمام فلیپ فلاپها (FFA تا FFD ) به تازگی از طریق ورودی Clear ریست شدهاند و تمام خروجیها (QA تا QD) در سطح منطقی صفر میباشد و هیچ خروجی موازی داده ای وجود ندارد.
اگر پین وضعیت ورودی FFA یک شود، با اعمال اولین پالس کلاک خروجی FFA (QA) به سطح منطقی یک میرود. در حالیکه دیگر خروجیها هنوز در سطح منطقی صفر میباشند. حال فرض کنید که پین ورودی FFA دوباره به سطح پایین و به منطق صفر برگشته و یک پالس داده به صورت 0-1-0 داریم.
دومین پالس کلاک خروجی FFA را به منطق صفر میبرد و خروجی FFB و QB به منطق یک میروند چرا که ورودی D دارای سطح منطقی یک میباشد. حال منطق یک، یک مرحله در ثبات به سمت راست شیفت داشتهاست.
هنگامیکه سومین پالس کلاک فرامیرسد، مقدار منطق یک به خروجی FFC (QC) شیفت پیدا میکند و در پالس کلاک پنجم تمام خروجیها (از QA به QD) دوباره به سطح منطقی صفر بازمیگردند.
هر کلاک، داده را یک مرحله به سمت راست شیفت میدهد تا زمانی که کل بیتهای داده در ثبات بارگزاری شوند. حال این مقادیر داده میتواند به صورت مستقیم از خروجی QA تاQD خوانده شوند. سپس دادهها از یک سیگنال ورودی سریال به یک خروجی داده موازی تبدیل میشوند. جدول ارزشی و موجهای به وجود آمده، شیفت منطق یک را در رجیستر از چپ به راست نشان میدهد.
انتقال دیتا با شیفت رجیستر
شماره پالس کلاک
|
QA
|
QB
|
QC
|
QD
|
---|---|---|---|---|
0
|
0
|
0
|
0
|
0
|
1
|
1
|
0
|
0
|
0
|
2
|
0
|
1
|
0
|
0
|
3
|
0
|
0
|
1
|
0
|
4
|
0
|
0
|
0
|
1
|
5
|
0
|
0
|
0
|
0
|
به یاد داشته باشید که پس از اعمال چهارمین پالس کلاک، 4 بیت داده (1-0-0-0) در ثبات ذخیره شده و این اطلاعات تا زمانی که کلاک ثبات متوقف شده باشد، در آن باقی میماند. در عمل دادههای ورودی ممکن است شامل ترکیبی از منطق یک و صفر باشند. ICهای SIPO رایج شامل 74LS168 8 بیتی یا 74LS594 میباشند.
شیفت رجیستر ورودی سریال – خروجی سریال (SISO)
این شیفت رجیستر شباهت زیادی به ثبات SIPO دارد و تنها تفاوت آن این است که به جای خواندن همزمان داده از QA تا QD ، اطلاعات را به صورت تکی میخواند. چرا که تنها یک خروجی در ثبات موجود است. بنابراین داده بیت به بیت (سریال) از ثبات خارج میشود و به همین دلیل این ثبات را شیفت رجیستر ورودی سریال – خروجی سریال نام گذاری کردهاند.
شیفت رجیستر SISO ساده ترین پیکربندی را در بین ثباتهای شیفت دارد. چرا که تنها دارای 3 پایه است: یک ورودی سریال (SI) که مشخص میکند چه اطلاعاتی به سمت چپ فلیپ فلاپ وارد شود، یک خروجی سریال (SO) که از خروجی فلیپ فلاپ سمت راست گرفته میشود و یک سیگنال کلاک (Clk). دیاگرامیکه در شکل نشان داده شده، طرحی کلی از شیفت رجیستر ورودی سریال- خروجی سریال را نشان میدهد.
شاید بگویید فایده شیفت رجیستر SISO چیست؟ اگر قرار باشد خروجی داده دقیقا شبیه به ورودی آن باشد. در جواب باید گفت که این شیفت رجیستر شبیه به یک المان ذخیره داده عمل میکند یا میتواند به عنوان یک المان تاخیری برای ارسال داده مورد استفاده قرار بگیرد و میزان تاخیر در ارسال داده توسط مراحل ثبات (4،8،16 و…) یا زمانبندی اعمال پالس کلاک تعیین میشود. یکی از ICهای SISO رایج، 74HC595 8 بیتی میباشد که دارای 3 مرحله خروجی است.
شیفت رجیستر ورودی موازی – خروجی سریال PISO
این ثبات بر عکس ثبات ورودی سریال – خروجی موازی عمل میکند. دادهها در ثبات به صورت موازی بارگزاری میشوند. ( تمام دادهها به صورت همزمان توسط ثبات دریافت میشوند) و روی پایههای ورودی PA تا PD میافتند. سپس از سمت راست تک به تک و با اعامل هر کلاک، به خروجی Q ارسال میشوند.
فراموش نکنید که این نوع شیفت رجیستر به هیچ پالس کلاکی برای ورودی نیاز ندارد. چرا که تمام دادهها به صورت همزمان بارگزاری میشوند. اما به 4 کلاک برای ارسال خروجی نیاز میباشد.
این نوع شیفت رجیستر، دادههای موازی را به صورت سریال درمیآورد و از آن میتوان برای ادغام خطوط ورودی مختلف و تبدیل آنها به یک جریان تکی دادههای سریال استفاده کرد تا از طریق خطوط انتقال داده به کامپیوتر و دیگر دستگاهها ارسال شوند.
IC هشت بیتی 74HC166 رایج ترین شیفت رجیستر ورودی موازی – خروجی سریال است.
شیفت رجیستر ورودی موازی – خروجی موازی PIPO
آخرین پیکربندی ثباتهای شیفت، ثبات ورودی موازی – خروجی موازی میباشد. این نوع شیفت رجیستر، همانند یک دستگاه حافظه موقف عمل میکند یا میتوان از آن به عنوان یک المان برای ایجاد تاخیر زمانی استفاده کرد. در این ثبات، داده در فرمت موازی روی پایههای ورودی PA تا PD بارگزاری میشود و سپس با اعمال پالس کلاک همزمان به خروجیهای منتاظر QA تا QD ارسال میشود. در واقع، ثبات برای بارگزاری اطلاعات یا ارسال آن تنها به یک پالس کلاک نیاز دارد. این پیکربندی در شکل زیر نشان داده شدهاست:
شیفت رجیستر PIPO همانند SISO ساختار بسیار سادهای دارد چرا که تنها دارای 3 اتصال میباشد: (PI) که مشخص میکند چه اطلاعاتی وارد فلیپ فلاپ شود، (PO) برای خروجی فلیپ فلاپ و پایه پالس کلاک (CLK).
همانند شیفت رجیستر، ورودی سریال – خروجی سریال از این ثبات برای ذخیره موقت داده یا ایجاد تاخیر در ارسال داده استفاده میشود که میزان تاخیر توسط فرکانس پالسهای کلاک مشخص میشود. همچنین در این صورت، از ثبات هیچ اتصال داخلی بین فلیپ فلاپهای مختلف وجود ندارد چرا که به شیفت سریال داده نیازی نیست.
شیفت رجیستر یونیورسال
امروزه، مدارهای مجتمع شیفت رجیستر گوناگونی در دسترس میباشد. مانند TTL74LS194، 74LS195 یا CMOS 4055 که به صورت المانهای چند کارهی 4 بیتی در دسترس میباشند که میتوان از آنها برای انتقال داده سریال به سریال، شیفت از سمت چپ و راست، سریال به موازی، موازی به سریال یا موازی به موازی بهره برد و به همین دلیل است که به این نوع المانها، المانهای همگانی یا یورنیورسال میگویند.
ثباتهای شیفت همگانی میتوانند ترکیبها و پیکربندیهای متفاوتی داشته باشند. اما به ورودیهای بیشتری برای تعیین علمکرد دلخواه و ریست شدن نیاز دارند. یکی از ثباتهای شیفت همگانی پرکاربرد، قطعه ی TTL 74LS194 میباشد که در شکل زیر نشان داده شده:
شیفت رجیسترهای یونیورسال یا همگانی، المانهای دیجیتال پرکاربردی هستند. آنها میتوانند به صورتی پیکربندی شوند که به عنوان حافظه موقت یا المان تاخیر مورد استفاده قرار بگیرند یا میتوان از آنها برای انتقال اطلاعات از یک نقطه به نقطه دیگر در فرمت موازی یا سریال استفاده نمود. ثباتهای شیفت همگانی به صورت مداوم در عملگرهای ریاضی مورد استفاده قرار میگیرند تا برای ضرب یا تقسیم داده را به سمت راست یا چپ شیفت بدهند.
خلاصه شیفت رجیسترها
- یک شیفت رجیستر ساده میتواند با استفاده از فلیپ فلاپهای نوع D ساخته شود. گفتنی است یک فلیپ فلاپ تنها میتواند یک بیت از داده را نگه دارد.
- خروجی از هر فلیپ فلاپ به ورودی D فلیپ فلاپ سمت راستش متصل میشود.
- شیفت رجیسترها داده را در حافظه شان نگه میدارند تا با اعمال هر پالس کلاک به موقعیت دلخواه شیفت پیدا کند. هر پالس کلاک، محتویات ثبات را یک بیت به سمت چپ یا راست شیفت میدهد.
- بیتهای داده میتوانند به صورت سری (یک بیت در هر لحظه) (SI) (Serial Input) یا به صورت موازی (همزمان) (PI) (Parallel Input) در ثبات بارگزاری شوند.
- داده میتواند به صورت بیت به بیت (سریال) به خروجی ارسال شود. (SO) (Serial Output) یا به صورت همزمان (موازی) (PO) (Parallel Output).
- یکی از کاربردهای شیفت رجیستر، تبدیل داده از فرمت سری به فرمت موازی و بر عکس میباشد.
- ثباتهای شیفت به 4 گروه SIPO، SISO، PISO وPIPO تقسیم میشوند.
- همچنین ثباتهای شیفت همگانی وجود دارند که هر 4 نوع ثبات را درون خود مجتمع کردهاند.
در مقالهی بعدی بخش مدارات منطقی ترتیبی خواهیم دید اگر خروجی آخرین فلیپ فلاپ به صورت مستقیم به ورودی اولین فلیپ فلاپ متصل شود چه اتفاقی خواهد افتاد. به طور خلاصه، در این شرایط، یک مدار حلقه بسته به وجود میآید که داده به صورت مداوم در آن گردش میکند و در این حالت نوع دیگری از مدارات منطقی ترتیبی به نام شمارنده حلقه به وجود خواهد آمد که از آن در شمارندههای ده دهی و درایورها استفاده میشود.