DSD_Assignment_2.pdf

‫به نام خدا‬
‫نیم سال دوم ‪3141-49‬‬
‫مدرس ‪ :‬حسینی‬
‫دستیار آموزشی ‪ :‬جهاندار‬
‫مهلت تحویل ‪3141/34/49 :‬‬
‫طراحی سیستمهای دیجیتال‬
‫تمرین سری دوم‬
‫دانشگاه صنعتی شریف‬
‫توصیف در سطح جریان داده‬
‫دانشکده مهندسی کامپیوتر‬
‫سؤال ‪1‬‬
‫الف) حاصل عبارات زیر را به فرم باینری با عرض بیت موردنیاز به دست آورید‪.‬‬
‫‪~^7’b000_0000‬‬
‫)‪a‬‬
‫‪4’d7 * 3’h0‬‬
‫)‪b‬‬
‫‪4’d3 + 3’h2‬‬
‫)‪c‬‬
‫‪8’hC7 ^ 8’h66‬‬
‫)‪d‬‬
‫‪6’b00_0000 | 6’b00_0000‬‬
‫)‪e‬‬
‫‪6’b00_0000 || 6’b00_0000‬‬
‫)‪f‬‬
‫‪!8’d33‬‬
‫)‪g‬‬
‫‪5’b00000<< 2‬‬
‫)‪h‬‬
‫سؤال ‪2‬‬
‫‪3‬‬
‫الف) در شبکههای اترنت سریع برای از دست نرفتن همزمانی میان فرستنده و گیرنده از یک مکانیسم همزمانی به نام ‪4B5B‬‬
‫استفاده میشود‪ .‬در این مکانیسم‪ ،‬دادههای ‪ 9‬بیتی به دادههای ‪ 5‬بیتی تبدیل میشوند که حداقل یک عدد ‪ 3‬منطقی در ‪ 5‬بیت‬
‫خروجی وجود داشته باشد‪ .‬دلیل این کار وجود حداقل یک انتقال از صفر به یک در کدینگ ‪ NRZI‬پسازآن است‪ .‬جدول‬
‫درستی کد کننده ‪ 4B5B‬در اینترنت موجود است‪ .‬ابتدا این جدول را پیداکرده‪ ،‬سپس یک انکودر و یک دیکودر ‪ 4B5B‬در‬
‫سطح جریان داده‪ 4‬پیادهسازی کنید‪( .‬منظور از انکودر مداری است که دادههای ‪ 9‬بیتی باس ‪ MII‬را گرفته و دادههای ‪ 5‬بیتی‬
‫کد شده را تولید نماید‪ ،‬دیکودر نیز برعکس انکودر)‪.‬‬
‫برای انکودر و دیکودر توصیفشده ‪ Testbench‬نوشته و حاالت زیر را به ترتیب به ورودی مدارها اعمال و تصویر پنجره‬
‫‪ Wave‬نرمافزار ‪ Modelsim‬را در گزارش قرار دهید‪ ( .‬خط اول برای انکودر و خط دوم برای دیکودر )‬
‫‪I4B=0x3 -> I4B=0xA -> I4B=0x3 -> I4B=0x0 -> I4B=0xA -> I4B=0x0 -> I4B=0xF‬‬
‫‪I5B=0x0F -> I5B=0x0A -> I5B=0x0B -> I5B=0x04 -> I5B=0x0E‬‬
‫‪ ‬فایلهایی که میبایست تحویل داده شوند ‪ :‬فایل توصیف انکودر و دیکودر به زبان ‪ Verilog‬و فایل های‬
‫‪Testbench‬‬
‫‪‬‬
‫مواردی که میبایست در گزارش قید شود ‪ :‬جدول کدینگ ‪ ، 4B5B‬بلوک دیاگرام انکودر و دیکودر ‪4B5B‬‬
‫‪ ،‬تصاویر پنجره ‪ Wave‬نرم افزار ‪ Modelsim‬برای هر دو ‪ Testbench‬مربوط به انکودر و دیکودر‬
‫‪Fast Ethernet‬‬
‫‪Dataflow‬‬
‫‪1‬‬
‫‪2‬‬
‫سؤال ‪3‬‬
‫الف) یک مقایسه کننده عددی برای مقایسه دو عدد ‪ 5‬بیتی با یکدیگر طراحی کنید‪ .‬مدار شما باید دارای ورودی و‬
‫خروجیهایی به شرح زیر باشد ‪:‬‬
‫(‪module mag_comparator‬‬
‫‪input [4:0] A,‬‬
‫‪input [4:0] B,‬‬
‫‪output A_eq_B,‬‬
‫‪output A_gt_B, // A greater than B‬‬
‫‪output A_lt_B // A less than B‬‬
‫;)‬
‫ورودیهای ‪ A‬و ‪ B‬را اعداد بدون عالمت در نظر بگیرید‪ .‬مدار شما باید در سطح جریان داده توصیف شود‪.‬‬
‫ب) توسط ‪ 4‬ماژول ‪ 5 mag_comparator‬بیتی که در بخش قبل طراحی کردهاید‪ ،‬یک ماژول ‪ 31 mag_comparator‬بیتی‬
‫طراحی کنید‪ .‬در این طرح فقط مجاز به استفاده از ماژولهای ‪ mag_comparator‬و گیتهای منطقی استاندارد هستید‪.‬‬
‫ج) با استفاده از دو ‪ Testbench‬از صحت عملکرد مدارهای خود ( ماژول ‪ 5 mag_comparator‬بیتی و ‪ 31‬بیتی ) خود‬
‫اطمینان حاصل نمایید‪ .‬تصاویر پنجره ‪ Wave‬را در گزارش ضمیمه کنید‪.‬‬
‫‪ ‬فایلهایی که میبایست تحویل داده شوند ‪ :‬فایل توصیف سطح جریان داده ماجول ها و ‪ Testbench‬ها‬
‫‪ ‬مواردی که میبایست در گزارش قید شود ‪ :‬تصویر پنجره ‪ Wave‬نرمافزار ‪ Modelsim‬برای هر دو‬
‫‪ ،Testbench‬طرح مدار ماجول ‪ 31 mag_comparator‬بیتی ( ماجول های ‪ 5‬بیتی طراحی شده در قسمت الف‬
‫را در این طرح بصورت ‪ black box‬در نظر بگیرید )‬
‫سؤال ‪4‬‬
‫الف) یک بلوک ‪ ALU‬دارای عملیات جمع‪ ،‬تفریق‪ ،‬ضرب و ‪ XOR‬را با استفاده از توصیف سطح جریان داده مدل کنید‪.‬‬
‫ورودیهای ‪ ALU‬دو پورت ‪ 33‬بیتی و خروجی آن ‪ 44‬بیت است‪ .‬برای ‪ XOR‬یک ماژول نوشته و از آن در ‪ ALU‬استفاده‬
‫نمایید‪ .‬این ‪ ALU‬باید دارای یک ورودی دستور باشد تا عملیات مناسب انتخاب گردد‪ .‬ورودی دستور ‪ 1‬بیتی و به شرح زیر‬
‫است ‪:‬‬
‫‪Operation‬‬
‫‪Output‬‬
‫]‪ALU_INPUT[2:0‬‬
‫‪Add‬‬
‫‪A+B‬‬
‫‪0‬‬
‫‪Add‬‬
‫‪A+A‬‬
‫‪1‬‬
‫‪Add‬‬
‫‪B+B‬‬
‫‪2‬‬
‫‪Subtract‬‬
‫‪A xor B‬‬
‫‪3‬‬
‫‪Subtract‬‬
‫‪B–A‬‬
‫‪4‬‬
‫‪Multiply‬‬
‫‪A*B‬‬
‫‪5‬‬
‫‪Forward‬‬
‫‪A‬‬
‫‪6‬‬
‫‪Forward‬‬
‫‪B‬‬
‫‪7‬‬
‫ب) توسط یک ‪ Testbench‬از صحت عملکرد مدار اطمینان حاصل کنید‪ .‬ورودیهای مدار میبایست طبق قاعده بیانشده در‬
‫سؤال‪ 4‬تمرین سری ‪ 3‬باشد‪ .‬کلیه حالتهای عملکرد به ترتیب جدول باال در ‪ Testbench‬خود آزمایش نمایید‪.‬‬
‫‪ ‬فایلهایی که میبایست تحویل داده شوند ‪ :‬فایل توصیف سطح جریان داده ماجول ها و ‪ Testbench‬ها‬
‫‪‬‬
‫مواردی که میبایست در گزارش قید شود ‪ :‬تصویر پنجره ‪ Wave‬نرمافزار ‪ Modelsim‬برای ‪Testbench‬‬
‫ماجول ‪ALU‬‬
‫نکات‬
‫‪ .3‬کلیه گزارشها باید در قالب تعیینشده تحویل داده شوند‪ .‬فایل ‪ Word‬نمونه قالب تحویل تمرینها در وبسایت درس موجود‬
‫است‪ .‬عدم رعایت این نکته موجب کسر نمره خواهد شد‪.‬‬
‫‪ .4‬مهلت ارسال پاسخها تا قبل از برگزاری کالس حل تمرین میباشد و پسازآن با توجه به حل تمرینها در کالس حل تمرین‪،‬‬
‫تمرین تحویل گرفته نمیشود‪.‬‬
‫‪ .1‬پاسخهای خواستهشده را به صورت یک فایل فشرده با فرمت ‪ zip‬و یا ‪ rar‬درآورده و به آدرس ایمیل اعالمشده ارسال نمایید‪.‬‬
‫‪ .9‬پس از تهیه فایل فشرده حاوی گزارش و برنامه های خواسته شده‪ ،‬فایل فشرده شده را با درج شماره دانشجویی در عنوان ایمیل‬
‫به آدرس ‪ [email protected]‬ارسال نمایید‪.‬‬
‫‪ .5‬در صورت مشاهده کپیبرداری‪ ،‬نمره فرد کپی گیرنده و کپی دهنده ‪ -311‬در نظر گرفته خواهد شد‪.‬‬
‫‪ .6‬در تحویل تمرینها دقت نمایید دقیقاً موارد خواسته شده را تحویل دهید و از تحویل فایلهای خواسته نشده بپرهیزید‪.‬‬
‫‪ .7‬کالس حل تمرین‪ ،‬روزهای یکشنبه ساعت ‪ 34‬تا ‪ 31‬در ساختمان ابنسینا کالس ‪ 4‬برگزار خواهد شد‪ .‬کالسها بهصورت‬
‫یک هفته در میان به رفع اشکاالت و حل تمرینها اختصاص خواهند یافت‪ .‬بدینصورت که هفته اول پس از آپلود تمرین‬
‫مختص رفع اشکال‪ ،‬و هفته دوم مختص حل تمرینها میباشد‪.‬‬
‫‪ .8‬تمرینها هر دو هفته یکبار بر روی وبسایت درس قرار خواهند گرفت‪ ،‬و مهلت انجام هرکدام ‪ 4‬هفته است‪.‬‬
‫‪ .4‬در صورت وجود هرگونه ابهام در صورت تمرین‪ ،‬موضوع را از طریق آدرس ‪ [email protected]‬به اطالع استاد‬
‫حل تمرین برسانید‪.‬‬
‫‪ .31‬جهت روشن شدن روند تصحیح پاسخ ها ‪ ،‬گزارش ها و فایل های تحویلی کلیه دانشجویان‪ ،‬پس از برگزاری کالس رفع‬
‫اشکال و حل تمرین بر روی وب سایت درس آپلود و توسط دیگران قابل دسترس خواهد بود‪.‬‬
‫‪ .11‬پل ارتباطی میان شما و استاد حل تمرین؛ وبسایت درس و آدرس ایمیل واردشده در سامانه ‪ edu‬میباشد‪ .‬لطفاً از صحت‬
‫آدرس ایمیل خود در سامانه ‪ edu‬مطمئن شوید‪ .‬اطالعیههای مهم در رابطه باکالس حل تمرین از طریق ایمیل به اطالع شما‬
‫خواهد رسید‪.‬‬