پرش به محتوا

انجام پروژه FPGA

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


نمونه پروژه ها

در این فایل لیست برخی پروژه های انجام گرفته FPGA توسط شرکت آریادنا صنعت را مشاهده میکنید.


FPGA و CPLD

ممکن است این سوال در پیاده سازی انجام شود که در انجام پروژه FPGA چرا از CPLD استفاده نکنیم؟
FPGA ها در ابتدا شباهت زیادی به CPLD داشتند اما باگذر زمان و پیشرفت تکنولوژی، FPGA امروزه فاصله زیادی با CPLDها دارد.

FPGA دارای تعداد منابع منطقی بالاتری هستند، در نتیجه قابلیت پیاده سازی مدارات دیجیتال بالاتری دارند. FPGA ها می توانند از چندین استاندارد ولتاژ در پایه های خود پشتیبانی کنند، در حالی که CPLD ها تک استاندارد هستند.

تأخیر در گیت های منطقی CPLD ها بیشتر از مدارات FPGA است. لذا مدارات با سرعت بیشتری کار خواهند کرد. سازماندهی کلاک در FPGA قابل مقایسه با CPLD ها نیست.

به عنوان مثال برای پیاده سازی FFT در FPGA آیپی های مخصوص آن طراحی شده است. و بسیاری نکات دیگر که مهندسان را به انجام پروژه با FPGA ترغیب می کند.

FPGA و DSP

تراشه DSP همانطور که از نامش پیداست، برای پردازش سیگنال ساخته شده است. در واقع این تراشه سخت افزارهای از پیش طراحی شده مختلفی جهت پیاده سازی سریع الگوریتم های مختلف پردازشی را دارد. اما با گذر زمان، FPGA های جدید قابلیت هایی بیشتر از پردازش سیگنال را پشتیبانی می کنند.

این رقابت از افزوده شدن ضرب کننده ها به تراشه های FPGA شروع شد. به نظر می رسد که FPGA ها دارند جای DSP ها را در پروژه های پردازش سیگنال می گیرند، اما این به طور کلی درست نیست. بهترین جمله برای توصیف این رقابت آن است که FPGA و DSP مکمل یکدیگر هستند.

طبق تجربه انجام پروژه FPGA قدرت پیاده سازی بالاتری به طرح و مجری پروژه می دهد. به عبارتی، کاری که از DSP بر میاید از FPGA نیز ساخته است، اما ممکن است الگوریتمی که با FPGA پیاده سازی شده است، با DSP قابل پیاده سازی نباشد.

بنابراین انجام پروژه با FPGA می تواند پاسخگوی پیاده سازی بسیاری از الگوریتم ها باشد.

انجام پروژه FPGA
انجام پروژه FPGA

پیاده سازی پردازنده در FPGA

در انجام پروژه FPGA ها میتوان با اتصال مناسب گیت ها یک پردازنده مانند میکروکنترلر ARM و AVR ساخت و آن را با زبان C برنامه ریزی کرد.

در FPGA های شرکت زایلینکس این پردازنده میکروبلیز نام دارد و در FPGA های شرکت آلترا، نیوس نامیده می شود.

در واقع این یک میکروکنترلر است که درون FPGA پیاده سازی شده است و میتوان آنها را با زبان های C و C++ برنامه ریزی کرد. و با برنامه نویسی آن، برنامه نویسی FPGA انجام میشود.

علاوه بر آن در FPGA مدل ZYNQ علاوه بر قسمت FPGA که PL نامیده می شود یک بخش دیگر به نام PS وجود دارد، که خود چند هسته پردازنده ARM به صورت جدا است.

دیگر فعالیت شرکت، انجام پروژه ZYNQ است که نوعی SOC است، با قابلیت های همزمان FPGA و ARM به صورت همزمان.

انجام پروژه FPGA
انجام پروژه FPGA

انتخاب پردازنده برای انجام پروژه با FPGA

تاکنون جهت بررسی انجام پروژه با FPGA به برخی قابلیت های کلیدی FPGA اشاره شد، اما بسته به نوع پردازش و کاربرد مدنظر، نوع داده های مورد پردازش، حجم پردازش، میزان هزینه مدنظر، زمان اجرای پروژه میتوان پردازنده های مختلفی را جهت تکمیل پروژه انتخاب کرد.

