آموزش FPGA و VHDL
آموزشگاه ویراد با برگزاری دوره آموزش FPGA ، جزو اولین و معدود آموزشگاه های برگزار کننده ی آموزش FPGA و VHDL می باشد.
و افراد علاقه مند به برنامه نویسی و رشته های تخصصی می توانند با شرکت در این دوره ، به تخصص کافی در حوزه ی الکترونیک دیجیتال و برنامه نویسی زبان سخت افزار برسند .
به طور کلی با یک تعریف ساده از FPGA می توان گفت که FPGA یک پردازنده همانند میکروکنترلر یا cpu کامپیوتر است منتها یک فرق اساسی ای که دارد مربوط به ساختار داخلی آن می شود
پردازنده های دیگر همانند میکرو کنترلر یک ساختار آماده ای از قبل دارند که شامل پردازنده یا ALU ، حافظه (memory) و … می شوند و وقتی به آن برنامه می دهیم آن را اجرا می کند
ولی FPGA ها ساختار آماده ی درونی ندارند و ما باید با زبان برنامه نویسی سخت افزار همانند VHDL ساختار درونی آن را برای فرایندی که می خواهیم آماده کنیم .
بعد از پایان دوره FPGA و VHDL چه مهارت هایی بدست می آورید؟
- یاد گیری استخراج قطعات از کتاب خانه های این نرم افزار
- توانایی طراحی شماتیک و pcb تمام برد های الکترونیکی
- یاد گیری طراحی برد های دو لایه و چند لایه و ارتباط دادن بین لایه ها
- توانایی شبیه سازی سه بعدی pcb طراحی شده در این نرم افزار
- یادگیری انجام چندین پروژه ی صنعتی طراحی برد در این نرم افزار
سرفصل های آموزشی ویراد
- مروری بر مفاهمی اولیه و آشنایی با 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 چیست؟
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 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
سلام ، تو این دوره از چه مدل FPGA استفاده می کنیم؟
سلام دوست عزیز ، در این دوره برای آموزش ما از FPGA XILINX XC95144XL استفاده خواهیم کرد
سلام ، در دوره نیاز هست لپتاب بیاریم یا نه ؟
سلام دوست عزیز
بله به دلیل شبیه سازی و برنامه نویسی باید همراه خودتون یک سیستم داشته باشید.