سرفصل های این دوره آموزشی :
۱. َآشنایی با حوزه فعالیت مدارهای منطقی قابل برنامه ریزی از جمله FPGA و نگرش استفاده از آن و تفاوت آن با دیگر عناصر برنامه پذیر
۲. آشنایی با مدارهای منطقی قابل برنامه ریزی از جمله PAL, PLA, GAL, CPLD, FPGA, ..
۳. آشنایی با ساختار، نامگذاری، درجه سرعت و … مر بوطه به FPGA ها و CPLD های خانواده های Xilinx
۴. آشنایی سوئیچ های ماتریسی
۵. آشنایی با سخت افزار FPGA از جمله … ,IOBank, GCLK, JTAG Chain, Flash , Power
۶. آشنایی با مفهوم CLB, Slice, LUT در خانواده SPARTAN6 …
۷. آشنایی با ابزار سنتز ISE و انواع روش های پیاده سازی Top Module و ایجاد نگرش صحیح نسبت به زبان های توصیف سخت افزار
۸. آشنایی و با کار با محیط شماتیک و سمبل های موجودر در ISE
۹. شروع با زبان توصیف سخت افزار VHDL و آشنایی با انواع مسیر کدنویسی در سطوح گیت، رفتاری ترکیبی، رفتاری ترتیبی، تلفیق رفتاری ترکیبی و ترتیبی، FSM و حوزه ساختاری
۱۰. آشنایی با ساختار کد در VHDL و تعاریف Architecture, IN, OUT, Entity, Package و …
۱۱. کدنویسی در سطح گیت و مفهوم Signal, Vector Signal, Constant , …
۱۲. آشنایی با انواع نحوه اتصال سیگنال ها٬ شروط اتصال٬ انواع مقدار دهی٬ توابع تبدیل نوع و عملگر Concatenate
۱۳. کدنویسی ساختاری و نحوه ساخت٬ تعریف و استفاده از Component
۱۴. نحوه ساخت و استفاده از Test Bench در شبیه ساز ISIM
۱۵. آشنایی و نحوه استفاده از دستور Generic و نحوه ساخت Component های General
۱۶. انواع عملگرها و Package های مربوط به آن در VHDL و مفهرم عوامل قابل سنتز و غیر قابل سنتز
۱۷. آشنایی با اعداد علامت دار٬ محاسبات آنها و پیاده سازی محاسبات علامت دار در VHDL
۱۸. آشنایی و پیاده سازی جمع کننده٬ تفریق کننده٬ ضرب کننده و …
۱۹. استفاده از دستورات شرطی When Else و With Select و حلقه For Generate در محیط Concurrent و نحوه سنتز آنها
۲۰. کدنویسی رفتاری ترکیبی و نحوه ساخت انواع عناصر ترکیبی از جمله مقایسه کننده، دیکدر، مالتی پلکسر، LUT, … و تکنیک های محیط Concurrent
۲۱. کدنویسی رفتاری ترتیبی و مفهوم Process
۲۲. نحوه کاربرد صحیح Clock و RESET در Process
۲۳. نحوه طراحی عناصر ترتیبی سنکرون و آسنکرون
۲۴. دستورات شرطی If و Case در حوزه ترتیبی و نگرش استفاده از حلقه For Loop
۲۵. نحوه عملکرد و تفاوت Signal و Variable در Process
۲۶. نحوه ساخت انواع عناصر ترتیبی بصورت رفتاری از جمله Flip Flop ,Shift Register, Counter, …
۲۷. کار با سخت افزار لابراتوار FPGA مبتنی بر تراشه XC6SLX9-2TQ144 از خانواده SPARTAN6 (این سخت افزار و ابزارهای جانبی آن بطور کامل ساخت آموزشگاه می باشد و منحصرا در آموزشگاه وجود دارد)
۲۸. آشنایی و کار با نرم افزار PlanAhed و ساخت فایل قیود کاربر(ucf.) و استفاده از قیود پیاده سازی از جمله LOC, PULL, IOSTANDARD, DRIVE , …
۲۹. بررسی و تحلیل گزارش های پس از سنتز ارائه شده توسط نرم افزار
۳۰. آشنایی و کار با نرم افزار برنامه ریزی Impact برای برنامه ریزی FPGA و CPLD و نحوه ساخت فایل برنامه ریزی Flash (.mcs)
۳۱. مفاهیم بسیار مهم مربوط به کلاک و نحوه توزیع صحیح آن در تراشه توسط بافرهای مخصوص(IBUF, BUFG, …) و نحوه استفاده از قید پیاده سازی Period و کار با بخش Timing Constraints
۳۲. آشنایی و نحوه استفاده از Attribute های مهم در VHDL
۳۳. نحوه راه اندازی و استفاده از IP Core های داخلی تراشه
۳۴. آشنایی با Signal های آرایه ای و تعریف Signal های خاص و تعریف شده توسط کاربر
۳۵. آشنایی با مفهوم RAM و پیاده سازی RAM های بلوکی و توزیع شده و تکنیک های استفاده از آن
۳۶. آشنایی و استفاده از IP Core های محاسباتی موجود در تراشه از جمله DSP48, Cordic, Divider, Adder, Multiplier, …
۳۷. آشنایی و استفاده از IP Core توزیع و چند برابر کننده کلاک (Clocking Wizard – PLL) و روش های توزیع و استفاده از بافرهای کلاک فرکانس بالا (950MHz) در تراشه
۳۸. آشنایی با مفهوم INOUT و بافر های داخلی IO و نحوه استفاده از آنها در طراحی
۳۹. درک مفهوم State Machine در قالب Mealy و Moore و مفاهیم FSMD و ASMD و مدل های استاندارد کدنویسی در قالب State Machine و ارائه مثال ها و تمرین های مربوط به آن
۴۰. پیاده سازی عملی Push Butoon, LED, Counter, Seven Segment, Keypad
۴۱. پیاده سازی عملی تایمرها٬ سیگنال های PWM و PWM های سفارشی و کنترل موتور DC
۴۲. پیاده سازی عملی کنترل کننده موتور پله ای
۴۳. پیاده سازی عملی نمایشگرهای سون سگمنت مالتی پلکسی و LCD کارکتری
۴۴. پیاده سازی عملی مبدل Binary به BCD برای تولید اعداد
۴۵. پیاده سازی عملی استفاده از مبدل آنالوگ به دیجیتال و دریافت دیتا در FPGA
۴۶. پیاده سازی عملی فرکانس متر
۴۷. پیاده سازی عملی پرتکل انتقال دیتا UART(RS232) و ارسال و دریافت دیتا با رایانه
۴۸. پیاده سازی عملی پرتکل انتقال دیتا SPI و ارسال و دریافت دیتا با میکروکنترلر
۴۹. پیاده سازی عملی پرتکل انتقال دیتا I2C و ارسال و دریافت دیتا با تراشه DS3231
۵۰. پیاده سازی عملی ارتباط با VGA(مانیتور)
۵۱. آشنایی و استفاده عملی از نرم افزار ChipScope و IP Core های ICON و ILA برای تست زنده سخت افزار طراحی شده در درون تراشه
۵۲. آشنایی و نحوه استفاده از Softcore میکروپرسسور Microblaze و باس AXI4 و راه اندازی یک مثال از پیاده سازی این میکروپروسسور
۵۳. آشنایی و کار با نرم افزار Vivado (نرم افزار کار با تراشه های سری ۷ به بعد Xilinx) و پیاده سازی یک مثال کامل و ایجاد فایل Test Bench و شبیه سازی و مراحل پیاده سازی
۵۴. بهمراه ارائه مثال های کاربردی برای دانشپذیران و بررسی مثال ها در جلسه بعد
۵۵. تعریف پروژه ساخت پایانی برای دانشپذیران
پیشنیاز های این دوره آموزشی:
پیشنیاز مهم این دوره، دوره “طراحی مدارهای منطقی کاربردی” یا تسلط مناسب فرد به طراحی مدارهای منطقی است.
توانایی های دانشپذیر پس از پایان دوره آموزشی:
این دوره به گونه ایی آموزش داده می شود که دانشپذیر نگرش به طراحی دیجیتال را با کدهای قابل سنتز زبان توصیف سخت افزار بدست آورده و بتواند به راحتی ایده های دیجیتال خود را بر روی هرگونه تراشه FPGA یا CPLD ایجاد کرده و آنرا شبیه سازی و یا پیاده سازی سخت افزاری نماید.
تهیه سرفصل های این دوره نتیجه ۱۴ سال کار و تدریس تخصصی در حوزه FPGA بوده و تمام نیاز های اصلی و کاربردی بازار کار در این دوره گنجانده شده است.
دانشپذیر پس از این دوره می تواند در دوره “طراحی سخت افزار مبتنی بر FPGA” شرکت نموده تا به راحتی بتواند سخت افزار مورد نیاز خود را مبتنی بر FPGA و CPLD طراحی و پیاده سازی نماید.
می توانید نمونه کار های دانشپذیران قبلی را از اینجا مشاهده کنید.
سخت افزار لابراتوار FPGA مربوط به این دوره آموزشی(برای هر دو نفر):
سخت افزار FPGA و پروگرامر تراشه های Xilinx ساخته شده در گارد که هر دانشپذیر می تواند تهیه کند و تمام پروژه های دوره و شخصی خود را با آن در منزل پیاده سازی کند.