تبلیغات
باران الکترونیک - تفاوت Block RAM و Distributed RAM در FPGA­های Xilinx
یکشنبه 12 خرداد 1392  08:33 ب.ظ
نوع مطلب: (FPGA ،Xilinx ،) توسط: امیرحسین رستمی


برای این که تفاوت بین این دو رم را بهتر متوجه شویم باید نگاهی به ساختار داخلی FPGA بیاندازیم. ساختار داخلی FPGA، Spartan-3 در شکل 1 نشان داده شده است. در ادامه به توضیح CLB و Block RAM می­پردازیم.


Spartan-3 Structure


CLB (Configurable Logic Block) یا بلوک منطقی قابل پیکربندی منابع اصلی برای تشکیل دادن مدارات همزمان و ترکیبی میباشند. برنامه­ای که به زبان توصیف سخت­افزار (HDL) می­نویسید در CLB پیاده می­شود. هر CLB شامل دو جدول جست و جو LUT برای پیاده ساری logic و دو المان ذخیره سازی که میتواند به عنوان فلیپ فلاپ  یا لچ استفاده شود. LUT ها میتوانند به عنوان یک حافظه 16x1 (RAM16) و یا به عنوان یک شیقت رجیستر 16 بیتی SRL استفاده شوند. در طراحی، بیش­تر لاجیکهای عمومی به طور خودکار روی CLB ها پیاده سازی می شوند. LUT ها در واقع حافظه  RAMمی­باشند که در سراسر قطعه پخش شده­اند. از این LUT ها می­توانیم به عنوان RAM استفاده کنیم که در این صورت به آن­ها حافظه توزیع شده یا Distributed RAM گفته می­شود. درSpartan-3 هر CLB شامل 64 بیت رم تک پورتی یا 32 بیت رم دو پورتی می­شود. برای پیاده­سازی حافظه­های بزرگ­تر با استفاده از CLBها، رم­ها موازی می­شوند.

اما block RAM یک حافظه اختصاصی می­باشد که شامل چندین کیلو بیت رم می­شود. برای مثال خانواده Spartan-3 بین 72 کیلوبیت تا 1,872کیلوبیت رم دارد. این حافظه به صورت بلوک­های دوبیتی 18 کیلوبیتی قابل استفاده می­باشند. اگر برای داده­های کم از این حافظه استفاده کنید، آن­گاه بقیه فضای این 18 کیلوبیت را از دست می­دهید.

نتیجه

بنابراین با توجه به مطالبی که گفته شد Distributed RAM‏ ‏برای پیاده سازی حافظه­های کوچک و FIFO مناسب می­باشد ولی Block RAM برای استفاده در حافظه‎های بزرگ مناسب می­باشد.



نظرات()   
   
 
لبخندناراحتچشمک
نیشخندبغلسوال
قلبخجالتزبان
ماچتعجبعصبانی
عینکشیطانگریه
خندهقهقههخداحافظ
سبزقهرهورا
دستگلتفکر
آخرین پست ها