طراحی در سطح سیستم

System-Level Design

مقطع: کارشناسی گرایش: –
نوع درس: نظری تعداد واحد: ۳
پیش‌نیاز: – هم‌نیاز: –

هدف کلی

هدف از این درس، آموزش چگونگی افراز یک سیستم دیجیتال به بخش‌های سخت‌افزاری و نرم‌افزاری و نحوه تعامل این دو بخش با هم، آشنایی با برخی سکوهای طراحی در سطح سیستم مشتمل بر بخش‌های نرم‌افزاری و سخت‌افزاری، یادگیری روند اتوماتیک سنتز سطح بالای کدهای C ،C++ و SystemC به مدل‌های سطح انتقال ثبات (در این راستا الگوریتم‌های پیشرفته سنتز سطح بالا (HLS) و مفاهیم مهمی مانند loop pipelining، loop unrolling، IO scheduling و نگاشت آرایه‌ها به حافظه‌ها و چالش‌های آن با جزئیات بحث خواهد شد)، و یادگیری روند طراحی سطح سیستم مبتنی بر Matlab/Simulink با کاربردهای مختلف است.

سرفصل‌ها

  1. معرفی و مقدمه
    • مروری بر فازهای مهم سنتز سطح بالا (HLS) و آنالیز گراف جریان داده (DFG)
  2. آشنایی با روش loop pipelining و تاثیر آن بر مدل RTL سنتزشده
    • تعریف Throughput، Latency و Initiation Interval (II)
    • مفهوم loop pipelining برای حلقه‌های معمولی و تودرتو
  3. آشنایی با مفهوم loop unrolling و تاثیر آن بر مدل RTL سنتزشده
  4. زمان‌بندی ورودی-خروجی (IO scheduling)
    • معرفی روش‌های مختلف IO scheduling
    • مکانیزم‌های Handshaking
  5. نگاشت آرایه‌ها به حافظه‌ها
    • روش Interleaving و Widening برای بهبود عملکرد مدل RTL
    • چالش‌های این نگاشت در جهت بهینه‌سازی مدل RTL
  6. طراحی سطح سیستم مبتنی بر Matlab/Simulink
    • چگونگی تعریف سیستم در Matlab/Simulink
    • روند اتوماتیک تبدیل مدل Floating-point به Fixed-point
    • چگونگی تولید مدل RTL و درستی‌سنجی آن (قابلیت Co-Simulation)
    • آشنایی با قابلیت‌های Sharing، Streaming، Loop Streaming و RAM Mapping
    • آشنایی با قابلیت‌های Oversampling و Clock-rate Pipelining
  7. طراحی توأم بخش‌های سخت‌افزاری و نرم‌افزاری و نحوه تعامل این دو بخش با هم
    • آشنایی با Master-Slave Interface
    • آشنایی با مفهوم Memory-mapped IO با هدف دسترسی به سخت‌افزار
    • آشنایی با مفهوم Hardware Abstraction Level (HAL) و APIهای مرتبط
    • چگونگی نوشتن Device Driver
    • آشنایی با مفهوم Custom Instruction در Soft Processor
    • سنتز اتوماتیک معماری گذرگاه (Bus Architecture) با قابلیت‌های Burst، Latency-Aware و Streaming
    • چگونگی دسترسی به سخت‌افزار از طریق HAL API و Device Driver

ارزیابی پیشنهادی

  • تمرین‌های نظری: ۳ نمره
  • آزمون‌های میان‌ترم و پایانی: ۱۵ نمره
  • آزمونک‌ها: ۲ نمره

منابع پیشنهادی

  1. M. Fingeroff and T. Bollaert. High Level Synthesis: Blue Book. Mentor Graphics Corporation, 2010.
  2. Fixed-point Tools and HDL Coder Getting Started Guide. MathWorks, 2016.
  3. J. O. Hamblen, T. S. Hall, and M. D. Furman. Rapid Prototyping of Digital Systems. SOPC Edition, Springer, 2008.