چرا و چگونه FPGA را انتخاب کنیم؟ | آموزش FPGA قسمت دوم

blog
۱۳۹۸-۰۲-۰۵
5 دقیقه

آموزش FPGA قسمت دوم: چرا و چگونه FPGA را انتخاب کنیم؟

چه موقع سراغ FPGA برویم؟

همانطور که در قسمت اول از آموزش FPGA گفتیم ما زمانی سراغ FPGA می‌رویم که میکروکنترلر‌ها نتوانند سرعت موردنیاز پروژه‌ی ما را برآورده کنند، حال باید به یک سری پارامترها بپردازیم که تعیین کننده سرعت موردنیاز ما می‌باشد. و به طور کلی به این سوال پرداختیم که FPGA چیست؟

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

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

ما در اینجا سعی می‌کنیم با یک مثال به توضیح این مسئله بپردازیم.

فرض کنید ما یک رادار داریم که قرار است پس از مشاهده جسم متخاصم به یک سیستم دیگر خبر دهد، حتما حدس خواهید زد که قرار است با چه تاخیری به سیستم دیگر خبر دهد؟ در پاسخ باید گفت تنها عاملی که بعدا ما با استفاده از آن سرعت را مشخص خواهیم کرد همین مقدار تاخیر می‌باشد. پس تا اینجا ما علاوه بر الگوریتم مورد نظر، زمان تاخیر را نیز در دسترس داریم، حال باید با توجه به داده‌هایی که داریم سرعتی که خواسته مسئله را برآورده می‌کند پیدا کنیم و ببینیم که با چه ابزاری قابل پیاده سازی می‌باشد.

فرض کنید که الگوریتم ما دارای 10 میلیون دستور می‌باشد که هر دستور در یک کلاک به اتمام می‌رسد و زمانی که جسم متخاصم برای اولین بار ظاهر شد، رادار حداکثر 10 میلی ثانیه وقت دارد تا سیستم دیگر را خبر کند.

سرعت، زمان و حجم اجرای الگوریتم در برنامه نویسی

با توجه به شکل بالا فرض کنید ما زمان لازم برای اجرای الگوریتم را 10 میلی‌ثانیه در نظر گرفتیم، در زمان 0 میلی ثانیه رادار هیچ جسم متخاصمی را مشاهده نمی‌کند، در زمان 4 میلی ثانیه جسم متخاصم برای اولین بار ظاهر می شود، اما چون رادار از زمان 0 میلی ثانیه تا زمان 10 میلی ثانیه مشغول اجرای الگوریتم می‌باشد، نمی‌تواند جسم متخاصم را تشخیص دهد. تا زمان 10 میلی ثانیه که اجرای الگوریتم به پایان می‌رسد، با فرض اینکه جسم متخاصم در دید رادار می‌باشد، رادار می‌تواند آن را تشخیص دهد و در زمان 20 میلی ثانیه به سیستم دیگر گزارش دهد. اما با توجه به شکل مشاهده می‌شود از زمانی که جسم مورد نظر ظاهر شد تا زمانی که گزارش به سیستم دیگر رسید، 16 میلی ثانیه طول کشید که این خواسته مسئله ما یعنی حداکثر تاخیر 10 میلی ثانیه را برآورده نمی‌کند.

پس راه حل چیست؟ راه حل این است که زمان اجرای الگوریتم را باید کمتر کنیم و دوباره همین سناریو را تکرار کنیم. این بار زمان اجرای الگوریتم را 5 میلی ثانیه در نظر می‌گیریم و سناریو را تکرار می‌کنیم.

سرعت، زمان و حجم اجرای الگوریتم در برنامه نویسی

با توجه به شکل بالا در زمان 0 میلی ثانیه رادار هیچ جسم متخاصمی را مشاهده نمی کند و در زمان 2 میلی ثانیه جسم متخاصم برای اولین بار ظاهر می‌شود، اما چون رادار از زمان 0 میلی ثانیه تا زمان 5 میلی ثانیه مشغول اجرای الگوریتم می‌باشد، نمی‌تواند جسم متخاصم را تشخیص دهد. تا زمان 5 میلی ثانیه که اجرای الگوریتم به پایان می‌رسد، با فرض اینکه جسم متخاصم در دید رادار می‌باشد، رادار می تواند آن را تشخیص دهد و در زمان 10 میلی ثانیه به سیستم دیگر گزارش دهد. با توجه به شکل بالا مشاهده می‌شود از زمانی که جسم مورد نظر ظاهر شد تا زمانی که گزارش به سیستم دیگر رسید، 8 میلی ثانیه طول کشید که این زمان خواسته مسئله ما را برآورده کند.

حال که به خواسته مسئله رسیدیم باید تعیین کنیم که این مسئله با چه ابزاری قابل پیاده سازی می‌باشد.

