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

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.