ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ورود برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.






جهت تبلیغ در وب سایت ECA کلیک کنید.

کاربران برچسب زده شده

صفحه 1 از 2 12 آخرین
نمایش نتایج: از 1 به 10 از 13
  1. #1
    2008/01/01
    111
    0

    مراحل طراحی fpga

    با سلام خدمت دوستان

    سوال بنده در مورد مراحل طراحی با fpga هست.

    من برنامه نویسی vhdl رو تا حدودی که نیاز دارم بلدم

    می خوام یک برنامه مثلاً گرفتن خروجی 1 روی پایه fpga p106 را پیاده سازی کنم.

    برد آموزشی FPGA رو با fpga sapartan-3 xc3s400 در اختیار دارم که با پورت پارالل به کامپیوتر وصل شده

    نرم افزاری هم که روی سیستم نصب هست ise 7.1 می باشد (altium 10.3 رو هم دارم)

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

    مثلاً اول تعریف پروژ 2- اضافه کردن سورس فایل vhdl و ...(بعدشو نمی دونم) تا مرحله ilmpliment

    بسیار ممنونم


    حضرت محمد (ص):بدانید،کسی که نمی داند نباید از آموختن شرم کند،که قیمت هر کس به قدر معلو مات اوست.
  2. #2
    2008/01/02
    171
    0

    پاسخ : مراحل طراحی fpga

    من هم دقیقا این مشکل رو دارم
    vhdl رو خوب یاد گرفتم -اما نمی دونم چطوری باید یک برد رو پیاده سازی کنم.یعنی با چی و چجوری یک fpga رو پروگرام کنم-میدونم که باید یک حافظه خارجی بهش متصل بشه-اما کجا و چجوری اصلا نمی دونم-یا cpld ها که خودشون حافظه دارن

    هر جا دنبال آموزش میگردم فقط زبان های توصیف رو میگن-حتی همین جا هیچ آموزشی نیست

    لطفا راهنمایی کنید-مطمئنا مشکل خیلی ها است
  3. #3
    2011/10/30
    25
    0

    پاسخ : مراحل طراحی fpga

    سلام
    من از لحاظ تئوری می دونم ولی خودم پروگرام نکردم.. یه فایل دارم.. چه جوری براتون پ لود کنم؟؟!! بلد نیستم!!!
    مفیده ها!!
  4. #4
    2008/01/01
    111
    0

    پاسخ : مراحل طراحی fpga

    توی سایت آموزش قرار دادن اطلاعات و لینک هست.
    حضرت محمد (ص):بدانید،کسی که نمی داند نباید از آموختن شرم کند،که قیمت هر کس به قدر معلو مات اوست.
  5. #5
    2007/12/09
    تهران
    1,626
    20

    پاسخ : مراحل طراحی fpga

    لطفا اینجا قرار بدید:

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت



    [img width=477 height=100]http://www.eca.ir/pic/upload/agazade.png[/img]
  6. #6
    2011/06/24
    254
    9

    پاسخ : مراحل طراحی fpga

    نقل قول نوشته اصلی توسط مرجان کهندل
    من هم دقیقا این مشکل رو دارم
    vhdl رو خوب یاد گرفتم -اما نمی دونم چطوری باید یک برد رو پیاده سازی کنم.یعنی با چی و چجوری یک fpga رو پروگرام کنم-میدونم که باید یک حافظه خارجی بهش متصل بشه-اما کجا و چجوری اصلا نمی دونم-یا cpld ها که خودشون حافظه دارن

    هر جا دنبال آموزش میگردم فقط زبان های توصیف رو میگن-حتی همین جا هیچ آموزشی نیست

    لطفا راهنمایی کنید-مطمئنا مشکل خیلی ها است
    من هم :redface:
    این مدعیان در طلبش بی خبرانند
    آن را كه خبر شد خبری باز نیامد
  7. #7
    2008/09/02
    اصفهان
    1,897
    37

    پاسخ : مراحل طراحی fpga

    من هفت هشت ده سال پیش برای اولین بار یک کار کوچولو روی 95144 انجام دادم به ترتیب زیر:
    1- اون موقع دقیقا مثل حالا هیچ اطلاعاتی از الکترونیک نداشتم. یعنی هنوز هم نمیدونم ترانزیستور رو میشه با سس خردل خورد یا باهاش شنا کرد!
    2- سورس رو به زبون verilog نوشتم.
    3- با ISE 5.1 کامپایل کردم. بعد از چند بار سعی و فیت شدن مدل توسط pinlock جایگذاری پین ها رو انجام دادم و اتصالات رو روی cpld نهایی کردم.
    4- با پروگرامر xilinx پروگرام کردم.

    تنها موردی که وسط هست اینه که میدونم برای استفاده از FPGA باید از config memory استفاده کرد و نکته مهم دیگه هم اینه که نمیدونم چرا اون مدل هنوز که هنوزه داره کار میکنه!

    فقط چند تا نکته:
    -برنامه مدل سازی بر اساس دلخواه خودش (من بهش میگم الابختکی!) هر ورودی یا خروجی رو روی یکی از پین ها map میکنه. اگر میخوایین روی پین خاصی مپ بشه باید از pin lock استفاده کنین.
    -اگر مدل شما در device مورد استفاده fit بشه بعد از pin lock الزامی وجود نداره که همون مدل در آی سی مد نظرتون fit بشه. پس سعی کنین از فایل listing اطلاعاتی رو استخراج کنین که متوجه بشین کدوم منطق ها باعث میشه که یک قسمت از logic روی پین هایی که میخوایین fit نشه. اینطوری میتونین با حداقل تغییرات در pin lock ها دوباره مدل رو fit کنین.
    -ضمنا بخاطر اینکه ممکنه در آینده به تغییراتی در مدلتون احتیاج داشته باشین؛ سعی نکنین از آی سی استفاده کنین که بالای 80 درصد از کلیه منابعش مصرف بشه.
    -در هنگام pin lock سعی کنین ترجیحا پین های مپ شده در حالت اولیه رو تقریبا در حول و حوش همون جاهایی که مپ شده نگهداری کنین. اینجوری نرم افزار کمتر قاط میزنه.
    -استفاده از منطق های ترتیبی ممکنه کار راحتی باشه اما مسلما با یک کمی صرف وقت و استفاده از منطق های ترکیبی تعداد بسیار کمتری ram-bit مصرف میکنین و آی سی کوچکتری احتیاج خواهید داشت.
    -برای بعضی از انواع آی سی ها مثل CPLD های سری 9500 شرکت Xilinx یا سری FLEX10K شرکت Altra برنامه هایی نوشته شده که میتونین در یک سیستم میکروکنترلری با استفاده از اونها FPGA مورد نظرتون رو پروگرام کنین. این مورد هم باعث حفاظت بیشتر میشه و هم قابلیت ارتقاء سیستم نهایی رو راحتتر میکنه.

    برای بهینه سازی مدلتون میتونین از برنامه هایی مثل Leonardo و برای تست از Modelsim استفاده کنین تا زمان تست نهایی روی سخت افزار رو مینیمم کنه.
    - یادتون باشه چون میتونین یک منطق رو در FPGA قرار بدین دلیلی بر انجام این کار نیست. ضمنا خیلی وقتها اگر بر اساس منطق کذایی Bigger is Better کار کنین ممکنه در سیستمهای مبتنی بر FPGA و میکرو کار بسیار بیشتری در نرم افزار لازم باشه انجام بدین که در این صورت هم منابع FPGA رو حروم کردین و هم نرم افزار و نتیجتا سیستم نهایی کند تری خواهید داشت.
    - همیشه یادتون باشه که الزاما مدلی که نوشتین همواره اون کاری رو که شما میخوایین نمیکنه. پس تست کلیه منطق ها ولو خیلی کوچیک مطلقا فراموش نشه.
  8. #8
    2008/01/01
    111
    0

    پاسخ : مراحل طراحی fpga

    میشه در مورد نحوه تخصیص پینها بیشتر توضیح بدید؟

    یعنی همون pin asignment

    بسیار ممنونم
    حضرت محمد (ص):بدانید،کسی که نمی داند نباید از آموختن شرم کند،که قیمت هر کس به قدر معلو مات اوست.
  9. #9
    2008/09/02
    اصفهان
    1,897
    37

    پاسخ : مراحل طراحی fpga

    بازم میگم من اینا رو جایی نخوندم. بلکه از خودم درآوردم بنابراین مسئولیت عدم کارکردش به عهده خودتونه.!! :mrgreen: :mrgreen: (چه ربطی داشت؟؟)

    شما میدونین (یا بهتره بگم: امیدوارم که بدونین) که FPGA یا CPLD از مجموعه ای از مدارات پایه بنام logic cell یا logic block تشکیل شده که بعضی از اینها با پین های ورودی - خروجی آی سی ارتباط دارن. و بعضی دیگه فقط با مدارات پایه دیگه. درست مثل خونه های شطرنج که بعضی از این خونه ها به حاشیه صفحه شطرنج منتهی میشن و بعضی دیگه دور و اطرافشون پر از خونه های دیگه هست. وقتی یک مدل رو سنتز میکنیم؛ این مدل به نوعی بین این مدارات پایه شکسته میشه تا جمع کلی این قطعات شکسته شده بتونه مدل مد نظر مارو پیاده سازی کنه. در حالت عادی اینکه کدوم یکی از این بلوک ها چه قسمتی از منطق مارو دارا باشن توسط برنامه سنتز کننده انتخاب میشه و نتیجتا انتخاب اینکه مثلا سیگنالی بنام D0 روی چه پایه ای بیفته (البته از نظر ما) کاملا اتفاقیه. اما معمولا شرایطی پیش میاد که بخواییم این اتصالات رو خودمون تعریف کنیم و بخواییم مثلا خطوط D0 تا D7 رو برای ارتباط با آی سی رم مورد استفاده مون جوری مرتب کنیم که طول ترک ها روی PCB نهایی مینیمم در بیاد. برای این منظور در برنامه سنتز کننده مدل امکاناتی بصورت visual یا غیر اون (توسط نوشتن دستی یک متن) وجود داره که اصطلاحا بهش pin lock میگیم. در طی این پروسه؛ میاییم و به عنوان پیش فرض سنتز به برنامه سنتز کننده اطلاع میدیم که مثلا سیگنال های فوق روی پین های شماره 1 تا 8 مپ بشه. اینطوری در هنگام سنتز؛ برنامه سنتز کننده جوری منطق ما رو بین مدارات پایه میشکنه که این اتصالات رعایت بشه. اما مسلما این قواعدی که ما تعریف میکنیم یک محدودیت برای برنامه سنتز کننده در نحوه شکست منطق کلی ایجاد میکنه که ممکنه باعث شکست کلی در تولید منطق های شکسته شده و فیت شدن اونها در بلوک های منطقی آی سی بشه.
    مثلا در برنامه ISE WebPack شرکت Xilinx نسخه 7.1 در پانل Process View قسمت User Constraints آیتمی بنام Assign Package Pins وجود داره که با انتخاب اون صفحه ای میاد که شامل بر دو قسمت کلی هست. اولا لیست سیگنالهای ورودی خروجی نهایی مدل وجود داره و ثانیا یک نقشه از آی سی مورد استفاده ما هست. که میتونیم سیگنال به سیگنال یا بطور گروهی چند سیگنال رو روی پین های ورودی خروجی آی سی drag کنیم.
    مسلما در مواقعی که در هنگام سنتز از برنامه سنتز کننده انتظار داریم که خودش نوع آی سی رو هم انتخاب کنه این تابع رو نمیتونیم استفاده کنیم چون هر آی سی با دیگری در تعداد و جایگذاری پین ها متفاوت هست.
    از طرفی این مورد مهم رو هم همیشه باید یادمون باشه که بعضی پین ها مثل GSR یا GTS یا GCK وجود دارن که نحوه ارتباطشون با منطق های شکسته شده نسبت به ارتباطشون با بقیه پین ها با این منطق ها متفاوت هست. و ضمنا تعداد این پین ها هم محدوده. و باید از این پینها در جای خودش استفاده کرد. نکته اساسی در استفاده از این سیگنالها اینه که خیلی وقتها در یک مدل؛ مواردی پیش میاد که میخواییم یک سیگنال با حداقل تاخیر انتشار به تمامی بلوکهایی که این سیگنال در اونها استفاده شده وصل بشه. مثلا فرض کنین در مدل زیر:


    module main(
    micro_ALE, micro_ADBus, micro_RD, micro_WR,
    shf_Dir, shf_Pulse, shf_IRQ,
    _CS);

    input micro_ALE;
    input micro_RD;
    input micro_WR;
    inout[7:0] micro_ADBus;
    input _CS;

    input shf_Dir;
    input shf_Pulse;
    output shf_IRQ;

    reg Reset;

    reg [2:0] micro_Addr;
    reg [23:0] encoder_Pos;
    reg [23:0] irq_Pos;
    reg irq_Enable;
    reg [7:0] micro_QData;

    wire read_Permission = micro_RD | _CS;
    wire write_Permission = micro_WR | _CS;

    bufif0( micro_ADBus[0], micro_QData[0], read_Permission);
    bufif0( micro_ADBus[1], micro_QData[1], read_Permission);
    bufif0( micro_ADBus[2], micro_QData[2], read_Permission);
    bufif0( micro_ADBus[3], micro_QData[3], read_Permission);
    bufif0( micro_ADBus[4], micro_QData[4], read_Permission);
    bufif0( micro_ADBus[5], micro_QData[5], read_Permission);
    bufif0( micro_ADBus[6], micro_QData[6], read_Permission);
    bufif0( micro_ADBus[7], micro_QData[7], read_Permission);

    always @(negedge micro_ALE)
    micro_Addr <= micro_ADBus[2:0];

    assign shf_IRQ = !(irq_Enable && (encoder_Pos == irq_Pos));

    always @(posedge shf_Pulse)
    begin
    if( Reset )
    begin
    encoder_Pos <= 0;
    end
    else
    begin
    if( shf_Dir )
    encoder_Pos <= encoder_Pos + 1;
    else
    encoder_Pos <= encoder_Pos - 1;
    end
    end

    always @(negedge read_Permission)
    begin
    case (micro_Addr)
    0: micro_QData <= encoder_Pos[ 7: 0];
    1: micro_QData <= encoder_Pos[15: 8];
    2: micro_QData <= encoder_Pos[23:16];
    3: micro_QData <= irq_Pos[ 7: 0];
    4: micro_QData <= irq_Pos[15: 8];
    5: micro_QData <= irq_Pos[23:16];
    6: micro_QData <= irq_Enable;
    7: micro_QData <= Reset;
    endcase
    end

    always @(negedge write_Permission)
    begin
    case (micro_Addr)
    3: irq_Pos[ 7: 0] <= micro_ADBus;
    4: irq_Pos[15: 8] <= micro_ADBus;
    5: irq_Pos[23:16] <= micro_ADBus;
    6: irq_Enable <= micro_ADBus[0];
    7: Reset <= micro_ADBus[0];
    endcase
    end

    endmodule

    .....ادامه داره....
  10. #10
    2008/09/02
    اصفهان
    1,897
    37

    پاسخ : مراحل طراحی fpga

    ....ادامه قبلی....

    این مدل یک مدل ساده اتصال یک شافت انکودر به یک میکرو هست. روی 9572 هم پیاده سازی شده. به رفتارهای سیگنال read_Permission توجه کنین. این سیگنال بایستی برای درایو کردن 8 بافر سه وضعیتی و یک بلوک برای تحریک یک demultiplexer استفاده بشه. مسلما در هنگام خوندن اطلاعات از این مدل بایستی زمان سوئیچ هر 8 بافر سه وضعیتی همزمان باشه. اما یادمون هست که اولا بلوکهای پایه دارای محدودیت در نگهداری قسمتی از مدل هستن بنا براین ممکنه یک بلوک منطقی نتونه همه هشت بافر رو در خودش جا بده و از طرفی فقط بعضی از بلوکها مستقیما به سیگنالهای ورودی خروجی وصل هستن و مسلما برای انتقال وضعیت یک سیگنال از پین ورودی به یک بلوک این سیگنال باید بین چند بلوک مجاور هم دست به دست بشه که این باعث ایجاد تاخیر انتشار زیادی میشه.
    برای رفع این مشکل هر آی سی دارای سیگنالهایی (از لحاظ تعداد بشدت محدود) هست که مستقیما به تمامی بلوک های پایه وصله که بهشون General Clock میگیم. معمولا برنامه سنتز کننده پر کاربرد ترین سیگنالها رو روی این پایه ها مپ میکنه. تا میزان تاخیر انتشار این سیگنالها بین قسمت های متفاوت یک منطق شکسته شده مینیمم باشه.
    حالا اگر ما بیاییم این سیگنال رو روی یک پایه عمومی مپ کنیم باعث ایجاد تاخیر انتشار میشیم که خودش ممکنه پاسخ زمانی آی سی ما رو خیلی بالا و پایین کنه.

    بنا براین؛ بایستی در هنگام مپ کردن این سیگنالها به این خصوصیت پایه ها و سیگنال مربوطه در مدل خودمون هم توجه کافی داشته باشیم. و این یک محدودیت مهم برای مپ کردن سیگنالها هست.

صفحه 1 از 2 12 آخرین
نمایش نتایج: از 1 به 10 از 13

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

  1. طراحی و ساخت برد FPGA
    توسط mohsen_k.nazar در انجمن PLD , SPLD , GAL , CPLD , FPGA
    پاسخ: 14
    آخرين نوشته: 2017/10/29, 09:37
  2. مراحل طراحی پست 20کیلو به 400
    توسط mniknezhadi در انجمن توزيع
    پاسخ: 4
    آخرين نوشته: 2012/06/23, 07:52
  3. طراحی FPGA در لبویو
    توسط fazel459 در انجمن PLD , SPLD , GAL , CPLD , FPGA
    پاسخ: 2
    آخرين نوشته: 2012/01/20, 23:53
  4. پاسخ: 11
    آخرين نوشته: 2010/12/25, 09:38
  5. طراحی آنالوگ با FPGA
    توسط ahmadsa در انجمن سایر مطالب مرتبط با ميکرو ها و پروسسورها
    پاسخ: 2
    آخرين نوشته: 2007/11/24, 23:16

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

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

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