هایتن

اگر خواستید چیزی خلق کنید مثل یک نقاشی یا مثل یک رادیوی دیجیتال

هایتن

اگر خواستید چیزی خلق کنید مثل یک نقاشی یا مثل یک رادیوی دیجیتال

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

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

طبقه بندی موضوعی
بایگانی
جمعه, ۸ دی ۱۳۹۶، ۱۰:۱۱ ب.ظ

و اما FPGA چیست اصلا

و اما FPGA

آنچه در این پست یاد می گیرید:

1.       مفهموم کلی FPGA

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

3.       شرکت‌های عمده سازنده FPGA

4.       نرم افزارهای مورد استفاده برای برنامه ریزی FPGA

FPGA یک آی سیه شبیه همه‌ی آی سی‌های دیگه. شما تو کامپیوتر، گوشی تلفن همراه، تلویزیون دیجیتال، ماشین حساب و غیره حتما یک آی سی پردازنده دارید که به عنوان مغز این دستگاه عمل می‌کنه. این آی سی‌ها رو شرکت تولیدکننده برنامه‌ریزی می‌کنه و به شما می‌فروشه. FPGA مزیتش اینه که یک آی سی بی‌جانه و شما برنامه‌ریزیش می‌کنید، یعنی خیلی هم بی جان نیست قابلیت برنامه‌ریزی مجدد داره واسه همین اسمش FPGA است Field Programmable Gate Arrays یعنی آرایه‌ای از از گیت‌های منطقی که قابلیت برنامه‌ریزی میدانی (در محیط عملیاتی یا کاربردی) رو دارن. مثلا شما می‌تونید با FPGA یک تلفن همراه، یک تلویزیون دیجتال، یک ماشین حساب یا هر چیز دیگه ای که پردازش دیجیتال انجام میده بسازید. شاید بعضی از شماها اسم میکروکنترلر یا میکروپروسسور را شنیده باشین (مثلا AVR)، اینها مثل FPGA نیستن که قابلیت برنامه ریزی مجدد داشته باشن یک سری ماژول‌های آماده هستن و شما برای استفاده از قابلیت اونا یک application می‌نویسید. مثلا مثل یک کامپیوتر هستن که شما با یک زبان برنامه نویسی مثل C یک اپلیکشین می‌نویسید تا کار مورد نظرتون را باهاش انجام بدید در واقع شما کامپیوتر نمی‌سازید بلکه از امکاناتش استفاده می‌کنید اما با FPGA شما واقعا یک کامپیوتر می‌سازید.

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

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

دو تا شرکت عمده تولید‌کننده FPGA داریم Xilinx و AlteraFPGA‌های این دو شرکت مشترکات زیادی دارن ولی از نرم‌افزارهای متفاوتی برای برنامه‌ریزی FPGA استفاده می‌کنن. Xilinx در حال حاضر از نرم افزار Vivado استفاده می‌کنه (در نسخه‌های قبلی از ISE استفاده می‌کرد) و Altera از نرم افزار Quartus استفاده می‌کنه. من با FPGA‌های Xilinx کار می‌کنم. شرکت زایلینکس خانواده‌های متفاوتی از FPGA رو ارائه داده که چند تاشون که در ذهنم هست Spartan، Virtex، Artix، Kintex و Zynq هستن که هر کدوم بسته به کاربرد، ویژگیهای متفاوتی دارن.

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

موافقین ۱ مخالفین ۰ ۹۶/۱۰/۰۸
هایـ تن

نظرات  (۲)

سلام دکتر

عالی، ممنون
پاسخ:
سلام محمد، خواهش می کنم :)
سلام.
عالی
پاسخ:
سلام
حالا ان شالله یه انگیزه ای پیدا کنم ادامه ش بدم :)

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی