آموزش FPGA و VHDL

آموزشگاه ویراد با برگزاری دوره آموزش FPGA ، جزو اولین و معدود آموزشگاه های برگزار کننده ی آموزش FPGA و VHDL می باشد.

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

به طور کلی با یک تعریف ساده از FPGA می توان گفت که  FPGA  یک پردازنده همانند میکروکنترلر یا cpu  کامپیوتر است منتها یک فرق اساسی ای که دارد مربوط به ساختار داخلی آن می شود

پردازنده های دیگر همانند میکرو کنترلر یک ساختار آماده ای از قبل دارند که شامل پردازنده یا ALU  ، حافظه (memory)  و … می شوند و وقتی به آن برنامه می دهیم آن را اجرا می کند 

ولی FPGA ها ساختار آماده ی درونی ندارند و ما باید با زبان برنامه نویسی سخت افزار همانند VHDL ساختار درونی آن را برای فرایندی که می خواهیم آماده کنیم .

بعد از پایان دوره FPGA و VHDL چه مهارت هایی بدست می آورید؟

  • یاد گیری استخراج قطعات از کتاب خانه های این نرم افزار
  • توانایی طراحی شماتیک و pcb تمام برد های الکترونیکی
  • یاد گیری طراحی برد های دو لایه و چند لایه و ارتباط دادن بین لایه ها
  • توانایی شبیه سازی سه بعدی pcb طراحی شده در این نرم افزار
  • یادگیری انجام چندین پروژه ی صنعتی طراحی برد در این نرم افزار
جهت کسب اطلاعات بیشتر با شماره های ۰۲۱۸۸۷۵۴۲۰۹ | ۰۲۱۸۸۵۱۰۷۶۷ | ۰۹۳۸۸۹۴۰۲۹۴ تماس حاصل نمایید و یا فرم را تکمیل نموده تا کارشناسان ما در کوتاهترین زمان با شما تماس حاصل نمایند.

سرفصل های آموزشی ویراد

Document
"سر فصل های FPGA : "
سر فصل های FPGA :
  • مروری بر مفاهمی اولیه و آشنایی با FPGA
    • مروری کلی بر میکروکنترلر ها
    • مروری بر پردازنده های
    • آشنایی با مدارات منطقی
    • مدارات قابل برنامه ریزی PLA , PAL , SPLD , CPLD
    • آموزش توصیف سخت افزار زبان VHDL
    • آموزش و توصیف سخت افزار زبان Verilog
    • آموزش چیپ های Altra با کمک نرم افزار Quartus
    • آموزش چیپ های xilinx
    • آموزش نرم افزار ISE
    • معرفی انواع FPGA ها و CPLD ها
    • آموزش تفاوت های میکروکنترلر ها و FPGA
    • آموزش ساختمان داخلی FPGA
    • آموزش ساختار استاندارد در VHDL
    • آموزش برنامه نویسی زبان VHDL
    • آموزش نرم‌افزار ISE
    • بررسی مفاهیم سنتز route
    • آموزش عملگر های منطقی و ریاضی
    • آموزش رجیستر ها و جنریک ها
    • آموزش طراحی مالتی پلکسر و انکودر اولویت دار
    • آموزش IP CORE CLOCK DCM
    • آموزش برنامه نویسی counter ها با ریست سنکرون و آسنکرون
    • آموزش طراحیPWM module برای کنترل سرعت موتور DC
    • آموزش طراحی یک مقسم فرکانسی
    • آموزش دیاگرام کلاک دیتا
    • آموزش تأثیرات تأخیر دیتا در عملکرد پردازش
    • آموزش تولید موج سینوسی و شبیه سازی آن در متلب
    • آموزش IP CORE ROM
    • آموزش ADC و DAC و برنامه نویسی آن در FPGA
    • آموزش طراحی debouncer
    • پروژه LCD کاراکتری
    • آموزش راه‌اندازی SEVEN SEGMENT
    • آموزش شبیه سازی پروژه ها با ModelSim
    • آموزش انواع ماشین های حالت
    • آموزش استاندارد سازی و بهینه کردن ماشین های حالت
    • پروژه ی راه اندازی ماژول sequence finder
    • پروژه راه اندازی پورت ارتباطی SPI
    • راه‌اندازی شیفت رجیستر با ورودی و خروجی پارالل
    • راه اندازی فیلتر Moving Average
    • پیاده سازی درایور Stepper Motor
    • راه اندازی ADC
    • آموزش ارتباط سریال USART
    • ارتباط سریال با FPGA
    • پروژه راه اندازی واسط های ارتباطی I2C
    • پیاده سازی Keyboard Scanner
    • آموزش IP Core RAM
    • راه اندازی DPRAM
    • راه اندازی SPRAM
    • ارتباط با SRAM خارجی
    • آموزش IP Core multiplier
    • راه اندازی واسط ارتباط VGA
    • دریافت و ارسال دیتا با استفاده از HM/TR
    • آشنایی با اعداد علامت دار و بی علامت و اعشاری
    • آشنایی با منطق اعداد علامت دار
    • آشنایی با منطق اعداد اعشاری
    • انجام عملگرهای ریاضی در اعداد علامت دار
    Over flow Carry
    • متد های کنترل overflow
    • نحوه Fixed point سازی اعداد اعشاری و علامت دار
    • نشان دادن اعداد با روش متمم ۲ در زبان VHDL
    • آموزش محاسبات اعشاری برای نمایش اعداد signed در VHDL
    • آموزش روش Fixed point سازی
    • آموزش جمع و ضرب اعداد Fixed point
    • آموزش DDS IP Core
    • آموزش ساخت DDS (مولد موج مربعی)
    • آموزش راه‌اندازی ابتدایی در نرم افزار MATLAB
    • آموزش راه‌اندازی Music KeyBoard
    • آموزش Cordic IP Core
    • آموزش راه‌اندازی توابع مثلثاتی در FPGA
    • آموزش اشکال زدایی طرح با استفاده از ChipScope
    • آموزش پیاده سازی ChipScope
    • آموزش محاسبات اعداد مختلط در FPGA
    • آموزش Complex Multiplier IP Cores
    • آموزش راه‌اندازی Demodulator IQ
    • آموزش پروتکل USB
    • آموزش پیاده سازی مبدل CY7C68013A USB
    • آموزش Xilinx EDK
    • معرفی انواع مختلف Bus ها
    • استفاده از باس ها در MicroBlaze
    • آموزش طراحی و پیاده سازی Soc
    • راه اندازی MicroBlaze -
    • آموزش GPIO
    • آموزش UART
    • آموزش پیاده سازی I2C
    • آموزش راه اندازی Custom IP Core
    • آموزش الگوریتم در نرم افزار MATLAB
    • آموزش الگوریتم MATLAB در FPGA

آموزش FPGA و VHDL

دوره حضوری
-
  •  

آموزش FPGA و VHDL

دوره خصوصی
-
  •  

آموزش FPGA و VHDL

دوره آنلاین
-
  •  

دوره آموزش FPGA و VHDL

مزایای شرکت در این دوره :

پرداخت شهریه به صورت اقساطی

اشتغال به کار پس از موفقیت در دوره

پشتیبانی نامحدود پس از اتمام دوره

انجام پروژه های عملی با تجهیزات به روز

ارائه مدرک معتبر از سازمان فنی و حرفه ای

تصاویر بردهای FPGA و VHDL

دیگر دوره های آموزشی ویراد

FPGA چیست؟

FPGA  ها یک ساختار آماده از گیت های منطقی همانند nand ,nor , and , or  و … می باشد که طریقه ی اتصال این گیت ها به هم قابل برنامه ریزی است برای مثال یک آی سی FULL ADDER  را در نظر بگیرید :

 کار این آی سی این است که چند بیت عدد باینری  را با هم جمع کند و در خروجی حاصل جمع باینری را برای ما نشان دهد

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

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

حال به سراغ FPGA ها می رویم FPGA ها دارای تعداد بسیاری گیت هستند و ما با با برنامه نویسی به زبان  VHDL   این  گیت ها را  بر اساس نیاز به هم وصل می کنیم می توانیم یک IC FULL ADDER  با آن بسازیم یا یک ضرب کننده و …

ولی توجه داشته باشید  که FPGA  ها بسیار گران هستند چیزی بین هزار تا شش هزار دلار  بنابراین هیچ وقت برای کاربرد های آسان از آن ها استفاده نمی شود 

و برای جمع اعداد از همان IC FULL ADDER استفاده می شود و برای  پردازش های ساده از میکرو کنترلر ها استفاده می شود 

