شیفت رجیستر SIPO (Serial In Parallel Out) ابزاری حیاتی در سیستم‌های دیجیتال است که به عنوان یک مبدل داده سریال به موازی (Serial-to-Parallel Converter) عمل می‌کند. وظیفه اصلی آن دریافت یک جریان متوالی از بیت‌های داده (ورودی سریال) و ارائه آن‌ها به صورت یک بلوک داده چندبیتی همزمان (خروجی موازی) است. این ساختار در ورودی پروتکل‌های ارتباط سریال، مانند UART، SPI و I2C، نقش گیرنده داده (Receiver) را ایفا می‌کند.

۱. ساختار پایه‌ای SIPO

شیفت رجیستر SIPO اساساً از یک زنجیره از فلیپ‌فلاپ‌های D (D-Type Flip-Flops) تشکیل شده است که به صورت متوالی به یکدیگر متصل شده‌اند. تعداد فلیپ‌فلاپ‌ها تعیین‌کننده طول (ظرفیت) رجیستر است (مثلاً برای یک SIPO هشت بیتی، هشت فلیپ‌فلاپ نیاز است).

پین ورودی/خروجی وظیفه
CLK (Clock) پالس همگام‌ساز که عملیات شیفت را در هر لبه فعال (معمولاً لبه صعودی) انجام می‌دهد.
Serial In (SI) ورودی تک‌بیتی که داده سریال را دریافت می‌کند.
Parallel Out (PO) خروجی چندبیتی (باس) که پس از دریافت کامل، داده را به‌طور موازی ارائه می‌دهد.
Reset (Optional) برای بازگرداندن رجیستر به حالت اولیه (صفر).

۲. نحوه عملکرد (مکانیسم شیفت)

عملیات در SIPO به صورت چرخه‌ای و همگام با کلاک پیش می‌رود:

  1. ورود اولین بیت: در اولین لبه کلاک، اولین بیت از داده سریال وارد اولین فلیپ‌فلاپ می‌شود.
  2. شیفت متوالی: در هر لبه کلاک بعدی، داده‌های ذخیره شده در هر فلیپ‌فلاپ به فلیپ‌فلاپ مجاور خود شیفت داده می‌شوند. بیت جدید سریال نیز در همین لحظه وارد فلیپ‌فلاپ اول می‌گردد.
  3. تکمیل دریافت: پس از گذشت به تعداد بیت‌های رجیستر (مثلاً ۸ دوره کلاک برای یک رجیستر ۸ بیتی)، آخرین بیت از داده سریال وارد شده و اولین بیت به انتهای زنجیره رسیده است. در این زمان، تمامی NN بیت داده به صورت کامل در طول فلیپ‌فلاپ‌ها ذخیره شده‌اند.
  4. دسترسی موازی: در این لحظه، خروجی چندبیتی (Parallel Out) یک تصویر ثابت و کامل از داده دریافت شده را نمایش می‌دهد.

۳. پیاده‌سازی و نگاشت در FPGA

پیاده‌سازی SIPO در FPGA بسیار کارآمد است، زیرا ابزارهای سنتز مدرن (Synthesis Tools) به طور هوشمند ساختار شیفت متوالی را تشخیص می‌دهند و آن را به منابع سخت‌افزاری اختصاصی نگاشت می‌کنند:

A. نگاشت به D-FF زنجیره‌ای

  • در ساده‌ترین حالت، هر بیت رجیستر به یک D-FF اختصاصی در Logic Cell نگاشت می‌شود. مسیرهای ارتباطی (Routing) بین خروجی Q یک فلیپ‌فلاپ و ورودی D فلیپ‌فلاپ بعدی، زنجیره شیفت را تشکیل می‌دهند.
  • مزیت این روش، استفاده از شبکه‌های کلاک جهانی (Global Clock Networks) FPGA است که تضمین می‌کند تمامی فلیپ‌فلاپ‌ها به طور کاملاً همگام و با کمترین انحراف کلاک (Clock Skew) شیفت داده شوند.

B. استفاده از منابع Shift Register LUTs (SRLs)

  • در FPGAهای پیشرفته (مانند Xilinx 7-series و Intel Cyclone/Stratix)، منابع سخت‌افزاری به نام Shift Register Look-Up Tables (SRLs) وجود دارند.
  • SRLs از انعطاف‌پذیری LUTها برای پیاده‌سازی شیفت رجیسترهای بسیار طولانی (معمولاً تا ۶۴ بیت) استفاده می‌کنند.
  • مزیت SRLs: استفاده از SRLs به جای زنجیره‌ای از D-FFهای مجزا، منجر به کاهش قابل توجهی در مصرف منابع FPGA و بهبود سرعت عملیات شیفت (به دلیل سیم‌کشی کوتاه‌تر و بهینه‌تر داخلی) می‌شود. طراح با نوشتن کد HDL استاندارد شیفت رجیستر، اجازه می‌دهد که ابزار سنتز این بهینه‌سازی را به صورت خودکار انجام دهد.

۴. کنترل دریافت داده (مورد نیاز در عمل)

یک SIPO خام به تنهایی نمی‌تواند تشخیص دهد که چه زمانی NNN بیت کامل دریافت شده است. در عمل، برای کاربردهای ارتباطی، SIPO باید با یک مدار کنترلی ترکیب شود:

  • شمارنده بیت (Bit Counter): برای شمارش تعداد کلاک‌هایی که پس از شروع دریافت فعال شده‌اند.
  • ماشین حالت (FSM): برای مدیریت فرآیند “شروع دریافت” (مثلاً پس از تشخیص Start Bit در UART)، فعال‌سازی شیفت، و تولید سیگنال “داده آماده” (Data Ready) پس از دریافت NNN بیت کامل.

نتیجه‌گیری: شیفت رجیستر SIPO یک عنصر اساسی برای پل زدن بین دنیای ارتباطات سریال (سرعت بالا یا مسافت طولانی) و پردازش موازی داخلی FPGA است. پیاده‌سازی آن در FPGA، با تکیه بر منابع اختصاصی D-FF و SRLs، بسیار کارآمد و سریع انجام می‌گیرد.

کلیدواژه ها : شیفت رجیستر SIPO-Serial In Parallel Out-تبدیل سریال به موازی-Serial-to-Parallel Converter-فلیپ‌فلاپ D-D-Type Flip-Flop-Shift Register-رجیستر شیفت-FPGA-Shift Register LUTs-SRLs-منابع اختصاصی-Dedicated Resources-FSM-ماشین حالت-UART-SPI-I2C-Global Clock Network-کلاک-طراحی در FPGA