طراحی الکترونیکی در سطح سیستم
Electronic System Level Design
| شماره درس: ۴۰۸۴۳.۲ | تعداد واحد: ۳ | 
| مقطع: کارشناسی ارشد | نوع درس: نظری | 
| پیشنیاز: – | همنیاز: – | 
اهداف درس
در این درس دانشجویان با چگونگی طراحی در سطح سیستم برای سیستمهای نهفته آشنا میشوند و با برخی از مفاهیم مهم همچون زبان System C و چگونگی مدلسازی با آن، روش سیستماتیک برای تبدیل برنامههای نرمافزاری به سختافزار، پیادهسازی سیستمها به شکل سختافزار/نرمافزار و روشهای سنتز و درستی سنجی در سطح سیستم آشنا میشوند.
ریز مواد
- مقدمه
- روند رشد متدولوژیهای طراحی سختافزار و نرمافزار سیستمهای نهفته تا رسیدن به طراحی الکترونیک در سطح سیستم
 - مروری بر سیر تکاملی روشها و ابزار طراحی سختافزار
 - انگیزههای حرکت به سوی طراحی ESL
 
 - دستهبندی مباحث مطرح در طراحی ESL
- توصیف (Specification)، سنتز، درستیسنجی (Validation)
 - تحلیل پیش از بخشبندی (Partitioning)، بخشبندی، تحلیل پس از بخشبندی، پیادهسازی سختافزار، پیادهسازی نرمافزار، درستیسنجی پس از بخشبندی
 
 - زبان سیستمسی و نحوه مدلسازی سختافزار با این زبان
- ماجول، پورت، پروسس، نوعهای دادهای، روشهای پیادهسازی مدارهای ترکیبی و ترتیبی، روشهای پیادهسازی ماشین حالت، سنتز مدلهای سیستمسی
 
 - یک روش سیستماتیک تبدیل برنامههای نرمافزاری به پیادهسازی سختافزاری
- آشنایی با مدل Finite State Machine with Datapath (FSMD) و اهمیت آن
 - دستهبندی عمومی دستورات زبانهای نرمافزاری
 - پیادهسازی هر Basic Block با استفاده از مدل FSMD
 - روشی عمومی برای پیادهسازی یک برنامه با استفاده مدل FSMD
 - معرفی موضوع سنتز رفتاری (Behavioral Synthesis یا سنتز سطح بالا: High Level Synthesis)
 - دستهبندی مباحث مطرح در سنتز سطح بالا: تخصیص منابع (Allocation)، زمانبندی (Scheduling)، انتساب منابع (Binding).
 - مرور روشها و الگوریتمهای معروف در سه مبحث پیشگفته
 
 - اهمیت و روشهای تبادل اطلاعات (Communication) بین اجزا در پیادهسازی سیستمها بصورت سختافزار-نرمافزار
- مثالی از پیادهسازی رمزنگار AES بصورت نرمافزاری و سپس تبدیل به سختافزار و مقایسه میزان افت کارآیی به دلیل حجم Communication
 - مرور روشهای تبادل اطلاعات بین سختافزار و نرمافزار، و نیز بین نرمافزار و نرمافزار در تک پردازندهها و چندپردازندهها
 
 - مدلسازی در سطح تراکنشها (TLM: Transaction Level Modeling)
- اهمیت جدا کردن محاسبات از مبادله اطلاعات
 - موضوع کانال (Channel)، ویژگیها و اهمیت آن
 - مدلهای TLM گاجسکی، اجزای آنها، و روند استفاده از آنها در یک طراحی بالا به پایین در سطح سیستم
 - امکانات زبان سیستمسی برای تعریف کانال و نحوه استفاده از آن برای مدلسازی TLM
 
 - روشهای سنتز و بهینه سازی در سطح سیستم
- مروری بر فاکتورهای اصلی: کارآیی، مساحت، مصرف توان
 - الگوریتمهای همسنتز (Co-synthesis)
 
 - روشها و بسترهای نوین پیادهسازی سیستمهای دیجیتال
- مرور روند پیشرفت فنآوری ساخت نیمههادیها تا System-on-Chip (SoC)
 - مرور روند پیشرفت FPGAها تا Programmable SoCهای امروزی
 - چالشها و فرصتهای ناشی از پیشرفتهای فوق
 - آموزش طراحی با ابزارهای موجود برای طراحی با Programmable SoCها
 
 - روشهای درستیسنجی در سطح سیستم
- روشهای مختلف همشبیهسازی سختافزار-نرمافزار
 - مقدمهای بر روشهای وارسی صوری (Formal Verification) سیستمهای سختافزار-نرمافزاری
 
 - روشهای بهینه سازی سیستم در سطح نرمافزار
- موضوع نوسان فرایند ساخت (Process Variation) و اهمیت و نقش آن
 - الگوریتم مدیریت توان برخط برای بهینهسازی مصرف توان و کارآیی تراشههای چندپردازنده با درنظر گرفتن نوسان فرآیند ساخت
 - بهینهسازی بازده توان با استفاده از زمانبندی پردازهها در تراشههای چندپردازنده با درنظر گرفتن نوسان فرآیند ساخت
 - روشهای تخصیص کد و دادهها به حافظه و تاثیر آن
 
 
ارزیابی
- تمرینهای نظری: ۳ نمره
 - آزمونهای میانترم و پایانی: ۱۵ نمره
 - آزمونکها: ۲ نمره
 
مراجع
- Brian Bailey, Grant Martin, Andrew Piziali. Electronic System Level Design and Verification. Morgan Kaufmann Publishers, Series in Systems on Silicon, 2007.
 - W. Wolf. Computers as Components: Principles of Embedded Computing System Design. Morgan Kaufmann Publishers, 2001.
 - J. Staunstrup, W. Wolf. Hardware/Software Codesign: Principles and Practice. Kluwer Academic Publishers, 1997.
 - G. DeMicheli. Hardware/Software Codesign. Kluwer Academic Publishers, 1996.
 - F. Balarin et al. Hardware/Software Codesign: The POLIS Approach. Kluwer Academic Publishers, 1997.