ولی در برخی کاربرد ها همانند پروژه های مربوط به هوا فضا ، هواپیما ها ، ماهواره ها و … که پردازش باید دقیق و بدون خطا باشد دیگر نمی توان  از میکرو کنترلر یا دیگر پردازشگر ها استفاده کرد زیرا در برنامه های سنگین احتمال  تاخیر یا هنگی در اجرای برنامه دارد و می تواند خسارت های سنگین به  کل پروژه بزند .

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

بنابراین FPGA  ها کاملا بدون خطا و دقیق هستند و هنگی ای در پردازش ندارند و در پروژه های حساس و گران قیمت از FPGA  استفاده می شود .  

معماری FPGA

یک FPGA از آرایه ای از بلوک ها به نام بلوک های منطقی قابل برنامه ریزی تشکیل شده است، این بلوک ها توسط ماتریس اتصال قابل تنظیم به هم متصل می شوند. 

 این بدان معنی است که هم رفتار منطقی و هم مسیریابی داخلی را می توان توسط نرم افزار طراح برنامه ریزی کرد.

 تعداد بلوک های منطقی به اندازه FPGA (و قیمت) بستگی دارد.  هرچه FPGA بزرگتر باشد، بلوک های منطقی بیشتری می توانید استفاده کنید.

  بلوک های منطقی بیشتر به شما این امکان را می دهد که از “گیت های” بیشتر و در نتیجه عملکرد بیشتر استفاده کنید.

زبان طراحی FPGA

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

 این ارتباطی است که با استفاده از آن با سخت افزار خود ارتباط برقرار می کنید و به آن می گویید که می خواهید چه کاری انجام دهد.  

با استفاده از این زبان ، شما اساساً عملیات سخت افزار آن تراشه نیمه هادی خاص و دستگاهی که از آن تغذیه ی خود را می گیرد را تعریف خواهید کرد. 

در عصر مدرن، تعداد زیادی زبان طراحی کامپیوتری وجود دارد که می توان برای این منظور از آنها استفاده کرد.

به طور معمول، شما از هر زبان توصیف سخت افزاری یا HDL در فرآیند برنامه نویسی FPGA استفاده خواهید کرد. 

 برای مدارهایی که ظرفیت نسبتاً کمتری دارند می توانید از زبان های سطح پایین استفاده کنید.

  زبان‌های پیشرفته‌تر مانند VHDL و Verilog که برای مدارها و دستگاه‌های با پیچیدگی بالاتر استفاده می‌شوند.

  سایر عواملی که در تصمیم گیری برای استفاده از زبان نقش دارند عبارتند از تجربه قبلی، اولویت و تخصص شخصی، 

در دسترس بودن مدل ها، قابلیت های ترکیبی، محدودیت های مالی و طراحی سخت افزار.

نحوه برنامه نویسی FPGA 

مفهوم “برنامه نویسی FPGA” ممکن است کمی گمراه کننده باشد. از این گذشته، هیچ برنامه واقعی برای اجرای متوالی مانند CPU یا GPU وجود ندارد. 

برنامه نویسی FPGA شامل ایجاد معماری سخت افزاری است که یک الگوریتم درخواستی را اجرا می کند و آن را به زبان توصیف سخت افزار (HDL) توصیف می کند. 

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

یک “برنامه FPGA” از عناصر سطح پایین شامل گیت های منطقی، جمع کننده ها، ثبات ها و مالتی پلکسرها تشکیل شده است.
این به شما انعطاف زیادی را ارائه می دهد. به عنوان مثال، اگر یک نوع داده ۲۰ بیتی دارید، می توانید از دستورالعمل های دقیقا ۲۰ بیتی برای انجام عملیات استفاده کنید. 

در دنیای CPU، شما فقط رجیسترها و دستورالعمل های تنظیم شده توسط سازنده را دارید که قابل تغییر نیستند. 

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

برای مثال، رمزهای بلوکی و توابع رمزنگاری توسط CPU ها در چرخه های زیادی انجام می شود که به زمان بسیار بیشتری نسبت به FPGA ها نیاز دارد.

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

همانطور که در بالا ذکر شد، با FPGA ها، معماری سخت افزار (برای انجام وظایف خاص) طراحی می شود .

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

 با این حال، Verilog شبیه به C است، که باید آن را برای افرادی که هیچ تجربه قبلی با برنامه نویسی سطح پایین ندارند، بصری تر و آسان تر کند.