تفاوت میکروکنترلر با FPGA

ما باید 10 میلیون دستور را در زمان 5 میلی ثانیه اجرا کنیم، یعنی باید سرعت مورد نظر 2GHZ باشد. فرض کنید ما دو نوع میکروکنترلر AVR و ARM در دسترس داریم که حداکثر سرعت معمول نوع اول 20MHZ و حداکثر سرعت نوع دوم 500MHZ می باشد اما سرعت مورد نیاز ما را هیچکدام از این دو نوع میکروکنترلر برآورده نخواهد کرد، پس ما نمی‌توانیم از این میکروکنترلر‌ها استفاده کنیم و به ناچار باید سراغ FPGA برویم.

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

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

منابع داخلی FPGA به صورت کلی به دو دسته کلی زیر تقسیم می شوند:

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

منابع عمومی شامل فلیپ فلاپ‌ها یا همان حافظه‌ها و یک سری Logic Block یا (Logic Cell (LC می‌باشد.

 Logic Block یا (Logic Cell (LC

شکل بالا نمایی از یک LC می‌باشد، همانطور که مشاهده می‌کنید LUT بخشی از LC می‌باشد و با تقریب می‌توان گفت که LC و LUT معادل همدیگر هستند.

منابع اختصاصی شامل هر منبعی به جز فلیپ فلاپ و LUT می‌باشد، از این نوع منابع می‌توان به ضرب کننده‌ها، منابع کلاک، ورودی_خروجی‌ها و شیفت رجیستر‌ها اشاره کرد.

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

در شکل زیر می توانید منابع داخلی و نحوه قرار گیری آن ها در کنار همدیگر را مشاهده کنید.

 

منابع داخلی در FPGA

در قسمت‌ سوم آموزش FPGA سراغ نرم‌افزار و زبان توصیف سخت افزار یعنی نرم‌افزار ISE و زبان VHDL خواهیم رفت. با سیسوگ همراه باشید.

 

اطلاعات
8
0
لینک و اشتراک
profile

سپهر

متخصص الکترونیک

مقالات بیشتر
slide

پالت | بازار خرید و فروش قطعات الکترونیک

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

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. وقتی شما در این سامانه، قطعه الکترونیکی را جستجو می‌کنید؛ آی سی به سرعت نتایج جستجوی شما در اکثر فروشگاه‌های آنلاین در حوزه قطعات الکترونیک را نمایش می‌دهد. جستجو در آیسی
family

فروشگاه سیسوگ

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند. برو به فروشگاه سیسوگ
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

دغدغه همیشگی فعالان تخصصی هر حوزه وجود بستری برای گفتگو و پرسش و پاسخ است. سیسوگ فروم یک انجمن آنلاین است که بصورت تخصصی امکان بحث، گفتگو و پرسش و پاسخ در حوزه الکترونیک را فراهم می‌کند. پرسش در سیسوگ فرم
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
خانواده سیسوگ

پالت | بازار خرید و فروش قطعات الکترونیک

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

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. وقتی شما در این سامانه، قطعه الکترونیکی را جستجو می‌کنید؛ آی سی به سرعت نتایج جستجوی شما در اکثر فروشگاه‌های آنلاین در حوزه قطعات الکترونیک را نمایش می‌دهد.
family

فروشگاه سیسوگ

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند.
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

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

دیدگاه ها

profile
محمد عابدنظری گفت :
۱۴۰۰-۰۵-۱۲ ۱۲:۰۱

سلام دوستان
از مطلب و مثال ارائه شده تان خیلی ممنونم
در پناه امام زمان موفّق باشید

profile
کامین جلیلی گفت :
۱۴۰۰-۰۵-۱۸ ۲۱:۱۰

سلام. سپاس از شما.

profile
امیرحسین گفت :
۱۳۹۹-۱۲-۱۸ ۰۲:۰۷

ممنون خیلی عالی بود

profile
کامین جلیلی گفت :
۱۳۹۹-۱۲-۱۸ ۱۰:۳۶

خواهش می‌کنم امیرحسین جان.

profile
مهدی گفت :
۱۳۹۸-۰۲-۰۷ ۱۹:۳۰

مثل همیشه عالی و ناب ادامه بدین
آرزوی موفقیت دارم براتون

profile
Phoenix گفت :
۱۳۹۸-۰۲-۱۰ ۱۱:۴۷

ممنون از توجه شما دوست عزیز. و همچنین تیم سیسوگ نیز امیدوار است که شما بهره کافی از این مجموعه آموزشی را ببرید.

profile
حمزه گفت :
۱۳۹۸-۰۲-۰۵ ۱۷:۵۷

عالیه، باقدرت ادامه بدید.

profile
Phoenix گفت :
۱۳۹۸-۰۲-۰۷ ۰۹:۰۲

???

become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله