DSD - HW4.pdf

‫طراحی ‪)40-223( DSD‬‬
‫مدرس‪ :‬دکتر اجاللی‬
‫نيمسال اول ‪99-92‬‬
‫دانشکده مهندسی کامپيوتر‬
‫نمودار حالت نمایش داده شده در شکل زیر مربوط به یک مدار ترتیبی حساس به لبه مثبت است‪ .‬با فرض اینکه حالت اولیه این‬
‫مدار ‪ A‬باشد‪ ،‬یک کد رفتاری بنویسید که این سیستم را توصیف کند‪.‬‬
‫یک مدار ترتیبی حساس به لبۀ منفی دارای ورودی ‪ 8‬بیتی است و در هر پالس ساعت یکی از حروف الفبا را (کد ‪ ASCII‬آن را) در‬
‫ورودی دریافت می کند‪ .‬خروجی این مدار فقط یک بیت است که هرگاه عبارت ‪ ABC‬در ورودی دریافت شود (به ترتیت کاراکترهای‬
‫‪ A‬و ‪ B‬و ‪ C‬یکی پس از دیگری وارد شوند) خروجی یک می شود‪ .‬توصیف جریان داده (‪ )Dataflow‬این واحد را بدون استفاده‬
‫از @ بنویسید‪ .‬توجه شود که استفاده از کد ساختاری یا رفتاری قابل قبول نیست‪.‬‬
‫توضیحاتی در رابطه با یک چای ساز در زیر آمده است‪ .‬با توجه به این توضیحات به موارد خواسته شده در قسمت های ‪ 1‬تا ‪ 4‬پاسخ‬
‫دهید‪.‬‬
‫مدار کنترل کننده چای ساز دارای پنج ورودی است‪:‬‬
‫‪.I‬‬
‫سنسور تشخیص وجود چای‪ :‬در صورتی که در چای وجود داشتهباشد‪ ،‬مقدار آن برابر با یک و در غیر این صورت برابر‬
‫با صفر است‪.‬‬
‫‪.II‬‬
‫‪.III‬‬
‫دکمهی دم کردن‪ :‬در حالت روشن برابر با یک و در غیر این صورت مقدار آن صفر است‪.‬‬
‫سیگنال نشانگر اتمام دم شدن چای ‪ :‬در صورتی که چای در حال دم باشد‪ ،‬مقدار آن برابر با صفر و در غیر این صورت‬
‫یک است‪.‬‬
‫‪.IV‬‬
‫سنسور تشخیص دمای حداکثر‪ :‬در هنگام دم شدن چای‪ ،‬دمای چای ساز نباید از حد مشخصی بیشتر باشد‪ .‬در صورتی‬
‫که دما از این مقدار ماکسیمم‪ ،‬بیشتر شود‪ ،‬مقدار این سنسور برابر با یک و در غیر این صورت صفر است‪.‬‬
‫‪.V‬‬
‫سنسور تشخیص دمای حداقل‪ :‬در هنگام دم شدن چای دمای چایساز نباید از حد مشخصی کمتر باشد‪ .‬در صورتی‬
‫که دم ا از این مقدار مینیمم‪ ،‬کمتر شود‪ ،‬مقدار این سنسور برابر با یک و در غیر این صورت برابر با صفر است‪.‬‬
‫همچنین این مدارها دارای دو خروجی هستند‪:‬‬
‫‪.I‬‬
‫‪.II‬‬
‫المنت‪ :‬در صورت فعال بودن این سیگنال المنت روشن و در غیر این صورت خاموش است‪.‬‬
‫سیگنال تایمر‪ :‬این سیگنال با زدهشدن دکمهی دم کردن (در صورت وجود چای) فعال میشود‪ .‬یک تایمر سنکرون‬
‫وظیفه روشن کردن سیگنال نشانگر اتمام دم شدن چای را به عهده دارد‪ .‬تا زمانی که مقدار سیگنال تایمر برابر با صفر‬
‫است مرتباً به مقدار اولیه ثابت (این مقدار را ‪ 11‬در نظر بگیرید) مقداردهی می شود‪.‬‬
‫طراحی ‪)40-223( DSD‬‬
‫مدرس‪ :‬دکتر اجاللی‬
‫نيمسال اول ‪99-92‬‬
‫دانشکده مهندسی کامپيوتر‬
‫کنترل کننده در صورتی که چای وجود داشته باشد و دکمه دم کردن روشن شود‪ ،‬المنت گرم کننده را روشن می کند‪ .‬اگر در این‬
‫لحظه سنسور تشخیص دمای حداکثر‪ ،‬روشن شود المنت تا زمان فعال شدن سنسور دمای حداقل خاموش می شود و در صورت‬
‫روشن شدن سنسور دمای حداقل المنت تا زمان روشنشدن سنسور دمای حداکثر‪ ،‬روشن می شود‪ .‬به این ترتیب مدار کنترل کننده‬
‫دمای چای را بین این دو مقدار حفظ می کند‪.‬‬
‫أ)‬
‫یک ‪ 4 ASM chart‬حالته برای مدار کنترل کننده چای ساز رسم کنید‪ .‬مدار ترتیبی که این چارت نشان میدهد باید از نوع‬
‫‪ Moore‬باشد‪ .‬همچنین در مدار خود یک ورودی ریست آسنکرون برای استفاده هنگام روشن شدن سیستم در نظر بگیرید‪.‬‬
‫ب) ‪ FSM‬مربوط به مدار قسمت اول را طراحی کنید‪.‬‬
‫ت) کد وریالگ مربوطه را یکبار با استفاده از ‪ ASM‬و بار دیگر با استفاده ‪ FSM‬توصیف کنید‪.‬‬
‫ث) از صحت کارهای خود با نوشتن ‪ test bench‬کامل و کافی و شبیه سازی اطمینان حاصل کنید‪.‬‬
‫در مورد نحوهی ارسال دادهها بین فرستنده و گیرنده توضیحاتی داده میشود‪ .‬شما در این تمرین نحوهی برقراری این ارتباط را (با‬
‫فرض امکان بروز حداکثر یک بیت خطا در هر داده) با استفاده از کد وریالگ شبیهسازی میکنید‪.‬‬
‫در فرستنده به صورت تصادفی (رندوم) دادههای ارسالی تولید میشوند‪ .‬هر دادهی تولید شده ‪ 4‬بیتی خواهد بود که بیتهای آن‬
‫بهصورت )‪ (x3 x5 x6 x7‬نشان داده میشوند‪.‬‬
‫سه عدد تابع (‪ )function‬برای تولید بیتهای‪ parity‬وجود دارد که به ترتیب ‪ p2 ،p1‬و ‪ p4‬را حساب میکنند‪.‬‬
‫‪P1= x3 xor x5 xor x7‬‬
‫‪P2= x3 xor x6 xor x7‬‬
‫‪P4= x5 xor x6 xor x7‬‬
‫در فرستنده بعد از تولید بیتهای ‪ ،parity‬از یک عددِ رندومِ یک بیتی استفاده میکنید‪:‬‬
‫ اگر عددِ رندومِ تولید شده صفر بود‪7 ،‬بیت داده را (‪ )p1 p2 x3 p4 x5 x6 x7‬عینا به گیرنده ارسال میکنید‪( .‬حالت بدون‬‫خطا)‬
‫ اگر عدد رندوم تولید شده یک بود‪ ،‬یعنی یک بیت خطا رخ داده است‪ .‬از عدد رندوم دیگری که میتواند مقدار ‪ 1‬تا ‪ 7‬داشته باشد‬‫برای تولید محل خطا استفاده کنید با فرض اینکه عدد تولید شده ‪ i‬است (‪ i‬بین ‪ 1‬تا ‪ 7‬قرار دارد) بیت با شمارهی ‪ i‬را ‪ not‬کنید و‬
‫عدد ‪ 7‬بیتی را ارسال کنید‪ .‬مثال فرض کنید عدد اولیه ‪ 1‬بوده است (خطا رخ داده) و عدد رندومِ بعدی ‪ 3‬است داده را بهصورت زیر‬
‫به گیرنده ارسال میکنید‪:‬‬
‫‪p1 p2 ~x3 p4 x5 x6 x7‬‬
‫برای چک کردن محل خطا در گیرنده‪ ،‬از یک ‪ task‬استفاده کنید که بیتهای ‪ c1 c2 c4‬را تولید میکند‪.‬‬
‫‪C1 = p1 xor x3 xor x5 xor x7‬‬
‫‪C2 = p2 xor x3 xor x6 xor x7‬‬
‫‪C4 = p4 xor x5 xor x6 xor x7‬‬
‫طراحی ‪)40-223( DSD‬‬
‫مدرس‪ :‬دکتر اجاللی‬
‫نيمسال اول ‪99-92‬‬
‫دانشکده مهندسی کامپيوتر‬
‫با پیادهسازی مدار زیر خطاهای رخ داده را اصالح کنید و ‪ 7‬بیت معتبر را بهدست آورید‪.‬‬
‫‪x7‬‬
‫‪7‬‬
‫‪x6‬‬
‫‪6‬‬
‫‪x5‬‬
‫‪5‬‬
‫‪2‬‬
‫‪p4‬‬
‫‪4‬‬
‫‪x3‬‬
‫دیکدر‬
‫‪1‬‬
‫‪c4‬‬
‫‪c2‬‬
‫)‪(active high‬‬
‫‪3‬‬
‫‪0‬‬
‫‪p2‬‬
‫‪c1‬‬
‫‪2‬‬
‫‪p1‬‬
‫‪1‬‬
‫‪0‬‬
‫موارد خواسته شده‪:‬‬
‫أ)‬
‫تابعهای تولید ‪parity‬‬
‫ب) ‪ Task‬چک کردن ‪parity‬‬
‫ت) ماژولهای فرستنده‪ ،‬گیرنده و دیکدر‬
‫ث) ماژول تست مدار برای حالتهای مختلف‪ ،‬شبیهسازی و عکسهای خروجی مدار بهازای حالتهای مختلف‪.‬‬
‫توجه!‬
‫‪ .1‬برای هر طرح‪ ،‬حداقل یک واحد آزمون (‪ )TestBench‬تهیه کنید و درستی پیاده سازی خود را بررسی کنید‬
‫و در صورت نیاز‪ ،‬توضیحات خود را مستند کنید‪.‬‬
‫‪ .2‬مهلت ارسال این تمرین تا ‪ 5‬بهمن است و زمانبندی تحویل حضوری آن متعاقبا اعالم خواهد شد‪.‬‬
‫‪ .3‬در صورت وجود ایراد یا ابهام در مورد تمرین‪ ،‬می توانید از طریق گروه درسی اشکاالت خود را رفع کنید‪.‬‬
‫‪ .4‬در صورت ارسال پس از موعد معین‪ ،‬کل نمره تمرین را از دست خواهید داد‪.‬‬
‫موفق باشید‬