بخشی از مقاله
چکیده: پردازش سیگنال در میان مفاهیم طراحی دیجیتال جایگاه اساسی دارد. این تکنولوژی در چند سال اخیر رشد چشم گیری همراه با ارتقا عملکرد داشته است. استفاده از FPGA به منظور طراحی و ارزیابی پردازش سیگنال دیجیتالی به سیستم اجرایی پر طرفدار تبدیل گشته است. از مزایای FPGA برای ساخت فیلتر دیجیتال می توان به نرخ نمونه برداری بالا نسبت به چیپ های DSP مرسوم، هزینه کمتر نسبت به ASIC برای تعداد متوسط و انعطاف بیشتر نسبت به روش های جایگزین اشاره کرد. در این مقاله روشی برای ساخت فیلتر FIR دیجیتال 20 پله سرعت بالا بر روی FPGA ارائه شده است.
در این روش برای افزایش سرعت فیلتر، از پردازش موازی استفاده شده و از LUT بعنوان جایگزین پر سرعت عمل ضرب، بهره گرفته شده است. برای کاهش حجم سخت افزاری از تقارن مضارب فیلتر استفاده شده است و برای کاهش حجم LUT تکنیکی بکار برده شده است که سبب کاهش چشم گیر حجم سخت افزار آن شد. فیلتر پیشنهادی بر روی Virtex-IV با نرم افزار Xilinx ISE سنتز گردید و سرعت کلاک 549,753 مگاهرتز و حجم سخت افزاری 894 اسلایس اشغال شده گزارش گردید. در مقایسه با کارهای قبل سرعت کلاک افزایش محسوسی یافته است و با تکنیک های بکار رفته از افزایش دو برابری حجم سخت افزاری بخاطر -2موازی سازی ساختار فیلتر جلوگیری گردید.
-1 مقدمه
فیلترها را می توان به طور کلی به عنوان سیستم انتخاب سیگنال تعریف کرد که با ایجاد تغییراتی در سیگنال ورودی سبب تسهیل در پردازشهای بعدی می گردد. فیلترها در زمینههای ارتباطات، کنترل خودکار،رادار، هوا فضا، پزشکی، پردازشهای صوت و تصویر و... بکار برده می شوند. اساسا فیلترها به دو نوع دیجیتال و آنالوگ تقسیم می شوند که در این میان فیلترهای دیجیتال به خاطر دقت بالا،قابلیت اطمینان بیشتر، سیگنال به نویز و پایداری بهتر نسبت به فیلترهای آنالوگ، به طور گسترده ای مورد استفاده قرار می گیرند.
طیف مختلفی از فیلترهای دیجیتالی وجود دارد که در این بین فیلترهای FIR و IIR دو فرم رایج فیلترهای دیجیتالی هستند. هر یک از این دو فیلترها مزیت خاص خود را دارند ولی بطور کلی فیلتر FIR برتری بیشتری دارد و با آن امکان ساخت تقریبا همه نوع پاسخ فرکانسی دیجیتالی امکان پذیر است. ساخت این نوع فیلتر معمولا با یک سری از عناصر تاخیر، ضرب کنندهها و جمع کنندهها صورت می پذیرد که ساختار کلی آن در شکل - 1 - نشان داده شده است.]1]
اگر نرخ نمونه برداری بسیار بالایی مورد نیاز باشد می بایست از ساختار سخت افزاری موازی استفاده نمود. چنین فیلترهایی مقدار فضای زیادی را اشغال می نماید و باید روشهایی پیدا نمود که حجم اشغالی را تا حد ممکن پایین آورد. با استفاده از روشهای بکار رفته در این مقاله سعی شده است در کنار افزایش سرعت کلاک سیستم، از افزایش حجم سخت افزاری جلوگیری شود.
-2 بخش تجربی
در این تحقیق، یک فیلتر پایین گذر 20 پله با ورودی 12 بیتی با ضرایب جدول - 1 - مورد بررسی قرار گرفت. به منظور افزایش سرعت کلاک سیستم، استفاده از پردازش موازی روش موثر و کارآمدی است. در پردازش موازی، سیستمی با یک ورودی و یک خروجی SISO1 به سیستمی با چند ورودی و چند خروجی 2MIMO تبدیل می گردد.[3] در این مقاله فیلتر مورد نظر به ساختار 2 موازی به صورت شکل - 2 - تبدیل گردید.
همانطور که در بلوک دیاگرام فیلتر مورد طراحی در شکل - 2 - نشان داده شده است، سیگنال ورودی با اعمال به بلوک 3S/P از سریال به موازی تبدیل گشته و بعد از پردازش آن توسط سیستم 2 موازی، خروجیهای سیستم توسط بلوک 4P/S، خروجی نهایی سیستم را ارائه می دهد. از معایب این روش افزایش چند 2 حجم سخت افزاری است که سبب افزایش هزینه ساخت و افزایش حجم سخت افزاری سیستم می گردد به همین منظور باید از راه کارهایی استفاده گردد که این افزایش حجم سخت افزاری را به حداقل برساند.
در فیلتر FIR ضرایب فیلترمتقارن هستند، اگر از این خاصیت فیلتر بهره برده شود می تواند سبب نصف شدن تعداد ضرب کنندههای فیلتر گردد. با توجه به اینکه ضرایب متقارن با تاخیر در سیگنال ورودی ضرب می گردند، ذخیره سازی برای جبران این تاخیر روش مناسبی به نظر می رسد که در زمان لازم فراخوانی و مورد استفاده قرار گیرد. به همین منظور مطابق شکل - 3 - یک سری رجیستر به صورت آرایه ای برای حاصل ضرب هر مضرب اختصاص یافت که با ورود هر مقدار جدید، رجیسترها شیف پیدا می کند.
عمل ضرب که در پردازش سیگنال کاربرد فروانی دارد و جزو پیچیده ترین قسمتهای پردازش است که به همین دلیل حجم سخت افزاری را بالا برده و سبب کاهش سرعت پردازش می گردد. روشهای جایگزین از قبیل روش شیف و جمع و ... ارائه شده است که تا حدودی موفق بوده اند. یکی از پر سرعت ترین روشهایی که برای انجام عمل ضرب با ضریب ثابت می توان بکار برد استفاده از LUT است که در آن تمامی نتایج از پیش محاسبه و ذخیره شده اند و با آدرس دهی مقدار ورودی، نتیجه حاصل می گردد .[4] این روش نیز در صورتی که تعداد بیت ورودی افزایش یابد ، تعداد نتایج ممکنه نیز به صورت نمایی افزایش میابد.
برای مثال در فیلتر مورد طراحی این مقاله، ورودی دارای 12 بیت است. با توجه به اینکه برای هر یک از بیتها دو مقدار 0 و 1 می تواند قرار بگیرد، لذا تعداد حالتهای کل برای ورودی برابر212 =4096 خواهد شد. با توجه به اینکه برای هر ضریب این بلوک تکرار می گردد، حجم سخت افزاری فیلتر بسیار بالا خواهد شد. برای کاهش حجم سخت افزاری LUT روشی پیشنهاد گردید که سبب کاهش چشم گیر آن شد.
در این روش ورودی 12 بیتی به سه قسمت 4 بیتی تقسیم گردید و برای هر یک از این سه قسمت یک LUT بکار برده شد که در نهایت خروجی این سه LUTها با مقدار شیفت مشخص با هم جمع گردیده و نتیجه نهایی حاصل جمع بدست آمد. با این کار برای هر یک از LUTها با ورودی 4 بیتی تعداد حالات ممکنه برابر 24=16 می گردد که در مجموع سه LUT با 16 آدرس و یا به عبارت دیگر در مجموع 48 آدرس خواهیم داشت که در مقایسه با 4096 آدرس حالت اولیه LUT بسیار کاهش داشته ایم. در شکل - 5 - این روش نشان داده شده است.