بلوکهای DSP بلوکهای سخت افزاری مهمی هستند که کمک زیادی برای پیاده سازی الگوریتمهای پردازش سیگنال میکنند. الگوریتمهای پردازش سیگنال معمولا نیاز به اجرای حجم زیادی از عملیاتهای سریع جمع و تفریق و ضرب دارند. برای انجام این عملیاتهای محاسباتی میتوان از بلوکهای سخت افزاری DSP در تراشه FPGA استفاده کرد. بلوکهای DSP بکار رفته در تراشه های خانواده SPARTAN6 شرکت XILINX با نام DSP48A1 شناخته میشود. معماری این بلوکها از DSP48A مشتق شده است که در خانواده SPARTAN3 مورد استفاده قرار گرفته اند.
بلوک DSP48A1
بلوک DSP48A
بلوک های DSP48A1 به صورت ستون های عمودی در داخل تراشه سازماندهی شده اند. پیکربندی ستونی عمودی، اتصال یک بلوک DSP به بلوکهای مجاور را تسهیل میکند، بنابراین میتوان آن بلوکها را آبشاری به یکدیگر متصل کرده و اجرای الگوریتمهای DSP مانند فیلترها و دیگر الگوریتمهای سیستولیک را تسهیل میکند.
هر DSP48A1 شامل یک پیش جمع /تفریق کننده با پهنای بیت ورودی 18 بیتی است در گام بعد یک ضرب کننده مکمل دو 18×18 بیتی قرار داده شده است که یکی از ورودی های آن از پیش جمع کننده قبل تامین میشود. خروجی 36 بیتی ضرب کننده پس از گسترش بیت علامت به اندازه 48، یک ورودی جمع/ تفریق کننده در طبقه بعدی بلوک می باشد.
ساختار کلی بلوکهای DSP خانواده سری 6 و 7
در کلیه تراشههای سری ۷ معماری و ساختار بلوکهای ضرب کننده از ستونهایی شامل اسلایسهای DSP48E1 بهره برده است. در این بلوکها ضرب کننده مکمل دو ۱۸×۱۸ با ضرب کنندههای ۱۸×۲۵ جایگزین شده است. همچنین واحد جمع کننده انتهایی به یک ALU که انعطاف پذیری و قابلیت بیشتری را ارائه میدهد، تبدیل شده است.
بلوک DSP48E1
همانطور که گفته شده تمامی تراشه های خانواده سری 7 از یک نوع بلوک DSP استفاده کرده اند در حالی که در سری 6 خانواده های VIRTEX به بلوکهای DSP48E1 مجهز شدند در حالی که خانواده SPARTAN آن از بلوکهای به مراتب ضعیفتر DSP48A1 استفاده میکنند.
در انتها بیان میکنیم که تراشههای FPGA به دلیل داشتن بلوکهای متعدد DSP، توان بالایی در انجام محاسبات موازی و انعطاف پذیری در بهره گیری از این بلوکها دارند. که با این توانایی میتوانند انتخابی مناسب برای بکارگیری در پیاده سازی الگوریتمهای پردازش سیگنال باشند.