از پارسکدرز بیشترین بهره را ببرید و رویای کاری خود را زندگی کنید.
چهار سال پیش منتشر شده
تعداد بازدید: 1492
کد پروژه: 249070
شرح پروژه
دو عدد 16 بیتی را با استفاده از الگوریتم booth به هم ضرب میکنیم. پیاده سازی با پایتون و پکیج myhdl ( همان پکیجی که به پایتون امکان میده پایتون سخت افزار توصیف کنه و کد نهایی رو بتونیم به verilog تبدیل کنیم ) و در آخر با گذاشتن کانورتر کد پایتون را به verilog تبدیل میکنیم .
توجه - بدون استفاده از پکیج myhdl سه سوته میشه کد نوشت. هدف پیاده سازی با پکیج myhdl است
الگوریتم booth:
دو عدد از ورودی دریافت میکنیم x و y به صورت int. حال x و y را به باینری 16 بیتی تبدیل میکنیم. عدد دوم ( y ) به اینگونه ویرایش میابد که یک 0 به سمت راست آن اضافه میشود و 2 عدد 0 به سمت چپ آن اضافه میشود و y تبدیل به یک عدد 19 بیتی میشود ( Y18Y17Y16Y15 ... Y2Y1Y0= Y و Y0 = Y17 = Y18 = 0 ). حال بیت های y را به دسته های سه بیتی تقسیم میکنیم دسته اول از سمت راست شامل بیت Y0 ( همان صفر که اضافه کردیم به سمت راست y ) و بیت Y1 و بیت Y2- دسته دوم شامل بیت Y2 و بیت Y3و بیت Y4 - دسته سوم شامل بیت Y4 و بیت Y5 و بیت Y6 و ... و دسته نهم شامل بیت های Y16 و Y17 و Y18. حال با الگوریتم booth حال ضرب x و y به 9 تا جمع تبدیل میشود: مرحله اول : دسته اول را در نظر میگیریم به ترتیب از سمت چپ Y2Y1Y0 ، حال نگاه میکنیم که در جدولی که در پایین کشیده شده Y2Y1Y0 کدام حالت را تشکیل میدهد برای مثال اگر فرض کنیم Y2Y1Y0 =100 با توجه به جدول میفهمیم که عدد x باید در 2- ضرب شود ( شیفت به چپ و مکمل 2 شدن) حال حاصل دسته اول s1 بدست آمد. مرحله دوم: دسته دوم را در نظر میگیریم به ترتیب از سمت چپ Y4Y3Y2، حال نگاه میکنیم که در جدول Y4Y3Y2 چه حالتی را تشکیل میدهد اگر بر فرض مثال Y4Y3Y2 = 110 باشد آنگاه x باید در 1- ضرب شود ( مکمل 2 عدد x ) و حاصل s2 بدست میاید چون دسته دوم بود پس 2 به توان 1-2 عدد صفر از سمت راست به عدد s2 اضافه میشود ( s2 عدد 18 بیتی میشود که دو s0 , s1 آن صفر است ). مرحله سوم: دسته سومرا در نظر میگیریم به ترتیب از سمت چپ Y6Y5Y4، حال نگاه میکنیم که در جدول Y6Y5Y4 چه حالتی را تشکیل میدهد اگر بر فرض مثال Y6Y5Y4 = 000 باشد آنگاه x باید در 0 ضرب شود و حاصل s3 بدست میاید چون دسته سوم بود پس 2 به توان 1-3 عدد صفر از سمت راست به عدد s3 اضافه میشود. و .... و مرحله نهم: .... حاصل s9 بدست میاید و چون دسته 9 است 2 به توان 1-9 عدد صفر از سمت راست به s9 اضافه میشود.
در آخر همه s1 , s2 , ... , s9 با هم جمع میشود
جدول:
000: x در 0 ضرب میشود
001:: x در 1 ضرب میشود
010: x در 1 ضرب میشود
011: x در 2 ضرب میشود
100: x در 2-ضرب میشود
101: x در 1- ضرب میشود
110: x در 1- ضرب میشود
111: x در 0 ضرب میشود
مهارت ها و تخصص های مورد نیاز
مهلت برای انجام
5روز
وضعیت مناقصه
بسته
درباره کارفرما
عضویت شش سال پیش
نیاز به استخدام فریلنسر یا سفارش پروژه مشابه دارید؟
قادر به انجام این پروژه هستید؟
متأسفانه مهلت ارسال پیشنهاد این پروژه به پایان رسیده و پروژه بسته شده است؛ اما فرصتهای متعددی در سایت موجود میباشد.
به رایگان یک حساب کاربری بسازید
مهارتها و تخصصهای خود را ثبت کنید، رزومه و نمونهکارهای خود را نشان دهید و سوابق کاری خود را شرح دهید.
به شیوهای که دوست دارید کار کنید
برای پروژههای دلخواه در زمان دلخواه پیشنهاد قیمت خود را ثبت کنید و به فرصتهای شغلی منحصر به فرد دسترسی پیدا کنید.
با اطمینان دستمزد دریافت کنید
از زمان شروع کار تا انتهای کار به امنیت مالی شما کمک خواهیم کرد. وجه پروژه را از ابتدای کار به امانت در سایت نگه خواهیم داشت تا تضمین شودکه بعد از تحویل کار دستمزد شما پرداخت خواهد شد.
میخواهید شروع به کار کنید؟
یک حساب کاربری بسازید
بهترین مشاغل فریلنسری را پیدا کنید
رشد شغلی شما به راحتی ایجاد یک حساب کاربری رایگان و یافتن کار (پروژه) متناسب با مهارتهای شما
است.
پیدا کردن کار (پروژه)
تماشای دمو روش کار