NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 2380 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
صفحه 1 از 2 12 آخرینآخرین
نمایش نتایج: از 1 به 20 از 21

موضوع: يادگيري FPGA ها قدم به قدم

  1. #1
    کاربر فعال Hesam1984 آواتار ها
    تاریخ عضویت
    Sep 2007
    نام
    مهره مار
    نوشته ها
    315
    تشکر
    45
    تشکر شده 108 بار در 77 پست

    پیش فرض يادگيري FPGA ها قدم به قدم

    با سلام
    لطفا مراحل شروع كار با اين تراشه ها را توضيح دهيد و اينكه از كجا بايد شروع كنيم و چه چيزهايي لازمست .

  2. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نام
    Advertising world
    نوشته ها
    Many
     

  3. #2
    مدیر باز نشسته
    تاریخ عضویت
    Aug 2007
    نام
    تهران
    نوشته ها
    384
    تشکر
    2
    تشکر شده 57 بار در 31 پست

    پیش فرض سلام

    كسي برنامه fpga هاي xilinx سراغ نداره لينك بده

  4. #3
    کاربر فعال
    تاریخ عضویت
    Sep 2007
    نوشته ها
    196
    تشکر
    0
    تشکر شده 99 بار در 50 پست

    پیش فرض

    حسام جان در قسمت كتابهاي FPGA كتابي رو قرار دادم كه خيلي بدرد بخوره و كاملاً مفيده. آخرين كتابي كه تو اون بخش هست رو دانلود تا هم با نرم افزار MaxPlus آشنا بشي و هم اينكه روال كار رو كامل متوجه بشي.


    علي جان حجم نرم افزار خيلي زياده و شايد ارزش دانلود كردن نداشته باشه من بهت توصيه ميكنم CD هاي الكترونيك رو بگيري، اين برنامه هم حتما داخلش هست. ببخش منو كه لينكشو پيدا نكردم ولي اگه يه سر به سايت خودش بزني ميتوني نسخه ISE اون رو بگيري.

  5. #4
    مدیر باز نشسته
    تاریخ عضویت
    Aug 2007
    نام
    تهران
    نوشته ها
    384
    تشکر
    2
    تشکر شده 57 بار در 31 پست

    پیش فرض سلام

    ممنون
    راستي اسم برنامه xilinx چيه؟

  6. #5
    کاربر فعال
    تاریخ عضویت
    Sep 2007
    نوشته ها
    196
    تشکر
    0
    تشکر شده 99 بار در 50 پست

    پیش فرض

    سلام علي جان،
    اول به اين ادرس برو Xilinx

    از اين صفحه يا اوليش رو بگير يا آخريش رو. اسم نرم افزار اصلي ISE Foundation™ هست كه ميتوني دانلودش كني. ISE Service Pack رو هم ميتوني بگيري كه قابليت هاي فراوون قبلي رو نداره ولي كار رابندازه. اگه تازه ميخواي شرو كني باقيش فعلاً بدردت نميخوره.
    ولي بازم توصيه ميكنم CDيش رو بخر چون همه اينها توش كامل آورده شده ولي حواست باشه ورژنش قديمي نباشه.

  7. #6
    کاربر فعال Hesam1984 آواتار ها
    تاریخ عضویت
    Sep 2007
    نام
    مهره مار
    نوشته ها
    315
    تشکر
    45
    تشکر شده 108 بار در 77 پست

    پیش فرض

    سلام حسام جان

    شما خودتون براي كار با اين چيپ ها مثلا سري Xilinx نرم افزار خودش رو پيشنهاد مي كني يا Altium Designer رو ؟ . من يكم با Altium Designer براي اين چيپ ها كار كردم ولي زياد سر در نياوردم . مي شه راهنمايي بكني ؟ من تا حالا كسي رو نديدم كه باAltium Designer با
    FPGA كار كنه . اصلا خبر ندارن كه همچين چيزي هم امكان پذيره . :k01:

  8. #7
    کاربر فعال
    تاریخ عضویت
    Sep 2007
    نوشته ها
    196
    تشکر
    0
    تشکر شده 99 بار در 50 پست

    پیش فرض

    سلام حسام جان،
    راستش من فكر ميكنم نرم افزاري كه خود Xilinx يا Altera ميدن بايد خيلي قويتر باشن چون فرضاً وقتي با Maxplus كار ميكني موقع شبيه سازي حتي تاخيرهاي هر كامپوننت رو هم نشونت ميده ولي تو شبيه سازيي كه ساير نرم افزارها ميكنن اين رو نميبينيم.
    ولي خود من ترجيهم با Altiumه چون وقتي پروژه مي سازي نقشه هاي شماتيك و PCB و قسمت برنامه نويسي همه دركنارتن و راحت ميتوني بين اينا بچرخي. ولي شبيه سازيش يمقدار مشكلتره (خودم تا بفهمم چجوريه حدود 6-7 ماه طول كشيد).
    روندش هم خيلي كاره سختي نيست اول FPGA Prioject رو انتخاب كن و پروژت رو بساز بعد VHDL Document رو به پروژت اضافه كن و برنامت رو توش بنويس. از قسمت Tools\Preferences هم ميتوني تنظيمات مربوط به سنتز و شبيه سازي رو انجام بدي.
    از قسمت Design\Create Test Bench رو انتخاب كن تا يه Test Bench برات بسازه.
    پايين اين Test Bench يه قسمتي هست كه اينو نوشته :
    [align=left:c952742eb3]STIMULUS0:process
    begin
    -- insert stimulus here
    wait;
    end process;
    [/align:c952742eb3]
    پيداش كن و برنامه شبيه سازيت رو توش بنويس

    از منوي Simulator\HDL Compile رو بزن و از پنجره جديد هم روي Test Bench كليك كن.
    سپس simulate Curent Project رو كليك كن (از آيكن هاي بالاي صفحه)
    پنجره سيمولاتور باز ميشه و ميتوني تنظيمات شبيه سازي رو انجام بدي.

    ليست يه برنامه نمونه رو برات مينويسم.فرض كن ميخواهيم يك گيت And بسازيم:
    [align=left:c952742eb3]
    library IEEE;
    Use IEEE.std_logic_1164.all;

    Entity Andd is
    port(In1, In2 : in std_logic;
    Out1 ut std_logic);
    End Andd;

    Architecture Data_Flow of Andd is
    Begin
    Out1 <In1> In1,
    In2 => In2,
    Out1 => Out1
    );

    STIMULUS0:process
    begin
    -- insert stimulus here
    In1 <= '0';
    In2 <= '0';
    wait for 10ns;
    In1 <= '0';
    In2 <= '1';
    wait for 10ns;
    In1 <= '1';
    In2 <= '0';
    wait for 10ns;
    In1 <= '1';
    In2 <= '1';
    wait for 10ns;
    end process;

    WRITE_RESULTS(
    In1,
    In2,
    Out1
    );

    end architecture;
    ------------------------------------------------------------

    ------------------------------------------------------------
    [/align:c952742eb3]
    دانلود برنامه كامل : اينجا

  9. تشکرها از این نوشته :


  10. #8
    کاربر فعال Hesam1984 آواتار ها
    تاریخ عضویت
    Sep 2007
    نام
    مهره مار
    نوشته ها
    315
    تشکر
    45
    تشکر شده 108 بار در 77 پست

    پیش فرض

    سلام
    مرسي از جوابت

    آيا كد نوشتن اجباريه ؟ فكر كنم ISE Foundation كه مال Xilinx هست يك قسمت شماتيك داشت كه توش گيت ها و ابزارهاي ساده مثل كانتر و ديكودر و ... وجود داشت و نياز به كد نويسي نبود . Altium چطوريه ؟

  11. #9
    کاربر فعال
    تاریخ عضویت
    Sep 2007
    نوشته ها
    196
    تشکر
    0
    تشکر شده 99 بار در 50 پست

    پیش فرض

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

  12. #10
    کاربر فعال Hesam1984 آواتار ها
    تاریخ عضویت
    Sep 2007
    نام
    مهره مار
    نوشته ها
    315
    تشکر
    45
    تشکر شده 108 بار در 77 پست

    پیش فرض

    حسام جان نحوه پروگرام كردن يا نسبت دادن ورودي ها و خروجي ها به پايه هاي I/O آي سي از كجا انجام مي شه ؟
    بعدش استاندارد رابط پروگرام كردن اين آي سي ها چيه ؟ منظورم اينه كه مثلا براي AVR ها از سوكت استاندارد IDC نوع 10 پايه در روي برد استفاده مي شه كه معلومه براي پروگرام كردن هست و پايه هاش معلومه كه كدام پايه مال چيه و يك جوري استاندارد شده ISP . اينجا چطوريه ؟

  13. #11
    کاربر فعال
    تاریخ عضویت
    Sep 2007
    نوشته ها
    196
    تشکر
    0
    تشکر شده 99 بار در 50 پست

    پیش فرض

    حسام جان تو Help برنامه كاملاً توضيح داده كه چطور ميتوني اين كارا رو بكني. راستش يه خط و دو خط نيست كه بتونم برات توضيح بدم. ميتوني تو قسمت جستجوي Helpش اينو جستجو كني: AP0102: Linking an FPGA to a PCB Project

  14. #12
    کاربر فعال Hesam1984 آواتار ها
    تاریخ عضویت
    Sep 2007
    نام
    مهره مار
    نوشته ها
    315
    تشکر
    45
    تشکر شده 108 بار در 77 پست

    پیش فرض

    حسام چند سوال برام پيش آمده است .

    1 - روي CPLD به غير از پايه هاي (TDI,TDO,TMS,TCK) كه مال Jtag است و منحصرا براي برنامه ريزي هست يك سري پايه ديگه هم است كه من نمي دونم مال چيه . اسمشون (GCK1,GCK2,GCK3) و همين طور GSR , GTS1 , GTS2 هستند . كه هم ميشه پايه I/O باشه و هم اين ها . اين ها به چه درد مي خورند ؟

    2 - مفهوم FB براي هر پايه چيه ؟ كه بين 1 تا 4 هست . منظور از اين چيه ؟

    3 - استاندارد كابل برنامه ريزي CPLD/FPGA چيه ؟ مثلا مال AVR بهش مي گن ISP يا Jtag كه يك سوكت IDC نوع 10 پايه است كه پايه هايش مشخصه كه كدام به چي وصل مي شه و يك استاندارده . مال اين چيه ؟ اين طور كه رو پروگرامر گذاشته بايد يك IDC از نوع 14 پايه(2 * 7) باشه .

  15. #13
    کاربر فعال
    تاریخ عضویت
    Sep 2007
    نوشته ها
    196
    تشکر
    0
    تشکر شده 99 بار در 50 پست

    پیش فرض

    سلام حسام جان
    پايه هاي FPGAها به 2 گروه كلي تقسيم ميشوند: پين هاي اختصاصي و پين هاي كاربر
    پين هاي اختصاصي:
    1- پايه هاي مربوط به پاور
    FPGAها معمولاً به دو ولتاژ براي كار كردن نياز دارن. يكي براي هسته و ديگري براي IO. و هركدومشون از پينهاي مجزايي استفاده ميكنن. ولتاژهاي هسته ثابت هستند و رنجي از 1.2 تا 5 ولت دارن كه براساس نوع قطعات متفاوتند ولي ولتاژهاي ثابتي هستند. ولتاژهاي IO براي هر بانك ميتونن مختلف باشن.(VCCIO و VCCINT و GNDIO و GNDINT)

    2- پايه هاي مربوط به پروگرم
    كه همونطور كه خودت اشاره كردي هستند.

    3- پايه هاي مربوط به كلاك و پينهاي اختصاصي ورودي
    كه پايه هاي كلاك و كلير و ... هستند. FPGAها معمولاً سنكرون هستند يعني برنامه هاي داخلي اونها براساس يك كلاك خارجي كه براي همزمان كردنه، كار ميكنه. در برنامه هاي سنكرون يك لبه كلاك مجموعه اي از فليپ-فلاپهاي داخلي را تحت تاثير قرار ميدهد. بعبارتي يك كلاك كل فليپ-فلاپها را كنترل ميكند. كه اين مساله باعث ايجاد مشكلات زماني( Timing) و الكتريكي داخلي در مدار FPGA ميشود. (بحث تايمينگ يكي از پيچيده ترين مشكلاته كه تو كارهاي حرفه اي FPGA، برنامه نويسان باهاش سروكار دارن). براي رفع اين عيوب سازندگان اين محصولات براي قطعات FPGA پايه هاي مختلفي رو براي كلاك طراحي كردن. بنابراين يك FPGA از چندين كلاك ميتونه استفاده كنه "clock domain" و فليپ-فلاپها هم بسته به اينكه از كدوم پايه كلاك دستور ميگيرن، سرعتها مختلفي دارند. يك "clock domain" ممكنه با 10MHz كارك كنه و يكي با 100MHz. براي راحتي كار بايد نسبت فركانسها ثابت باشه سنتز كننده راحت بتونه نسبتها رو بسازه وگرنه مشكلاتي بوجود مياد.
    بنابراين اگه ميخواهي قطعت با يه مرجع (كلاك) كار كنه فقط GCLK1 رو استفاده كن و ساير GCLKها بايد وردي/خروجي تعريف شن. درغير اينصورت اونها هم پايه هاي كلاك هستن كه يسري از فليپ-فلاپهاي داخلي رو كنترل ميكنن.
    براي بدست آوردن اطلاعات بيشتر
    اينجا و اينجا و اينجا رو نگاه كن.
    متاسفانه در مورد GSR , GTS1 , GTS2 اطلاعاتي ندارم ولي سعي ميكنم پيدا كنم و در اختيارت بزارم.

  16. تشکرها از این نوشته :


  17. #14
    کاربر فعال
    تاریخ عضویت
    Sep 2007
    نوشته ها
    196
    تشکر
    0
    تشکر شده 99 بار در 50 پست

    پیش فرض

    شركت هاي سازنده FPGA روشهاي مختلفي رو براي برنامه ريزي قطعاتشون ايجاد كردن. يكي از اين راهها اتصال كامپيوتر به بورد FPGA بوسيله كابل رابطه كه اكثر اين كابلها هم كابلهاي پارالل و USB هستند. هر شركت هم از كابل مخصوص بخودش براي برنامه ريزي استفاده ميكنه كه تعداد پايه هاي پروگرمرش ممكنه با يه شركت ديگه متفاوت باشه ولي هر دوشون از پورت پارالل و JTAG براي برنامه ريزي محصولاتشون استفاده كرده باشن.
    براي بدست آوردن اطلاعات بيشتر در مورد پروگرمر هاي Xilinx به Parallel Cable ||| و Hardware User Guid و Parallel Cables مراجعه كن.
    با مقايسه تعداد پينهاي پروگرمر Xilinx و Altera (رجوع كن به http://kavirelectronic.ir/fa/modules...iewtopic&t=120 ) ميبيني كه هر دو شركت از پورت پارالل و استاندارد JTAG براي برنامه ريزي محصولاتشون استفاده كردن ولي تعداد پايه هاي پروگرمرشون متفاوته.

  18. تشکرها از این نوشته :


  19. #15
    کاربر فعال Hesam1984 آواتار ها
    تاریخ عضویت
    Sep 2007
    نام
    مهره مار
    نوشته ها
    315
    تشکر
    45
    تشکر شده 108 بار در 77 پست

    پیش فرض

    دستت درد نكنه . خيلي عالي بود .

    اما اين FB يعني چي يا Macrocell . مثلا در مورد يك پايه اين جوري اطلاعات داده :
    [align=left:27c3d13b57]Pin Number = 4
    FB = 1
    Macrocell = 8[/align:27c3d13b57]
    يا مثلا

    [align=left:27c3d13b57]Pin Number = 40
    FB = 2
    Macrocell = 11[/align:27c3d13b57]

    بعدش يك سوال :

    1 - اگر سيستم كلاك نداشته باشه . يعني فقط گيتهاي منطقي بدون كلاك باشه اين پايه هاي كلاك رو چكار كنم ؟

  20. #16
    کاربر فعال
    تاریخ عضویت
    Sep 2007
    نوشته ها
    196
    تشکر
    0
    تشکر شده 99 بار در 50 پست

    پیش فرض

    حسام جان ببخشيد كه طول كشيد تا جوابتو بدم.
    راستش FB رو نميدونم چي هست ولي Macrocell يه مجموعه كوجك از فليپ-فلاپهاست (فكر ميكنم FB هم به همينها مربوط بشه ولي مطمئن نيستم). به ماكروسلها حافظه هم اطلاق ميشه. تراشه نوعي EPM7128SLC84 داراي 128 ماكروسله. تو سايت آلترا چند مقاله راجع به اين ماكروسلها ميتوني پيدا كني و شماتيكشون رو هم ببيني (سعي ميكنم برات پيدا كنم).

    در مورد پايه هاي كلاك هم اگه براي اون پايه ها، استفاده هايي غير از كلاك هم تعريف شده باشه مثلاً I/O باشن كه ميتوني نرم افزاري اون پايه ها رو ورودي خروجي تعريف كني ولي اگه اختصاصا كلاك تعريف شده باشن كه نميتوني كاريشون كني چون اين پايه مستقيما به پايه كلاك فليپ-فلاپهاي داخلي وصل شده و براي سنكرون كردن اونها استفاده شده. اگه پايت رو I/O تعريف كردي و نخواستي كلاك براي برنامت بزاري حواست باشه كه برنامت ديگه سنكرون نيست و Processهاي برنامت آسنكرون ميشن.

  21. #17
    کاربر فعال Hesam1984 آواتار ها
    تاریخ عضویت
    Sep 2007
    نام
    مهره مار
    نوشته ها
    315
    تشکر
    45
    تشکر شده 108 بار در 77 پست

    پیش فرض

    حسام جان دستت درد نكنه . خوبه .
    حالا بريم سراغ برنامه نويسي . شما خودت VHDL رو توصيه مي كني يا Verilog رو . توي ISE يك چيزي هم به نام ABEL بود كه نمي دونم چه زبان برنامه نويسي هستش . من كه خودم اين دو تا رو بيشتر شنيدم .
    من تمام Ebook هايي رو كه زحمت كشيدي گذاشتي دانلود كردم . بگو براي ابتدا كدام رو شروع كنم ؟

  22. #18
    کاربر فعال
    تاریخ عضویت
    Sep 2007
    نوشته ها
    196
    تشکر
    0
    تشکر شده 99 بار در 50 پست

    پیش فرض

    سلام حسام جان
    راستش من خودم Verilog كار نكردم ولي ميدونم كه VHDL از Verilog جديدتره و ساخته شده تا محدوديتهاي Verilog رو ازبين ببره و ساده تر باشه. با اين حال از اونجايي كه من خودم Verilog كار نكردم نميتونم با هم مقايسشون كنم.
    در مورد زبان ABEL هم بايد بگم كه يكي از زبانهاي HDL ه كه حالا ديگه كمتر مورد استفاده قرار ميگيره.
    در مورد كتاب هم من با
    Brown and Vranesicشرو كردم كه خيلي كتاب جالبيه و درموردش هم تو بخش دانلود كتاب توضيح دادم. قواعد و قوانينش رو پيشنهاد ميكنم با اين كتاب شرو كن. چند وقت ديگه هم ميخوام چنتا كتاب جديد معرفي كنم كه فقط تمرين براي FPGA هست (بايد بگردم تا پيداشون كنم). بهرحال سريعتر پرينتش كن و شرو كن به خوندنش.

  23. #19
    تازه وارد
    تاریخ عضویت
    Aug 2009
    نوشته ها
    1
    تشکر
    0
    تشکر شده 0 بار در 0 پست

    پیش فرض

    با سلام
    در مورد FB يا همون فانكشن بلاك . به نظرم همونطور كه يك سري گيت و فليپ فلاپ با هم ماكروسل تشكيل ميدن . مجموع چند ماكروسل هم يك FB رو تشكيل ميده . كه CPLD شما احتمالا 72 ماكروسل و 4 تا FB داره.

    من تازه تصميم گرفتم توي اين جور سايت هاي علمي تبادل تجربه كنم. به نظرم از زمان ارسال پست شما خيلي ميگذره!

  24. #20
    عضو جدید
    تاریخ عضویت
    May 2011
    نوشته ها
    9
    تشکر
    0
    تشکر شده 3 بار در 2 پست

    پیش فرض

    [QUOTE=Hesam_K;1225]سلام حسام جان،
    راستش من فكر ميكنم نرم افزاري كه خود Xilinx يا Altera ميدن بايد خيلي قويتر باشن چون فرضاً وقتي با Maxplus كار ميكني موقع شبيه سازي حتي تاخيرهاي هر كامپوننت رو هم نشونت ميده ولي تو شبيه سازيي كه ساير نرم افزارها ميكنن اين رو نميبينيم.
    ولي خود من ترجيهم با Altiumه چون وقتي پروژه مي سازي نقشه هاي شماتيك و PCB و قسمت برنامه نويسي همه دركنارتن و راحت ميتوني بين اينا بچرخي. ولي شبيه سازيش يمقدار مشكلتره (خودم تا بفهمم چجوريه حدود 6-7 ماه طول كشيد).
    روندش هم خيلي كاره سختي نيست اول FPGA Prioject رو انتخاب كن و پروژت رو بساز بعد VHDL Document رو به پروژت اضافه كن و برنامت رو توش بنويس. از قسمت Tools\Preferences هم ميتوني تنظيمات مربوط به سنتز و شبيه سازي رو انجام بدي.
    از قسمت Design\Create Test Bench رو انتخاب كن تا يه Test Bench برات بسازه.
    پايين اين Test Bench يه قسمتي هست كه اينو نوشته :

    پيداش كن و برنامه شبيه سازيت رو توش بنويس

    از منوي Simulator\HDL Compile رو بزن و از پنجره جديد هم روي Test Bench كليك كن.
    سپس simulate Curent Project رو كليك كن (از آيكن هاي بالاي صفحه)
    پنجره سيمولاتور باز ميشه و ميتوني تنظيمات شبيه سازي رو انجام بدي.

    ليست يه برنامه نمونه رو برات مينويسم.فرض كن ميخواهيم يك گيت And بسازيم:

    -----------------------------------------------------------
    سلام، میدونی دقیقا چجوری باید یه قسمت رو به یه پین خاص نسبت داد؟
    مثلا میخوام پین p0-1رو به عنوان خروجی تعریف کنم که مقدار نهایی روی این پایه قرار بگیره.
    کلا چجوری باید ورودی خروجی یه پین رو مشخص کنیم؟

    مثلا میخوایم دوتا ورودی این اند ها از پایه های پی 1 و پی 2 باشه و خروجی روی پی 3
    چجوری این کار رو باید انجام بدهیم؟
    خواهشا سریع جواب بدید، پنج شنبه باید ارائه بدم. ممنون

صفحه 1 از 2 12 آخرینآخرین

موضوعات مشابه

  1. ساخت پروگرامر fpga با usb
    توسط jonbakhsh در انجمن FPGA
    پاسخ: 21
    آخرين نوشته: 07-08-2015, 12:20
  2. fpga
    توسط siamakb در انجمن مباحث کار و کاریابی/تبلیغات/بازارچه
    پاسخ: 2
    آخرين نوشته: 29-10-2011, 00:18
  3. Fpga
    توسط arash12 در انجمن FPGA
    پاسخ: 3
    آخرين نوشته: 23-05-2011, 02:15
  4. FPGA
    توسط saeed_niknami در انجمن FPGA
    پاسخ: 11
    آخرين نوشته: 24-12-2009, 01:06
  5. FPGA
    توسط mahdikan در انجمن پرسش و پاسخ (نرم افزارهای تخصصی)
    پاسخ: 1
    آخرين نوشته: 09-08-2008, 20:58

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •