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

Digital Systems Design

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

هدف کلی

هدف این درس آشنایی با زیرمجموعه قابل‌ سنتز یک زبان توصیف سخت‌افزار (System Verilog/Verilog یا VHDL)، آشنایی با ساختار داخلی مدارهای برنامه‌پذیر، آشنایی با نحوه‌ی پیاده‌سازی مدارهای دیجیتال در FPGA و CPLD، سنتز و آنالیز زمانی مدارهای دیجیتال و مفاهیم پایه و الگوریتم‌های مقدماتی سنتز سطح بالا (HLS) است.

سرفصل‌ها

  1. طراحی یک سیستم دیجیتال
    1. نمودار ASM
    2. نمودار FSMD
    3. تقسیم‌ سیستم‌ به واحدهای مسیر داده و کنترل
    4. معرفی مدل RTL و نحوه آنالیز یک سیستم دیجیتال
  2. مروری بر زبان توصیف سخت‌افزار Verilog
    1. مفهوم همروندی
    2. تفاوت توصیف‌های ساختاری و رفتاری
    3. مروری بر توصیف ساختاری المان‌های ترتیبی مانند رجیسترها، شیفت‌ رجیسترها و شمارنده‌های با قابلیت بارگذاری موازی و سیگنال‌های Set و Reset سنکرون یا آسنکرون
    4. مزایا و معایب تخصیص انسدادی و غیرانسدادی
    5. نوشتن یک Test-Bench ساده
  3. مفاهیم پیشرفته و زیر مجموعه قابل‌ سنتز زبان توصیف سخت‌افزار Verilog
    1. نحوه توصیف رفتاری المان‌های ترکیبی و ترتیبی (انواع فلیپ‌فلاپ‌ها، ‌‌شیفت‌ رجیسترها، شمارنده‌ها و …)
    2. چگونگی استفاده از المان‌های ترکیبی و ترتیبی و اتصال آنها در جهت پیاده‌سازی یک سیستم دیجیتال کامل
    3. نحوه کار با ابزار سنتز با هدف بهینه‌سازی مساحت، سرعت یا توان مصرفی مدارهای دیجیتال
    4. چگونگی آنالیز خروجی‌های ابزار سنتز
    5. معرفی Assertionها در راستای نوشتن Test-Benchهای بهتر
  4. آنالیز زمانی مدارهای دیجیتال
    1. مروری بر پارامترهای زمانی گیت‌ها و فلیپ‌فلاپ‌ها (tr، tf، tsetup، thold و tclk2q)
    2. نحوه محاسبه مسیر بحرانی در مدارهای ترکیبی و ترتیبی
    3. معرفی روش‌های آنالیز زمانی استاتیک و دینامیک
    4. آشنایی با مفهوم Clock Skew
    5. نحوه محاسبه بیشترین فرکانس کاری مدار
    6. آشنایی مقدماتی با روش‌های بهینه‌سازی زمانی سیستم‌های دیجیتال
  5. ساختار CPLDها و FPGAها
    1. معماری CPLDها و FPGAها
    2. نحوه پیاده‌سازی مبتنی بر MUX و LUT
    3. آشنایی با فناوری‌های مختلف برنامه‌ریزی
    4. Mega Wizard Functionها (ماجول‌های معرفی شده در کتابخانه LPM)
    5. نحوه بکارگیری Memory Blockها در FPGA
    6. چگونگی پیکربندی‌ حافظه‌ها (Single Port، Dual Port و …)
    7. چگونگی مقداردهی اولیه به حافظه‌ها
  6. سنتز سطح بالا (HLS)
    1. آشنایی با الگوریتم‌های زمان‌بندی
    2. آشنایی با الگوریتم‌های Binding
    3. آشنایی با الگوریتم‌های اشتراک منابع
    4. چگونگی تقسیم توصیف سطح بالا به واحدهای مسیر داده و کنترل با اعمال الگوریتم‌های بالا
    5. انجام جستجوی فضای طراحی

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

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

  1. V. Taraate. Digital Logic Design Using Verilog: Coding and RTL Synthesis. 2nd edition, Springer, 2022.
  2. S. Baranov. High Level Synthesis of Digital Systems. 2018.
  3. G. De Micheli, Synthesis and Optimization of Digital Circuits McGraw Hill, 1994.