اطلاعیه

Collapse
No announcement yet.

تولید موج سینوسی با FPGA

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

    تولید موج سینوسی با FPGA

    سلام.
    من تازه کارم رو شروع کردم با FPGA
    و نیاز دارم که یه موج سینوسی با فرکانس مشخص مد نظرم تولید کنم. در واقع می خوام ببینم میشه از قبل داخل خود FPGA یه look-up table برای داده های سینوسی ذخیره کنم که بعدا یکی یکی بندازمش روی پایه ها و بره به DAC مورد نظرم؟ یا اینکه باید حافظه خارجی استفاده بشه که ترجیحم این نیست.
    بدون look-up table هم ممکنه به روشی داده های سینوسی رو تولید کرد؟

    ممنون میشوم اگر راهنمایی فرمایید.

    #2
    پاسخ : تولید موج سینوسی با FPGA

    سلام
    طاعات قبول.
    ip coreهایCORDIC و DDS Compiler از زیر مجموعه های digital signal processing رو دیدید؟

    دیدگاه


      #3
      پاسخ : تولید موج سینوسی با FPGA

      اگه فرکانس از قبل مشخص باشه با توشتن یک فیلتر IIR مرتبه دوم که قطب هایش روی +j و j- قرار میگیرند می تونی اینو پیاده سازی کنی. من کد FPGA رو ننوشتم ولی کد C رو تو DSP پیاده سازی کردم. فکر کنم به همین طریق تو FPGA هم میشه این کارو کرد (یک معادله دیفرانسیلی)
      راه حل دوم که به نظرم قشنگ تره اینه که ببینی توی پردازنده های دیگه چه جوری سینوس رو محاسبه می کنند و بیای همین کارو تو FPGA انجام بدی من PDF زیر رو پیشنهاد می کنم.
      http://www.ti.com/lit/an/spra819/spra819.pdf
      (توجه با IP ایران نمی شه دانلود کرد)
      راه دیگر که یکی از دوستان اشاره کردند اگریتم CORDIC هست. با این الگوریتم می شه توابع مختلف مثلثاتی مانند سینوس و لگاریتم و ... را با تبدیل به یک سری جمع برداری محاسبه کرد. مزیتی که این الگوریتم داره اینه نیاز به ضرب کننده نداره و تمام محاسبات به صورت جمع انجام میشه. توی CPLD ها یا FPGA های قدیمی که واحد ضرب کننده ندارند، این الگوریتم مناسب می باشد.
      یه راه دیگه هم نوشتن بسط مکلورن هست که برای این که به دقت خوبی برسی باید تا مرتبه 13 برای سینوس بری جلو. که من توصیه نمیکنم.

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

      راستی برای انجام محاسبات float با FPGA به سایت زیر هم سر بزن شاید به دردت بخوره تو محاسبه سینوس
      http://www.vhdl.org/fphdl/vhdl.html
      مهم نيست که کجايي هستي، چه رنگي هستي، به چه زبوني حرف مي زني. مهم اينه که انسان باشي.
      http://baranelec.mihanblog.com/
      آینده ای خواهم ساخت که گذشته ام در برابرش زانو بزند...

      دیدگاه


        #4
        پاسخ : تولید موج سینوسی با FPGA

        بله من یک بار بر روی FPGA با استفاده از picoblaze یک موج سینوسی ایجاد کردم .. خیلی هم خوب... تو سایت شرکت xilinx دنباله PDF های توضیحات میکروپروسسور KCPSM3 بگردی هستش... فقط اول باید یه میکروی 8 بیتی (KCPSM3) رو روی FPGA ات بریزی و بعد از کد های اسمبلیش استفاده کنی. البته برای سینوسی گرفتن کده آماده اش هست.

        دیدگاه

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