PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : راهنما اصول طراحی با پردازنده های ارایه ای altera and xlinx



farzin_ffr
11-05-2013, 19:17
سلام به تمام اساتید و مهندسان گل
بهتر دونستم این تایپک رو بنویسم چون می بینم کار با fpga تو ایران انگار هنوز جا نیفتاده در حالی که باید به این نکته توجه کرد که در بسیاری از موارد گزینه بهینه تر و صنعتی تر استفاده از این نوع پردازنده هاست به نحوی که شما cpu ر خودتون انتخاب کرده و حتی device همانند کنترلر دلخواه خودتون می سازید.
دوستان اگر سوالی داشتید از مدل های altera و نرم افزار های quartus و nios2 در خدمتیم .
سعی می کنم تو این تایپک آموزش تخصصی رو شروع کنم .
التماس دعا

kamikazi
11-05-2013, 19:51
سلام خیلی عالیه که بالاخره یکی دست به کار شد خدا خیرت بده مهندس مشکل ما اینکه تمام بک گراندمون همون میکرو های ارم و ای وی اره اگه میشه از بیس شروع کنید مثلا کامپایلر و ای سی هایی که میشه باهاش کار کرد و از همه مهمتره سخت افزار راه اندازی یه fpga

morteza_rk
12-05-2013, 15:54
سلام خیلی عالیه که بالاخره یکی دست به کار شد خدا خیرت بده مهندس مشکل ما اینکه تمام بک گراندمون همون میکرو های ارم و ای وی اره اگه میشه از بیس شروع کنید مثلا کامپایلر و ای سی هایی که میشه باهاش کار کرد و از همه مهمتره سخت افزار راه اندازی یه fpga

همه حرفای منم ، مهندس گفت دیگه!

mansoory
13-05-2013, 10:52
سلام.
مشتاقانه منتظر شروع آموزشها هستم

farzin_ffr
14-05-2013, 00:51
قسمت اول توضیحاتو می زارم واسه یک توضیح کاربردی نه توصیفی بیستر سعی می کنم به صورت تخصصی به مباجث fpga های altera بپردازم دلیلشم در اینه که با اینکه در ایران کمتر گیر میاد تجربه شخصی ام کار بیشتر و تخصصی تر با altera بوده و این که مباحث ویژه و کاربردی تری در نرم افزار quartus و nios 2 دیدم البته این به این معنا نیست که xlinx چیزی کم داره یا فرق ان چنانی با شرکت altera داره در ضمن مدل های xlinx در بازار تهران بیشتر پیدا می شه.

fpga چییست :
خودمونیش اینه اولش هیچی نیست یه چیپ پر از ماسفت ترانسیتورو فیوز و فیلپ فلاپ ها ..... که در حالت اولیه هیچ کاری نمکنه هیچ پایه تعریف شده واسه کاره خاصی نداره خام خام .
شما وقتی یک cpld یا fpga میگیری (فرق خاصی فعلا براش قائل نمیشیم ) یک پردازنده خام گرفتی که به صورت آرایه ای یک سری مدارات منطقی دیجیتال توش اماده برنامه پذیری ان و وقتی برنامه منطقی(منطق دیجیتال) بهش اعمال می شه با یک سری تغییر در چیدمان داخلی یک کار منطقی انجام میده .
فرق با میکرو:
از یک لحاط کلا فرقه اما اگه حرفه ای تر کار کنی خودت cpu طراحی میکنی بعد این یک شبه میکرو با امکانات custom می سازی.
انواع cpld ها و fpga در دنیا و ایران:
حتی این atmel یا ti هم می زنن اما حرفای 3 شرکت در این زمینه کار می کنن altera,actel,xlinx (یک یر به ساستاشون بزنین بد نسیت)

