در بسیاری از الگوریتمهای پردازش سیگنالهای دیجیتال، نیاز به انجام محاسباتی، روی اعداد مختلط دارید. اما در FPGAها (و به طور کلی در تمامی مدارات دیجیتال)، تحقق فیزیکی یا مداری خاص برای پیادهسازی اعداد مختلط وجود ندارد؛ بنابراین، جهت پیادهسازی و انجام محاسبات روی این اعداد، میبایست از روش خاصی استفاده کرد.
شاید برای شما مفید باشد: آموزش FPGA
در زبان VHDL، تایپ یا نوع دادهای برای تعریف یک سیگنال، به صورت مختلط نداریم. در عین حال، در بسیاری از الگوریتمهای پردازش سیگنال، شما نیاز دارید محاسبات مختلفی مانند ضرب و جمع را، روی اعداد مختلط انجام دهید. بنابراین، سوالی که پیش میآید این است که چگونه این کار را در مدارات دیجیتال انجام دهیم؟
در این آموزش، قصد دارم به صورت کوتاه و کاربردی، با ذکر یک مثال و به کمک کد VHDL، اعداد مختلط را در FPGA پیادهسازی کنم.
اعداد مختلط
همانطور که میدانیم، هر عدد مختلط شامل دو بخش حقیقی (Real) و موهومی (Imaginary) است. به عنوان مثال، عدد مختلط X، به صورت زیر نمایش داده میشود:
X = xr + j xi
که در آن، xr، بخش حقیقی و xi، بخش موهومی X است.
کلیات ضرب دو عدد مختلط در FPGA
اکنون فرض کنید که میخواهیم ضرب دو عدد مختلط X و Y را در FPGA پیادهسازی کنیم. پس، همانند شکل زیر، دو ورودی X و Y، و یک خروجی F خواهیم داشت:
اما برای اینکه پورتهای مختلط ورودی و خروجی را در FPGA نشان دهیم چه راهحلی داریم؟
اگر با FPGA آشنایی ندارید اول مقاله FPGA چیست؟ را مطالعه نمایید.
سادهسازی ضرب دو عدد مختلط روی کاغذ
ابتدا اجازه دهید، ضرب این دو عدد را روی کاغذ انجام دهیم و آن را ساده کنیم؛ برای حاصلضرب X و Y رابطهی زیر را خواهیم داشت:
پس، خروجی F، از یک بخش حقیقی Fr و یک بخش موهومی Fi تشکیل شده است.
بنابراین، با محاسبهی سادهای که روی کاغذ انجام دادیم، تکلیف ما برای پیادهسازی مشخص شد؛ بدین ترتیب که با داشتن بخشهای حقیقی (fr) و موهومی (fi) از سیگنال F، حاصلضرب X و Y را خواهیم داشت. حالا کافی است تا دو عبارت fr و fi را در FPGA و به کمک کد VHDL پیادهسازی کنیم.
پیادهسازی ضرب دو عدد مختلط در FPGA
روشی که برای نشان دادن ورودی و خروجیهای مختلط در FPGA، استفاده میکنیم این است که به ازای هر عدد مختلط، دو سیگنال تعریف میکنیم؛ یک سیگنال را برای بخش حقیقی، و دیگری را برای بخش موهومی عدد مختلط در نظر میگیریم. درواقع، ورودی و خروجیهای سیستم ما به شکل زیر خواهند بود: