طراحی الکترونیکی در سطح سیستم

Electronic System Level Design

شماره درس: ۴۰۸۴۳.۲ تعداد واحد: ۳
مقطع: کارشناسی ارشد نوع درس: نظری
پیش‌نیاز: – هم‌نیاز: –

اهداف درس

در این درس دانشجویان با چگونگی طراحی در سطح سیستم برای سیستم‌های نهفته آشنا می‌شوند و با برخی از مفاهیم مهم همچون زبان System C و چگونگی مدل‌سازی با آن، روش سیستماتیک برای تبدیل برنامه‌های نرم‌افزاری به سخت‌افزار، پیاده‌سازی سیستم‌ها به شکل سخت‌افزار/نرم‌افزار و روش‌های سنتز و درستی سنجی در سطح سیستم آشنا می‌شوند.

ریز مواد

  1. مقدمه
    • روند رشد متدولوژی‌های طراحی سخت‌افزار و نرم‌افزار سیستم‌های نهفته تا رسیدن به طراحی الکترونیک در سطح سیستم
    • مروری بر سیر تکاملی روش‌ها و ابزار طراحی سختافزار
    • انگیزه‌های حرکت به سوی طراحی ESL
  2. دسته‌بندی مباحث مطرح در طراحی ESL
    • توصیف (Specification)، سنتز، درستی‌سنجی (Validation)
    • تحلیل پیش از بخش‌بندی (Partitioning)، بخش‌بندی، تحلیل پس از بخش‌بندی، پیاده‌سازی سخت‌افزار، پیاده‌سازی نرم‌افزار، درستی‌سنجی پس از بخش‌بندی
  3. زبان سیستم‌سی و نحوه مدلسازی سخت‌افزار با این زبان
    • ماجول، پورت، پروسس، نوعهای داده‌ای، روشهای پیاده‌سازی مدارهای ترکیبی و ترتیبی، روشهای پیاده‌سازی ماشین حالت، سنتز مدلهای سیستم‌سی
  4. یک روش سیستماتیک تبدیل برنامه‌های نرم‌افزاری به پیاده‌سازی سخت‌افزاری
    • آشنایی با مدل Finite State Machine with Datapath (FSMD) و اهمیت آن
    • دسته‌بندی عمومی دستورات زبانهای نرم‌افزاری
    • پیاده‌سازی هر Basic Block با استفاده از مدل FSMD
    • روشی عمومی برای پیاده‌سازی یک برنامه با استفاده مدل FSMD
    • معرفی موضوع سنتز رفتاری (Behavioral Synthesis یا سنتز سطح بالا: High Level Synthesis)
    • دسته‌بندی مباحث مطرح در سنتز سطح بالا: تخصیص منابع (Allocation)، زمان‌بندی (Scheduling)، انتساب منابع (Binding).
    • مرور روشها و الگوریتمهای معروف در سه مبحث پیش‌گفته
  5. اهمیت و روشهای تبادل اطلاعات (Communication) بین اجزا در پیاده‌سازی سیستمها بصورت سخت‌افزار-نرم‌افزار
    • مثالی از پیاده‌سازی رمزنگار AES بصورت نرم‌افزاری و سپس تبدیل به سخت‌افزار و مقایسه میزان افت کارآیی به دلیل حجم Communication
    • مرور روشهای تبادل اطلاعات بین سخت‌افزار و نرم‌افزار، و نیز بین نرم‌افزار و نرم‌افزار در تک پردازنده‌ها و چند‌پردازنده‌ها
  6. مدل‌سازی در سطح تراکنشها (TLM: Transaction Level Modeling)
    • اهمیت جدا کردن محاسبات از مبادله اطلاعات
    • موضوع کانال (Channel)، ویژگیها و اهمیت آن
    • مدل‌های TLM گاجسکی، اجزای آن‌ها، و روند استفاده از آن‌ها در یک طراحی بالا به پایین در سطح سیستم
    • امکانات زبان سیستم‌سی برای تعریف کانال و نحوه استفاده از آن برای مدلسازی TLM
  7. روش‌های سنتز و بهینه سازی در سطح سیستم
    • مروری بر فاکتورهای اصلی: کارآیی، مساحت، مصرف توان
    • الگوریتم‌های هم‌سنتز (Co-synthesis)
  8. روش‌ها و بسترهای نوین پیاده‌سازی سیستم‌های دیجیتال
    • مرور روند پیشرفت فن‌آوری ساخت نیمه‌هادی‌ها تا System-on-Chip (SoC)
    • مرور روند پیشرفت FPGAها تا Programmable SoCهای امروزی
    • چالش‌ها و فرصت‌های ناشی از پیشرفت‌های فوق
    • آموزش طراحی با ابزارهای موجود برای طراحی با Programmable SoCها
  9. روش‌های درستی‌سنجی در سطح سیستم
    • روش‌های مختلف هم‌شبیه‌سازی سخت‌افزار-نرم‌افزار
    • مقدمه‌ای بر روش‌های وارسی صوری (Formal Verification) سیستم‌های سخت‌افزار-نرمافزاری
  10. روش‌های بهینه سازی سیستم در سطح نرم‌افزار
    • موضوع نوسان فرایند ساخت (Process Variation) و اهمیت و نقش آن
    • الگوریتم مدیریت توان برخط برای بهینه‌سازی مصرف توان و کارآیی تراشه‌های چندپردازنده با درنظر گرفتن نوسان فرآیند ساخت
    • بهینه‌سازی بازده توان با استفاده از زمانبندی پردازه‌ها در تراشه‌های چندپردازنده با درنظر گرفتن نوسان فرآیند ساخت
    • روش‌های تخصیص کد و داده‌ها به حافظه و تاثیر آن

ارزیابی

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

مراجع

  1. Brian Bailey, Grant Martin, Andrew Piziali. Electronic System Level Design and Verification. Morgan Kaufmann Publishers, Series in Systems on Silicon, 2007.
  2. W. Wolf. Computers as Components: Principles of Embedded Computing System Design. Morgan Kaufmann Publishers, 2001.
  3. J. Staunstrup, W. Wolf. Hardware/Software Codesign: Principles and Practice. Kluwer Academic Publishers, 1997.
  4. G. DeMicheli. Hardware/Software Codesign. Kluwer Academic Publishers, 1996.
  5. F. Balarin et al. Hardware/Software Codesign: The POLIS Approach. Kluwer Academic Publishers, 1997.