VHDL یک زبان تا حدودی قدیمی با مشکلات خاصی است ، یکی از آن ها این است که بررسی اینکه آیا معماری همان طور که انتظار می رود کار می کند بسیار سخت است.

در برخی پروژه‌ها، برای آسان‌ تر کردن کار برنامه نویسی ، از پایتون برای تولید بخش‌هایی از کد استفاده می‌شود. البته، همه چیز را می توان در VHDL نوشت، اما انجام آن در پایتون آسان تر است.

دوره آموزش  FPGA و برنامه نویسی VHDL  در آموشگاه  ویراد

خب در ابتدا به یک نکته ی بسیار مهم در مورد FPGA ها بپردازیم FPGA ها مانند  میکر کنترلر نیستند که برنامه نویسی کنیم  و در صورت خطا در برنامه ، آن را اصلاح کنیم و مجدد پروگرم کنیم .

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

بنابراین با یک کار کاملا تخصصی و حساس طرف هستیم  و البته حقوق این کار بسیار عالی است .

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

در ادامه به برنامه  نویسی به زبان VHDL  می پردازیم این زبان ، زبان سطح بالای سخت افزار به حساب می آید ولی باز با این حال سختی خود را دارد و همین باعث  شده که این کار کاملا تخصصی شود و بازار کار بسیار عالی داشته باشد .

در زبان VHDL  از ابتدایی ترین و ساده ترین برنامه ها شروع میکنیم و برنامه نویسی اصولی را به طور کامل آموزش می دهیم .

در ادامه به زبان برنامه نویسی  VERILOG  می پردازیم  و تفاوت ها و ضعف و قدرت این زبان را با VHDL  بررسی می کنیم .

سپس  نوبت به شبیه سازی برنامه ی نوشته شده میرسید همانطور که بالاتر بیان شد FPGA ها فقط یک بار قابلیت پروگرم شدن دارند

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

بنابراین در ادامه به نرم افزار شبیه سازی  MODELSIM  می پردازیم و برنامه های نوشته شده به زبان  VHDL  در نرم افزار ISE را به این نرم افزار می دهیم 

 و شبیه سازی را بررسی میکنیم و ایرادات آن را رفع میکنیم و در آخر برنامه ی صحیح را به FPGA  می دهیم . 

و پس از یادگیری کامل نحوه ی شبیه سازی و پروگرنم کردن نوبت به نوشتن  برنامه ی پروژه های واقعی و صنعتی  رسیده است .

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

بازار کار FPGA در ایران

در ابتدا میتوان گفت که که مهندسان حرفه ای برنامه نویسی fpga در ایران به شدت کم است طوری که میتوان به راحتی گفت که تعدادشان انگشت شمار است . بنابراین شما پس از گذراندن این دوره با بازار کار زیاد و شرکت های حرفه ای مواجه هستید.

امروزه حقوق یک مهندس حرفه ای برنامه نویسی fpga در ایران چیزی بین ۱۰۰ تا ۲۰۰ هزار تومان به صورت ساعتی میباشد و حتی در خارج از کشور نیز fpga یکی از پرطرفدار ترین کنترلر است.
زیرا fpga ها مانند میکرو ها و plc ها نیستند که یک cpu و پردازشگر و کلاک داشته باشند بلکه به صورت کاملا سخت افزاری بنا بر نیاز شما طراحی می شوند بنابراین در مشاغل حساس مانند نظامی ، هوافضا، پزشکی ،پردازش تصویر و … به دلیل سرعت بالای  آن ها و بدون خطا بودنشان استفاده میشود

سرمایه ی مورد نیاز 

برای شروع کار در حوزه ی fpga شما تنها سرمایه ای که نیاز دارید یک کامپیوتر ساده و یک سواد خوب است .
البته خود fpga قطعات به شدت گرانی هستند ولی قرار نیست شما آن را پرداخت کنید زیرا کار های مربوط به fpga اغلب به شکل پروژه ای است و مبلغ خرید آن به شما پرداخت میشود .
بنابراین با یک سرمایه ی خیلی کم شما میتوانید به حقوق های میلیونی یا حتی میلیاردی دست پیدا کنید. 

 

۴.۶/۵ - (۱۱ امتیاز)

4 دیدگاه

به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.

دیدگاهتان را بنویسید

2 + 7 =