fpgairan
fpgairan
خواندن ۲ دقیقه·۴ سال پیش

بلاک DMA چیست و چه کاری در FPGA ها انجام می دهد؟

مروری بر ip block های VDMA
همون طور که در بخش axi توضیح دادیم هر تراشه از بلاک هایی تشکیل شده که اطلاعات رو بین هم منتقل می کنن. یکی از این بلاک ها، بلاک DMA هست .

حالا ببینیم این بلاک چه کاری انجام می دهد؟

(DMA (Direct Memory Access

این بلاک برای دسترسی مستقیم به حافظه به کار می‌ره و این امکان رو میده که داده ها از یه بخش سیستم به بخش دیگه منتقل شن‌. ساده ترین کاربردش این هست که داده ها رو از یه قسمت حافظه به قسمت دیگه منتقل می کنه. هم چنین می تونن داده ها رو از هر تولید کننده داده (مثلا ADC) برای هر مصرف کننده داده بفرسته.

(VDMA (Video Direct Memory Access

در این بلاک axi قادر هست اطلاعاتی که در قالب memory mapped هستن رو به stream تبدیل کنه.(این قابلیت در DMA هم وجود داره)

از این بلاک برای پردازش ویدیو در fpga استفاده میشه . در واقع axi این بلاک پهنای باند زیادی داره که می تونه پروتکل های ویدیو رو ساپورت کنه .

خیلی از اپلیکیشن های ویدیو به بافر هایی نیاز دارن که بتونه تغییرات نرخ ارسال فریم ها و همین طور تغییر ابعاد تصاویر رو هندل کنه. و از نکات مثبت این بلاک اینه که این قابلیت رو داره.

در واقع از نقاط قوت این بلاک این هست که میشه پیش پردازش های اولیه رو مثل تغییر رزولوشن , زوم کردن , cropping  و .. انجام داد.

تفاوت های این دو چیست؟

در axi VDMA قابلیت های جدیدی مثل سنکرون کردن فریم های دریافتی با استفاده از بافر های چرخشی ، تغییر دادن رزولوشن و .. وجود داره. ولی در axi DMA دسترسی به حافظه به صورت مرسوم و قدیمی انجام میشه و اطلاعاتی که به صورت stream دریافت میشن به همون ترتیب در DDR های حافظه ذخیره میشن و قابل تغییر نیستن.

منبع

vdma - iranfpga
vdma - iranfpga


fpgaالکترونیکبرقمهندسیتکنولوژی
اجرای پروژه های FPGA ، برگزاری دوره های آموزشی و معرفی بردهای پردازشی
شاید از این پست‌ها خوشتان بیاید