Digital Design HW 4.pdf

‫مدارهای منطقی )‪(40212‬‬
‫مدرس‪ :‬صالحی‬
‫تمرین چهارم– مدارهای ترکیبی‬
‫تاریخ‪91/8/20 :‬‬
‫مهلت تحویل‪ :‬جلسهی میانترم‬
‫مدارهای مبدل کد‬
‫‪ .1‬مداری طراحی نمایید که مکمل ‪2‬ی یک عدد ‪ 4‬بیتی را محاسبه نماید‪ .‬با توجه به الگوی عبارات جبری هر بیت‪،‬‬
‫مدار یک عدد ‪ 5‬بیتی را حدس بزنید‪.‬‬
‫‪ * .2‬برای ارسال یک عدد دو رقمی ‪ 8( BCD‬بیتی) از الگوریتم رمز ذیل استفاده میکنیم‪ .‬ابتدا رقم دهگان این عدد را‬
‫به کد ‪ Gray‬و کد ‪ Gray‬حاصل را دوباره به کد ‪ 1111‬تبدیل میکنیم‪ .‬رقم یکان آن را نیز ابتدا به کد ‪8,4,-2,-1‬‬
‫سپس کد حاصل را به کد ‪ 2421‬تبدیل میکنیم‪ .‬در انتهای کار روی ‪ 8‬بیت حاصله کد همینگ اعمال میکنیم‪.‬‬
‫مدار بهینهای طراحی کنید که کد ‪ 12‬بیتی ارسال شده را دریافت و عدد دو رقمی اصلی را بدست آورد‪ .‬فرض بر این‬
‫است که در ارسال ‪ 12‬بیت‪ ،‬حداکثر ‪ 1‬خطا ممکن است رخ دهد‪ .‬در طراحی این مدار نیازی به رسم مدار داخلی‬
‫المانهای شناخته شده مثل ‪ FA‬یا ‪ MUX‬یا ‪ ...‬نیست‪.‬‬
‫مدارهای محاسباتی‬
‫‪ .1‬با استفاده از جمعاً حداکثر چهار ‪ FA‬یا ‪ HA‬مداری طراحی کنید که ورودی آن عدد ‪ 4‬بیتی ‪ A‬و خروجیاش ‪A-1‬‬
‫باشد‪.‬‬
‫‪ .4‬اگر تأخیر هر گیت ‪ OR ،XOR‬و ‪ AND‬دو ورودی به ترتیب از راست به چپ برابر ‪ 4‬و ‪ 1‬و ‪ 1‬واحد باشد‪ ،‬تأخیر یک‬
‫جمع کنندهی ‪ Ripple Carry‬چهار بیتی چند واحد است؟‬
‫‪ .5‬برای سؤال باال فرض کنید عالوه بر گیتهای فوق‪ ،‬تأخیر هر گیت معکوس کننده‪ NOR ،‬دو ورودی‪ NAND ،‬دو‬
‫ورودی‪ NOR ،‬سه ورودی و ‪ NAND‬سه ورودی به ترتیب برابر ‪ 1 ،2 ،2 ،1‬و ‪ 1‬واحد زمانی باشد‪ .‬ساختار داخلی‬
‫مدار جمع کنندهی فوق را طوری تغییر دهید که تأخیر حداقل باشد و این تأخیر حداقل را بدست بیاورید‪.‬‬
‫‪ .1‬فرض کنید مستقل از نوع و تعداد ورودیهای یک گیت‪ ،‬برای تمامی گیتها اعم از ‪ 1‬ورودی مثل معکوس کننده یا‬
‫‪ K‬ورودی مثل گیت ‪ AND‬یا ‪ ...‬تأخیر ثابت و برابر ‪ 1‬واحد باشد‪ .‬در این صورت تأخیر یک جمع کنندهی ‪ N‬بیتی‬
‫‪ Carry Look Ahead‬را بدست آورید‪ .‬صرفاً استفاده از گیتهای ‪ OR ،AND‬و ‪ NOT‬مجاز است‪.‬‬
‫‪ * .7‬یک مدار جمع‪/‬تفریق کنندهی ‪ BCD‬طراحی کنید (جمع یا تفریق با بیت ورودی ‪ M‬مشخص میکند)‪ .‬برای این‬
‫کار الزم است ابتدا یک مدار محاسبهگر مکمل ‪ 9‬و یک مالتیپلکسر ‪ 2‬به ‪ 1‬که هر کدام از ورودیهایش ‪ 4‬بیتی‬
‫است (برای انتخاب ‪ B‬یا مکمل آن) و یک ‪ BCD Adder‬چهار بیتی طراحی کنید‪.‬‬
‫مدارهای منطقی )‪(40212‬‬
‫مدرس‪ :‬صالحی‬
‫‪ .8‬با استفاده از سه عدد ‪ HA‬ضرب کنندهای طراحی کنید که حاصل ضرب هر عدد ‪ 1‬بیتی در ‪ 5‬را به عنوان خروجی‬
‫برگرداند‪.‬‬
‫‪ .9‬با استفاده از دو عدد ‪ HA‬و یک مقایسه کنندهی تساوی دو بیتی (که دو عدد ‪ 2‬بیتی را دریافت و در صورتی که برابر‬
‫باشند خروجی ‪ 1‬بر می گرداند) مداری طراحی کنید که یک عدد ‪ 4‬بیتی را دریافت و مشخص کند که این عدد‬
‫مضرب ‪ 1‬است یا خیر‪ .‬ساختار داخلی مقایسه کننده را نیز رسم کنید (الگوریتم در انتهای تمرین آورده شده است)‪.‬‬
‫‪Decoder/Encoder‬‬
‫‪ .11‬با استفاده از چهار ‪ 1 Decoder‬به ‪( 8‬که دارای ‪ enable‬هستند) و یک ‪ 2 Decoder‬به ‪ ،4‬یک ‪5 Decoder‬‬
‫به ‪ 12‬طراحی کنید‪ .‬رسم بلوک دیاگرام کافی است‪.‬‬
‫‪ .11‬با استفاده از یک ‪ Decoder‬و (صرفاً) گیتهای ‪ NAND‬مدارهای چند خروجی زیر را طراحی کنید‪.‬‬
‫‪∑ 145‬‬
‫‪∑ 27‬‬
‫‪∑ 2151‬‬
‫‪a.‬‬
‫‪b.‬‬
‫‪ .12‬با استفاده از یک ‪ Decoder‬و گیتهای منطقی‪ ،‬مدارهای چند خروجی زیر را پیادهسازی کنید‪.‬‬
‫‪a.‬‬
‫‪b.‬‬
‫‪ .11‬یک ‪ Priority Encoder‬سه ورودی به شرح زیر طراحی کنید‪ .‬ورودی ‪ C‬بیشترین اولویت را دارد و به صورت ‪11‬‬
‫‪ encode‬میشود‪ .‬ورودی ‪ A‬اولویت دوم را دارد و به صورت ‪ 11‬انکد میشود‪ .‬ورودی ‪ B‬کمترین اولویت را دارد و‬
‫به صورت ‪ 11‬انکد میشود‪ .‬حالتی که هیچ کدام از ورودیها فعال نباشند نیز به ‪ 11‬انکد میشود‪.‬‬
‫‪Multiplexer‬‬
‫‪ .14‬با استفاده از دو مالتیپلکسر ‪ 8‬به ‪ 1‬و یک مالتیپلکسر ‪ 2‬به ‪ ،1‬یک مالتیپلکسر ‪ 11‬به ‪ 1‬طراحی کنید‪.‬‬
‫‪ .15‬با استفاده از دو مالتیپلکسر ‪ 4‬به ‪ ،1‬یک ‪ FA‬طراحی کنید‪.‬‬
‫‪ .11‬هر کدام از توابع زیر به کمک یک مالتیپلکسر پیادهسازی نمایید‪.‬‬
‫‪12451‬‬
‫‪11217‬‬
‫∑‬
‫∏‬
‫‪a.‬‬
‫‪b.‬‬
‫‪ .17‬در یک مالتیپلکسر ‪ 8‬به ‪ ،1‬ورودیهای ‪ B ،A‬و ‪ C‬به بیتهای ‪ S1 ،S0‬و ‪ S2‬آن متصل شدهاند‪ .‬ورودیهای دادهی‬
‫آن به شرح زیر است‪:‬‬
‫مدارهای منطقی )‪(40212‬‬
‫مدرس‪ :‬صالحی‬
‫‪1‬‬
‫‪1‬‬
‫تابعی که توسط این مالتیپلکسر پیادهسازی میشود را بدست آورید‪.‬‬
‫‪ .18‬تابع زیر را توسط یک ‪ 4 MUX‬به ‪ 1‬پیادهسازی نمایید‪ .‬برای این کار ورودیهای ‪ A‬و ‪ B‬را به ‪ S0‬و ‪ S1‬متصل کنید‪.‬‬
‫چهار خط داده )‪ (I0-I3‬تابعی از ‪ C‬و ‪ D‬خواهند بود که این توابع را برای حاالت ‪ AB = 00‬تا ‪ AB = 11‬بایستی‬
‫بدست آورید‪.‬‬
‫‪1 1 4 11 12 11 14 15‬‬
‫∑‬
‫‪ .19‬تابع زیر را صرفاً با استفاده از یک مالتیپلکسر دو به یک‪ ،‬یک گیت ‪ NAND‬و یک گیت ‪ AND‬پیادهسازی نمایید‬
‫(ابتدا تابع را میبایست ساده کنید)‪.‬‬
‫‪ .21‬تابع زیر را با استفاده از فقط دو عدد مالتیپلکسر ‪ 2‬به ‪ 1‬پیادهسازی کنید‪.‬‬
‫‪Comparator‬‬
‫‪ .21‬با استفاده از مقایسهگرهای ‪ 4‬بیتی (که دو عدد ‪ 4‬بیتی را به عنوان ورودی دریافت و خروجی آن عبارت است از‬
‫حاالت ‪ A = B ،A > B‬و ‪ )A < B‬و گیتهای منطقی‪ ،‬یک مقایسهگر ‪ 8‬بیتی طراحی نمایید‪.‬‬
‫‪ .22‬با استفاده از مقایسه کنندههای ‪ 4‬بیتی (که دو عدد چهار بیتی را دریافت و دارای خروجیهای ‪ A = B ،A > B‬و‬
‫‪ A < B‬میباشند)‪ ،‬یک مقایسه کنندهی ‪ 24‬بیتی طراحی کنید‪.‬‬
‫‪ .21‬مدار زیر به عنوان یک مدار ‪ Majority Detector‬هفت بیتی معرفی شده است یعنی در صورتی که ‪ 4‬یا بیشتر از‬
‫ورودیهای آن ‪ 1‬باشد خروجی ‪ 1‬خواهد بود‪ .‬هر‬
‫کدام از ‪ Majority Detector‬های سه بیتی‬
‫در صورتی که ‪ 2‬یا ‪ 1‬ورودی ‪ 1‬باشند خروجی ‪1‬‬
‫خواهند داد‪ .‬بسته به ساختار دلخواه مدار سوم‪،‬‬
‫صحت عملکرد مدار را بررسی نمایید‪.‬‬
‫مدار به ازای چه تعداد ورودی فعال )‪ (1‬قطعاً‬
‫درست کار میکند؟‬
‫مدارهای منطقی )‪(40212‬‬
‫مدرس‪ :‬صالحی‬
‫‪Shifter‬‬
‫‪ * .24‬با استفاده از انواع مالتیپلکسر‪ ،‬یک مدار ‪ Barrel Shifter‬هشت بیتی طراحی کنید‪ .‬این مدارها یک ورودی ‪N‬‬
‫بیتی به عنوان تعیین کننده مقدار شیفت دریافت میکنند‪ .‬در اینجا ‪ N‬برابر ‪ 8‬و ‪ 1‬بیت‬
‫بیتی و یک ورودی‬
‫ورودی دیگر تعیین کنندهی میزان شیفت به راست (از ‪ 1‬تا ‪ )7‬هستند‪.‬‬
‫‪ * .25‬بسیاری اوقات در مدارها الزم است که صفرهای سمت راست یک عدد را با شیفت دادن حذف کنیم‪ .‬با استفاده از‬
‫یک ‪ Barrel Shifter‬و یک المان دیگر در طول درس و نیز طی این تمرین آشنا شدهاید‪ ،‬شماتیک این مدار را‬
‫رسم نمایید‪.‬‬
‫‪Tri State Gates‬‬
‫‪ .21‬خروجی مدار زیر را بدست آورید‪.‬‬
‫’‬
‫‪C‬‬
‫’‬
‫‪B‬‬
‫‪Y‬‬
‫‪A‬‬
‫‪1‬‬
‫’‬
‫‪ ‬در حل تمرینات میتوانید با یک دیگر همفکری و مشورت داشته باشید ولی هرگونه کپی از شخص دیگر منجر به صفر شدن‬
‫نمرهی طرفین خواهد شد‪.‬‬
‫‪ ‬حل سؤالهایی که با * مشخص شده ممکن است نیازمند اطالعاتی از بخشهای بعدی نیز باشد که تا زمان طراحی آن سؤال‬
‫تدریس نشده باشد‪ .‬لذا این سؤالها را پس از تکمیل فصل حل کنید‪.‬‬
‫‪ ‬باقیمانده یک عدد باینری بر ‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫) ‪1‬‬
‫) ‪1‬‬
‫‪2‬‬
‫‪1‬‬
‫‪2‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪2‬‬
‫‪2‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪2‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪2‬‬
‫‪2‬‬
‫(‬
‫(‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