TOBB Ekonomi ve Teknoloji Üniversitesi BİL 264L/ELE 263L Deney 6 DENEY 6 Hesap Makinesi module hesapMakinesi ( input clk, rst, valid_in, input signed [7:0] data_in, // isaretli sinyal output valid_out, output [15:0] cikis ); Bu deneyde, yukarıda giriş çıkış portları verilen hesap makinesi durum makinesi kullanılarak oluşturulacaktır. Devrenin çalışma şekli aşağıdaki gibidir: Bütün okumalar ve işlemler saatin yükselen kenarında yapılmaktadır. rst sinyali 1 iken, devre çalışmamaktadır ve çıkış geçersizdir. rst sinyali 0 iken, valid_in sinyali 1 ise girişler geçerli demektir ve data_in girişindeki veri kullanılacaktır. Devrenin tek bir veri girişi portu olduğundan hem işlemlerde kullanılacak sayılar hem de işlemin ne olacağı bu porttan okunacaktır. Bu porttan okunan ilk geçerli değer (valid_in = 1 iken) ilk sayı, ikinci geçerli değer işlem kodu ve üçüncü geçerli değer de ikinci sayı olmaktadır. Geçerli bir değer gelmediği sürece herhangi bir ilerleme olmayacaktır ve gelene kadar aynı aşamada beklenecektir. İşlem kodu tanımlı değerler dışında ise geçerli bir işlem kodu gelene kadar beklenecektir. Üç adet geçerli değer gelmişse sonraki saat vuruşunda (yükselen kenarda) gerekli hesaplama yapılıp geçerli (valid_out = 1) sonuç çıkışa (data_out) verilecektir. Bir saat çevrimi boyunca çıkış geçerli olduktan sonra tekrar yeni hesaplama için girdi beklenecektir. Hesap makinesinin yapacağı işlemler ve kodları aşağıdaki tabloda verilmiştir. İşlem Kodu İşlem 0 Birinci sayı ile ikinci sayı toplanır. 1 Birinci sayıdan ikinci sayı çıkarılır. 2 Birinci sayı ile ikinci sayı çarpılır. 3 Birinci sayı ile ikinci sayı VE’ lenir (çıkışın üst sekiz biti sıfırlanır). 4 Birinci sayı ile ikinci sayı VEYA’ lanır (çıkışın üst sekiz biti sıfırlanır). 5 Birinci sayı ile ikinci sayı ÖZEL VEYA’ lanır (çıkışın üst sekiz biti sıfırlanır). 6 Birinci sayının sağına ikinci sayı eklenir. 7 İkinci sayının sağına birinci sayı eklenir.