رشته : مهندسی الکترونیک درس: معماری کامپیوتر
چند تا پروژه کوارتوس فوری دارم سه تا تمرین
17:07
- تمرین بعدی کوارتوس طراحی و پیادهسازی ضرب کننده با روش shift-add هست
مدار دو عدد 8 بیت از ورودی دریافت میکند و یک حاصلضرب 16 بیتی به خروجی میدهد. یک ورودی به عنوان start\_mul وجود دارد که هنگام یک شدن آن، مدار اعداد را از ورودی دریافت و عملیات ضرب را شروع میکند. پس از اتمام ضرب، کاربر میتوان ورودی start\_mul را مجددا یک نماید تا ضرب اعداد جدیدی آغاز شود. تکنیک افزایش سرعت در اعداد کوچک هم که گفتیم برای توقف ضرب کننده به کار ببرید. طراحی ASM chart و استیت ماشین و مدار دیتا بر عهده دانشجوست و جزئیات نحوه ارتباط با کاربر هم طبق سلیقه در نظر گرفته شود.
- تمرین بعدی کوارتوس مدار block copy هست. یک رم 1 پورت داریم (عرض باس داده و آدرس هر دو 8 بیت) که داخلش دیتا وجود دارد، مدار ما یک بلوک داده را از محلی از رم به محل دیگر داخل همان رم کپی میکند. مدار 3 ورودی 8 بیت از کاربر میگیرد (آدرس مبدا، آدرس مقصد و تعداد) و پس از فعال شدن ورودی تک بیت start عملیات را شروع میکند. (فرض کنید محلهای مبدا و مقصد همپوشانی ندارند).
خروجی مدار برای ترسیم شکل موج سیگنالهای تولید شده برای رم (آدرس و دیتا و wren) و خروجی داده رم هستند.رم استفاده شده صرفا باید رم تک پورت موجود در مدلهای cyclone باشد و استفاده از انواع دیگر رم مجاز نیست.کاهش زمان اتمام عملیات برای کپی کردن n داده از 3n کلاک به 2n کلاک امتیاز مثبتی خواهد داشت.
- تمرین بعدی کوارتوس (بخشی از پروژه پایانی):
پیادهسازی cpu اصلاحی neumann با باس مشترک داده و رم سنکرون تک پورت - باس داده 16 بیت، باس آدرس 12 بیت (توضیحات بیشتر آخر ویدئو جلسه) - به دلیل اتصالات مستقیم تمام رجیسترها asm chart این مدار کمی با شکل فوق تفاوت خواهد داشت و دارای 6 سیکل خواهد بود نه 8.پردازنده حداقل دارای 8 opcode به شرح زیر خواهد بود:0 load1 store2 add3 and4 jump5 jumpZ6 comp7 shiftRوقت برای انجام کل پروژه (cpu و قسمت دوم که بعدا تعیین میکنم) مجموعا چهار هفته خواهد بود. قسمت اول رو ظرف یک یا دو هفته آینده باید تحویل بدید. قسمت دوم روی همین قسمت اول بنا خواهد شد.موارد پیشنهادی برای امتیاز مثبتی:1- پیاده سازی دستورات استک (push pull) و همچنین امکان فراخوانی تودرتو توابع (دستورات call ret) با استفاده از همان استک - نیم امتیاز2- پیاده کردن دستورات با آدرسدهی غیر مستقیم با opcode های زیر8 iLoad9 iStoreA iAddB iAnd3- کاهش سیکلهای اجرای هر دستور تا دو سیکل (کاهش به حدود 3~4 سیکل هم نصف امتیاز)4- تبدیل معماری به شبههاروارد با استفاده از رم دو پورت سنکرون و کاهش سیکل دستورات (کاهش تا 1 سیکل ممکن است، کاهش به حدود 2 سیکل ¾ امتیاز)
- برای تحویل پروژه اول CPU، من از الان یک کد تست میذارم که همه اون رو باید روی مموری لود کنن که بعدا موقع تحویلش بتونیم سریع و دقیق حضوری تست کنیم.
این کد که اینجا میذارم (و فایل mifش هم بالا هست) تمام 8 دستور cpu رو تحت شرایط مختلف تست میکنه و حکم جمله the quick brown fox jumps over the lazy dog رو داره (فلسفه این جمله اینه تمام حروف الفبا A تا Z رو داره!)\`\`\`0 LOAD 201 JMPZ B2 AND 203 CMP4 RSHIFT5 AND 216 JMPZ 97 JUMP B8 STORE 229 LOAD 22A STORE 23B LOAD 23C ADD 24D STORE 24E JUMP B20 2023 (hex)21 9011 (hex)22 0002 (hex)23 0000 (hex)24 0001 (hex)\`\`\`در نهایت باید آکومولاتور بعد از حدود 70 کلاک (11 دستور) شروع به شمارش اعداد فرد بعد از 3 کنه (و عدد 2 لابهلاشون). اتفاقاتی که توی اون 70 کلاک میافته تعیین کنندهس؛ فقط اگر همه دستورات درست باشه cpu وارد سیکل شمارش میشه
- فایل را ضمیمه کردم
این آگهی از وبسایت پارسکدرز پیدا شده، با زدن دکمهی تماس با کارفرما، به وبسایت پارسکدرز برین و از اونجا برای این شغل اقدام کنین.
هشدار
توجه داشته باشید که دریافت هزینه از کارجو برای استخدام با هر عنوانی غیرقانونی است. در صورت مواجهه با موارد مشکوک، با کلیک بر روی «گزارش مشکل آگهی» به ما در پیگیری تخلفات کمک کنید.