خانواده های atlera
هر شرکت واسه خودش نسل ها و خانواده هایی داره این اواخر این شرکت جند مدل ارائه داده تو خودش دو cpu . arm cortex a-9 جای داده
از cpld هایش که میشه تو ایران گیر اورد سری max7000 و 3000 رو میشه اشاره کرد
از fpga هاش که میشه به سختی تو ایران گیر اورد (گیرم نیاوردی سفارش داد) و خدوم باهاش کار کردم و راضی ام cyclone نام داره .
خشزکت xilinx
از fpga هاش که تو بازار بهتر گیر میاد spartan است که چیز خوبی ام هست.
اقا در کل اولو اخرش فرق نداره با altera کار می کنی یا xlinx در کل مثل همه در جزیئات فرق داره و کامپایلر که کسی که میخواد کار کنه به نظر من هر دو شو یا یاد نگیره یا هردوشو خوی یاد بگیره.

کامپایلر :
برای altera نرم افزار max plus در گذشته و quartus (در زمان حال) ارائه شده .
برای xlinx نرم افزار ise است که تقریبا تمام کارها را خودش انجام میده.
اقا نرم افزارهای دیگه هم است ولی به صورت تخصصی برای این دو شرکت این دو از سوی خود شرکت ها ارائه شده.


