طراحی سیستم‌های دیجیتال

Digital Systems Design

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

اهداف درس

هدف از این درس آشنایی با زبان توصیف سخت‌افزار وریلاگ، یادگیری نحوه‌ی طراحی سخت‌افزار با زبان‌های HDL در سطوح تجرید مختلف، آشنایی با ساختار داخلی مدارهای برنامه‌پذیر در محیط کار و نیز شناخت نحوه‌ی پیاده‌سازی مدارهای سخت‌افزاری در FPGA و CPLD است.

ریز مواد

  • ASM و FSM
    • نمودار FSM و کاربردهای آن
    • نحوه‌ی مدل‌سازی و سنتز مدار کنترلی با FSM
    • نمودار ASM وطراحی سیستمهای دیجیتال با استفاده از آن
    • مفهوم واحدهای کنترل و مسیرداده
    • روش سنتز مسیر داده از روی نمودار ASM
    • روشهای گوناگون سنتز واحد کنترل از روی نمودار ASM
  • معرفی زبان‌های توصیف سخت‌افزار
    • مروری بر زبان‌های توصیف سخت‌افزار
    • ویژگی‌های کلیدی و تفاوت کدهای همروند و کدهای ترتیبی
    • مراحل طراحی سیستم‌های دیجیتال
    • مروری بر ویژگی‌های زبان وریلاگ
    • مقایسه زبان وریلاگ با سایر زبان‌های توصیف سخت‌افزار
    • دلایل اهمیت استفاده از زبان‌های توصیف سخت‌افزار
  • مقدمات زبان وریلاگ
    • مروری کلی بر نحوه نوشتن یک توصیف با وریلاگ
    • معرفی روش‌های طراحی بالا به پایین و پایین به بالا
    • روش‌های مدل‌سازی ساختاری و رفتاری
    • آشنایی اولیه با برخی مفاهیم موجود در وریلاگ همچون module، initial، always، @
    • طراحی مدولار و امکانات زبان وریلاگ برای این کار
    • مفهوم Test bench و چگونگی نوشتن Test bench صحیح
  • داده‌گونه‌ها و مفاهیم پایه در وریلاگ
    • wire و register و تفاوت‌ها و کاربردهای آن‌ها
    • منطق 4 مقداره و مفهوم قدرت سیگنال
    • مفهوم آرایه و بردار و تفاوت‌ها و کاربردهای آن‌ها
    • داده گونه‌های Real، Integer و Time، رشتهها
    • parameter و طراحی پارامتری در وریلاگ
    • System Taskها، Directive ها و Macro در وریلاگ
    • نام گذاری سلسله مراتبی و کاربردهای آن
  • مدل‌سازی ساختاری در وریلاگ
    • Port ها در module و انواع آن‌ها
    • روشهای نگاشت port ها
    • قواعد حاکم بر استفاده از سیم‌ها و متغیرها در اتصال به portها
    • طراحی gate-level در وریلاگ
    • مدل‌سازی تأخیر در توصیف ساختاری
  • مدل‌سازی جریان‌داده در وریلاگ
    • مدل‌سازی جریان‌داده در وریلاگ
    • مدل تأخیر در توصیف جریان‌داده
    • تفاوت تأخیرهای نوع Inertial و Transport
    • عملگرها در زبان وریلاگ
    • چگونگی توصیف مدارهای ترتیبی حساس به سطح و حساس به لبه در مدل‌سازی جریان داده
  • مدل‌سازی رفتاری در وریلاگ
    • assignment های نوع blocking و non-blocking در توصیف رفتاری
    • مفهوم Event control در توصیف رفتاری
    • دستورهای مدل‌سازی رفتاری شامل تصمیم‌گیری و حلقه
    • Function و Task
    • انواع Event control شامل سه روش معمولی، حساس به سطح، و بانام
    • انواع Timing control شامل سه روش معمولی، بین انتسابی، و صفر
    • مدلسازی تأخیرهای Inertial و Transport در توصیف رفتاری
    • مفهوم Race در بدنه‌های همروند
    • مروری بر چگونگی انجام عمل شبیهسازی کدهای وریلاگ توسط شبیه‌ساز
  • کدزدن قابل سنتز در وریلاگ
    • قوانین عمومی قابل سنتز بودن کد (مانند نداشتن تأخیر در توصیف، عملگر تقسیم، …)
    • روش نوشتن کد رفتاری قابل سنتز
    • روشهای پرهیز از Combinational Loop در توصیف رفتاری مدارهای ترکیبی
    • حلقهها در توصیف رفتاری و اثر آن‌ها بر عمل سنتز
    • منطق سه مقداره و اثر آن بر عمل سنتز
    • مروری بر عملکرد ابزارهای سنتز
  • طراحی سیستم‌های دیجیتال با PLD
    • ویژگی‌های سیستم‌های دیجیتال
    • سطوح تجرید و روش‌های مدل‌سازی
    • کاربردهای مدارهای قابل پیکربندی
    • مروری بر انواع PLDها
    • کاربردهای PLDها در تحقیقات و صنعت
  • SPLDها و CPLDها
    • SPLDها و ساختار آن‌ها (شامل PAL، PLA و ROM)
    • CPLDها و ساختار آن‌ها
    • تکنولوژی‌های ساخت SPLDها و CPLDها
    • مروری بر برخی از CPLDها به عنوان Case Study
  • FPGAها
    • FPGAها و ساختار آن‌ها
    • انواع FPGA (مبتنی بر LUT و مبتنی بر MUX)
    • تکنولوژی‌های ساخت FPGAها (مبتنی بر Anti-fuse و مبتنی بر SRAM)
    • روش‌های ساخت Programmable Connections در FPGAها
    • مروری بر برخی از FPGAهای مبتنی بر LUT به عنوان Case Study
    • مروری بر برخی از FPGAهای مبتنی بر MUX به عنوان Case Study
    • مروری بر ظرفیت‌ها و امکانات جدیدترین FPGAها
    • مروری بر آخرین محصولات برنامه‌پذیر در محیط کار بخصوص FPSoCها

ارزیابی

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

مراجع

  1. Samir Palnitkar. Verilog HDL: A Guide to Digital Design and Synthesis. 2nd Edition, SunSoft Press, 2003.
  2. S. Brown, J. Rose. FPGA and CPLD Architectures: A Tutorial. IEEE Design and Test of Computers, pp. 42-57, 1996.
  3. Altera Data Sheets. available at www.altera.com.
  4. Xilinx Data Sheets. available at www.xilinx.com.
  5. Actel Data Sheets. available at www.actel.com.