fpga 119

در مرحله ی برنامه نویسی دیتاماژول بودیم. از قسمت دیتاماژول فقط کلاک lrck باقی مانده بود. که آن را نیز طراحی کردیم. به این صورت که در یک بلوک موازی alway لبه ی بالارونده ی کلاک lrck را بررسی کرده و در بلوک اصلی درصورتی که در لبه ی بالارونده بودیم کانتر را ریست کرده و شروع به گرفتن دیتا از SDTO میکند. این عمل 16پالس ادامه می یابد.بعد از آن دیگر SDTO و SendR تغییر نمی کنند و از این پس SDTI شروع به گذاشتن دیتا برروی RcvRمیکند.تا پالس32ام و سپس پالسهای 33تا66 تلف می شوند زیرا در نیم سیکل مثبت lrck داده های مربوط به بلندگوی راست و در نیم سیکل منفی داده های مربوط به بلندگوی چپ قرار داده می شوند و چون ما فقط روی یک بلندگو داده گذاشته ایم نیم سیکل مربوط به بلندگوی چپ را تلف می کنیم.

خب این هم از دیتاماژول. حالا نوبت شبیه سازی برنامه می رسه. فکرکنم برنامه مون در سه قسمتی که لازم بود تکمیل شد. باید ببینیم مرحله ی بعدی پروژه چیه؟!

جدید:

خب دیتاماژول که کامل شد نوبت به شبیه سازی این قسمت از برنامه می رسه.

برای شبیه سازی برنامه و رسم waveform مربوطه باید مقادیری دلخواه برای sdti و sampletoak درنظر بگیریم. باید توجه کنیم sampletoak باید در یک زمانی بین 16تا66 امین پالس bclk مقداردهی شود. به نظر من می تونیم با هر لبه ی بالارونده ی lrck مقداردهی اش کنیم. چون فرکانس lrck یک هزاروبیست و چهارم clk است(clk دارای فرکانس 5مگاهرتز است) و هر پریود از clk بیست نانوثانیه است پس می تونیم بنویسیم:

  SampleToAk=01010100...

 forever #20480 SampleToAk=~SampleToAK

یک مقدار 16بیتی تعریف می کنیم(در ماژول tester)

و برای sdti هم با کلاک bclk در مدت پالس 16تا 32ام باید مقادیری تخصیص دهیم.

***lrck همان فرکانس سمپلینگ است .(48کیلوهرتز)

***وجود ابهام در برنامه ی دیتاماژول:

در قسمت always برنامه ی دیتاماژول ابهاماتی وجود دارد که باید رفع کنیم. مثلا اینکه کانتر را بدون شرط با هر لبه ی bclk یکی افزایش می دهیم و درصورتی که یک لبه ی بالارونده از lrck اتفاق بیفتد کانتر را صفر می کنیم. این یعنی اینکه گاهی دو دستور برروی کانتر به طور همزمان می خواهد انجام شود. و این ابهام دارد که آیا کانتر صفر می شود و یا اینکه یکی افزایش می یابد. برای رفع این ابهام باید برنامه را به این صورت تغییر دهیم:

if(lrckr && !lrckrr)

   counter<=0;

else

   counter<= counter+1

 این مشکل برای بار کردن sendR و RcvR هم وجود دارد که باید تصحیحشان کنیم.

  • بنابراین ابتدا لازم است ابهامات دیتاماژول را برطرف کنیم.
  • و سپس با مقداردهی SampleToAK و SDTI در ماژول tester آن را شبیه سازی کنیم.

در مرحله ی بعدی برنامه را روی fpga منتقل کرده و بالاخره تستش می کنیم!!!!17.gif17.gif

البته قسمت sinGen را ننوشتیم که قرار شد بعد از اینکه برنامه را روی fpga ریختیم آن را تولید کنیم(ولی من نفهمیدم چه جوری؟؟!)

/ 3 نظر / 8 بازدید
آرش

با عرض سلام. داستاهای تخیلی من و اژدها با داستان "نجات درخت کهن: خوان اول - افسانه غورباقه طلایی" به روز شد.

کمیته‌ی پی‌جوی آزادی دانشجویان دربند

فراخوان خانواده‌های دانشجویان دستگیر شده مراسم 16 آذر سال 86 درموج دستگیری های بی‌سابقه‌ی دانشجویی در آستانه‌ی روز 16 آذر(روز دانشجو) بیش از 30 تن از دانشجویان آزادی‌خواه و برابری‌طلب دانشگاه‌های سراسرکشور بازداشت شده‌اند. شگفت این که 16 آذر که نماد مبارزه با رژیم وابسته‌ی شاهنشاهی و سلطه‌ی بیگانه بوده است از سوی جمهوری اسلامی نیز تحمّل نمی‌شود. آن چه امسال در روز دانشجو روی داد، تکرار همان صحنه‌هایی است که رژیم گذشته هر ساله در برخورد با جنبش دانشجویی ایجاد می‌کرد. گرامی‌داشت روز دانشجو سنت پنجاه و چند ساله‌ی جنبش دانشجویی ایران است و دانشجویانی که امسال به اتّهام برگزاری مراسمی ، با محوریت مخالفت با جنگ و تحریم، بازداشت شده‌اند در زمره‌ی شریف‌ترین فرزندان این آب و خاک‌اند. ما خواهان آزادی سریع و بی قید و شرط فرزندان اسیر خود هستیم. کمیته‌ی پی جوی آزادی دانشجویان دربند

pas topice micro air vehicle kojast?