آموزش کامل FPGA

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

حالت اول، تراشه‌هایی هستند که معماری آن‌ها به گونه‌ای است که شما فقط می‌توانید مقادیر دیجیتال را به پین‌های این تراشه‌ها اعمال کنید

و حالت دوم، تراشه‌هایی هستند که علاوه بر اینکه می‌توانیم مقادیر دیجیتال را به پین‌ها اعمال کنیم، این قابلیت وجود دارد که با استفاده از یک زبان برنامه‌نویسی، قبل از راه‌اندازی تراشه، یک برنامه یا کد را در آنها قرار بدهیم.

اما در این میان دسته سومی نیز وجود دارد، شاید بهتر باشد اسم این دسته را تافته جدا بافته بگذاریم !

 

در دسته دوم، معماری ثابت بود. و تنها انعطافی که برای ما وجود دارد، تغییر برنامه‌ای است که قرار است CPU آن را اجرا کند. حتما حدس خواهید زد که در دسته سوم انعطاف باید فراتر برود.

در دسته سوم شما این قابلیت را خواهید داشت که معماری مورد نظر خود را خلق کنید.

و نام Field Programmable Gate Arrays –FPGAs برای این دسته در نظر گرفته شده است.

آموزش FPGA

 

FPGA یا به صورت کامل‌تر Field Programmable Gate Array تراشه‌هایی هستند که از قبل تقریبا هیچ نوع مدار از قبل آماده شده‌ای وجود ندارد و ما با استفاده از یک زبان توصیف سخت‌افزار (نه زبان برنامه‌نویسی) آن‌ها را برنامه‌ریزی خواهیم کرد.

این تراشه‌ها به خاطر سرعت بسیار بالایی که دارند؛ غالبا در کارهای نظامی و مخابراتی استفاده می‌شوند.

دو شرکت معروف به اسم Xilinx و Altera از تولیدکنندگان عمده این تراشه‌ها در دنیا می‌باشند. این تراشه‌ها عموما با دو زبان توصیف سخت‌افزار به اسم‌های VHDL و Verilog برنامه‌ریزی می‌شوند (منظور از برنامه ریزی طراحی یک سخت‌افزار می‌باشد)

 

انتخاب FPGA مناسب

آموزش FPGA قسمت پنجم: اضافه کردن زیرماژول به ماژول اصلی

در قسمت چهارم از مجموعه آموزشی FPGA با مدارات ترکیبی و ترتیبی آشنا شدیم. در نهایت توابع یک، نیم جمع کننده را استخراج و آن‌ها را به کد VHDL تبدیل کردیم. شاید سوالی که ذهنتان را درگیر کرده باشد، این است که آیا قرار است ما تا ابد، اگر خواستیم مداری را در FPGA پیاده‌سازی کنیم، باید م...

ادامه مطلب

اهمیت تئوری و ریاضیات در برنامه‌نویسی

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

ادامه مطلب

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

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

ادامه مطلب

FPGA_Part3

آموزش FPGA قسمت سوم: نرم‌افزار ISE و زبان VHDL

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

ادامه مطلب

آموزش FPGA

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

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

ادامه مطلب

PipeLine

با مفهوم Pipeline بهتر آشنا شوید

با مفهوم Pipeline بهتر آشنا شوید ; عامل محدود کننده سرعت در الکترونیک شاید بارها شنیده باشید که حداکثر سرعت این سیستم فلان مقدار است، دقیقا چه عواملی باعث می‌شوند که حداکثر سرعت یک سیستم محدود شود؟اگر بخواهیم یک تعریف ساده و مفهومی از سرعت داشته باشیم، می‌گوییم که سرعت در ر...

ادامه مطلب

آموزش FPGA

آموزش FPGA قسمت اول: FPGA چیست؟

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

ادامه مطلب

پروگرامر fpga و cpld با آی سی ft232

پروگرامر USB برای FPGA به همراه سورس و شماتیک

با توجه به نیاز استفاده از کنترلرهای FPGA و CPLD، بر آن شدیم که برای بالا بردن سطح آموزش و سهولت دسترسی، برد پروگرامری برای این کنترلرها ارائه کنیم. برای این منظور از چیپ پرکاربرد FT232 استفاده می‌کنیم.

ادامه مطلب