مخاطبان دوره:
این دوره برای دانشجویان مهندسی که می خواهند با استفاده از VHDL وارد حوزه توسعه FPGA شوند، طراحی شده است. هیچ دانش قبلی در VHDL/FPGA در نظر گرفته نشده است، بنابراین ما از همان ابتدایی شروع خواهیم کرد.
دانش آموزان باید دانش پایه ای در مورد الکترونیک دیجیتال از جمله گیت های منطقی و فلیپ فلاپ ها داشته باشند.
خلاصه دوره :
این دوره به طور مفصل زبان VHDL را پوشش می دهد. در بین سخنرانیها، تعدادی پروژه سرگرمکننده (لطفاً به زیر مراجعه کنید) را با پیچیدگی فزاینده تکمیل خواهیم کرد تا دانشی را که در طول دوره به دست آوردهایم تثبیت کنیم. ما نحوه نوشتن Test Benches را بررسی خواهیم کرد و تعدادی از Test Benches را برای تأیید پروژه UART پیاده سازی خواهیم کرد. ما نرم افزار Intel Quartus را به طور مفصل پوشش می دهیم و همچنین نحوه شبیه سازی تست Benches با استفاده از ModelSim را بررسی می کنیم.
پروژهها (اجرا شده و آزمایششده در هیئت توسعه Cyclone IV):
1. خواندن ورودی سوئیچ و راه اندازی خروجی LED
2. ماشین حالت ساده که به ورودی کاربر واکنش نشان می دهد و تعدادی LED را هدایت می کند
3. همگام سازی و حذف یک ورودی سوئیچ.
4. تولید یک خروجی PWM.
5. طراحی Shift Register.
6. نمایشگر 4 رقمی 7-بخشی برای شمارش تعداد فعال سازی های دکمه فشاری
7. ماژول UART دستگاه حالت برای بازتاب نویسههای برگشتی دریافت شده از رایانه شخصی بر روی RS232
Intel Quartus Softare:
1. ایجاد کامپایل یک پروژه جدید
2. انجام تکالیف پین .
3. مقدمه اولیه کاتالوگ IP Quartus .
4. استفاده از USB Blaster برای برنامه ریزی FPGA از طریق JTAG.
5. با استفاده از Quartus Net List Viewer برای کشف سخت افزار طراحی خود.
6. برای درک بهتر تخصیص منابع، گزارش های Quartus Fitter را درک کنید.
7. با استفاده از ویرایشگر Quartus Assignment .
8. نمای کلی تنظیمات، گزینه ها و بهینه سازی های Quartus.
9. مقدمه اولیه بر تحلیلگر زمان، محدودیت های زمان بندی و فایل های SDC.
نرم افزار Intel ModelSim Starter Edition:
1. ایجاد یک پروژه ModelSim جدید .
2. نوشتن میزهای تست کامپایل .
3. شبیه سازی در حال اجرا .
4. استفاده از نمایشگر شکل موج برای تجزیه و تحلیل نتایج.
جزئیات دوره:
ما با پوشش دادن اصول اولیه سخت افزار FPGA شروع خواهیم کرد. این پسزمینه سختافزاری حیاتی است و همانطور که نحوه نوشتن VHDL را یاد میگیریم، به نحوه پیادهسازی کدمان در سختافزار نیز اشاره خواهیم کرد.
در بخش دوم دوره، به طور مفصل به زبان VHDL خواهیم پرداخت. ما تمام جنبههایی را پوشش میدهیم (انواع داده سیگنال، اپراتورهای کلمات کلیدی VHDL، عبارات متوالی همزمان، معماری موجودیت، بلوک فرآیند، ژنریک، متغیرهای ثابت، رکوردها، نمونهسازی مؤلفهها، توابع رویهها، کتابخانههای بستهها و تبدیلهای نوع) که میتوانند مورد نیاز باشند. برای توسعه طرح های پیچیده و پیشرفته FPGA. مثالهای ساده زیادی وجود خواهد داشت که به شما امکان میدهد زبان VHDL را به سرعت یاد بگیرید و بتوانید با اطمینان کد خود را بنویسید. ما همچنین به نحوه نگاشت بیشتر زبان VHDL به سخت افزار در دستگاه واقعی نگاه خواهیم کرد.
با این پایه قوی در زبان، نحوه ساخت بلوکهای اساسی FPGA را بررسی خواهیم کرد که از درایورهای سه حالته، ثباتها، مقایسهکنندهها، مولتی پلکسرها، ثبتکنندههای شیفت، سریالسازها، رامهای RAM و ماشینهای حالت محدود شروع میشوند. ما نحوه کدنویسی تمام ساختارهای فوق را بررسی خواهیم کرد و همچنین چگونگی پیاده سازی آنها در سخت افزار واقعی در FPGA را بررسی خواهیم کرد.
در بخش بعدی به طراحی سلسله مراتبی با VHDL خواهیم پرداخت. این عمل طراحی هنگام ایجاد طرح های پیچیده با بیش از یک واحد طراحی استفاده می شود. ما این مفهوم را از یک مثال بررسی می کنیم تا ببینیم چگونه واحدهای طراحی می توانند به یکدیگر متصل شوند تا یک طرح سلسله مراتبی تشکیل دهند.
در بخش بعدی، شیوه طراحی خوب FPGA را بررسی خواهیم کرد. طبق تجربه من، اکثر مبتدیان در طراحی FPGA اشتباهات رایجی را مرتکب می شوند و در دام های خاصی می افتند. برخی از این موارد می تواند منجر به مشکلاتی شود که اشکال زدایی و رفع آنها بسیار دشوار است. ایده پشت این بخش این است که شما را از این دام های رایج آگاه کنیم و راه هایی را کشف کنیم که از طریق آنها می توانیم آنها را دور بزنیم. ما در مورد چفتها، ساعتهای تولید شده، گیتینگ دادههای ساعت، مزایای طراحی غنی ثبت، مزایای طراحی همزمان، برخورد با ورودیهای ناهمزمان، تقاطع دامنههای ساعت، طراحی برای استفاده مجدد، راهاندازی سیگنال، همگامسازی بازنشانی قفلزدایی، مسیریابی مجدد صحبت خواهیم کرد. و استفاده از PLL.
در این مرحله، ما بسیاری از تئوری ها را پوشش می دادیم و همچنین تعدادی از پروژه های طراحی را تکمیل می کردیم، بنابراین شما باید دانش ایجاد طرح های FPGA خود را به طور مستقل داشته باشید. اکنون تأیید طراحی را پوشش خواهیم داد. این بخش نحوه نوشتن نیمکت های تست را بررسی می کند. ما جنبههای سبکهای کدنویسی VHDL را برای نوشتن نیمکتهای تست بررسی خواهیم کرد. ما در مورد نحوه اجرای فایل IO برای ایجاد بردارهای ورودی و ذخیره نتایج خروجی بحث خواهیم کرد. همچنین در مورد نیمکتهای آزمایشی خودآزمایی برای کمک به خودکارسازی فرآیند آزمایش بحث خواهیم کرد.
در بخش پایانی دوره، ما یک ماژول UART را طراحی خواهیم کرد که توسط یک ماشین دولتی کنترل می شود. ما کد VHDL را برای پیاده سازی UART و ماشین حالت از ابتدا می نویسیم. ما از یک رویکرد طراحی سلسله مراتبی استفاده خواهیم کرد که در آن تعدادی واحد طراحی خواهیم داشت. ما میزهای آزمایشی را برای هر واحد طراحی می نویسیم و شبیه سازی ها را (با استفاده از ModelSim) برای تأیید انجام می دهیم. ما تمام واحدهای طراحی را در ماژول VHDL سطح بالای خود گرد هم می آوریم و یک شبیه سازی سطح سیستم را انجام می دهیم. در مرحله بعد، نحوه ایجاد پیکربندی یک پروژه در Intel Quartus را برای پیادهسازی طراحی خود بر روی برد توسعه FPGA بررسی خواهیم کرد. ما به نحوه انجام انتساب پین ها و همچنین به طور خلاصه به اعمال محدودیت های زمان بندی بسیار ابتدایی برای اجرای طرح خود نگاه خواهیم کرد. سپس طرح را روی سختافزار واقعی آزمایش میکنیم تا مطمئن شویم طراحی ما همانطور که در نظر گرفته شده است کار میکند.
مهندس الکترونیک
نمایش نظرات