اطلاعیه

Collapse
No announcement yet.

تعریف اعداد ممیز ثابت و شناور در FPGA...

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

    تعریف اعداد ممیز ثابت و شناور در FPGA...

    با سلام به همه دوستان عزیز،
    من در حال پیاده سازی یک شبکه عصی با fpga هستم و 3 سوال در مورد fpga و زبان vhdl دارم :
    1- چطور در زبان vhdl نشان می دهیم که عددها ممیز ثابتند یا شناور . منظورم این است که برای تعیین فرمت اعداد در vhdl کتابخانه خاصی هست.و آیا فقط تراشه هایی خاص ممیز شناور دارند؟
    2- در یک fpga مثل سری spartanII چند ضرب کننده موجود است؟ من در دیتاشیت چیزی در مورد تعداد ضرب کننده ندیدم .
    3-چطور نشان میدهیم که ضرب کننده پارالل است یا سریال؟

    با تشکر فراوان
    خبر آمد خبری در راه است---- خرم آندل که ازو گاهست

    #2
    پاسخ : تعریف اعداد ممیز ثابت و شناور در FPGA...

    با سلام
    ۱. من VHDL بلد نیستم ولی در وریلاگ اگر یک نت از نوع real در نظر گرفته شود، ممیز شناور خواهد بود.
    ۲. سری spartan II ضرب کننده ندارند، ضرب کننده را باید با گیتآ‌های معمولی سنتز کرد.
    ۳. شما اگر علاقه مند هستید که یک ضرب کننده سریال یا پارالل داشته باشید باید هر کدام را که نیاز دارید خودتان طراحی کنید و مانند یک ماژول در توصیف VHDL استفاده کنید.

    * اعداد ممیز شناور را فراموش کنید چون خیلی پیچیده هستند و در عمل تمام منابع FPGA شما را مصرف میآ‌کنند.
    ** سری Spartan III ضرب کننده ۱۸ در ۱۸ بیت دارند. به عنوان مثال XC3s400 تعداد ۱۶ ضرب کننده دارد. این لینک را حتما مطالعه بفرمایید: www.xilinx.com/support/documentation/application_notes/xapp467.pdf
    من دوست دارم آزاد فکر کنم، نرمآ‌افزارآ‌ و سختآ‌افزارهای آزاد را به کار ببرم و اگر توانستم نرمآ‌افزار، سختآ‌افزار و محتوای آزاد درست کنم!

    دیدگاه


      #3
      پاسخ : تعریف اعداد ممیز ثابت و شناور در FPGA...

      نوشته اصلی توسط manian
      با سلام
      ۱. من VHDL بلد نیستم ولی در وریلاگ اگر یک نت از نوع real در نظر گرفته شود، ممیز شناور خواهد بود.
      ۲. سری spartan II ضرب کننده ندارند، ضرب کننده را باید با گیتآ‌های معمولی سنتز کرد.
      ۳. شما اگر علاقه مند هستید که یک ضرب کننده سریال یا پارالل داشته باشید باید هر کدام را که نیاز دارید خودتان طراحی کنید و مانند یک ماژول در توصیف VHDL استفاده کنید.

      * اعداد ممیز شناور را فراموش کنید چون خیلی پیچیده هستند و در عمل تمام منابع FPGA شما را مصرف میآ‌کنند.
      ** سری Spartan III ضرب کننده ۱۸ در ۱۸ بیت دارند. به عنوان مثال XC3s400 تعداد ۱۶ ضرب کننده دارد. این لینک را حتما مطالعه بفرمایید: www.xilinx.com/support/documentation/application_notes/xapp467.pdf
      با سلام وتشکر از پاسخ مفیدتون

      اتفاقا من هم به این نتیجه رسیدم که اعدادم رو به صورت ممیز ثابت استفاده کنم. در این صورت نیازی به کتابخانه ندارم ؟ اعداد با تعریف sign در واقع integer هستند یا اعشاری هم تعریف می شوند.

      با تشکر فراوان
      خبر آمد خبری در راه است---- خرم آندل که ازو گاهست

      دیدگاه


        #4
        پاسخ : تعریف اعداد ممیز ثابت و شناور در FPGA...

        نوشته اصلی توسط moradi
        با سلام وتشکر از پاسخ مفیدتون

        اتفاقا من هم به این نتیجه رسیدم که اعدادم رو به صورت ممیز ثابت استفاده کنم. در این صورت نیازی به کتابخانه ندارم ؟ اعداد با تعریف sign در واقع integer هستند یا اعشاری هم تعریف می شوند.

        با تشکر فراوان
        با سلام
        بازهم مشکل بلد نبودن VHDL دارم! فکر کنم شما باید سعی کنید حد المقدور ابعاد عدد خود را مشخص کرده باشید. استفاده از integer به ابزار سنتز اندازه سیگنال را نمیآ‌گوید و ممکن است مدار تولید شده بهینه نباشد. پس سعی کنید از std_logic_vector استفاده کنید.
        در مورد اعشار هم شما میآ‌توانید محاسبات خودتان را با اعداد معمولی انجام دهید فقط فرض کنید که آنها در یک ضریب (که بهتر است از توان ۲ باشد) ضرب شدهآ‌اند.

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

        دیدگاه


          #5
          پاسخ : تعریف اعداد ممیز ثابت و شناور در FPGA...

          با سلام
          بازهم مشکل بلد نبودن VHDL دارم! فکر کنم شما باید سعی کنید حد المقدور ابعاد عدد خود را مشخص کرده باشید. استفاده از integer به ابزار سنتز اندازه سیگنال را نمیآ‌گوید و ممکن است مدار تولید شده بهینه نباشد. پس سعی کنید از std_logic_vector استفاده کنید.
          در مورد اعشار هم شما میآ‌توانید محاسبات خودتان را با اعداد معمولی انجام دهید فقط فرض کنید که آنها در یک ضریب (که بهتر است از توان ۲ باشد) ضرب شدهآ‌اند.

          * مقالات و کارآ‌های انجام شده برای پیادهآ‌سازی شبکه عصبی روی FPGA را مطالعه کردهآ‌اید؟ شاید بتوانید از آنها برای کار خودتان ایده بگیرید.
          با سلام و تشکر از همه راهنمایی های مفیدتون،
          من در حال پیاده سازی شبکه ام هستم خواستم بپرسم مثلا اگر من بزرگترین عددی که در آرایه ام دارم 297.3169- است در این صورت طبق فرمایش شما اون رو2973169- فرض کنیم و تعداد بیت std_logic_vector رو 23 بیت بگیرم ؟ آیا این کار عملا امکان پذیر هست ؟در ضرب کننده ها دچار مشکل نمی شم؟ راستش از متن مقالات مربوط به این موضوع این نکات برنامه نویسی رو پیدا نمی کنم.
          لطفا راهنمایی ام کنید
          خبر آمد خبری در راه است---- خرم آندل که ازو گاهست

          دیدگاه


            #6
            پاسخ : تعریف اعداد ممیز ثابت و شناور در FPGA...

            سلام
            من واقعا در قسمت ضرب کننده ام مشکل دارم لطفا راهنمایی ام کنید.
            خبر آمد خبری در راه است---- خرم آندل که ازو گاهست

            دیدگاه


              #7
              پاسخ : تعریف اعداد ممیز ثابت و شناور در FPGA...

              نوشته اصلی توسط moradi
              با سلام و تشکر از همه راهنمایی های مفیدتون،
              من در حال پیاده سازی شبکه ام هستم خواستم بپرسم مثلا اگر من بزرگترین عددی که در آرایه ام دارم 297.3169- است در این صورت طبق فرمایش شما اون رو2973169- فرض کنیم و تعداد بیت std_logic_vector رو 23 بیت بگیرم ؟ آیا این کار عملا امکان پذیر هست ؟در ضرب کننده ها دچار مشکل نمی شم؟ راستش از متن مقالات مربوط به این موضوع این نکات برنامه نویسی رو پیدا نمی کنم.
              لطفا راهنمایی ام کنید
              با سلام
              در مورد ضریب دقیقا منظور همین بود به این معنی که شما تمام اعداد را در یک ضریب بزرگ ضرب کنید. فقط دقت کنید که ضریب شما اولا مضرب از توان دو باشد علاوه بر این اگر دو عدد با ضریب در هم ضرب شوند باید بر یک ضریب تقسیم شوند که چون ضریب شما از توان ۲ است فقط کافی است که خروجی را شیفت دهید.
              من دوست دارم آزاد فکر کنم، نرمآ‌افزارآ‌ و سختآ‌افزارهای آزاد را به کار ببرم و اگر توانستم نرمآ‌افزار، سختآ‌افزار و محتوای آزاد درست کنم!

              دیدگاه


                #8
                پاسخ : تعریف اعداد ممیز ثابت و شناور در FPGA...

                نوشته اصلی توسط manian

                با سلام
                در مورد ضریب دقیقا منظور همین بود به این معنی که شما تمام اعداد را در یک ضریب بزرگ ضرب کنید. فقط دقت کنید که ضریب شما اولا مضرب از توان دو باشد علاوه بر این اگر دو عدد با ضریب در هم ضرب شوند باید بر یک ضریب تقسیم شوند که چون ضریب شما از توان ۲ است فقط کافی است که خروجی را شیفت دهید.
                با سلام و تشکر از راهنمایی های خوبتون
                من چیزی رو که فرمودین رو اجرا کردم اما به نظر عملی نمی یاد چون من حدود 256 تا ضرب دارم که باین روش تقریبا 256 تا ضرب 24 بیتی نیاز دارم و فکر نمی کنم تراشه ای یه همچین ظرفیتی رو داشته باشه . ایا من اشتباه می کنم یا تراشه ای با این قابلیت هست؟

                از همه کمکهاتون ممنونم
                خبر آمد خبری در راه است---- خرم آندل که ازو گاهست

                دیدگاه


                  #9
                  پاسخ : تعریف اعداد ممیز ثابت و شناور در FPGA...

                  سلام ..................

                  با کسب اجازه از استاد manian عزیز ..

                  میتونم یه سوال بپرسم ازتون خانم moradi؟ شما این 256 رو برای چی میخواید؟ احتمالا به intensity پیکسل های تصویر ارتباط پیدا نمیکنه؟
                  دوستان! مدتی کمتر به سایت میام ..

                  دیدگاه


                    #10
                    پاسخ : تعریف اعداد ممیز ثابت و شناور در FPGA...

                    نوشته اصلی توسط حسام الدین
                    سلام ..................

                    با کسب اجازه از استاد manian عزیز ..

                    میتونم یه سوال بپرسم ازتون خانم moradi؟ شما این 256 رو برای چی میخواید؟ احتمالا به intensity پیکسل های تصویر ارتباط پیدا نمیکنه؟
                    سلام آقای مهندس
                    در واقع روش استخراج ویژگی تصویرم گرادیان روشناییه که با راهنمایی آقای مهندس نحوی در مطلب پیاده سازی شد و این روش برای هر تصویر توسط گرادیان گیری 256 خروجی استخراج می کنه دقت بسیار بالایی داره اما در پیاده سازیش مشکل دارم حتی با تراشه هایی که مثل spartan3a که دارای ضرب کننده های زیادی هستند. یکسری مقاله هم در مورد پردازش تصویر روی تراشه وشبکه های عصبی که بیشترش رو با راهنمایی شما مرور کردم نتونسته جواب این سوال رو بهم بده در نهایت فکر کردم شاید روشی در کدنویسی هست و من بلد نیستم.
                    از راهنمایی هاتون واقعا ممنونم
                    خبر آمد خبری در راه است---- خرم آندل که ازو گاهست

                    دیدگاه

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