با سلام خدمت اقای ثقفی وهمکاران
با توجه به اینکه کد های که نوشته میشود سنکرون با لبه بالا رونده کلاک است.اگر نرخ دیتای ورودی به fpgaاز کلاک ان بیشتر باشد (برحسب فرکانس)چه راه حلی وجود دارد .مثلا اگر نرخ دیتای ورودی بر حسب دوره تناوب ان ۱٫۳nsباشد در حالیکه پریود کلاک ورودی ۱۰ نانو (۱۰۰MHz)باشد.در ADCهای با نرخ نمونه برداری بالا این مورد وجود دارد.وممکن است دیتا از دست برود
باتشکر از شما
سلام
امیدوارم پاسخی که به سوال شما میدم صحیح باشه
در مورد صحیح بودن پاسخ استاد و دیگر دوستان در بحث شرکت کنند
۱- شما میتونید دیتای نمونه برداری شده با سرعت بالا رو در یک حافظه موقت ذخیره سازی کنید و با کلاک پایینتر پردازش مورد نظرتون را در fpga انجام بدید. شاید fifo هم بتونه در این موضوع کارایی داشته باشه
۲- شما میتونید فرکانس کلاک را با DCM افزایش بدید. تنها نته ای که باید در نظر داشته باشید اینه که افزایش فرکانس کلاک محدوده و سقف خاصی دارد و برای چیپ های مختلف متفاوت می باشد و با مراجعه به دیتا شیت می تونید از محدودیت ها اطلاع پیدا کنید
موفق باشید
سلام،
ممنون از پاسخ درست آقای معزی. من در تکمیل صحبت شما این نکته را اضافه میکنم که در شرایط این مساله، امکان نمونهبرداری با کلاک پردازش FPGA که در این مثال ۱۰۰ مگاهرتز بود وجود ندارد.
راه حلی که معمولا وجود دارد این است که شما کلاک دیگری ایجاد کنید با فرکانس مورد نیاز برای نمونهبرداری. میتوانید با همین کلاک بیشتر، نمونهبرداری را انجام دهید و در حافظهای درون یا بیرون FPGA ذخیره کنید. سپس با کلاک پردازش که ۱۰۰ مگاهرتز بود، از این حافظه بخوانید و پردازش را انجام دهید.
البته در این روش، همواره بخشی از دیتای ورودی از دست میرود، مگر اینکه به مقدار کافی موازیسازی انجام دهید.
موفق باشید.
با سلام. به استاد و اقای معزی عزیز.
اگر بخواهم دیتای ورودی رو در fifo هم ذخیره کنم باز باید سنکرون با کلاک ورودی fpga باشه در هر صورت سرعت دیتای ورودی از کلاک خود fpgaبالاتر است.
از طرفی ایا امکان درست کردن فرکانس بالاتر از کلاک fpgaتوسط خودش وجود دارد؟و در ضمن مفهوم موازی سازی رو متوجه نمیشم. اگه مختصرا توضیح دهید ممنون میشم
درنمونه ای که بنده اشاره دارم نرخ نمونه برداری ۶۵MSPSاست که زمان نمونه برداری حدود۱۵٫۳۸نانو است و در این مدت زمان میبایستی ۱۲بیت دیتا دریافت گردد (دقت ۱۲ بیت)وهر دیتا هم با لبه بالا روندن وپایین رونده باید دریافت گردد که برای هر بیت حدود۱٫۳نانو ثانیه است یعنی کلاک ورودی FPGAمیبایستی تشخیص لبه بالا رونده و پایین رونده کلاک دیتای ورودی را در هر ۱٫۳نانو ثانیه داشته باشد.احتمال این هم وجود دارد که بنده درست متوجه نمودار تایمینگ قطعه نشده باشم .و محاسبات اشتباه باشد!!
باتشکر
اولا فکر میکنم درست متوجه نمودار تایمینگ نشدید چون بیت به بیت اصولا قرار نیست نمونهبرداری شود و احتمالا فرکانس نمونهبرداری لازم در مساله شما همان ۶۵ مگاهرتز است.
دوما شما به کمک بلوک DCM در FPGA میتوانید فرکانس ورودی به FPGA را به مقادیر دلخواه تغییر دهید و نمونهبرداری را در صورت لزوم با آن فرکانس انجام دهید و در یک حافظه قرار دهید و پردازش را با فرکانس دیگر انجام دهید.