اطلاعیه

Collapse
No announcement yet.

انتقال سیگنال از MATLAB به FPGA مدل spartan 3 XCS400

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

    انتقال سیگنال از MATLAB به FPGA مدل spartan 3 XCS400

    سلام
    من میخوام یه فیلتری (نوع فیلتر مهم نیس) که با متلب شبیه سازی شده رو روی SPARTAN 3 پیاده سازی کنم
    فعلا کاری به پیاده سازی ندارم
    مهم برام انتقال ورودی از MATLAB به SP3 هست
    یعنی میخوام یه سیگنال (صفر و یک رندوم) با MATLAB تولید کنم و بعد اون رو به SP3 انتقال بدم
    بعد از اعمال ورودی به فیلتری که بعدا روی SP3 پیاده سازی میشه خروجی فیلتر شده از SP3 رو به کامپیوتر (MATLAB) بر گردونم و بعد نمایش بدم
    در آخر می خوام ببینم شبیه سازی که با MATLAB برای فیلتر و خروجی کردم با طرح پیاده سازی شده روی SP3 و خروجی اون با هم یکسان هستند یا نه؟؟

    من الگریتم کار و پروتکل این ارتباطات و چگونگی تعریف این ارتباطات در ISE و MATLAB رو میخوام.
    اصلا چنین چیزی ممکن هست یا نه؟؟
    یکی از دوستان فقط گفت با UART می شه ولی چگونگیش رو گفت توی این کتاب هست (نمونه سازی FPGA با مثالهایی از VHDL از سپیدنام) این کتاب رو سفارش دادم بیاد ولی احتمالا تا آخر هفته طول میکشه :cry:
    اگه دوستان بلد هستند لطفا جواب بدن تا منم یاد بگیرم
    ممنون

    #2
    پاسخ : انتقال سیگنال از MATLAB به FPGA مدل spartan 3 XCS400

    سلام. خروجی متلب با FPGA متفاوته، چون در متلب اعداد اعشاری با دقت مضاعف هستند ولی در FPGA باید Fixed-point کار کنید که دقت کمتر میشه. البته میتونی از تولباکس Fix Point متلب استفاده کنی تا مقدار تقریب (خطا) رو ببینی.(دستور fi)
    برای شبیه سازی با FPGA، سیگنال ورودی رو در یک فایل باید ذخیره کنی که در انتهای این تاپیک یک مثال آوردم.
    ارتباط سریال در متلب خیلی آسونه، کافیه دستور serial رو در راهنمای متلب سرچ کنی.
    برای ارتباط سریال در FPGA هم Core های آماده زیادی هست، ضمن این که اصلاً سخت نیست و خودت هم میتونی بنویسی. (پروتکل UART) البته در صورتی که از پورت سریال استفاده کنی محدودیت سرعت ارتباطی 115200 بیت در ثانیه و طول پیام یک بایتی رو داری که باید محاسبه کنی که برای هر نمونه سیگنال چند بایت لازمه و ارسال کل سیگنال چقدر طول میکشه تا بتونی تخمین بزنی ارتباط سریال مناسب هست یا نه.
    لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.
    لطفاً سؤالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
    با تمام وجود گناه کرديم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنيم چه مي کند؟"دکتر شريعتي"
    اگر جايي که ايستاده ايد را نمي پسنديد، عوضش کنيد شما درخت نيستيد!! "پاسكال"
    يا به اندازه ي آرزوهايت تلاش کن يا به اندازه تلاشت آرزو کن. "شکسپير"

    دیدگاه


      #3
      پاسخ : انتقال سیگنال از MATLAB به FPGA مدل spartan 3 XCS400

      واقعا عالی بود خیلی ممنون
      بازم سوال دارم
      مگه در متلب و fpga به غیر از سریال ارتباط دیگه ای وجود داره که بتونم به هم ارتباط داشته باشند؟ که هم سرعت خوبی داشته باشه و هم نیاز به مدار الکترونیکی اضافی نداشته باشه.
      اگه داره مثل پست قبل یکم توضیح بدین و از کجا باید پیدا کنم
      در مورد fixed-point هم حتما یاد میگیرم .
      خوب حالا من میخوام پیاده سازی یه فیلتر خیلی معمولی و ساده رو روی fpga کار کنم.
      توی متلب یه دستور filter هست که میزنیم ولی توی vhdl نیست
      نمیدونم core هایی هست که این کارو انجام بده یا نه (واسه آموزش)
      ولی من میخوام خودم بنویسمش و یاد بگیرم اگه فایل آموزشی یا تایپیک مربوط به این موضوع دارید معرفی کنید خیلی ممنون میشم
      اگه میشه یه فایل آموزشی یا تایپیک مربوط به چگونگی استفاده از core های آماده و پیاده سازی اون روی fpga بزارید خیلی خوبه
      بازم ممنون

      دیدگاه


        #4
        پاسخ : انتقال سیگنال از MATLAB به FPGA مدل spartan 3 XCS400

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

        دیدگاه


          #5
          پاسخ : انتقال سیگنال از MATLAB به FPGA مدل spartan 3 XCS400

          ارتباط از طریق پورت سریال کامپیوتر چون با RS232 انجام میشه سرعتش محدود به 115200 بیت بر ثانیه است. پورت سریال فیزیکی که کانکتور DB9 داره تقریباً در کامپیوترهای امروزی منسوخ شده و معمولاً برای ارتباط از مبدل USB به RS232 استفاده میشه ولی در صورتی که از آی سی رابط USB مثلاً FT232 استفاده کنی و مستقیماً با USB کار کنی امکان ارتباط با سرعت تا 3 مگابیت بر ثانیه (طبق دیتاشیت) داری.
          متلب بخشی داره به اسم HDL Coder (ورژن 2013 متلب) که میتونه کد متلب رو به VHDL یا Verilog تبدیل کنه. خودم برای پیاده سازی استفاده نکردم و نمیدونم چقدر جواب میده. Core های آماده رو میتونی یا به صورت فایلهای VHDL یا Verilog از سایتهایی مثل opencores استفاده کنی یا در بین Core های خود نرم افزار (ISE یا Quartus) دنبال Core مورد نظرت بگردی که Core خود نرم افزار دیتاشیت داره.
          در مورد نحوه استفاده از Core هم توی صفحه اول موضوع، مطلب هست.
          لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.
          لطفاً سؤالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
          با تمام وجود گناه کرديم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنيم چه مي کند؟"دکتر شريعتي"
          اگر جايي که ايستاده ايد را نمي پسنديد، عوضش کنيد شما درخت نيستيد!! "پاسكال"
          يا به اندازه ي آرزوهايت تلاش کن يا به اندازه تلاشت آرزو کن. "شکسپير"

          دیدگاه


            #6
            پاسخ : انتقال سیگنال از MATLAB به FPGA مدل spartan 3 XCS400

            پورت سریال یک راه حل معقول برای انتقال اطلاعات به کامپیوتره. اگه شما برد FPGA دارید، حتماً روی اون یه پورت سریال هم هست. اگه نیست که دیگه هیچی! به طراح سخت افزارش باید دست مریزاد بگیم
            واسه پروگرم کردن یه پورت داره که jtag هست و میخوره به پورت پارالل پرینتر (25 پایه)
            فکر کنم سریال باشه ولی نمیدونم میشه با این کار کرد یا نه؟
            لطفا راهمایی کنید
            اینم برد من

            [ftp=ftp://%D9%88%D9%84%DB%8C%20%D8%AF%D8%B1%20%D8%B5%D9%88%D 8%B1%D8%AA%DB%8C%20%DA%A9%D9%87%20%D8%A7%D8%B2%20% D8%A2%DB%8C%20%D8%B3%DB%8C%20%D8%B1%D8%A7%D8%A8%D8 %B7%20USB%20%D9%85%D8%AB%D9%84%D8%A7%D9%8B%20FT232 %20%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87%20%D A%A9%D9%86%DB%8C%20%D9%88%20%D9%85%D8%B3%D8%AA%D9% 82%DB%8C%D9%85%D8%A7%D9%8B%20%D8%A8%D8%A7%20USB%20 %DA%A9%D8%A7%D8%B1%20%DA%A9%D9%86%DB%8C%20%D8%A7%D 9%85%DA%A9%D8%A7%D9%86%20%D8%A7%D8%B1%D8%AA%D8%A8% D8%A7%D8%B7%20%D8%A8%D8%A7%20%D8%B3%D8%B1%D8%B9%D8 %AA%20%D8%AA%D8%A7%203%20%D9%85%DA%AF%D8%A7%D8%A8% DB%8C%D8%AA%20%D8%A8%D8%B1%20%D8%AB%D8%A7%D9%86%DB %8C%D9%87%20%28%D8%B7%D8%A8%D9%82%20%D8%AF%DB%8C%D 8%AA%D8%A7%D8%B4%DB%8C%D8%AA%29%20%D8%AF%D8%A7%D8% B1%DB%8C.]
            ولی در صورتی که از آی سی رابط USB مثلاً FT232 استفاده کنی و مستقیماً با USB کار کنی امکان ارتباط با سرعت تا 3 مگابیت بر ثانیه (طبق دیتاشیت) داری
            من مدار اتصال این آیسی به fpga رو ندارم اگه میشه بزارید (قبلا یه بار به avr وصل کردم جواب داد) و چجور به fpga بفهمونم که این پورت usb الان بهش وصله و چجوری میشه اطلاعات رو واسش بفرستم یا دریافت کنم ؟
            آقای هادی من کل اون تایپیکی که برنامه فیلتر رو نوشته بودید رو خوندم
            من همون برنامه رو میتونم روی این fpga پروگرم کنم؟ یا فقط یه شبیه سازی معمولی بوده؟
            شما داخل برنامه مقادیر fixed-point شده رو گذاشته بودید ولی ممکنه مقادیر مدام تغییر کنه
            مثلا اگر مقادیر ورودی به طور مستمر و لحظه به لحظه در متلب تغییر کنه آیا میشه این مقادیر لحظه به لحظه fix-point بشه و با پورت سریال بیاد تو fpga و fpga این مقادیر رو فیلتر کنه و خروجی رو برگردونه به متلب برای نمایش؟

            دیدگاه


              #7
              پاسخ : انتقال سیگنال از MATLAB به FPGA مدل spartan 3 XCS400

              از دوستان کسی هست پاسخ بده؟؟
              خیلی عجله دارم :sad: :angry:
              ممنون

              دیدگاه


                #8
                پاسخ : انتقال سیگنال از MATLAB به FPGA مدل spartan 3 XCS400

                در صورتی که سرعت پورت سریال کافیه نیازی به USB هم نیست ولی نظر من اینه که اگه آی سی سریال روی بوردت نداری(من که نمیبینم) و مجبوری رابط سریال روی بورد دیگه بذاری، بهتره از USB استفاده کنی.

                FT232 فقط یک رابط هست و از سمت FPGA مثل پورت سریال باهاش برخورد می کنی، این هم نحوه اتصالش:


                هدف از اون برنامه شبیه سازی بود، ولی کافیه که ورودی و خروجی اصلی سیگنال به جای موازی، سری باشن و یه کامپوننت UART بذاری مثلاً میتونی از این ip core استفاده کنی.

                برای این که کل سیگنال رو یک جا داشته باشی از FIFO (صف) که خود ISE این ip core رو داره استفاده کن.
                لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.
                لطفاً سؤالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
                با تمام وجود گناه کرديم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنيم چه مي کند؟"دکتر شريعتي"
                اگر جايي که ايستاده ايد را نمي پسنديد، عوضش کنيد شما درخت نيستيد!! "پاسكال"
                يا به اندازه ي آرزوهايت تلاش کن يا به اندازه تلاشت آرزو کن. "شکسپير"

                دیدگاه


                  #9
                  پاسخ : انتقال سیگنال از MATLAB به FPGA مدل spartan 3 XCS400

                  خیلی ممنون که وقت میزاریدو جواب میدید :smile:
                  بازم سوال دارم.
                  در صورتی که سرعت پورت سریال کافیه نیازی به USB هم نیست ولی نظر من اینه که اگه آی سی سریال روی بوردت نداری(من که نمیبینم) و مجبوری رابط سریال روی بورد دیگه بذاری، بهتره از USB استفاده کنی.
                  آقای هادی منظورتون از آیسی که روی بورد نیست همون max 232 هست دیگه؟
                  اگه هست لطفا مدار اون هم بزارید.
                  من http://www.eca.ir/forum2/index.php?t...7419#msg347419 اینو خوندم و یه آشنایی خوبی نسبت به سریالi پیدا کردم. حالا سوال:
                  این برنامه رو باید توی یه process بریزم کناره برنامه اصلیم؟ که هر دوتاش همزمان کارکنه؟
                  par_en یا که به صورت ورودی تعریف شده چه کار میکنه؟
                  boad rate رو چه جور تنظیم کنم؟؟؟ چون تنظیمات توی کامپیوتر باید با این برنامه یکی باشه
                  ودر مورد ft232 :
                  gnd پورت rs232 کامپیوتر و gnd آی سی ft232 و gnd بورد fpga باید به هم وصل باشند؟؟؟ هر سه تا؟ (توی avr اینجوری بود)
                  طبیعتا اگه ft232 یه رابط باشه سرعتمون بازم اندازه سریال هست دیگه ؟ یا سرعت بالاتر میره؟
                  اگه کابل آماده usb to serial رو بخرم فقط rx tx gnd رو باید به fpga بزنم؟
                  جواب قسمت fixed-[point هم ندادید ، میشه درمورد fixed-point بیشتر توضیح بدید؟؟ و نگفتید آیا میشه مقادیر ورودی رو لحظه به لحظه fix-point کرد؟؟
                  اصن fix-point رو باید با متلب انجام بدم یا با fpga ؟

                  دیدگاه


                    #10
                    پاسخ : انتقال سیگنال از MATLAB به FPGA مدل spartan 3 XCS400

                    آی سی MAX3232 که با 3.3 ولت کار میکنه بهتره:


                    GND ها به هم وصل میشن.

                    ip core ها، ماژولهای آماده ای هستند که شما بدون این که بدونید داخلش چی میگذره به عنوان یه کامپوننت به کدتون اضافه میکنید و ازش استفاده میکنید و فرق دیگه ای با ماژول هایی که خودتون مینویسی و به عنوان کامپوننت استفاده می کنی نداره.
                    پیشنهاد می کنم برای شروع کار با FPGA و VHDL از یک کتاب خوب استفاده کنی، کتاب "آشنایی با تراشهآ‌های FPGA و زبان VHDL" نوشته "کاوه فارغی" کتاب خوبیه.

                    FT232 چون مستقیم با USB کار میکنه سرعت بالاتری داره که میتونی توی دیتاشیتش ببینی.
                    اگه مبدل RS232 بگیری، این سه سیم کافیه و استفاده از بقیه اختیاری هست(معمولاً استفاده نمیشه).
                    مقایر ورودی FPGA باید Fixed-point باشن، با متلب تبدیل به Fixed-point کن(یا هر محیط برنامه نویسی دیگه که مسلط هستی)، منظورت از لحظه ای چیه؟ هر محاسبه ای توی کامپیوتر یه زمانی میگیره چیزی که مهمه اینه که آیا مجموع زمان محاسبات کامپیوتر + زمان ارسال و دریافت داده + زمان محاسبه در FPGA از مدت زمانی که شما انتظار داری خروجی آماده باشه کمتر هست یا نه، در کاربردهای معمول سرعت خیلی مطرح نیست این بحث جایی مطرح میشه که مثلاً حجم زیادی از اطلاعات با سرعت بالا وارد میشه و باید به صورت Real-time پردازش بشه و به خروجی داده بشه.
                    در راهنمای متلب fi رو سرچ کن.
                    لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.
                    لطفاً سؤالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
                    با تمام وجود گناه کرديم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنيم چه مي کند؟"دکتر شريعتي"
                    اگر جايي که ايستاده ايد را نمي پسنديد، عوضش کنيد شما درخت نيستيد!! "پاسكال"
                    يا به اندازه ي آرزوهايت تلاش کن يا به اندازه تلاشت آرزو کن. "شکسپير"

                    دیدگاه


                      #11
                      پاسخ : انتقال سیگنال از MATLAB به FPGA مدل spartan 3 XCS400

                      در مورد uart تقریبا همه چیزو فهمیدم :applause:
                      در مورد fix point هم توجیح شدم
                      متلب یک سیگنال ورودی تولید میکنه که هر لحظه در حال تغییر هست (این سیگنال ممکنه صوت زنده تلوزیون باشه که همیشه در حال پخش هست و اینو به متلب میدیم که در متلب لحظه ای sampeling روش انجام میده و آماده برای فیلتر شدن میشه)
                      حالا سیگنال وردی دیگه از قبل تعیین شده نیست که بشه توی یه txt ذخیره کرد.باید لحظه ای سیگنال به fpga ارسال بشه.(منظور من از لحظه ای این بود ) حالا ممکن یه delay هم این وسط ایجاد بشه که طبیعی هست.
                      آیا میشه بدون ذخیره txt مستقیم ورودی به fpga بیاد و فیلتر بشه؟
                      جدا از این شما توی برنامتون مقادیر ضرایب رو نوشتین دیگه فایل txt برای ضرایب واسه چی میخواستین؟

                      3 تا کتاب امروز خریدم فکر کنم خوب باشند :
                      طراحی خودکار مدار های دیجیتال از سید رضی
                      اصول کار با xilinx fpga و طراحی توسط ise از نهوجی
                      نمونه سازی fpga با مثال هایی از vhdl از سپیدنام

                      دیدگاه


                        #12
                        پاسخ : انتقال سیگنال از MATLAB به FPGA مدل spartan 3 XCS400

                        نیازی به فایل text نیست. این فایل برای شبیه سازی استفاده شده.
                        احتمالاً فایل text ضرایب فیلتر برای مقایسه نتیجه برنامه با برنامه ایست که با استفاده IP Core خود ISE (به فایل ضرایب فیلتر نیاز داره) نوشته شده.
                        لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.
                        لطفاً سؤالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
                        با تمام وجود گناه کرديم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنيم چه مي کند؟"دکتر شريعتي"
                        اگر جايي که ايستاده ايد را نمي پسنديد، عوضش کنيد شما درخت نيستيد!! "پاسكال"
                        يا به اندازه ي آرزوهايت تلاش کن يا به اندازه تلاشت آرزو کن. "شکسپير"

                        دیدگاه


                          #13
                          پاسخ : انتقال سیگنال از MATLAB به FPGA مدل spartan 3 XCS400

                          میخواستم بدونم این مدار 100% جواب میده واسه اتصال به fpga ؟؟؟؟؟
                          تو این مدار vcc آیسی به vcc-usb وصل شده . خوب اینجور که میشه 5 ولت ؟؟ :question:
                          من میخوام سطح ولتاژ سریال حتما 3.3 یا 2.5 باشه لطفا کمک کنید.
                          مدار دیتا شیت یخورده با این فرق میکنه .(البته اون به میکرو داده این واسه fpga هست)
                          یه چیز دیگه توی آلتیوم این ft232rl رو ندارم اگه دارید یه کتابخونه بزارید که این آیسی داخلش باشه .
                          آیا میشه یه رگولاتور lm317 بزاریم واسه تغذیه که هر ولتاژی خواستیم از usb کامپیوتر بگیریم؟؟؟
                          یعنی به vccio ولتاژ 3.3 ولتی بدیم که از usb گرفتیم بعد دادیم به lm317 بعد رسیده به vccio ؟؟؟؟؟
                          اینجور دیگه ولتاژ خارجی هم نیازی نیست :smile:


                          دیدگاه


                            #14
                            پاسخ : انتقال سیگنال از MATLAB به FPGA مدل spartan 3 XCS400

                            سلام
                            این برای ولتاژ 3.3 ولت:

                            خروجیِ 3V3OUT می تونه تا 50mA اضافی برای مدارات دیگه به شما بده. اگه جریان بیشتری لازم دارید، خودتون رگولاتور بذارید سر راه 5 ولت USB. هر ولتاژ دیگه ای هم ازش می تونید بگیرید فقط یادتون باشه جریان USB کامپیوتر محدوده..
                            شکل پایه های آی سی SSOP استاندارده. footprint های Altium رو جستجو کنید پیدا می شه. با دیتاشیت هم مقایسه کنید که یه وقت اشتباه نشه اندازه هاش.
                            بیایید با Google آشتی کنیم!

                            دیدگاه


                              #15
                              پاسخ : انتقال سیگنال از MATLAB به FPGA مدل spartan 3 XCS400

                              سلام وقتتون بخیر اول اینکه تشکر از سایت خوبتون...
                              دوم من میخوام یک مدولاسیون FSK رو با سیمولینک متلب تو FPGA پیاده سازی کنم شما بالا گفتید که با HDL Coder متلب میشه این کار رو انجام داد ولی چجوری؟

                              دیدگاه

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