اگر برایتان سوال است که چگونه طراحی FPGA را شروع کنید، ادامه دهید و به سر انجام برسانید ولی سر در گم هستید، با کمک این نوشته میتوانید پاسخ مناسبی برای پرسشهای خود بیابید.
-
ملزومات طراحی
اولین نیاز یک تعریف و توضیح سطح بالا از عملکرد موردنظر ما است. عملکردی که انتظار داریم محصول ما آن را محقق سازد.
- مشخصههای طراحی
پس از اینکه بسته به نیاز ما یک تعریف سطح بالا از مدار توسط یک مهندس باتجربه یا طراح سیستم دیجیتال پیاده سازی شد، نوبت به تعیین مشخصههای مدار مانند نوع FPGA مورد استفاده، روابط بین اجزای مختلف مدار با یکدیگر، ارتباط اجزای خارجی مدار مانند رم و پردازنده میزبان و سایز اجزای پروژه میرسد.
- اصول طراحی و تایید عملکرد
در این مرحله یک مدل از عملکرد مدار توسط یکی از زبانهای توصیف سختافزار (بطور مثال VHDL) تعریف میشود. این عملکرد طراحی شده باید تایید یا به اصطلاح وریفای گردد که به این عمل شبیهسازی رفتاری میگویند.
-
سنتز مدار و تایید تایمینگ
زمانی نوبت به فرآیند سنتز میرسد که طراحی اولیه را به یک الگوی سختافزاری تبدیل کرده باشیم. منظور از طرح سختافزاری، پیادهسازی الگوی اولیه توسط بلوکهای منطقی داخلی FPGA و مسیردهی بین این بلوکها میباشد. بلوکهای داخلی FPGA شامل فلیپ-فلاپها، LUTها، حافظه، IPهای سخت و … میشود.
فرآیند تایید تایمینگ متشکل از دو مرحله تحلیل زمانبندی استاتیک و شبیهسازی سطح گیت میشود.
- تایید نهایی و دستیابی به هدف طراحی
طرح ما اکنون اصطلاحا پروگرام شده یا به زبان سادهتر روی FPGA لود شده است. ممکن است این FPGA روی یک بورد آزمایشی باشد یا مستقیما روی محصول هدف قرار گرفته باشد. طرح توسط تعداد زیادی از ابزار و ادوات دیباگینگ، تست و سپس تایید میشود که عبارتند از مولد سیگنالها، اسکوپ، آنالیزور طیفی و آنالیزور منطق و …
نتیجه گیری
روند بالا از نظر تئوری بیان شد ولی در عمل شاید این گامها خطی نباشد و مهندسان چندین بار این مراحل را پس و پیش کنند. با این حال یک تیم طراحی خوب خیلی کم به مراحل قبلی برمیگردد. از نشانههای بسیار بد روند طراحی میتوان به باگهای عملکردی که فقط در زمان تایید تایمینگ آشکار میشوند اشاره کرد و یا بدتر از آن در زمان تایید نهایی محصول و فاجعهتر از همه موارد یعنی زمانی که در دسترس مشتری قرار میگیرد.
آموزش های دیگر FPGA را اینجا بخوانید.
اگر این نوشته برایتان مفید بود لطفا کامنت بنویسید.