آموزش جامع 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 قسمت نوزدهم: شیفت رجیستر (بخش دوم)

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

ادامه مطلب

پروتکل JTAG چیست

تاریخچه و قابلیت‌های خاص پروتکل JTAG

اگر با میکروکنترلرها زیاد سر و کار دارید و آن‌ها را پروگرام کرده باشید به احتمال زیاد اسم JTAG را نیز زیاد شنیده‌اید، اما چرا؟ چون از JTAG غالبا برای پروگرام و دیباگ تراشه‌های زیادی از جمله میکروکنترلرها استفاده می‌شود و افرادی که...

ادامه مطلب

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

اهمیت تئوری و ریاضیات در برنامه‌نویسی قسمت دوم: کری یا سرریز، کدام؟

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

ادامه مطلب

آموزش FPGA

آموزش FPGA قسمت هجدهم: شیفت رجیستر (بخش اول)

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

ادامه مطلب

آموزش FPGA قسمت 17

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

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

ادامه مطلب

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

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

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

ادامه مطلب

آموزش 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 آشنا شدیم. عناصر پایه سازنده مدارات ترتیبی را شناختیم و به طور مفصل بررسی کردیم که در محیط ترتیبی، ارجاعات چگونه انجام می‌گیرند. در این ق...

ادامه مطلب

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

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

ادامه مطلب

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

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

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

ادامه مطلب

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

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

ادامه مطلب

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

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

ادامه مطلب

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

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

ادامه مطلب

اهمیت تئوری و ریاضیات در برنامه‌نویسی قسمت اول: خواص سیستم متمم 2

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

ادامه مطلب

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