DSD_HW1.pdf

‫طراحي سيستمهاي ديجيتال (‪)04-223‬‬
‫نيمسال نخست ‪23-22‬‬
‫دانشكدهي مهندسي كامپيوتر‬
‫تمرين ‪ .1‬توصیف در سطح سويیچ ‪ ،‬گیت و جريان داده در زبان وريالگ‬
‫‪.1‬‬
‫نمودار زماني براي قطعه كد زیر را با ذكر دليل و توضيحات كامل‪ ،‬رسم نمایيد‪.‬‬
‫;)‪module temp (out, a, b, c, d, e‬‬
‫;‪output out‬‬
‫;‪input a, b, c, d, e‬‬
‫;‪wire f, g, h‬‬
‫;)‪and #(5,7) (f, a, b‬‬
‫;)‪or #(3, 1) (g, f, c‬‬
‫;)‪nand #(4, 2) (g, d, e‬‬
‫;)‪nor #(4, 6) (out, g, h‬‬
‫‪endmodule‬‬
‫;‪module test‬‬
‫;‪reg a, b, c, d, e‬‬
‫;‪wire out‬‬
‫;)‪temp t1(out, a, b, c, d, e‬‬
‫‪initial‬‬
‫‪begin‬‬
‫;‪a = 1’b0; b = 1’b0; c = 1’b0; d = 1’b0; e = 1’b0‬‬
‫;‪#5 a = 1’b1; e = 1’b1‬‬
‫;‪#3 c = 1’b1; e = 1’b0‬‬
‫;‪#5 b = 1’b1‬‬
‫;‪#5 a = 1’b0; d = 1’b1; e = 1’b1‬‬
‫;‪#5 b = 1’b0; c = 1’b0‬‬
‫‪end‬‬
‫‪endmodule‬‬
‫‪.2‬‬
‫سواالت كوتاه ‪:‬‬
‫‪‬‬
‫یک مدار تركيبي كه هازارد استاتيک دارد را در سطح گيت توصيف كرده و با وارد نمودن تاخير‬
‫گيت ها ‪ glitch‬هایي كه در خروجي ایجاد مي شوند را نمایش دهيد ‪.‬‬
‫‪‬‬
‫تنها با استفاده از عنصر اوليه ‪ bufif‬و سيمهاي مقاومت دار )‪ (tri0 ,tri1‬در زبان وریالگ یک تمام‬
‫جمع كننده طراحي كنيد ‪.‬‬
‫‪.3‬‬
‫توصيف سطح گيت به زبان وریالگ مداري را بنویسيد كه سه عدد صحيح ‪ ۸‬بيتي را به عنوان ورودي گرفته و‬
‫این سه عدد را به ترتيب بزرگي به عنوان خروجي بدهد‪ .‬پورتهاي ماژول اصلي شما باید به فرمت زیر باشد‪:‬‬
‫;)‪module sort(max, mid, min, a, b, c‬‬
‫كه در آن ‪ max, mid, min‬خروجيهاي مدار و ‪ a, b, c‬وروديهاي آن هستند كه باید مرتب شوند‪.‬‬
‫طراحي سيستمهاي ديجيتال (‪)04-223‬‬
‫نيمسال نخست ‪23-22‬‬
‫دانشكدهي مهندسي كامپيوتر‬
‫براي راحتي در پيادهسازي پيشنهاد ميشود كه ابتدا مدار یک مقایسهكنندهي ‪ ۸‬بيتي را كه بزرگتر‪ ،‬كوچكتر و یا‬
‫مساوي بودن دو عدد را مشخص ميكند را طراحي و با استفاده از این مدار سه عدد ورودي را مرتب كنيد‪.‬‬
‫دقت كنيد كه اعداد ورودي به صورت متمم ‪ 2‬هستند و ميتوانند منفي یا مثبت یا صفر باشند‪.‬‬
‫‪.4‬‬
‫توصيف به زبان وریالگ یک ضرب كننده ي آرایه اي ‪ 5‬بيتي را مطابق نمودار بلوكي داده شده بنویسيد ‪.‬‬
‫توصيف شما مي تواند بسته به دلخواه خودتان در هر یک از سطوح گيت و یا جریان داده باشد ‪ .‬پورتهاي مدار‬
‫طراحي شده توسط شما به صورت زیر خواهد بود كه در آن ‪ a‬و ‪ b‬ورودي هاي ‪ 5‬بيتي بوده و ‪ mul‬خروجي‬
‫‪ 11‬بيتي مدار است‪.‬‬
‫;)‪module multiplier(a,b,mul‬‬
‫‪.5‬‬
‫تنها با استفاده از یک دستور ‪ assign‬توصيف جریان داده ي یک فليپ فالپ ‪ D‬حساس به لبه ي مثبت با‬
‫ورودي ریست آسنكرون را نوشته و مراحل زیر را به ترتيب انجام دهيد‪:‬‬
‫‪‬‬
‫با استفاده از آن یک رجيستر ‪ ۸‬بيتي طراحي كنيد ‪.‬‬
‫‪‬‬
‫با استفاده از رجيستر طراحي شده یک بانک ثبات با ‪ 4‬رجيستر ( ‪ 2‬بيت آدرس ) بسازید ‪ ،‬عمبكرد این‬
‫بانک ثبات بدین شكل است كه یک پورت آدرس و تنها يک پورت داده دارد و با توجه به سيگنال‬
‫مربوطه تصميم گيري مي كند كه در یک هر لحظه عمل خواندن و یا نوشتن را انجام دهد (عمل خواندن‬
‫به صورت آسنكرون و عمل نوشتن به صورت سنكرون با لبه ي كالک انجام مي شود ‪ ).‬بنابراین پورتهاي‬
‫بایک ثبات شما به شكل زیر خواهند بود ‪.‬‬
‫;)‪module register_file(address,data,clk,reset‬‬
‫‪‬‬
‫با اعمال تغييرات الزم فليپ فالپ قسمت اول را به یک فليپ فالپ حساس به دو لبه تبدیل كرده و با‬
‫اجراي مجدد پيمانه ي تست خود از دو برابر شدن سرعت مدار اطمينان حاصل كنيد ‪.‬‬
‫طراحي سيستمهاي ديجيتال (‪)04-223‬‬
‫نيمسال نخست ‪23-22‬‬
‫‪.6‬‬
‫دانشكدهي مهندسي كامپيوتر‬
‫یک مدار ‪ 2 MUX/DEMUX‬به ‪ 1‬را در سطح سویيچ مطابق آنچه در اسالیدها آمده است پياده سازي‬
‫كرده و نشان دهيد كه با این مدار نمي توان یک فليپ فالپ ساخت ‪ .‬سپس با استفاده از تعدادي سویيچ و‬
‫ایجاد گره هاي خازني یک فليپ فالپ ‪ D‬حساس به سطح طراحي كرده و با روش پایه – پيرو آن را به یک‬
‫فليپ فالپ حساس به لبه تبدیل كنيد ‪.‬‬
‫(اين سوال برای دانشجويان سخت افزار اجباری و برای ساير دانشجويان اختیاری است )‬
‫زمان و نحوه ی تحويل‬
‫شنبه ‪ 1331/7/21‬ساعت ‪ 23:55‬روي درس افزار‬
‫يادآوریهای عمومي‬
‫لطفاً توجه داشته باشيد كه‪:‬‬
‫‪ .1‬ارائه ي پيمانه ي تست مناسب و ضميمه كردن تصاویر از شكل موجهاي توليدد شدده در تمدامي سدالاالت‬
‫الزامي است و عدم نوشتن آن موجب كسر نمره خواهد شد ‪.‬‬
‫‪ .2‬به ازاي هر روز دیركرد در تحویل تمرینها ‪ %11‬جریمه منظور خواهد شد‪.‬‬
‫‪ .3‬بههيچ عنوان تمریني را از دیگران كپي نكنيد و به دیگران كپي ندهيد‪ .‬درغيراینصورت نمرهي آن تمرین‬
‫براي هر دو طرف (كپيدهنده و كپيگيرنده) ‪ -111‬منظور خواهد شد‪.‬‬
‫موفق باشيد‬