MALTEPE ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSİĞİ PROGRAMI BİL 551- Uygulamalı Sayısal Tasarım Ara Sınavı Öğrenci Adı Soyadı : Öğrenci No : Akademik yıl : 2014-2015 Dönem : Güz Tarih : 26.11.2014 Sınav yeri : Sayısal Sistemler Laboratuvarı Sınav süresi : 120 dakika Ders sorumlusu : Yrd.Doç.Dr. Serap ÇEKLİ Soru 1 2 3 Toplam Puan 60 20 20 100 Not KURALLAR Sınavdan önce adınızı-soyadınızı ve öğrenci numaranızı yazınız. Soruların tamamını cevaplayınız. Cevaplarınızı sadece ekteki sayfalara yazınız. Yazınız mutlaka düzgün ve okunaklı olmalıdır. Okunamayan ve anlaşılmayan karalama vb. kısımlar değerlendirmeye alınmayacaktır. Sonuçlarınızı mutlaka birimleri (m, kg, m/s. vb) ile veriniz. Birimsiz sonuçlar sayısal değer doğru olsa bile eksik puanla (örneğin yarısı gibi) değerlendirilecektir. Sınav sırasında sadece sınav kağıtları, kalem, silgi, hatırlatma kağıdı ve hesap makinesi masa üzerinde bulunabilir. Diğer tüm eşyalarınız masa altında olmalıdır. Sınav sırasında; sınavla ilgili soru sormak, arkadaşınızla konuşmak, malzeme alıp vermek, sözlük, cep telefonu, ders notları ve dersle ilgili diğer kişisel notları kullanmak yasaktır. Kurallara uymayanların davranışları “sınavda kopya yapmaya teşebbüs etmek veya kopya yapmak” olarak değerlendirilecektir. BİL 551 Ara Sınavı Güz Yarıyılı – 2014 / 2015 Soru 1 a) [30 puan] Girişine 1101 veya 1110 dizisi geldiğinde çıkışı 1 olan Mealy Makinesini Sonlu Durum Makinesi (FSM) Modeliyle tasarlayınız. Sonlu durum makinesinin durum diyagramını çiziniz. Durum geçiş tablosunu çiziniz. 0/0 S0 1/0 0/0 0/0 S1 1/1 S4 1/0 0/0 0/1 S2 1/0 S3 1/0 2 of 5 BİL 551 Ara Sınavı Güz Yarıyılı – 2014 / 2015 b) [30 puan] Tasarladığınız sonlu durum makinesinin (FSM) Verilog HDL kodunu yazınız. module Soru_Mealy_Machine(input clk, x, reset, output z); parameter S0 = 3'b000, S1 = 3'b001, S2 = 3'b010, S3 = 3'b011, S4 = 3'b100, S5 = 3'b101; // Binary Encoding Schema reg [2:0] present_state; reg [2:0] next_state; always@( posedge clk ) begin if(reset) present_state <= S0; else present_state <= next_state; end always@( present_state or x ) begin case(present_state) S0: if (x) next_state <= S1; else next_state <= S0; S1: if (x) next_state <= S2; else next_state <= S0; S2: if (x) next_state <= S3; else next_state <= S4; S3: if (x) next_state <= S3; else next_state <= S4; S4: if (x) next_state <= S1; else next_state <= S0; default: next_state <= S0; endcase end /*always@( present_state or x ) begin case(present_state) S0: if (x) z <= 1'b0; S1: if (x) z <= 1'b0; S2: if (x) z <= 1'b0; S3: if (x) z <= 1'b0; S4: if (x) z <= 1'b1; default: z <= 1'b0; endcase end*/ else else else else else z z z z z <= <= <= <= <= 1'b0; 1'b0; 1'b0; 1'b1; 1'b0; assign z = ( (present_state == S3) && (x == 0) ) | ( (present_state == S4) && (x == 1) ); endmodule 3 of 5 BİL 551 Ara Sınavı Güz Yarıyılı – 2014 / 2015 Soru 2 Aşağıda verilen Verilog HDL modüllerini inceleyerek bu modüllerde yazım hatası olup olmadığını belirleyiniz ve belirlediğiniz hataları kısaca sebebini yazarak düzeltiniz. a) [10 puan] module tamtoplama(input a, b, cin, output reg s, cout); wire p, g; assign p = a ^ b; assign g == a & b; assign s = p ^ cin; always@(*) begin assign cout = g | (p & cin); end endmodule b) [10 puan] module bolmeFSM (input clk, input reset, output reg y); reg [1:0] state; wire [1:0] nextstate; parameter S0 = 2’b00, S1 = 2’b01, S2 = 2’b10; // state register always @ (posedge clk, posedge reset) if (reset) state <= S0; else state <= nextstate; // next state logic always @ (*) case (state) S0: nextstate = S1; S1: nextstate = S2; S2: nextstate = S0; default: nextstate <= S0; endcase // output logic assign y = (state == S0); endmodule 4 of 5 BİL 551 Ara Sınavı Güz Yarıyılı – 2014 / 2015 Soru 3 [20 puan] Tek bitlik bir B girişine sahip bir sistem, bu B girişindeki sinyalin değişimlerini saymaktadır. Girişe gelen sinyaldeki değişimler, sinyalin lojik 0’ dan lojik 1’ e dönmesi ve yine bu sinyalin lojik 1’ den lojik 0’ a dönmesi olarak tanımlanmıştır. Sayılan bu değişimler başlangıçta değeri 0 olan 16 bitlik işaretsiz bir C çıkışında her bir saat çevriminde gösterilmektedir. C çıkışının en büyük değerine ulaşıldığında sistem baştan saymaya başlamaktadır. Bu sistemin davranışını Yüksek Seviyeli Durum Makinesi (HLSM) modeli ile tasarlayınız (durum geçiş diyagramını çiziniz). Giriş : 1-bit B Çıkış: 16-bit C Toplama değerini tutan kaydedici (register): C_reg B’ Creg:= Creg + 1 Bekle1 B Arttır1 B’ Başla B Creg:= 0 B Bekle0 B’ Arttır0 Creg:= Creg + 1 5 of 5
© Copyright 2024 Paperzz