Description
دانشکده مهندسی برق و کامپیوت ر
طراحی کامپیوتری سیستم های دیجیتال
پاییز 1401
دستیاران آموزشی: نگار مرادی، برنا توسلی، شایان شبیه ی
CA1: Review on Logic Design :مقدمه
در این تمرین، به منظور یادآوری مفاهیم مربوط به طراحی مدارهای منطقی، از شما خواسته میشود در فاز اول یک کنترلر و مسیر داده برای مدار خواست ه شده ،روی کاغذ طراحی کنید. در فاز بعدی این تمرین را با استفاده از زبان توصیف سختافزاری Verilog پیادهسازی خواهید کرد.
مهلت تحویل این تمرین در مجموع 10 رو ز درنظر گرفت ه شده است.
توجه: انجام این تمرین به صورت گروههای دونفره خواهد بود.
توضیحات پروژه:
با گذراندن این درس، در نهایت، از شما انتظار میرود که بتوانید یک سیستم کامل را مدلسازی کنید و درستی آن را بسنجید. بدین منظور، در هر تمرین از شما خواسته میشود بخش هایی از این سیستم را طراحی و پیاده سازی کنید و در پایان این بخش ها را سرهم کرده تا به یک مدار کامل برسید.
در تمرین اول، شما باید تابع Permutation func زیر را با طراحی واح د کنترل و مسیرداده پیاده سازی کنید. در فاز اول از شما خواسته میشود تا مدار را با جزئیات کامل روی کاغذ طراحی کنید و در فاز دوم آن را به کمک زبان توصیف سختافزاری Verilog پیاده سازی کرده و کارکرد صحیح آن را بررسی کنید.
Input (1600 bit)
Output (1600 bit) :صفحه خواهیم داشت که k تعداد ،(𝑛, 𝑚, 𝑘) با ابعاد X تعریف میکنیم: به ازای هر ماتریس
{∀𝑝𝑖 ∈ X ∶ 𝑝𝑖 ∶= X[: , : , i],0 ≤ i < k}
یک عملیات جایگشتpermutation) ) روی ماتریس ورودی X، نگا شت[𝑎[𝑗][(2𝑖 + 3𝑗)%5] ← 𝑎[𝑖][𝑗 را به تکتک درایههای این ماتریس اعمال م یکند. دقت کنید که در این نگاشت (𝑖, 𝑗)، به صورت زیر تعریف شدهان د:
در واقع نگاشت بالا، درای ههای هر صفحه )در راستای محور x-z( را به شکل زیر جاب هجا م یکند؛ دقت کنید که این نگاشت یک-به-یک است، یعنی مقدار داخل هر خانه دقیقا به یک خانه دیگر برده شده و دقیقا از یک خانه دیگر، برای خانه فعلی مقداری انتخاب شدهاست.
در این تمرین، برای سادگی بیشتر فرض شده است که ابعاد ماتریس ورودیX همواره (64 ,5,5) م یباشد. حال شما باید مداری طراحی کنید که با خواندن ماتریس ورودی از حافظه )که توضیحات آن در ادامه آورده شده است(، عملیات جایگشت را بر روی آن اجرا کرده و در نهایت خروجی را در قالب یک فایل text در حافظه تناظر ذخیره کند. در ادامه اطلاعاتی در رابطه با فایلهای ورو دی و خروجی آورده شد ه است.
فایل های ورودی:
نام این فایل ها به صورت “input_i.txt” بوده که در آن i شماره فایل میباشد. تمامی فایلهای ورودی واقع درفولدر “tests” هستند که در کنار صورت پروژه آپلود شدهاند. هر فایل شامل 64 خط م یباشد که در هر خط 25 درایه یک صفحه در محور x-z آورده شده است. ترتیب این صفحات از راستای 0 = 𝑦 تا 63 = 𝑦 م یباشد. یعنی در خط اول 25 درایه جلوترین صفحه و در خط آخر، 25 درایه عق بترین صفحه آورده شده است.
ترتیب 25 درایه واقع در هر خط، بدین صورت است که از خانه پایین چپ (3,3) = (𝑥, 𝑧) شروع کرده و با حرکت به سمت راست و بالا به خانه بالا راست (2,2) = (𝑥, 𝑧) م یرسیم. مسیر خواندن خانه این درای هها در چند مرحله اول به شکل زیر است:
(3, 3) ⇒ (4, 3) ⇒ (0, 3) ⇒ (1, 3) ⇒ (2, 3) ⇒ (3, 4) ⇒ (4,4) …
نکته مهم: برای خواندن ورودی تنها مجاز به استفاده از یک رجیستر 25 بیتی هستید.
فایل های خروجی:
نام این فایل ها به صورت “output_i.txt” در نظر بگیرید که در آن 𝑖 شماره فایل میباشد. تمامی فایلهای خروجی را در همان فولدر “tests” ساخته و ذخیره کنید. درای هها را به همان ترتیبی که خواند هاید )پس از جایگشت دادن(، در فایل خروجی بنویسید.
مواردی که در حین پیاده سازی باید در نظر بگیرید )فاز یک(:
● طراحی شما در فاز اول باید کاملا قابلیت پیاده سازی در Verilog را داشته باشد. لازم است در فاز دومتمرین مدار فاز اول را در وریلاگ پیادهسازی کرده و تحویل دهید.
مواردی که باید در فاز اول تحویل دهید:
• گزارش کار شامل طراحی کنترلر )FSM( و مسیرداده بر روی کاغ ذ.
• مهلت تحویل: چهارشنبه 7 دی 1401.
مواردی که در حین پیاده سازی باید در نظر بگیرید )فاز دو(:
● عملیات مطرح شده باید به صورت همرون د بر روی ماتریس ورودی اعمال گردد. به طور دقی قتر تابع جایگشت باید به صورت همزمان بر روی تمامی عناصر ماتریس ورودی اجرا شود.
● در صورتی که متوجه شدهاید طراحی شما در فاز اول مشکل داشتهاست، آن را در این مرحله اصلاح کنید و مشکل و راهحل را در گزارش به صورت کامل توضیح دهید.
● بخشی زیادی از نمره نهایی شما، مربوط به اجرای درست برنامه میشود. بدین منظور با بررسی تست کیس ها از لزوم اجرای درست برنامه مطمئن شوید.
● این پروژه تحویل حضوری دارد و برنامه شما با تس ت کیس های جدید بررسی خواهد شد.
مواردی که باید در فاز دوم تحویل دهید:
• تمامی فای لهای لازم برای اجرای پروژه )فای لهای hdl، تست بنچ و(….
• خروج یهای تست کی سها مطابق روشی که ذکر ش د.
• گزارش کار) مسیر داده و طراحی کنترلر، اشکالات فاز اول و نتایج خروجی(.
• مهلت تحویل: چهارشنبه 7 دی 1401.
نکات پایان ی
• برای فاز دوم تمرین، لازم است فایل های HDL و testbench خود را مطابق ساختار توضیح داده شدهدر trunk/doc در subdirectory های trunk آپلود کنید. همچنین، اطمینان حاصل کنید که با اجرای trunk/sim/sim_top.tcl تست بنچ شما اجرا م یشود. برای اجرای این اسکریپت میتوانید از دستور زیر در Modelsim استفاده کنید:
>> do <sim_file>
• لازم است فرمت خروجی مدار شما دقیقا مطابق ساختار مطرح شده برای ورودی باشد. توجه کنید که صحت کارکرد مدار شما با تست های آماده بررسی خواهد شد .
• فایل ها و گزار ش خود را تا قبل از موعد تحویل هر فاز، با نا مهایCAD_HW#1_P1.zip و CAD_HW#1_P2.zip به ترتیب در محل های مربوطه برای فاز اول و دوم در صفحه درس آپلود کنید.
• هدف از این تمرین، یادگیری شماست! در صورت کشف تقلب، مطابق با قوانین درس برخورد خواهد شد.
• در صورت داشتن هرگونه سوال یا ابهام از طریق ایمیل های زیر با دستیاران آموزشی در ارتباط باشید.
negar.m0rd@gmail.com
shabihish@gmail.com borna.tavassoli@gmail.com
موفق باشید!
Reviews
There are no reviews yet.