آموزش جامع FPGA

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

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

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

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

 

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

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

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

آموزش FPGA

 

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

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

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

 

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

برد آموزشی FPGA
بستن

برد ALINX با تراشه Spartan 6 XC6SLX9

تومان937٬500
برد ALINX یک برد بسیار با کیفیت می‌باشد که تراشه‌ی اصلی آن Spartan 6 XC6SLX9، شرکت Xilinx است. این برد امکانات بسیار زیادی دارد که در زیر به برخی از امکانات مهم آن اشاره شده است.

Memory 256Mbit SDRAM memory 16 Mbit QSPI FLASH EEPROM 24LC04

Communication JTAG Connector Camera Module Connector Micro SD Socket, support SD mode and SPI mode USB Power Supply/ Board USB to Serial Port

Display VGA Connector, Output 65536 Colors 6 LED Segment Displays

  
بستن

تراشه Spartan-6 XC6SLX9

تومان162٬500
تراشه‌ی Spartan-6 XC6SLX9 از محصولات شرکت Xilinx می‌باشد که در رده‌ی FPGA ها دسته‌بندی می‌شود. در اکثر بردهای آموزشی مانند برد ALINX و همچنین بسیاری از بردهایی که در ایران تولید می‌شود از این تراشه استفاده شده است.تراشه‌ی Spartan-6 یکی از تراشه‌های خانواده Spartan می‌باشد که هنوز توسط شرکت Xilinx پشتیبانی می‌شود و مانند Spartan-3 از رده‌ خارج نشده است. 
Family NameSpartan-6
Number of Logic Cells9152
Number of Logic Units5720
Dedicated DSPYes
Number of Registers11440
Number of Multipliers(18 * 18) 16
Mounting TypeSurface Mount
Package TypeTQG
Pin Count144
Number of RAM Bits576kbit
آموزش FPGA

آموزش FPGA قسمت شانزدهم: توصیف عناصر حافظه (بخش پنجم)

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

ادامه مطلب

آموزش میکروبلیز از مبتدی تا پیشرفته

آموزش میکروبلیز قسمت پنجم : آموزش زبان برنامه‌نویسی C

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

ادامه مطلب

آموزش FPGA

آموزش FPGA قسمت پانزدهم: توصیف عناصر حافظه (بخش چهارم)

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

ادامه مطلب

آموزش میکروبلیز از مبتدی تا پیشرفته

آموزش میکروبلیز قسمت چهارم: آموزش زبان برنامه‌نویسی C

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

ادامه مطلب

آموزش FPGA

آموزش FPGA قسمت چهاردهم: توصیف عناصر حافظه (بخش سوم)

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

ادامه مطلب

آموزش میکروبلیز از مبتدی تا پیشرفته

آموزش میکروبلیز قسمت سوم: آموزش زبان برنامه‌نویسی C

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

ادامه مطلب

آموزش FPGA و زبان VHDL

آموزش FPGA قسمت سیزدهم: توصیف عناصر حافظه (بخش دوم)

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

ادامه مطلب

آموزش میکروبلیز از مبتدی تا پیشرفته

آموزش میکروبلیز قسمت دوم: آموزش زبان برنامه‌نویسی C

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

ادامه مطلب

آموزش میکروبلیز از مبتدی تا پیشرفته

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

بسم‌الله‌الرحمن‌الرحیم در این سری از آموزش‌ها می‌خواهیم شما را (البته مخاطبان مبحث FPGA) با میکروبلیز و همینطور نحوه اصولی برنامه‌نویسی زبان C آشنا کنیم. دلیل آماده سازی این مقاله و مقالات بعدی در این زمینه این است که تقریبا می‌توان گفت هیچ منبع متن...

ادامه مطلب

آموزش FPGA و زبان VHDL

آموزش FPGA قسمت دوازدهم: توصیف عناصر حافظه (بخش اول)

در قسمت یازدهم از مجموعه آموزشی FPGA با ساختار شرطی case آشنا شدیم و به مقایسه ساختارهای شرطی در محیط ترتیبی پرداختیم. در نهایت مقایسه‌ای تخصصی در رابطه با این ساختارها ارائه دادیم و نوصیه‌هایی برای هرچه حرفه‌ای‌تر شدن شما بیان کردیم.در قسمت‌های ...

ادامه مطلب

آموزش FPGA از مقدماتی تا پیشرفته

آموزش FPGA قسمت یازدهم: ساختار شرطی case

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

ادامه مطلب

آموزش FPGA قسمت دهم: ساختار شرطی if (بخش دوم)

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

ادامه مطلب

آموزش FPGA قسمت نهم: ساختار شرطی if (بخش اول)

ساختار شرطی if;در قسمت هشتم از مجموعه آموزشی FPGA با مدارات ترتیبی در محیط Sequential آشنا شدیم. عناصر پایه سازنده مدارات ترتیبی را شناختیم و به طور مفصل بررسی کردیم که در محیط ترتیبی، ارجاعات چگونه انجام می‌گیرند.در این قسمت با ساختار شرطی i...

ادامه مطلب

آموزش FPGA قسمت هشتم: مدارات ترتیبی در محیط Sequential

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

ادامه مطلب

ساخت دستگاه ماینر در ایران

ساخت ماینر با FPGA و ARM

چند ماهی هست که تب بیت کوین و ارزهای دیجیتال خیلی بالا رفته!در ضمن وقتی بحث بیت کوین مطرح میشه مطمئنا بحث ماینر نیز به عنوان یک سخت افزار خاص و ویژه جهت استخراج ارز دیجیتال نیز مطرح میشه و همون موقع هست که صحبت از مهندسین برق و الکترونیک میشه که ...

ادامه مطلب

آموزش FPGA قسمت هفتم: ساختار ارجاع انتخابی

ساختار ارجاع انتخابی; در قسمت ششم از مجموعه آموزشی FPGA با ساختار ارجاع شرطی آشنا شدیم، سپس یک ALU را با استفاده از این ساختار توصیف، و در نهایت برای صحت عملکرد ALU موردنظر، یک فایل Test Bench ساختیم و در نرم‌افزار ALU ،ISIM را شبیه‌سازی کردیم. در ...

ادامه مطلب

آموزش FPGA قسمت ششم: شبیه‌سازی ساختار ارجاع شرطی در ISIM

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

ادامه مطلب

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

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

ادامه مطلب

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

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

ادامه مطلب

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

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

ادامه مطلب

FPGA_Part3

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

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

ادامه مطلب

آموزش FPGA

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

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

ادامه مطلب

PipeLine

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

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

ادامه مطلب

آموزش FPGA

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

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

ادامه مطلب

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

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

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

ادامه مطلب

فروش بردهای آموزشی و محصولات مبتنی بر FPGA