FPGA، ARM، AVR، GPU، CPU، PIC، CPLD و … تراشه هایی هستند که می توانند جهت انجام پروژه به عنوان پردازنده مورد استفاده قرار گیرند. در این مورد می توانید از شرکت آریادنا صنعت مشورت بگیرید.

توجه داشته باشید که هر پردازنده در جای خاصی کاربرد دارد. انجام پروژه FPGA نیز در جاهای خاصی مورد استفاده قرار میگیرد که با توجه به نیاز آن پروژه بهترین انتخاب باشد.

زبان های برنامه نویسی FPGA

برای برنامه نویسی FPGA میتوان از زبان های مختلفی استفاده نمود. زبان های VHDL و Verilog یا به فارسی وریلاگ، زبان های متداولی هستند که در انجام پروژه با FPGA از آنها استفاده میشود.

اما نرم افزارهای جدید در حوزه برنامه نویسی FPGA به ما این امکان را میدهد که با زبانهای سطح بالاتر نیز بر روی FPGA برنامه نویسی کنیم.

مثلا در نرم افزار Vivado HLS که یکی از نرم افزارهای شرکت زایلینکس برای انجام پروژه FPGA است، قابلیت برنامه نویسی به زبان های C و C++ برای FPGA نیز وجود دارد.

این قابلیت برای FPGA های شرکت آلترا نیز فراهم آمده است با نرم افزار Intel HLS compiler. همچنین برای برنامه نویسی ZYNQ که یک مدل FPGA با هسته پردازنده ARM است میتوان با پایتون نیز برنامه نویسی کرد که به آن PYNQ گفته میشود.

اما در انجام پروژه با FPGA اگر بخواهیم که پروژه در بهینه ترین حالت برنامه نویسی شود استفاده از زبان های سطح سخت افزار انتخاب بهتری هستند. در گروه مهندسی آریادنا جهت انجام پروژه با FPGA از زبان های مختلف برنامه نویسی طبق صلاح دید و همچنین ترجیح کارفرما انجام میشود.

در انجام پروژه ZYNQ برای بخش PL از زبان های سخت افزاری و برای بخش PS از زبان C استفاده میشود.

برتری انجام پروژه FPGA نسبت به CPU و ARM

در انجام پروژه میتوان از پردازنده های مختلفی استفاده کرد. بسته به نوع داده و حجم پردازش و عوامل تاثیرگذار دیگر ممکن است انجام پروژه با FPGA، ARM، GPU و …. باشد.

یکی از برتری های FPGA پردازش موازی است. به گونه ای که بسته به نوع برنامه نوشته شده میتواند چندین پردازش را به صورت همزمان به انجام رساند.

البته گفتنی است که در انجام پروژه ZYNQ همزمان هم FPGA داریم و ARM که قدرت مانور پروژه را به خوبی افزایش میدهد.

سوالاتی که باید برای انجام پروژه با FPGA پاسخ دهید:

هزینه انجام پروژه FPGA چقدر است؟

به عبارتی چه محدودیت بودجه ای برای این مورد در نظر گرفته شده است. با احتساب هزینه مورد نظر میتوان نوع پردازنده و نحوه ی انجام پروژه را مشخص کرد. معمولا هزینه به دو بخش سخت افزار و برنامه نویسی FPGA تقسیم میشود.

زمان انجام پروژه FPGA چقدر مورد اهمیت است؟

در این مورد باید مشخص شود که چه محدوده ی زمانی باید پروژه مد نظر به اتمام برسد. این مورد میتوان از سمت شما یا از سمت ما تعیین گردد. به عنوان مثال ممکن است از سمت شما اعلام گردد که پروژه فقط سه ماه زمان دارد.

سرعت پردازش:

در این مورد ما در شرکت آریا دنا صنعت با مشورت با شما مشخص میکنیم که سرعت پردازش داده ها باید چقدر باشد. به عنوان مثال برای داده برداری از داده های صوتی معمولی برای هر میکروفون میتوان سرعتی حدود 48 کیلو سمپل در هر ثانیه را در نظر گرفت.

حجم پردازش داده:

این مورد بسته به تعداد خطوط ورودی ، فرستنده ها، ارتباط های پروژه و الگوریتم پردازشی مشخص شود. به عنوان مثال ممکن است در یک مورد انجام پروژه با FPGA، پنجاه سنسور در ورودی باشد، الگوریتم، مجموع آنها را در خروجی آنالوگ نمایش دهد و ارتباط با اترنت برقرار شود.

توان مصرفی:

در برخی موارد انجام پروژه FPGA، توان پایین مد نظر است که یکی از ویژگی های این پردازنده است. اگر توان مورد اهمیت باشد، باید مشخصا اعلام گردد تا در انتخاب نوع پردازنده و الگوریتم پردازشی دقت شود.

کاربرد FPGA:

کاربرد از دو جهت مورد اهمیت است. اولا اینکه آیا شرایط کاری که قرار است پردازنده در آن کار کند شرایط معمولی است یا قرار است در شرایط خاص مورد استفاده قرار گیرد به عنوان مثال قرار است پردازنده در یک محیط با دمای بالا مورد استفاده قرار گیرد.

دوما اینکه بسته به نوع کاربرد، الگوریتم ها نیز تغییر خواهند کرد. به عنوان مثال در پروژه های مخابراتی معمولا یکی از نیازها پردازش داده در حوزه فرکانس است که در صورت اعلام کاربرد پروژه میتوان موارد مورد نیاز را بررسی و اعمال کرد.

پروتکل ارتباطی:

در انجام پروژه FPGA گاهی اوقات نیاز به برقراری ارتباط با سیستم های دیگر اهمیت پیدا میکند، به عنوان مثال ممکن است نیاز باشد پردازنده با ارتباط شبکه به کامپیوتر متصل گردد.

یا به عنوان مثال سنسورهای مورد استفاده از پروتکل خاصی جهت ارتباط استفاده میکنند که با برنامه نویسی FPGA باید ارتباطها برقرار شود.

سفارش نرم افزار:

در بیشتر موارد علاوه بر سیستم طراحی شده با FPGA، نیاز به یک نرم افزار در کامپیوتر است که بتواند با پردازنده، ارتباط برقرار کند و به آن دستور داده یا از آن داده دریافت کند. در صورت نیاز به نرم افزار باید مشخصات مورد نظر اعلام گردد.

در انجام پروژه ZYNQ، نرم افزار دیگری نیز در این تراشه خواهیم داشت که باید مد نظر قرار گیرد.

طراحی برد خاص:

گاهی اوقات پروژه ها نیاز به طراحی بردهای خاص دارند که در این مورد با مشورت با کارفرما این اقدام صورت میگیرد. البته قابل ذکر است که این مورد در هزینه و زمان انجام پروژه موثر است و در صورتی که واقعا نیاز باشد صورت میپذیرد.

پردازش بلادرنگ در انجام پروژه FPGA:

در برخی پروژه های خاص نیاز به پردازش بدون وقفه یا به عبارتی real time processing است. در این مورد نیز با تعریف پروژه میتوان تصمیمات مورد نظر را جهت انجام پروژه FPGA اتخاذ کرد. همچنین اگر نیاز به کار پیوسته پردازنده باشد، استفاده از خنک کننده مهم است.

نیاز به ذخیره سازی:

در انجام پروژه FPGA ممکن است نیاز باشد نتیجه پردازش در یک حافظه یا در کامپیوتر ذخیره گردد که در آن صورت باید مشخص گردد که حجم حافظه مورد نیاز و سرعت ذخیره سازی چقدر است.

علاوه بر موارد ذکر شده ممکن است بسته به نوع پروژه نیازهای دیگری مدنظر شما باشد به عنوان مثال اندازه سیستم، استاندارد خاص، نیاز به خنک کننده و …. که در آن صورت با مطرح کردن موارد مدنظر همکاران ما در شرکت آریا دنا صنعت موارد را در اسرع وقت بررسی و پاسخ خواهند گفت.

انجام پروژه VHDL:

گاهی اوقات هدف فقط انجام پروژه VHDL است. مخصوصا زمانی که هدف پیاده سازی تراشه های ASIC است میتوان با استفاده از این روش، به معماری نهایی دست یافت.

راه‌های ارتباطی برای سفارش پروژه FPGA:

برای مشاوره و انجام پروژه FPGA می توانید از طریق راه‌های ارتباطی در صفحه تماس با ما یا منوی سمت چپ همین صفحه، در تماس باشید.

شرکت آریادنا فعال در حوزه FPGA و پیاده سازی سیستم های embedded مبتنی بر FPGA است. میتوانید برای سفارش پروژه FPGA و طراحی سخت افزار با ما در ارتباط باشید.

سیستم نهفته

پیاده سازی سخت افزار

پیاده سازی سیستم های مخابراتی

خرید برد FPGA جهت انجام پروژه FPGA.