اطلاعیه

Collapse
No announcement yet.

برای یادگیری FPGA از کجا و چطوری باید شروع کرد ؟؟؟

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

    برای یادگیری FPGA از کجا و چطوری باید شروع کرد ؟؟؟

    سلام . من می خوام در کنار ARM به طور موازی کم کم با FPGA هم کار کنم (البته در سطح مقدماتی) . می خوام با FPGAهای شرکت زایلینکس کار کنم . خیلی کم با زبان verilog آشنا هستم و می خوام با این زبان برنامه نویسی کنم به خاطر شباهتش به زبان Cآ‌.

    چند تا سوال داشتم :
    1-چه نرم افزارهایی لازم هست ؟ از کجا می تونم دانلودشون کنم ؟ (البته با کرک معتبر)
    2-لازمه در همین ابتدا با سخت افزارهم کار کنم ؟
    3-اگه آره با چی شروع کنم بهتره ؟ آیا با FPGA شروع کنم یا CPLD؟
    4-بوردشو خودم می تونم بزنم ؟ اگر آره شماتیکی چیزی هست که ازش استفاده کنم ؟
    5-پروگرمری داره که با پورت com کار کنه و نیازی به پورت موازی نداشته باشه ؟
    6-مادربوردم پورت موازی نداره اما یه سری کارت pci هست که یه پورت موازی دارندو در واقع ایجاد می کنند . از اونها میشه برای پروگرم کردن استفاده کرد؟

    و هر چیزی که لازم هست بدونم ممنون می شم در اختیارم قرار بدید

    ببخشید سوالاتم زیاد شد .

    #2
    پاسخ : برای یادگیری FPGA از کجا و چطوری باید شروع کرد ؟؟؟

    سلام
    آقا یا کسی بلد نیست یا اگر هم بلده نمیصرفه که یاد بده .
    من هم میخوام یاد بگیرم ولی یه برد نمونه هم نیست که آدم بزنه کم کم راه بیفته ( مثل گروه آرم ).

    دیدگاه


      #3
      پاسخ : برای یادگیری FPGA از کجا و چطوری باید شروع کرد ؟؟؟

      تو فروم سرچ نمیکنید دیگه ... !!

      1-فعلا نرم افزار ISE کافیه.
      2- نه لازم نیست از همین ابتدا درگیر سخت افزار بشی
      3- fpga خوبه.
      4- بورد رو بعید می دونم بتونی بزنی. فعلا یه بورد آماده بخر
      5- نه من ندیدم
      6- با کارت های pci میشه. اما مبدل usb به parallel نمیشه. پروگرم usb هم هست اما گرونه.

      من دارم یه بورد درست میکنم. تموم شد و جواب گرفتم تو به تاپیک مفصل در مورد راه اندازی سخت افزاریش توضیح میدم...
      https://www.linkedin.com/in/mohammadhosseini69

      http://zakhar.blog.ir

      دیدگاه


        #4
        پاسخ : برای یادگیری FPGA از کجا و چطوری باید شروع کرد ؟؟؟

        قطعات قابل پروگرام سخت افزاری یه جوریه که بیشتر کارهای دانشگاهی در حد برنامه نویسیه
        و واقعا کافی هم هست
        در حد برنامه نویسی هم cpld با fpga چندان فرقی نداره
        (سخت افزار های جدیدتر قابلیت های برنامه ریزی و سنتز بیشتر دارن)
        برد آماده گرونه اما اگه طراحی بلدی ساخت بردش زیاد سخت نیس مداراش تو اینترنت هس
        یا از بچه های سایت که این کارو کردن بگیر
        من خودم طراحی کردم (البته طول کشید چون اطلاعات زیاد نداشتم )
        اما چندتا نقص داره :sad:!!!!!!!!
        فقط با پورت موازی پروگرم میشه- البته پروگرمر usb هم داره که زیاد اطلاعاتی ازش در دسترس نیس
        یه چیز دیگه اگه زبان سی بلدی سیستم سی هم اومده
        البته من کار نکردم

        دیدگاه


          #5
          پاسخ : برای یادگیری FPGA از کجا و چطوری باید شروع کرد ؟؟؟

          نوشته اصلی توسط ma-bah
          سلام . من می خوام در کنار ARM به طور موازی کم کم با FPGA هم کار کنم (البته در سطح مقدماتی) . می خوام با FPGAهای شرکت زایلینکس کار کنم . خیلی کم با زبان verilog آشنا هستم و می خوام با این زبان برنامه نویسی کنم به خاطر شباهتش به زبان Cآ‌.

          چند تا سوال داشتم :
          1-چه نرم افزارهایی لازم هست ؟ از کجا می تونم دانلودشون کنم ؟ (البته با کرک معتبر)
          2-لازمه در همین ابتدا با سخت افزارهم کار کنم ؟
          3-اگه آره با چی شروع کنم بهتره ؟ آیا با FPGA شروع کنم یا CPLD؟
          4-بوردشو خودم می تونم بزنم ؟ اگر آره شماتیکی چیزی هست که ازش استفاده کنم ؟
          5-پروگرمری داره که با پورت com کار کنه و نیازی به پورت موازی نداشته باشه ؟
          6-مادربوردم پورت موازی نداره اما یه سری کارت pci هست که یه پورت موازی دارندو در واقع ایجاد می کنند . از اونها میشه برای پروگرم کردن استفاده کرد؟

          و هر چیزی که لازم هست بدونم ممنون می شم در اختیارم قرار بدید

          ببخشید سوالاتم زیاد شد .
          سلام،
          نظر من اینه که اگه میخوای اصولی یاد بگیری با FPGA کار کنی باید کلاس بری. اما اگه دسترسی نداشتی بهترین چیز برای شروع فیلم های کلاس درس FPGA دانشگاه صنعتی اصفهان هست که مدرسش آقای محمد صادق صدری هست. کل ویدئو ها رو توی سایت زیر پلود کرده ایشون. از ب بسم الله هم شروع میکنه. اتفاقا با زبان verilog هم کار میکنه. من تقریبا همشو دیدم. واقعاً عالیه. خدا خیرش بده.

          http://www.googoolia.com/index.php?p=1_10_Videos-Download

          اما سوالات:
          1. اگه فیلم های بالا رو دونه دونه دانلود کنی و با اون پیش بری، خودش نرم افزار های لازم رو معرفی می کنه. گرچه باید وقت زیادی صرف دانلود، کرک و یادگیری نرم افزار های مختلف بکنی، ولی واقعا ارزش داره. مهمترین برنامه هم واسه شروع همون ISE هست.

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

          3 و 4. بورد زدن دردسر زیادی داره و آدم رو از مسیر اصلی یادگیری FPGA ممکنه منحرف کنه. فعلا تو فکرش نباش. یه بورد آماده spartan2 یا همون CPLD بگیر. اگرم هزینش مسئله ای نیست برات یه بورد spartan3 بگیر ( از 180 هزار تومان هست به بالا ) که بعدا هم بدردت بخوره و کارای حرفه ای تر هم بتونی بکنی باهاش.

          5. نه فقط با پورت موازی میشه پروگرم کرد.

          6. من خودم امتحان نکردم ولی همونطور که دوستان گفتن تبدیل های usb به parallel واسه پروگرم کردن جواب نمیده. PCI Express کارت ها چون مستقیم به مادربرد وصل میشه احتمال زیاد جواب بده. به نظر من فعلا مثل بنده و دیگران با همون پورت موازی سر کن. بعد اگه تونستی خودت میتونی یه پروگرمر usb بسازی. روش های مختلفی داره. یکیش اینه که مثل برد های atera از یه CPLD استفاده کنی. روش دوم استفاده از usb controller های شرکت cypress هست.

          دیدگاه


            #6
            پاسخ : برای یادگیری FPGA از کجا و چطوری باید شروع کرد ؟؟؟

            سلام دوستان
            من تازه vhdl رو شروع کردم.یه سوالی که برام پیش اومده اینه که اگه یه برنامه کانتر نوشته باشیم و توش برای افزایش شمارنده اینطوری بنویسیم:
            counter <= conter+1
            این طریق نوشتن behavioral هست؟ و اگه هست ارزش سنتز نداره چون به سخت افزار زیادی نیاز داره و بهینه نیست؟

            دیدگاه


              #7
              پاسخ : برای یادگیری FPGA از کجا و چطوری باید شروع کرد ؟؟؟

              نوشته اصلی توسط daryanavard
              سلام دوستان
              من تازه vhdl رو شروع کردم.یه سوالی که برام پیش اومده اینه که اگه یه برنامه کانتر نوشته باشیم و توش برای افزایش شمارنده اینطوری بنویسیم:
              counter <= conter+1
              این طریق نوشتن behavioral هست؟ و اگه هست ارزش سنتز نداره چون به سخت افزار زیادی نیاز داره و بهینه نیست؟
              بله، Behavioral هست. بستگی به اینکه از چه سخت افزاری استفاده میکنید و چه Resource هایی دارید، میزان Logic مصرفی متفاوته و در سنتز تصمیم گیری میشه که از چه مدار سخت افزاری استفاده بشه تا شمارنده ساخته بشه. در کل سخت افزاری که Flip-Flop رو به صورت سخت افزاری داشته باشه Logic کمتری و Path کمتری برای routing استفاده میکنه تا سخت افزاری که فقط از And و Or تشکیل شده، مثلا اگه میزان Logic موجود در یک CPLD رو با یک FPGA نسبت گیری کنید، نسبت مصرف لاجیک یک شمارنده(مثلا بالا شمار 8 بیتی) در CPLD بیشتر از نسبت مصرف لاجیک همون کد در یک FPGA هست.
              اسمایل، تومورو ویل بی وُرس

              دیدگاه


                #8
                پاسخ : برای یادگیری FPGA از کجا و چطوری باید شروع کرد ؟؟؟

                با سلام
                ممنون از جوابتون
                طبق جوابی که دادید من اینطور نتیجه گرفتم که در کل به روش behavioralخوبه ولی باید در انتخاب سخت افزارمون دقت کنیم.درسته؟
                یه سوال دیگه اینکه اگه بخوایم به همین روش یعنی behavioral شمارنده 12بیتی رو توصیف کنیم چندتا از این شمارنده ها در یک سی پی ال دی به شماره مثلا xc95144 جا می گیره؟

                دیدگاه


                  #9
                  پاسخ : برای یادگیری FPGA از کجا و چطوری باید شروع کرد ؟؟؟

                  نوشته اصلی توسط daryanavard
                  با سلام
                  ممنون از جوابتون
                  طبق جوابی که دادید من اینطور نتیجه گرفتم که در کل به روش behavioralخوبه ولی باید در انتخاب سخت افزارمون دقت کنیم.درسته؟
                  یه سوال دیگه اینکه اگه بخوایم به همین روش یعنی behavioral شمارنده 12بیتی رو توصیف کنیم چندتا از این شمارنده ها در یک سی پی ال دی به شماره مثلا xc95144 جا می گیره؟
                  در کل به روش behavioralخوبه ولی باید در انتخاب سخت افزارمون دقت کنیم.درسته؟
                  کاملا درسته. Behavioral بالاترین سطح است.

                  یه سوال دیگه اینکه اگه بخوایم به همین روش یعنی behavioral شمارنده 12بیتی رو توصیف کنیم چندتا از این شمارنده ها در یک سی پی ال دی به شماره مثلا xc95144 جا می گیره؟
                  در مجموع تنها برنامه نویسی برای سخت افزارهای خام مثل FPGA و CPLD کافی نیست، در کل کار با این نوع سخت افزارها به 3 بخش تقسیم میشه:
                  Behavioral, Structural, Physical
                  شما فقط بخش اول رو انجام دادید، در بخشهای بعدی این نرم افزار هست که به کمک شما میاد ولی همین بخشها رو به صورت دستی هم میشه انجام داد. از اونجایی که نرم افزار از هدف شما جزئیات دقیقی نمیدونه برای همین به صورت Optimum برای اکثر روشها به یک نوع عمل میکنه، مثلا تنها با نوشتن یک کد VHDL و Instance گرفتن از یک شمارنده 12 بیتی در CPLD شماره XC95144 ممکنه تنها 10 شمارنده در اون جای بگیره، در صورتی که اگه تسلط کافی در بخش Structural و Physical داشته باشید شاید بتونید تا 15 تا شمارنده رو هم در اون CPLD جا بدید، به عنوان مثال حتی با تغییر مکانی هر شمارنده در CPLD تعداد شمارنده های قابل جاسازی تغییر میکنه و رابطه مستقیم با انتخاب پایه ها و مسیر Routing داره.
                  اسمایل، تومورو ویل بی وُرس

                  دیدگاه

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