مباحث کلی :
در کل سه روش برای برنامه ریزی fpga ها وجود داره
به صورت شماتیک (شماتیک امان های دیجیتال (به موریس مانو هم یک سر بزنید))
به صورت زبان توصیف سخت افزار مثل ahdl ,vhdl ,... (که vhdl رایج تره )
به صورت استفاده در لایه های بالا تر و استفاده از cpu ها ( با زبان های c , c plus plus

farzin_ffr
14-05-2013, 01:00
طراحی :
در طراحی سخت افزار فرق خاصی با میکرو های معمول نداره در چیپ های قوی تر و فرکانس بالاتر هم مانند بقیه ادوات نکاتی داره که در hand book هاشون در سایتاشون کاملا توضیح داده .

نحوه پرگرم کردم
نرم افزار که همون کامپایلر کافی است
سخت افزار عموما با ستفاده از پروتکل jtag پرگرام میشه پرگرام هاشونم xlinx با altera فرق داره
تو بازار جمهوری خدمون ریخته چه پارالل په usb.

قیمت :
بنا به چیپ استفاده شده از 20 هزار تومان تا 100 میلون تومان و بالاتر تو ایران و دنیا است

farzin_ffr
14-05-2013, 01:13
موارد استفاده :
اقا همجه حا اگر یک مهندس صلاح ببینه می تونه ازش استفاده کنه گستره کاری بالایی داره
یک سوال رایج

فرقش با میکرو چیه؟ چرا ما که همه کارارو میتونیم با میکرو انجام بدیم اینو چرا ؟

در 2 مرحله جواب این سوال رو میدم
1. یک وسیله بسار قوی که اگر واقعا در زمینه الکترو نیک می خواین کار کنین و حرفای کار کنین به نظرم
یک مهندس نیاز داره بهش و مهندس یا مهندس نباسه یا اگه الکترونیک رو انتخاب کرده نمخاد بره بحثای مخابراتو فول شه (که اگه وقت کنه بره فبها) اما الکترونیکو تا تهش بره مگه خدا چند بار فرصت زندگی رو به انسان میده (ان شا الله همه تو راه درست بریم تا اخرش) ( البته این جواب کلی و میشه در نفی این جواب هم حرف زد)
2. در کل از میکرو کنترلر ها اصلا نا از پروسسور های روزم برای کارهای مانیتورینگ و پردازش متوسط استفاده می شه اما برای کارهای کنترلی و پردازشی سحط بالا و شخصی شده dsp ها , fpga ها توصیه می شه البته اصولسی اینه کا برای کار خاص دز اخر ic خاص و بهینه طراحی مجتمع و ساخت بشه ها که تو ایران فعلا ... .(ان شا الله تلاش می کنیم میشه)

سوال خاصی دارین بپرسین اگه چیزی بلد بودم در خدمتیم

سعی میکنم این روندو توضیح رو سریع تر کرده و به سمت مثال های کاربردی ببرم و بحثو تخصصی کنیم ان شا الله .
دعا فراموش نشه
پایان قسمت اول

test00
14-05-2013, 09:11
با سلام :hi:
دوست عزیز بابت آموزش ها ممنون
اما همین اول چندتا سوال ...
من تصمیم گرفتم با FPGA Xilinx شروع بکار اما یه سری سوالات برام پیش اومده
اول اینکه بعضی جاها دیدم و حتی از خودم پرسیدن که میخای fpga کار کنی یا cpld و من موندم چی بگم
این دو چه فرقی میکنن؟
چه جور میشه تشخیص داد از هم دیگه؟ ( مثلا یه چیپ به من میدن اول باید بدونم که این fpga هست یا cpld ؟ اینارو چطور از هم تشخیص بدم؟ )
برای شروع شما کدوم پیشنهاد میکنی؟
و سوال آخر اینکه از همین اول کار من بفکر یه برد برای کار باشم یا بزارم کمی بعد؟ کدوم چیپ بگیرم برای شروع؟

mansoory
14-05-2013, 14:10
با سلام :hi:
دوست عزیز بابت آموزش ها ممنون
اما همین اول چندتا سوال ...
من تصمیم گرفتم با FPGA Xilinx شروع بکار اما یه سری سوالات برام پیش اومده
اول اینکه بعضی جاها دیدم و حتی از خودم پرسیدن که میخای fpga کار کنی یا cpld و من موندم چی بگم
این دو چه فرقی میکنن؟
چه جور میشه تشخیص داد از هم دیگه؟ ( مثلا یه چیپ به من میدن اول باید بدونم که این fpga هست یا cpld ؟ اینارو چطور از هم تشخیص بدم؟ )
برای شروع شما کدوم پیشنهاد میکنی؟
و سوال آخر اینکه از همین اول کار من بفکر یه برد برای کار باشم یا بزارم کمی بعد؟ کدوم چیپ بگیرم برای شروع؟

این سوال من هم هست. میدونم که CPLD ها حجم کمتری المان در خودشون دارند و از حافظه eeprom به عنوان حافظه برنامه استفاده می کنند. وFPGA از SRAM و همینطور اینکه FPGA المانهای خیلی بیشتری داره. ولی "خیلی" یعنی چقدر؟ مثلا یک برنامه کنترلر PID موتورسه فاز که دارای A/D برای اندازه گیری شدت جریان موتور باشه و همینطور با ال سی دی رنگی هم کار کنه و نمودار نمایش بده و ... رو با Arm ساده میشه نوشت یا مثلا با PLC+HMI میشه همچین کاری کرد. ولی من هیچ براوردی از FPGA یا CPLD ندارم. نمیدونم برای اینکار چقدر المان مصرف میشه که بتونم بین FPGA یا CPLD انتخاب کنم...
اگه میشه راهنمایی کنید که اصولا طراحی رو چطوری شروع کنیم؟
مساله موجوده ولی حل مساله رو با FPGA چطوری شروع کنیم؟
متشکرم

farzin_ffr
14-05-2013, 17:38
سوال اول :
فرق fpga و cpld :
fpga ها نسل ها جدیدتری هستند که به نوعی ماکروسل ها و قابلیت های بالاتری دارند و خودشونم مدل های مختلف و level های زیادی دارند مثلا اگه یک cpld برای یک عمل خاص 2 درصد از فضاش اشغال می شه واسه همون عمل fpga ها به خاطر پیشرفت و المان های داخلی بیشتر 02./ اشغل می کنند .
فرقشون که از شماره مدل ic معلوم میشه برای مثال EPM سری MAX 7000 CPLD و EPC یعنی CYCLONE FPGA مخفف استفاده می شه .
برای شروع CPLD پیشنهاد میکنم که هر کاری تو اون بکونین تو FPGA هم میتونین انجام بدید اما برعکسش در کارهای حرفای نه.
FPGA ها عموما فرکانس کاری بالاتری دارند.
برای شروع کامپایلر ها عمل سیمولیشونو رو انجام میدند اول کار نیاز ندارید اما اگه بتونید برداشم تهیه کنید یا بزنید که فبها.
و یک نکته کلی : اکثر CPLD ها تو خودشون حافظه FLASH دارند یعنی برنامه که توشون پرگرام میکنید می مونه.
اما FPGA ها FLSH به اون طریق ندارند و برنامه فقط تا موقع ریست نشدن یا قطع نشدن برق انجام میشه پس نیاز به یم حافظه جانبی دارند در ALTERA تراشه های حافظه EPCS استفاده میشه.
میزان المان مورد نیاز رو نسبت به کار و نوع طراحی بهینه خودتون باید بسنجید برای یعضی کارهای حجیم CPLD از لحاظ المان (LOGIC ELEMENT ) کم میاره یا در مارو سل های حافظه کم میاره که نیاز یه FPGA ها پیدا می کنید البته هم FPGA ها هم CPLD ها در هر خانواده مدل های مختلفی نسبت به همون حافظه و المان دارند که یعنی بحث انتخاب هم انجا مهم میشه.
برای شروع نرم افزار
QUARTUS یا ISE را بگیرید و نصب کنید . ( تو انقلاب بگردی پیدا میشه یا دانلود کنی) (گزینه اول را پیشنهاد می کنم فعلا)
همون طور که گفتم سه راه برای طراحی وجود داره ( تلفیقیم میشه استفاده کرد از این سه راه)
از اولین راه استفاده می کنیم .(طراحی با شماتیک منطقی)
یک پروژه بسازید . (فعلا مهم نیست تراشرو چی انتخاب می کنید)
در گزینه NEW برنامه SHEMATIC BLOCK رو بزنید .
می بینید که یک صفحه باز شد.
گزینه SYMBOL در تولبار سمت چپ (در QUARTUS ) را بزنید و چند تا المان منطقی مانند OR . NOT و... بزارید و سیم کشی کنید .
(موریس مانو رو هم سری بزنید)

ali_h
14-05-2013, 18:29
سلام ،
ممنون از آموزش ها. دو تا سوال، یک اینکه تعریف ماکروسل چیه؟
دوم اینکه از هر نوع المان (and , or , ...) به تعداد محدودی می شه استفاده کرد یا مثلاً می شه کل فضای fpga رو گیت های or گذاشت؟
ممنون

farzin_ffr
14-05-2013, 21:22
سلام ،
ممنون از آموزش ها. دو تا سوال، یک اینکه تعریف ماکروسل چیه؟
دوم اینکه از هر نوع المان (and , or , ...) به تعداد محدودی می شه استفاده کرد یا مثلاً می شه کل فضای fpga رو گیت های or گذاشت؟
ممنون

ماکرو سل بحثی است که تو cpld ها وجود داره و تعداد ابجکت های برنامه پذیر است در fpga ها به اون logic elment گفته می شه.

شما به نسبت نوع تراشه ای که استفاده می کنید فضایی در اختیار دارید که این فضا رو می تونید همشو or بزارید یا کانتر یا fifo یا مولتی پلکسر یا فیلپ فلاپ و ... که هر کدوم به اندازه نیازشون ماکرو سل یا logic elment مصرف میکنند.

--------------------------------------------------------------------------------------------
این نوع پردازنده ها نیاز به یک منبع نوسان ساز خارجی برای انجام کارها دارند.
برای این منظور از اسیلاتور ها استفاده میشه.
برای cpld ها فرکانس بیشینه کاری تا 100 مگاهرتز به نسبت تراشه مورد استفاده (به دیتا شیت ها و hand book ها ک در سایت های شرکت های سازنده مانند FPGA CPLD and ASIC from Altera (You can see links before reply) است مراجعه شود)
برای fpga ها چون اکثرا pll هم داخل خودشون می شه گذاشت فرکانس معمول تا 400 مانند (cyclone 2 , spartan 3) و تراشه های حرفه ای تر تا چند گیگاهرتز بالا می رود.مانند سری های virtex شرکت xilinx که کاربری نظامی هم دارند.

esisafa
14-05-2013, 21:27
یکی دیگه از تفاوت های این دو اینه که آرایش بلاک ها و ترانزیستورها در cpld ها و fpga ها فرق میکنه.
در fpga طراحی به صورت بلاک های منطقی کوچک ولی با تعداد بسیار بیشتر هست که ارتباط بین بلاک ها با سیم بندی بین اونها انجام میشه ولی در cpld بلاک ها بزرگ هستند
این تفاوت باعث میشه که سرعت هر بلاک fpga بیشتر از cpld باشه ولی اگه یک منطق طراحی شده گیتهای بیشتری از ظرفیت یک بلاک نیاز داشته باشه و برای پیاده سازی اون منطق باید از چند بلاک استفاده کرد اونوقت سرعت بخاطر سیمبندی زیاد به شدت کمتر از cpld خواهد شد. حتی در همین fpga هم در یک مدل هر بلاک 4 بیتی ( مثلا mux ) هست و در مدل دیگه 5 بیتی و ...

برنامه نویس در این زمینه باید انتخاب دقیقی از وسیله داشته باشه و اینکه از کدوم تراشه استفاده بشه فقط و فقط به برنامه بستگی داره. باید هر برنامه رو با تراشه های مختلف سنتز کرد و ارزونترین و کارامدترین رو انتخاب نمود. حتی ممکنه که اگه برنامه رو روی بلاک 4 بیتی سنتز کرد و بعد روی 5 بیتی سرعت به شدت افزایش پیدا کنه ولی در عوض سرعت هر بلاک 4 بیتی بیشتر از 5 بیتی هست

در سطوح حرفه ای برنامه نویسی حتی خود برنامه نویس میدونه که اگه مثلا از بلاک 4 بیتی استفاده میکنه باید برنامه رو چطور بنویسه که از حداکثر ظرفیت بلاکها استفاده کنه و با بالاترین سرعت. و باز هم بحث تجربه میاد وسط که تاثیر زیادی روی کارایی بالاتر و هزینه ی کمتر داره

یادش بخیر و حیف که در دوره ی کاردانی یک کتاب در این زمینه و زبان ahdl خوندم ولی تا حالا هیچ استفاده ای نکردم البته تا حالا بالاتر از atmega32 برام لازم نشده که پروژه انجام بدم

mansoory
15-05-2013, 17:35
اگر ممکنه سرفصل مطالبی که میخواهید به ترتیب آموزش بدهید را مشخص کنید که یک بحث بی موقع مطرح نشه و از موضوع خارج نشیم
متشکرم

farzin_ffr
17-06-2013, 19:52
سر فصل کلی :
1 آشنایی با نرم افزار quartus
2 آشنایی با انواع مدل ها cpld , fpga
3 آشنایی با نحوه برنامه نویسی (1. شماتیک 2. mega function و 3 .vhdl و4.c\c++
4.نحوه پرگرام کردن
5. سخت افزار های مربوطه


به زودی جامع تر توضیحات ان شا الله شروع می کنم

serjik
07-07-2013, 23:56
برای ise هستم

Dr.hardware
04-10-2013, 21:25
سر فصل کلی :
1 آشنایی با نرم افزار quartus
2 آشنایی با انواع مدل ها cpld , fpga
3 آشنایی با نحوه برنامه نویسی (1. شماتیک 2. Mega function و 3 .vhdl و4.c\c++
4.نحوه پرگرام کردن
5. سخت افزار های مربوطه


به زودی جامع تر توضیحات ان شا الله شروع می کنم

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

mohsen.sharif
06-03-2014, 20:47
با سلام خدمت دوستان
باید گفت که در کل برای پیاده سازی مدارات سرعت پایین و ساده می توان از cpld استفاده کرد.
نکته ای در مورد مولد فرکانس یا اوسیلاتور این است که:
برای پروگرام کردن و طراحی مدارات بدون حساسیت نسبت به لبه پالس(مانند فلیپ فلاپ ها)، می توان از اوسیلاتور استفاده نکرد.
خودم برای طراحی برد پروگرامر cpld از اوسیلاتور استفاده نکردم(چون لازم نیست).