تراشه مدار سامانه
تراشه مدار سامانه

مهندس طراحی و پیاده‌سازی بر روی FPGA

تهران، فاطمی
امکان دورکاری
تمام وقت یا پاره وقت
توافقی
-
-
11 تا 50 نفر
خدمات مهندسی و تخصصی
شرکت ایرانی دارای مشتریان داخلی
1398
خصوصی
توضیحات بیشتر

شاخص های کلیدی از نظر کارفرما

2 سال سابقه کار در گروه شغلی مشابه
MATLAB - متوسط

شرح شغل و وظایف

شرح کار:


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

تقریبا در تمامی پروژه‌­های ما بخش داده برداری یا Data Acquisition جزو جدایی ناپذیر است؛ بنابراین، داشتن دانش کافی نسبت به مفاهیم تبدیل سیگنال آنالوگ و دیجیتال به یکدیگر ضروری است.

در اکثر طراحی‌­های ما، قطعات جانبی پرکاربرد از جمله مبدل­های آنالوگ-دیجیتال، سنسورها، موقعیت­‌یاب و عموما هر ماژولی که دارای اینترفیس دیجیتالی باشد، به تراشه FPGA متصل می­گردد. بنابراین داشتن تسلط نسبت به پروتکل­های رایج جهت را­ه­‌اندازی و کار با این نوع قطعات، از جمله UART, SPI, I2C, CAN و غیره ضروری است. در برخی موارد از پروتکل­های پیشرفته­‌تر مانند Ethernet جهت ارتباط بین چند برد FPGA و یا ارتباط آن با کامپیوتر بهره­ می­بریم؛ بنابراین برخورداری از اطلاعات کافی در این زمینه دارای اهمیت است.

در برخی از موارد مشابه می­توان از قابلیت­های فراوان تراشه Zynq که شامل FPGA (PL) و ARM (PS) است بهره برد. برای مثال، ایجاد ارتباط شبکه UDP Ethernet به کمک SDK های موجود برای PS احتمالا بهینه­‌تر و منطقی­‌تر باشد؛ به طور کلی، داشتن اطلاعات کافی نسبت به معماری Zynq و باس AXI، برنامه نویسی به زبان C/CPP، و نیز توانایی تعریف و تفکیک طراحی سیستم بین PL و PS دارای اهمیت است.

معمولا نیاز است علاوه بر حافظه‌­های موجود در تراشه FPGA، از سایر حافظه­‌های رایج از جمله SRAM و  DDR و یا حافظه­‌های NVM مانند SD Card و Flash نیز استفاده نمود. بدین منظور، دانستن انواع ارتباطات حافظه و توانایی استفاده از IP Core های مربوطه بسیار ضروری است.

همچنین با توجه به ماهیت پروژه­های ما که اکثرا پردازشی است، ضروری است علاوه بر IP Core های ارتباطی و حافظه، در زمینه IP Core های ریاضیاتی از جمله FIR, FFT, CORDIC, DDS و سایر ابزارهای موجود، دانش کافی وجود داشته باشد.

در تمامی پروژه­های ما، علاوه بر راه‌­اندازی و کار با Peripheral های مختلف، پیاده سازی الگوریتم­های پردازش سیگنال دیجیتال نیز بر عهده مهندس FPGA است. طراحی، اجرا و تست عملکرد الگوریتم معمولا توسط یک مهندس DSP یا مخابرات انجام می­شود. این مرحله، درنرم­افزار Matlab از طریق برنامه­نویسی m-file و یا مدل Simulink انجام شده و سپس جهت پیاده­سازی به مهندس FPGA تحویل می­گردد. بنابراین، تعامل با طراح الگوریتم و توانایی فهم کد و یا مدل جهت طراحی سخت‌­افزار مربوطه در FPGA بسیار مهم است.

محاسبات ریاضی مربوط به پردازش سیگنال به صورت ممیز ثابت با نمایش two's complement انجام می­شود. تبدیل الگوریتم از ریاضیات ممیز شناور (floating-point) به ممیز ثابت (fixed-point) توسط طراح الگوریتم انجام می­شود؛ اما به طور کلی، داشتن اطلاعات کافی در زمینه محاسبات و ریاضیات کامپیوتری ضروری است.

در اکثر مواقع، طراحی سخت‌­افزار به روش RTL انجام شده و برنامه آن به زبان­های VHDL و Verilog بر روی FPGA پیاده­سازی می­گردد. طراح FPGA این اختیار را دارد که بسته به نوع الگوریتم و سایر المان­های سیستم الکترونیکی مربوطه، و با تشخیص خود، بخشی از پیاده­‌سازی را بر روی ARM یا PS در تراشه Zynq انجام دهد (برای مثال، پیاده­‌سازی پروتکل­های ارتباطی). همچنین، استفاده از سایر نرم­‌افزارها و ابزارهای کمکی در طراحی از جمله HLS, System Gen, HDL Coder و غیره اختیاری است.

یکی از کارهای مهم در تمامی مراحل پیاده‌­سازی تا اجرا، شبیه سازی است. شبیه­‌سازی می­تواند به کمک یک برنامه HDL به عنوان Testbench انجام و یا مستقیما به کمک ابزارهای آنالیز منطقی در FPGA، برای مثال Chipscope و ILA انجام شود. انتخاب روش و ایجاد سناریو تست و درستی­‌سنجی یکی از وظایف مهم در طراحی با FPGA است.

 

تحصیلات و سابقه کار مورد نیاز:


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

دارای حداقل 2 سال سابقه کاری در زمینه‌­های مرتبط

پیاده­سازی الگوریتم­های پردازش سیگنال­ دیجیتال بر روی FPGA

پیاده­‌سازی اینترفیس بر روی FPGA

 

مهارت­های مورد نیاز:

تسلط به طراحی سخت‌­افزار به روش RTL به زبان­های VHDL و Verilog:
_تسلط به تکنیک­های طراحی سیستم­های دیجیتال از جمله Pipelining, Resource-sharing, Time-multiplexing, Retiming و غیره.
_دانش کافی در بهینه­‌سازی و افزودن Constraint های زمانی و فیزیکی.

شناخت محصولات و نرم­‌افزارهای طراحی و پیاده سازی FPGA های شرکت Xilinx و تسلط به نرم‌­افزارهای Vivado و ISE. شناخت تراشه­‌های FPGA به ویژه Spartan, Virtex و Zynq.

دانش کافی نسبت به معماری Zynq و تقسیم طراحی سیستم بین PL و PS.

دانش کافی در برنامه نویسی به زبان C/CPP در SDK.

توانایی کار با انواع IP Core های ریاضیاتی، ارتباطی و حافظه شرکت Xilinx از جمله FFT, FIR, DDS, CORDIC, Memory Gen, AXI و غیره.


تسلط به پیاده­سازی الگوریتم­های پردازش سیگنال (DSP) بر روی FPGA:
_دانش کافی در زمینه محاسبات و ریاضیات کامپیوتری ممیز ثابت (fixed-point) و ممیز شناور (floating-point).
_تسلط به فهم برنامه m-file نرم­‌افزار Maltab جهت پیاده­‌سازی­ سخت‌­افزار مربوطه.
_آشنایی با محیط Simulink نرم‌­افزار matlab جهت پیاده­‌سازی­ سخت­‌افزار مربوطه.
_آشنایی با مفاهیم پردازش سینگال دیجیتال.

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

شناخت، راه­‌اندازی و کار با مبدل­های آنالوگ-دیجیتال:
_دانش کافی نسبت به مفاهیم داده‌­برداری.

دانش کافی نسبت به اینترفیس‌­ها و پروتکل‌­های ارتباطی رایج در بین پردازنده‌­ها و میکروکنترلرها از جمله UART RS232/485, SPI, IIC, CAN, Ethernet و غیره:
_راه‌­اندازی و کار با peripheral ها و ماژول­های جانبی از جمله ADC، سنسور و غیره.
_برقراری ارتباط بین چند برد FPGA و یا با کامپیوتر.

انگیزه بالا در یادگیری موضوعات جدید و حل مشکلات احتمالی:
_مهارت در خواندن و فهم دیتاشیت.
_علاقه مند به مستندسازی.

شرایط احراز شغل

جنسیت
ترجیحاً خانم
نرم افزارها
MATLAB| متوسط

ثبت مشکل و تخلف آگهی

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

این آگهی بسته شده است