اطلاعیه

Collapse
No announcement yet.

چند سوال کلی در مورد fpga در باب آشنایی

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    چند سوال کلی در مورد fpga در باب آشنایی

    سلام
    چند تا سوال داشتم
    1- یک توضیح مختصر مفید در مورد fpga
    حرف های زیادی زده شده در مورد fpga ، اطلاعات بصورت پراکنده هستند و کسی بصورت خلاصه تو چند خط توضیحی در موردش نداده
    2- مقایسه fpga و میکروکنترلر
    از دوستان کسی هست که با هردوی اینا کار کرده باشه و بگه این 2 چه فرقی با هم دارند و چه مزیتها و معایبی نسبت به هم و بهتره تو چه زمینه هایی از کدومشون استفاده کنیم
    3- برای کار کردن با fpga باید به چه چیزهایی مسلط باشیم ؟
    برای کار کردن با میکروکنترلرها کاربر باید تسلط زیادی به برنامه نویسی داشته باشه و بعد هم سخت افزار ! واسه fpga ها باید کاربر به چه چیزی تسلط داشته باشه ؟
    4- چه پیشنهادی برای یک کاربر تازه کار دارید ؟
    به fpga علاقه دارم ، اون هم به خاطر شنیده هام از اینور اونوره !به نظر شما ارزش داره کاربری مثل من که فقط با میکرو کار کرده عوض اینکه کارش رو روی همون میکرو ادامه بده ، سویچ کنه و بیاد روی fpga ؟

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

    #2
    پاسخ : چند سوال کلی در مورد fpga در باب آشنایی

    من اطلاعات زیادی ندارم. ولی یکی دو تا کار با cpld های xilinx انجام دادم. شاید اینایی که میگم پشیمونتون کنه که چرا اصلا این سئوالو اینجا کردین که من ببینم و این لاطلاعات رو قطار کنم ولی شاید خوندن اینا فقط یکبار بیارزه.

    اگه فرض کنیم که شما با میکرو کار نرم افزاری میکنین که به نوعی به سخت افزار بنده با fpga کار سخت افزاری میشه کرد که به نوعی به نرم افزار بنده. یعنی با میکرو شما برنامه مینویسین ولی با سریال پورت و رجیستر و اینجور مزخرفات هم سر و کار دارین. باید بدونین که شیفت رجیستر چیه تا بتونین با SPI کار کنین. یا ریپل روی تغذیه چیه تا اون خازن کذایی رو پین ریست بذارین. همینجور fpga لریش یه قطعه هست که شما با استفاده از ابزارهایی میتونین رفتارش رو بصورت دیجیتالی جوری توصیف کنین که مثل این باشه که یک آی سی دیجیتال ساخته باشین. این ابزار ها میتونه شامل زبانهایی برای توصیف مدل سخت افزاری شما باشه یا شماتیک باشه (البته نه با آی سی های سری 74 یا 40 بلکه با گیت های منطقی به مفهوم مجردش) یا ماشین حالت وضعیت یا ترکیبی از اینا.

    ولی استفاده از این قطعه برای ایجاد یک آی سی هست که چون شما با شرکت اینتل صحبت نکردین براتون تولید نکرده. معمولا من خودم این قطعه رو جایی استفاده میکنم که محدودیت خاصی در میکرو یقه ام رو بچسبه که نتونم با میکرو حل اش کنم. یا بخوام چیزی رو قایم کنم. مثلا من در مدلی میخواستم یک rotary encoder رو جوری داشته باشم که شمارش راست و چپش با هم تفاوت داشته باشه و به ازای رسیدن به مقداری که الزاما نهایت هر کدوم از شمارش گر ها هم نبود وقفه بده. شاید این کارو بشه با میکرو هم کرد اما مسلما با میکروی خودم امکانش نبود و ضمنا میخواستم سرعت بالایی در حد چند کیلو هرتز هم داشته باشه که از لحاظ عملیاتی کم میاوردم.
    یا مثلا شما مجبورین برای استفاده از یک حافظه خارجی حداقل یک latch رو استفاده کنین. حالا اگه این مدل سخت افزاری تون شامل یک یا چند پورت هم باشه pcb خیلی شلوغ پلوغ میشه. من اینجور مواقع یه cpld خرجش میکنم. یه کمی هزینه بالاتر میره ولی میشه مدل توی fpga را مثل برنامه داخل میکرو قفل کرد تا کسی نتونه فضولی کنه. از طرف دیگه یک سخت افزار ثابت مثلا بر اساس آی سی های مرسوم امکان تغییر برخورد با سخت افزارهای discrete رو به ما نمیدن. یا شما مجبوری pcb تو بیخیال شی و دوباره pcb بکشی. اما با fpga میتونی با حفظ وظایف هر پین مدل سخت افزاریتو عوض کنی.

    فقط دردش اینه که هزینه اش یک کمی بالاتره و ایضا جون میده برای منطق های ترکیبی و کمتر ترتیبی. تازه خیلی جاها که شما عمرا بتونی با نرم افزار مثلا یک کارت pci بسازی.

    من خودم از روز اول با verilog کار کردم (زبانی مشابه سی) اگه دوست داشتین یک شماره تماس بهم pm بدین تا کمتر از نیم ساعت کارتون رو راه بندازم. نوشتنی خیلی طول میکشه. من هم پیرم و حال و حوصله این جور چیزا رو ندارم. ولی قول میدم بتونین زیر یک هفته ور رفتن و زیر 20 تومن یکی شو خیلی راحت راه بندازین.

    دیدگاه


      #3
      پاسخ : چند سوال کلی در مورد fpga در باب آشنایی

      با تشکر از استاد عزیز آقا رضا منم چند نکته اضافه میکنم. FPGA و میکرو هم مثل موارد دیگه بستگی به فیلد کاری شما داره ولی چیزی که من تجربه کردم اینه که مثلا اگه بخواین استاندارد کار کنید و محدویت خاصی تو پروژه تون نباشه میکرو انتخاب خوبیه چون زحمت برنامه نویسی رو خیلی کم میکنه.ولی وقتی محدودیت دارید به طور مثال فرض کنید میخواید یه ضرب کننده بسازید که دو عدد 64 بیتی رو به هم ضرب کنه یا وقتی احتیاج دارید یه اینترفیس جدید ایجاد کنید مثلا سریال باشه ولی 4 تا پریتی داشته باشه با همینگ کار کنه 6 تا STOP BIT داشته باشه و ... حالا کدوم میکروکنترلری این چیز عجیب و غریب رو داره؟ هیچکدوم! ولی میتونید با FPGA پیاده ش کنید.
      یا مثلا میخواین سرعت پردازشتون بیشتر بشه میاین با روش پایپ لاین اینکار رو میکنید که چند برابر سرعتتون بیشتر میشه.در حالیکه میکرو یه روتین مشخص و تکراری برای انجام دستورات داره مثلا یه تعداد مشخص دستور با OPCODE مشخص براش تعریف شده و طی یه چرخه اونارو انجام میده.
      حالا همونطور که میبینید اینا لازمه ش اینه که دو تا درس منطقی و معماری رو مسلط باشید .
      به این نکته هم باید توجه کنید که در هنگام نوشتن برنامه برای FPGA شما دیگه با C , ... طرف نیستید اینجا خیلی چیزا فرق میکنه اینجا شما مستقیما با سخت افزار کار میکنید.
      البته اینایی که گفتم واسه شما گفتم چون من خودم زیاد وارد نیستم!
      چون خودم تجربه شو دارم میگم : یاد گرفتن همه چیز خوب هست ولی نصیحت برادرانه من رو داشته باش که دریاچه عمیق بودن خیلی بهتر از اقیانوس به عمق 1 سانت بودن هست.موفق باشید!
      It's nice to be important but it's important to be nice!

      از اینکه نمی رسم جواب دوستان را بدم معذرت می خوام.

      دیدگاه


        #4
        پاسخ : چند سوال کلی در مورد fpga در باب آشنایی

        نوشته اصلی توسط reza_agha
        اگه فرض کنیم که شما با میکرو کار نرم افزاری میکنین که به نوعی به سخت افزار بنده با fpga کار سخت افزاری میشه کرد که به نوعی به نرم افزار بنده.
        این تیکه اولش رو خوندم ، کلاً گورخیدم برم ادامه متن رو بخونم

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

        نوشته اصلی توسط رضا شفقی
        چون خودم تجربه شو دارم میگم : یاد گرفتن همه چیز خوب هست ولی نصیحت برادرانه من رو داشته باش که دریاچه عمیق بودن خیلی بهتر از اقیانوس به عمق 1 سانت بودن هست.
        حرفی بسیار متین و آقیر (AGHIR )
        می خواهیم برویم تو عمق زیاد که اول داریم میپرسیم دیگه
        راستیتش من میکرو رو اصلا بصورت حرفه ای دنبال نکردم ! کارای سایت اونقدر وقت آدم رو میگیره که واسه نفس کشیدن وقت نمیزاره. رضا ( شفقی ) خودش در جریانه و اومده شرکت و وضعیت رو دیده .
        تازه الان بعد از مدتی کارا رو روال داره میفته و نمی خوام این وقت آزادی که دارم هدر بره . بیشتر دوست دارم تو یک زمینه فعالیت حرفه ای داشته باشم و الان می خوام انتخاب کنم که میکروکنترلر بهتره یا FPGA
        به خاطر همین اینجا از دوستان با تجربه کمک خواستم .

        {ببخشید زیاد سوالهام ابتداییه ، چون تقریباً چیزی از FPGA نمیدونم }

        دیدگاه


          #5
          پاسخ : چند سوال کلی در مورد fpga در باب آشنایی

          سلام
          من هم یک نکته بگم:
          علاوه بر همه مطالبی که دوستان گفتند ، اگر شما به هر دلیل به ترکیبی از میکرو و یک fpga نیاز داشته باشید می تونید ایندو را با هم یکی کنید به این معنی که شما یک میکرو مثل avr را با مدار طرح خودتون بطور کامل روی یک fpga پیاده کنید و برنامه میکرو داخل fpga رو هم با سی بنویسید
          یا اینکه شما یک میکرو avr را با چند پورت اضافی یا امکانات متفاوت از استاندارد avr رو با fpga پیاده سازی کنید. یا اینکه خودتون یک lمیکرو با قابلیت های جدید طراحی کنید

          دیدگاه


            #6
            پاسخ : چند سوال کلی در مورد fpga در باب آشنایی

            یعنی یک میکرو مثلا ATMEGA8 رو با FPGA شبه سازی بکنیم و بعد مثل یک میکروی عادی با اون کار بکنیم !
            درست متوجه شدم @-)

            دیدگاه


              #7
              پاسخ : چند سوال کلی در مورد fpga در باب آشنایی

              نوشته اصلی توسط فرشاد اکرمی
              یعنی یک میکرو مثلا ATMEGA8 رو با FPGA شبه سازی بکنیم و بعد مثل یک میکروی عادی با اون کار بکنیم !
              درست متوجه شدم @-)
              بله حق با ایشونه تقریبا اکثر میکروکنترلرها به صورت سورس FPGA نوشته شده.
              It's nice to be important but it's important to be nice!

              از اینکه نمی رسم جواب دوستان را بدم معذرت می خوام.

              دیدگاه


                #8
                پاسخ : چند سوال کلی در مورد fpga در باب آشنایی

                سلام
                برای اینکاری که گفتم بهترین گزینه همین التیوم هست
                چندین core 8 بیتی 16 بیتی و 32 بیت داره که مثل یک قطعه به طرح اضافه می کنید ودر همون محیط کد c می نویسید . بقیه کار هارو خودش انجام میده
                حتی می تونید چندتا میکرو همزمان در طرحتون استفاده کنید
                اگر بخواهید بطور حرفه ایی کار کنید بهترین گزینه ISE EDK هست

                دیدگاه


                  #9
                  پاسخ : چند سوال کلی در مورد fpga در باب آشنایی

                  ممنون فاضل جان
                  یه مدتی می خوام روی fpga کار کنم ببینم چجوریاست .
                  ولی اینجور که فیلم های اموزشی و منابع رو دارم نگاه می کنم ، تا الانش که سخت نبوده !
                  امیدوارم از کمک شما دوستان هم بتونم استفاده بکنم .
                  اگر میشه از این امکانات و کلا ..... یه توضیحاتی بده .


                  دیدگاه


                    #10
                    پاسخ : چند سوال کلی در مورد fpga در باب آشنایی

                    البته فقط مشکل اینه که اغلب این مدل ها به قدری حجیم هستن که به fpga های با تعداد گیت بالا احتیاج دارین و این از لحاظ قیمتی برای محصولات ارزان صرف نمیکنه. ضمنا درسته با سرعت 300 کیلومتر بر ساعت هم میشه سر کار رفت و اومد اما کسی ولو با این سرعت بتونه رانندگی کنه با این سرعت توی شهر رانندگی نمیکنه. از طرفی وقتی نخوای با این سرعت رانندگی کنی همون ژیان مهاری هم بسه.
                    منظورم اینه که هر کاری رو با fpga انجام نمیدن. هر کاری رو هم با میکرو انجام نمیدن. مرز بین این دو تا خیلی مهم هست و اغلب هم ممکنه اشتباه بشه. هنر اینه که بتونین بررسی کنین؛ محاسبه کنین و بتونین نقطه تلاقی بهینه بودن سیستم ترکیبی خودتون رو بین نرم افزار محض (استفاده از میکرو های موجود) و سخت افزار محض (استفاده از fpga) مشخص کنین. زیرا بر خلاف مثل معروف غربی bigger is better الزاما هر سرعت بالاتری بهترین نمیشه.

                    راجع به کار حرفه ای هم من خودم کار حرفه ای بلد نیستم اما کارم رو عمدتا با همون چهار کلمه ای که از verilog بلدم راه میندازم. اینی هم که پیشنهاد کردم به خاطر این بود که قداست این مسئله پیشتون خورد بشه تا ببینین با fpga کار کردن شق القمر نیست. اما خوب کار حرفه ای هم وقت خوب و قیمت خوب میخواد.
                    برای ابتدای کار هم پیشنهاد میکنم از یک 95288XL-tq100 با ISE WebPack شروع کنین. هنوزم پا کار هستم اگه خواستین شماره تلفن بهم pm بدین.

                    دیدگاه


                      #11
                      پاسخ : چند سوال کلی در مورد fpga در باب آشنایی

                      سلام.
                      من تا به حال با core ها کار نکردم ولی از کسی که که با core های PCI کار کرده شنیدم که کار خیلی پیچیده ای هست و نیاز به دانش بالایی هم داره. اگر یه نگاه به راهنمای این core ها بندازید خدتون متوجه میشید. در ضمن همانطور که آقا رضا هم گفتن این core ها اکثرا روی FPGA های با فشردگی خیلی بالا کار میکنن و نیاز به تجهیزات گرون قیمت دارن. برای مثال اگر یه نگاه به بردهای Spartan3 بندازید یا قیمتهای وحشتناک دارن یا نسبت به امکانات کمی که دارن بازم قیمت بالا دارن :mrgreen:
                      کار با FPGA ها و یا CPLD ها تو کارهای ساده چندان پیچیده نیست ولی زمانی که بحث کارهای پیچیده میاد وسط هزار تا بازی در میاره که از میکرو خیلی بد تره.
                      مورد دیگه تفاوت شبیه سازی با سنتز هست که خیلی مهمه. از اونجایی که شما خودتون دارید سخت افزار رو طراحی میکنید باید به بحث سنتز مدار خیلی دقت داشته باشید. مثلا خود من تا حالا با proteus (غیر از چند مورد) به تفاوت شبیه سازی با حالت عملی بر نخوردم در صورتی که توجه نکردن به تفاوت ساختار FPGA ها میتونه نتیجه رو کاملا عوض کنه. و گاهی وقتها عوض کردن چند خط کد میتونه مداری رو در حالت خیلی بهتری سنتز کنه.
                      مورد دیگه بحث زبان توصیف سخت افزار هست. خود من زمانی که داشتم برای اولین بار VHDL میخوندم فکر میکردم با یک جور زبان برنامه نویسی سر و کار دارم!! در صورتی که اصلا این طور نیست. هرچند در خیلی از جاها شما با روتینهای پروسس کار برنامه نویسی میکنید اما دقت کنید که شما قرار هست با این زبان یک سخت افزار رو توصیف کنید و نه برنامه نویسی. این کار رو یکم پیچیده میکنه. و یادگیری زبان رو مشکل تر. کلا باید دید سیستمی به قضیه داشته باشید و سیستمتون رو از بالا به پایین طراحی کنید.
                      مورد دیگه دانش بالا داشتن در ضمینه الکترونیک دیجیتال هست. کلا FPGA از مباحث هست که هرچه قدر بیشتر واردش میشی میفهمی هیچی نمیدونی!! یه سر به سایت های ALTERA و Xilinx بزنی بد نیست.
                      و در آخر هم اینکه اگر شما FPGA بلد باشید از لحاظ کاری موقعیت بسیار بالایی خواهید داشت. مخصوصا در ضمینه مخابرات دیجیتال.
                      نوشته اصلی توسط fazel459
                      سلام
                      برای اینکاری که گفتم بهترین گزینه همین التیوم هست
                      چندین core 8 بیتی 16 بیتی و 32 بیت داره که مثل یک قطعه به طرح اضافه می کنید ودر همون محیط کد c می نویسید . بقیه کار هارو خودش انجام میده
                      حتی می تونید چندتا میکرو همزمان در طرحتون استفاده کنید
                      اگر بخواهید بطور حرفه ایی کار کنید بهترین گزینه ISE EDK هست
                      آقا فاضل میشه یکم در مورد این core ها توضیح بدید .یه برد که بشه روی این core ها کار کرد چنده و شما چی پیشنهاد میکنید و آیا التیوم امکان شبیه سازی هم داره؟
                      با تشکر.
                      Work with what you have .Never limit yourself by things you could have had

                      دیدگاه


                        #12
                        پاسخ : چند سوال کلی در مورد fpga در باب آشنایی

                        از کسی که که با core های PCI کار کرده شنیدم که کار خیلی پیچیده ای هست و....
                        اگر بخوایین ماکزیمم امکانات PCI رو داشته باشین بعله حرفتون درسته. اما در اغلب موارد به این حجم از پیچیدگی احتیاج نیست و میشه حتی با اطلاعات اولیه مثلا یک پورت 32 بیتی رو روی یک PCI درآورد. با این کار شما "PCI ساز" نمیشین اما ترستون از PCI میریزه و میتونین با انرژی بیشتری جلو برین.

                        میگین نه؟ یک سری به سایت fpga4fun بزنین یک مدل کارت PCI داره که براحتی روی یک 9572 جا میشه.
                        من خودم هم تا سنتز اش نکردم باورم نشد.

                        دیدگاه


                          #13
                          پاسخ : چند سوال کلی در مورد fpga در باب آشنایی

                          نوشته اصلی توسط jh_topgraph
                          آقا فاضل میشه یکم در مورد این core ها توضیح بدید .یه برد که بشه روی این core ها کار کرد چنده و شما چی پیشنهاد میکنید و آیا التیوم امکان شبیه سازی هم داره؟
                          من فکر می کنم تو این نانو بردهای آلتیوم استفاده میشند.

                          دیدگاه


                            #14
                            پاسخ : چند سوال کلی در مورد fpga در باب آشنایی

                            سلام
                            گر می خواهی با fpga کار کنی باید چند نکته رو در نظر بگیری.
                            اگه می خواهی یک پروسسور و امکانات عادی به مدارت اضافه کنی به یک fpga با حداقل 6000 تا 15000 (logic element) نیاز داری و باید یک پکیج qftp هم انتخاب کنی بهترین گزینه تو ایران xc3s400 هست فقط مشکلش اینه که قدیمی هست!!! در ضمن خیال 300MHz رو هم از سرت بیرون کن ماکزیمم سرعتی که می تونی بگیری بین 50 تا 150MHz بسته به طرح پردازنده ات داره!
                            به نظر من تا 4-5 سال دیگه FPGA ها از نظر قیمت خیلی نزدیک میکرو های امروزی می شن و راحت تر میشه ازشون استفاده کرد.
                            مثلا ACTEL الان ادعا داره که FPGA با قیمت 1 دلار می زنه!!! وقتی ازشون پرسیدم رو چه تعدادی، گفتن که رو 250000 این قیمت رو میدن
                            این لینک رو ببین
                            http://www.actel.com/products/iglooseries/default.aspx
                            به جمله •Many products under $0.99
                            توجه کن!؟

                            دیدگاه


                              #15
                              پاسخ : چند سوال کلی در مورد fpga در باب آشنایی

                              این cpld ها چی هستند ؟
                              کلاً fpga ها به چند دسته تقسیم میشند ؟

                              دیدگاه

                              لطفا صبر کنید...
                              X