پیاده سازی تابع لگاریتم در FPGA

blog
۱۳۹۹-۰۳-۲۰
2 دقیقه

مقدمه

یکی از مهترین ویژگی‌های تراشه‌های FPGA قابلیت‌های آن‌ها در پیاده‌سازی انواع توابع ریاضی است. توابع ریاضی ممکن است گاهاً بسیار ساده و ترکیبی از چند عمل ضرب و جمع باشند. بعضاً نیز ممکن است شامل عملگرهای غیرخطی همچون لگاریتم یا توابع مثلثاتی باشند. اگر مدت‌هاست با تراشه های FPGA کار می‌کنید، مطمئناً می‌دانید که برای پیاده‌سازی تابع لگاریتم IP Core آماده وجود ندارد. پس در صورتی که نیار به پیاده سازی تابع لگاریتم در یک الگوریتم داشته باشید باید خودتان آستین‌ها را بالا بزنید و کار را شروع کنید.

شاید برای شما مفید باشد: آموزش FPGA

اولین راه حلی که ممکن است به ذهن طراح برسد، استفاده از یک حافظه ROM است. در این روش مقدار تابع لگاریتم (x‏)log به ازای مقادیر مختلف ورودی x در نرم افزار Matlab محاسبه می‌شود و سپس این مقادیر درون حافظه‌های FPGA ذخیره می‌شوند. در عمل به ازای مقادیر مختلف x یک آدرس از حافظه انتخاب می‌شود، و محتوای ذخیره شده در آن آدرس مقدار تابع (x‏)log است.

با وجود این در بسیاری از موارد ممکن است استفاده از حافظه ROM بهترین و ساده‌ترین گزینه باشد. اما سوأل اینجاست، اگر این کار امکان پذیر نبود چه باید کرد؟ لازم نیست نگران باشید. با چند تکنیک ساده این مسأله قابل حل است. با توجه به اینکه محاسبه لگاریتم در چه مبنایی مورد نیاز است، ممکن است میزان محاسبات مورد نیاز برای دستیابی به پاسخ مطلوب متفاوت باشد. در این آموزش ما کار را با محاسبه عبارت (x‏)log2 شروع می‌کنیم. سپس بحث را گسترش می‌دهیم و محاسبه لگاریتم در سایر مبنا‌ها و یکسری از شرایط خاص را نیز پوشش می‌دهیم. برای درک بهتر مسأله توضیحات همراه با مثال ارائه شده است.

اگر با FPGA آشنایی ندارید اول مقاله FPGA چیست؟ را مطالعه نمایید.

لگاریتم در مبنای ۲

در حالت کلی پیاده‌سازی عبارت (x‏)log2 در FPGA به ازای هر مقدار x دارای یک بخش صحیح و یک بخش اعشاری است. به عنوان مثال برای عدد ۵۳ خواهیم داشت.

Log2(53)=5.72792045=5.7279

مقدار 5 نشان دهنده مقدار صحیح و مقدار 0.7279 بیانگر مقدار اعشاری است. به صورت پیش فرض برای محاسبه (x‏)log2 یک در آن x یک عدد N بیتی است، ابتدا مقدار صحیح و سپس مقدار اعشاری پاسخ را محاسبه می‌کنیم.

محاسبه بخش صحیح که از این پس آن را با نماد S نمایش می دهیم، یک کار نسبتا آسان است. فقط کافی است موقعیت اولین بیت با ارزشی را که مقدار آن ‘1’ است، پیدا کنیم. در مثال عدد ۵۳ در یک نمایش ۸ بیتی به صورت زیر، موقعیت اولین بیت ‘1’ با ۵ است. برای پیدا کردن اولین ‘1’ می‌توان از تابعی تحت عنوان LeadOneDetector استفاده کرد.

پیاده‌سازی لگاریتم در FPGA

در ادامه M بیت بعد از اولین ‘1’ را  انتخاب می‌کنیم. ما از این M بیت برای تعیین بخش اعشاری (x‏)log2 استفاده می‌کنیم.

اطلاعات
0
0
لینک و اشتراک
profile

Sisoog Os

متخصص الکترونیک

کارآفرین, تولید کننده, طراح الکترونیک و ....

مقالات بیشتر
slide

پالت | بازار خرید و فروش قطعات الکترونیک

قطعات اضافه و بدون استفاده همیشه یکی از سرباره‌‌های شرکتها و طراحان حوزه برق و الکترونیک بوده و هست. پالت سامانه‌ای است که بصورت تخصصی اجازه خرید و فروش قطعات مازاد الکترونیک را فراهم می‌کند. فروش در پالت
family

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. وقتی شما در این سامانه، قطعه الکترونیکی را جستجو می‌کنید؛ آی سی به سرعت نتایج جستجوی شما در اکثر فروشگاه‌های آنلاین در حوزه قطعات الکترونیک را نمایش می‌دهد. جستجو در آیسی
family

فروشگاه سیسوگ

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند. برو به فروشگاه سیسوگ
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

دغدغه همیشگی فعالان تخصصی هر حوزه وجود بستری برای گفتگو و پرسش و پاسخ است. سیسوگ فروم یک انجمن آنلاین است که بصورت تخصصی امکان بحث، گفتگو و پرسش و پاسخ در حوزه الکترونیک را فراهم می‌کند. پرسش در سیسوگ فرم
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
خانواده سیسوگ

پالت | بازار خرید و فروش قطعات الکترونیک

قطعات اضافه و بدون استفاده همیشه یکی از سرباره‌‌های شرکتها و طراحان حوزه برق و الکترونیک بوده و هست. پالت سامانه‌ای است که بصورت تخصصی اجازه خرید و فروش قطعات مازاد الکترونیک را فراهم می‌کند.
family

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. وقتی شما در این سامانه، قطعه الکترونیکی را جستجو می‌کنید؛ آی سی به سرعت نتایج جستجوی شما در اکثر فروشگاه‌های آنلاین در حوزه قطعات الکترونیک را نمایش می‌دهد.
family

فروشگاه سیسوگ

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند.
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

دغدغه همیشگی فعالان تخصصی هر حوزه وجود بستری برای گفتگو و پرسش و پاسخ است. سیسوگ فروم یک انجمن آنلاین است که بصورت تخصصی امکان بحث، گفتگو و پرسش و پاسخ در حوزه الکترونیک را فراهم می‌کند.
family

دیدگاه ها

become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله