به نام خدا طراحی سیستمهای دیجیتال ()۳۲۰۰۴ استاد :دکتر اجاللی نیمسال اول ۳۳-۳۴ مهلت تحویل ۳۹/۸/۱۱ تمرین اول نکات: .1تمرینات باید به صورت انفرادی انجام شوند. .۰پاسخ تمرینات باید کامل باشد .یعنی عالوه بر جواب آخر روال رسیدن به جواب نیز مهم است. .۴اگر از منبعی استفاده میکنید؛ ذکر آن منبع الزامی است. .4پاسخ تمرینات را در یک فایل فشرده با نام ] [DSD][HW_#][Student IDذخیره کرده و آن را با همین عنوان به آدرس [email protected]بفرستید. .5به ازای هر روز دیرکرد 1۲۱جریمه منظور خواهد شد. .6پیشنهاد میشود برای رسم نمودارها از نرمافزار Visioاستفاده شود. تمرینات: .1یک ASM Chartطراحی کنید که با 1شدن ورودی ،Startمقدار دو ورودی 1۱بیتی Data1و Data2را خوانده و فاصله همینگ 1آنها را محاسبه کرده و در ثبات outبنویسد و خروجی Doneرا یک کند .همچنین طراحی مسیر داده را با کمترین سختافزار ممکن انجام دهید( .نیازی به رسم واحد کنترل نیست) .۰با استفاده از نمودار ASMمداری طراحی کنید که ۰ورودی 11بیتی را از کاربر دریافت کرده و حاصل تقسیم آنها و باقیمانده حاصل از تقسیم را در قالب دو خروجی ۸بیتی به کاربر تحویل دهد .این مدار وقتی شروع به کار میکند که دکمه Startفعال شود .خاتمه عملیات نیز با دکمه Endمشخص میشود بدین ترتیب که وقتی عملیات تمام شود 1 ،Endمیشود .توجه کنید که مدار شما باید بتواند خروجیهای تقسیم بر ۲و سرریز را تشخیص داده و به کاربر گزارش دهد .پس از رسم نمودار ،ASMسنتز واحدهای کنترل و مسیر داده را به صورت شماتیک رسم کنید. .۴میخواهیم مداری را طراحی کنیم که یک عدد ورودی ۸بیتی Aو یک سیگنال ورودی Startرا دریافت کرده و با فعال شدن ورودی ،Startمقدار ورودی Aرا خوانده و محاسبه کند که آیا عددی اول است یا خیر .در صورتی که عددی اول بود ،خروجی 1بیتی Isprimeرا برابر 1و در غیر اینصورت برابر ۲میکند .همچنین ،اتمام محاسبات را با فعالشدن سیگنال Endنمایش میدهد. http://en.wikipedia.org/wiki/Hamming_distance 1 الف) با استفاده از ،ASM Chartتوصیف رفتاری مدار فوق را طراحی کرده و روش عملکرد آن را توضیح دهید. ب) طراحی خود را به ازای ورودی A=7شبیهسازی کنید .در هر سیکل ،شمارهی ASM Blockو مقادیر همهی ثباتها را نشان دهید. .۳با استفاده از نمودار ASMمدارهای زیر را طراحی کرده و سپس سنتز واحدهای کنترل و مسیر داده را به صورت شماتیک رسم کنید: دو دنباله شامل ۲و 1را از ورودی دریافت کرده به طوری که دنباله اول ۴۰بیت و طول دنباله دوم از ورودی گرفته شود .فرض کنید اعداد ورودی به صورت BCDهستند؛ بنابراین آنها را ۳رقم ۳رقم به صورت یک عدد دهدهی درنظر بگیرید. الف) مداری که تعداد تکرار زیررشته ۰اول را در رشته دوم خروجی دهد. مثال :اگر رشته اول را )۸۳۲۱۱(1۲۲۲1۲۲1۲۲۲۲۲11۲۲11۲و رشته دوم را )۱(۲11۲در نظر بگیرید؛ تعداد تکرار رشته دوم در دنباله اول ،دو مرتبه است. ب)(اختیاری) مداری که تعداد تکرار دنباله دوم را در زیردنباله ۴های دنباله اول پیدا کند. مثال :اگر دنباله اول را )۸۳۲۱۱(1۲۲۲1۲۲1۲۲۲۲۲11۲۲11۲و دنباله دوم را )۳۱(1۲۲1۲11۲در نظر بگیرید؛ تعداد تکرار دنباله دوم در زیردنبالههای دنباله اول ،دو مرتبه است. ( .۵اختیاری) برای بازی زیر یک ASMطراحی کنید( :نیازی به طراحی مسیر داده و واحد کنترل نیست) این بازی یک بازی تاس دونفره است .هر کس دو تاس دارد که به صورت همزمان آنها را میاندازد .بازیکنها به ترتیب بازی کرده و تاس میاندازند و بازی تا جایی ادامه دارد که کسی برنده شود .قوانین بازی به صورت زیر است: هر بازیکن ۳۵امتیاز در ابتدای بازی دارد. هر بازیکن میتواند یک شرط بین اعداد ۰ ،1 ،۲و ۴ببندد که میتواند قبل از انداختن تاس جدید عوض شود. وقتی یک بازیکن تاس میاندازد اگر جمع ۸ ،۴یا 1۲شود ،بازیکن امتیازی برابر با جمع اعداد تاسها ضربدر شرطش دریافت کند .برای مثال اگر جمع باربر با ۸شده و شرط ۴را بسته باشد ،امتیازی برابر با ۰۳دریافت میکند .این امتیاز به امتیازهای قبلی اضافه میشود. Substring, http://en.wikipedia.org/wiki/Substring Subsequence, http://en.wikipedia.org/wiki/Subsequence 2 3 اگر جمع ارقام تاسها ۱ ،۳یا 11باشد ،بازیکن امتیازی برابر با جمع ارقام تاسها ضربدر مقدار شرطش از دست میدهد. اگر جمع ارقام تاسها ،اعدادی جز اعداد گفته شده (یعنی 1۲ ، ۸ ،۱ ،۳ ،۴یا )11باشد ،هیچ اتفاقی رخ نداده و بازیکن بعدی میتواند تاس بیندازد. یک بازیکن وقتی برنده میشود که به امتیاز ۳۲یا بیشتر برسد یا وقتی که بازیکن دیگر به امتیاز ۲یا کمتر برسد. وقتی بازی تمام میشود و یک بازیکن میبرد ،هر کدام از بازیکنها میتواند بازی را پس از زدن دکمه resetدوباره شروع کند. وقتی دو تاس استفاده میشود ،جمع اعداد تاسها میتواند بین ۰تا 1۰باشد .مقدار تاسها میتواند توسط دو تا شمارنده مستقل که بین 1تا ۱میشمارند ،یا توسط یک شمارنده که بین 1تا 1۰میشمارد ،مشخص شود .هر بازیکن دکمههای خود ( D1و )D2را برای انداختن تاس دارد .شمارنده وقتی دکمهها فشرده شود ،آغاز میشود و تا وقتی که دکمه رها شود ادامه پیدا میکند .شمارهای که شمارنده بعد از رها شدن دکمه ،نشان میدهد ،شماره تاس خواهد بود. شما باید هر بار مقادیر تاسها و مجموع امتیازات بازیکنها را نشان دهید .همچنین باید نشان دهید که اکنون نوبت بازی کدام بازیکن بوده و کدام بازیکن در حال بازی است .باید همچنین نشان دهید که کدام بازیکن برنده شده است ( .۱اختیاری) به سه تایی ( )c b aاز اعداد طبیعی ،فیثاغورسی میگوییم ،هرگاه داشته باشیم 𝑎 < 𝑏 < 𝑐, 𝑎2 + 𝑏2 = 𝑐 2 با کمک ،ASM Chartمداری طراحی کنید که عدد ورودی ۸بیتی Nرا بگیرد و سه خروجی A B Aرا تولید کند (هرکدام ۸بیت) ،به شرط این که 𝑁 = 𝐶 𝐴 + 𝐵 +و ( )A B Aیک سهتایی فیثاغورسی باشد .در صورتی که به ازای Nورودی ،هیچ سهتایی فیثاغورسی وجود نداشته باشد ،مقادیر هرسه خروجی باید برابر صفر شود. همچنین ،میتوانید برای راحتی کار با مدار خود ،یک سیگنال ورودی Startو یک سیگنال خروجی Endرا نیز در نظر بگیرید .زمانی که میخواهیم مدار شروع به کار کند ،دکمهی Startرا میزنیم (سیگنال Startفعال میشود) و پس از پایان محاسبهی خروجیها ،سیگنال Endبه منظور اعالم پایان عملیات باید توسط مدار فعال شود.
© Copyright 2025 Paperzz