€¦  · web viewproje raporu. proje danışmanı. yrd.doç.dr.aydoğan savran. proje ekibi....

83
1 BİSA CPU Proje Raporu Proje Danışmanı Yrd.Doç.Dr.Aydoğan Savran Proje Ekibi Arş.Gör.Özkan Akın Cihat Eroğlu(Proje Yetkilisi)

Upload: others

Post on 26-May-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

1

BİSA CPU

Proje Raporu

Proje Danışmanı

Yrd.Doç.Dr.Aydoğan Savran

Proje Ekibi

Arş.Gör.Özkan Akın

Cihat Eroğlu(Proje Yetkilisi)

Page 2: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

İÇİNDEKİLER

1)GİRİŞ _______________________________________________________________________ 3

2)BİSA MULTIPLE-CYCLE MİKROİŞLEMCİ______________________________________________3

2.1)DONANIM BÖLÜMÜ________________________________________________________ 4

2.1.1)Genel Blok Diyagram _________________________________________________ 4

2.1.2)Hafıza Ünitesi(Memory) _______________________________________________ 5

2.1.3)Veri yolu(Datapath) ___________________________________________________5

a.Register File______________________________________________________ 6

b.Arithmetic Logic Unit(ALU)___________________________________________6

c.Mux B___________________________________________________________ 8

d.Mux D __________________________________________________________ 8

e.Mux M___________________________________________________________8

2.1.4)Kontrol Ünitesi(Control Unit)____________________________________________ 8

a.Program Counter(PC)_______________________________________________ 9

b.Instruction Register(IR)______________________________________________9

c.Mux C___________________________________________________________ 9

d.Control Address Register(CAR)_______________________________________ 9

e.Mux S___________________________________________________________ 9

f. Control Memory___________________________________________________9

2.2)YAZILIM BÖLÜMÜ_________________________________________________________10

a.Synthesis Report__________________________________________________ 10

b.Translate Report__________________________________________________ 12

c.Map Report ______________________________________________________ 13

d.Device Utilization Summary _________________________________________ 15

3)REFERANSLAR________________________________________________________________ 15

EKLER________________________________________________________________________ 16

Page 3: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

EK 1:Yazılım Kodları_____________________________________________________________ 16

EK 2:Model Sim Çıktıları__________________________________________________________ 71

Anahtar Kelimeler

VHDL,Multiple Cycle-Hardwired Control,BİSA,Memory,Datapath,Control Unit,ALU,Register File,Control Memory

1) GİRİŞ

VHDL programlama dili temelli Xilinx 7.1 editörü kullanılarak program kodları özgün biçimde geliştirilen ve Model Sim XE II 5.8c simülasyon programı kullanılarak performans testi yapılan BİSA CPU basit ve temel düzeyde bir işlemci olarak tasarlanmıştır.Bu rapor BİSA’nın sonuçlandırılma aşamasında hazırlanmış ve işlemcinin temel özellikleri ile işlemci tasarımında kullanılan teorik bilgi hakkında ayrıntılı bilgiye erişilebilecek bir doküman özeliğindedir.İlgili VHDL kodları ve Model Sim simülasyon çıktıları rapora ilaveten dahil edilen ekte yer almaktadır.

BİSA’nın VHDL kod tasarımının yapısal olmasına özellikle dikkat edilmiştir.Alu,register file gibi farklı görevleri üstlenen alt kod yapıları oluşturulmuş ve bu yapılar 3 ana yapı altında toplanarak tüm işlemci yapısıyla bağlantılı hale getirilmiştir.

2)BİSA MULTIPLE-CYCLE MİKROİŞLEMCİ

Bisa Multiple-Cycle mikroişlemcinin temel özelikleri aşağıdaki gibi sıralanabilir:

VHDL kullanılarak tasarlanmıştır. Multiple Cycle-Hardwired Control temelli işlemci özelliğindedir. “Memory,datapath ve control unit “ olmak üzere 3 ana yapıdan oluşması Kod tasarımında iç içe yapılarin kullanılması dolayısıyla modüler bir yapı oluşturulması Geliştirilme aşamasında 25 temel komut yazılım kodu Xilinx’in VHDL editöründe

oluşturulup Model Sim’de simülasyonla test edilmiş ve başarılı sonuç alınmıştır. Sistem donanım ve yazılım olmak üzere 2 kısımdan oluşmaktadır. Donanım kısmında sistemi oluşturan 3 ana yapı hafıza ünitesi,kontrol ünitesi ve veri

yolu ayrı ayrı alt yapılardan oluşmaktadır.Her bir alt yapı ayrı bir işlemi gerçekleştirmekte ve kendi aralarında koordineli çalışarak ana işlemciyi oluşturmaktadırlar.

Yazılım kısmında sistemin Xilinx VHDL editöründe oluşturulmuş yazılım kodları koşturularak gerekli sonuçlar alınmıştır.Yazılım kodları Ekler kısmında incelenebilir.

Page 4: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

2.1.1) Genel Blok Diyagram

Şekil-1

BİSA Multiple-Cycle işlemci tasarımında ana yapılar(datapath vb.) ve iç yapılar(control memory,reg file vb.)arasındaki bağlantı ve işleyiş mantığının kod tasarımının yapılmasında bu şema kullanılmıştır.Fakat tasarımın gerektirdiği bazı durumlarda bağlantılarda birtakım değişikliklere gidilmiştir.Örneğin kontrol ünitesinde “control memory” çıkışındaki TD,TA ve TB bayrakları iptal edilerek “datapath“de register file girişleri uygun bir şekilde ayarlanmıştır.Yukarıdaki şemaya göre yapılan diğer değişiklikler Ekler kısmında ModelSim çıktıları ve VHDL kodlarından incelenebilir.

Page 5: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

2.1.2 HafızaÜnitesi(Memory)

Şekil-2

Bisa’nın 3 ana yapısından birisi olan hafıza(memory)bloğu bu tasarımda şu görevleri üstlenmektedir:PC(Program Counter)dan veya A kaydedicisinden(registerinden) gelen adres bilgisini okunarak ilgili adres gözündeki 16 bitlik bilgi çıkışa aktarılmaktadır.Adres kaynağı seçimi memory girişindeki MUX M bloğu ile gerçekleştirilmektedir.Hafıza ünitesinin bu şekilde okuma modunda çalışması için yazılım kodlarında Read olarak belirlenen girişi high(aktif)konumda olmalıdır.Bu hafıza bloğunun diğer bir görevi de IR(Instruction Register)den gelen ivedi(immediate) bilginin veya B kaydedicisindeki bilginin MUX B bloğunun katkısıyla seçilerek PC veya A kaydedicisi tarafından adres gözüne yazılabilmesidir.Hafıza bloğunun bu şekilde yazma modunda çalışması için yazılımda MW olarak belirlenen girişi aktif durumda olmalıdır.Yazma modunda istenirse Read biti de aktif yapılarak hafıza ünitesine yazılan bilgi hafıza ünitesi çıkışında görülebilir.Sistemimizin tasarımında hafıza ünitesi 16 bitlik bilgi içeren 256 adet adres gözünden oluşmaktadır. 2.1.2)Veri yolu(Datapath)

Şekil-3

Page 6: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

Bisa’nın diğer bir ana yapısı olan datapath bloğu farklı özellikte işlemlerin gerçekleştirildiği işlem sonuçlarının istenen kaydedicilere saklanabildiği bir blok görevi üstlenmektedir.Bu blok farklı görevleri üstlenen ve birbiriyle koordineli çalışan birtakım alt yapılardan oluşmaktadır.Bunlar,ALU,Register File,Mux M,Mux B ve Mux D olmak üzere 5 adettir.Her bir yapının üstlendiği görev aşağıda detaylı olarak verilmektedir.

a.)Register File

Bisa mikroişlemci tasarımında veriyolunda gerçekleştirilen işlevlerin sonuçlarının kaydedildiği kaydedicileri(register)içeren register file bu tasarımda 8 adet register içermektedir.Her bir kaydedici kontrol ünitesinden gelen bilgiye göre hedef kaydedici, A kaynak kaydedicisi veya B kaynak kaydedicisi olarak kullanılabilmektedir.Yazılımda RW olarak atanan bitin aktif yapılmasıyla register filenin belirlenen hedef kaydedicisine alu dan veya memory den gelen bilgi kaydedilebilir.

b.) Arithmetic Logic Unit(ALU)

Bisa mikroişlemci tasarımında aritmetik lojik ünitemiz 5 bitlik FS girişi ile 32 farklı işlevi gerçekleştirebilecek şekilde tasarlanmıştır.Tasarımda 24 farklı işlem başarıyla ModelSim simülasyon ortamında gerçeklenmiş ve doğru sonuçlar elde edilmiştir.Çıkışa yerleştirilen elde,taşma,negatif ve sıfır bayraklarıyla kontrol ünitesinin sistemin yönlendirilmesine katkıda bulunulmuştur.Aşağıda tasarımda gerçekleştirilen işlevler kısa açıklamalarla birlikte gösterilmektedir.Her işlemin kod algoritması Ekler kısmında Yazılım kodları bölümünde incelenebilir.

FS = ”00000” Nop(No operation) :Herhangi bir işlem gerçekleştirilmemekte sadece A kaydedicisindeki 16 bitlik sayı alu çıkışına atanmaktadır.)

FS= “00001” Add(Addition):A kaydedicisindeki 16 bitlik sayı ile B kaydedicisindeki 16 bitlik sayı toplanmaktadır.

FS= “00010” Addi(Addition Immediate): A kaydedicisindeki 16 bitlik sayı ile 16 bitlik IR(Instruction Register) çıkışından alınan ivedi bir sayı toplanmaktadır.

FS= “00011” Sub(Subtraction):A kaydedicisindeki 16 bitlik sayıdan B kaydedicisindeki 16 bitlik sayı çıkarılmaktadır.

FS= “00100” Subi(Subtraction Immediate): A kaydedicisindeki 16 bitlik sayıdan 16 bitlik IR çıkışından alınan ivedi bir sayı çıkarılmaktadır.

FS= “00101” Cmp(Compare):A kaydedicisindeki 16 bitlik sayı ile B kaydedicisindeki 16 bitlik sayı karşılaştırılarak(çıkarma algoritması kullanılarak) A > B iken alu çıkışına yerleştirilen 2 bitlik “alucmp” çıkışına 2 sayısı atanıyor.A < B iken bu çıkışa 1 sayısı atanıyor.A = B iken bu çıkışa 0 sayısı atanıyor.

Page 7: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

FS= “00110” And(AND): A kaydedicisindeki 16 bitlik sayı ile B kaydedicisindeki 16 bitlik sayının tüm bitleri And işlemine tabi tutuluyor.

FS= “00111” Andi(AND Immediate): A kaydedicisindeki 16 bitlik sayı ile 16 bitlik ivedi bir sayının tüm bitleri And işlemine tabi tutuluyor.

FS= “01000” Or(OR): A kaydedicisindeki 16 bitlik sayı ile B kaydedicisindeki 16 bitlik sayının tüm bitleri Or işlemine tabi tutuluyor.

FS= “01001” Ori(OR Immediate): A kaydedicisindeki 16 bitlik sayı ile 16 bitlik ivedi bir sayının tüm bitleri Or işlemine tabi tutuluyor.

FS= “01010” Not(NOT): A kaydedicisindeki 16 bitlik sayının tüm bitleri Not işlemine tabi tutuluyor.

FS= “01011” Xor(XOR): A kaydedicisindeki 16 bitlik sayı ile B kaydedicisindeki 16 bitlik sayının tüm bitleri Xor işlemine tabi tutuluyor.

FS= “01100” Xori(XOR immediate): A kaydedicisindeki 16 bitlik sayı ile 16 bitlik ivedi bir sayının tüm bitleri Xor işlemine tabi tutuluyor.

FS= “01101” Sll(Logical Shift Left):A kaydedicisindeki 16 bitlik sayı 1 bit sola kaydırılıyor.

FS= “01110” Srl(Logical Shift Right): A kaydedicisindeki 16 bitlik sayı 1 bit sağa kaydırılıyor.

FS= “01111” Sla(Arithmetic Shift Left): A kaydedicisindeki 16 bitlik sayı Sll de olduğu gibi 1 bit sola kaydırılıyor.Sll’den farklı olarak Sla kaydırma esnasında overflow bitini set edebiliyor.

FS= “10000” Sra(Arithmetic Shift Right): A kaydedicisindeki 16 bitlik sayı A’nın en anlamlı biti(MSB) ‘1’ ise 1 bit sağa kaydırılarak başına 1 konur.A’nın en anlamlı biti ‘0’ ise A 1 bit sağa kaydırılarak başına ‘0’konur.

FS= “10001” Lw(Load word):Hafıza ünitesindeki seçilen bir adres gözündeki 16 bitlik sayı IR tarafından belirlenen bir kaydediciye(register)kaydedilir.

FS= “10010” Mov(Move data between registers):IR tarafından belirlenen bir kaynak kaydedicideki sayı yine IR tarafından belirlenen bir hedef kaydediciye kopyalanır.

FS= “10011” Movi(Move data immediate):IR tarafından belirlenen ivedi bir sayı yine IR tarafından belirlenen bir hedef kaydediciye kopyalanır.

FS= “10100” Ba(Branch always):Program counter(PC),IR’nin en düşük anlamlı 6 biti tarafından belirlenen memory adres gözüne herhangi bir koşula dayanmadan atlar.

Page 8: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

FS= “10101” Mulu(Multiplication Unsigned):A ve B kaydedicilerindeki işaretsiz iki sayı çarpma işlemine tabi tutulur.

FS= “10110” Mul(Multiplication):A ve B kaydedicilerindeki işaretli iki sayı çarpma işlemine tabi tutulur.

FS= “10111” Muli(Multiplication Immediate):A kaydedicisindeki işaretli sayı ile işaretli ivedi bir sayı çarpma işlemine tabi tutulur.

FS= “11000” Hlt(Halt):Program counter’ın halt girişi set edildiği zaman PC’nin içeriği sıfırlanır ve işlemcinin start girişi set edilene kadar herhangi bir işlem yapılmaz.

Yukarıdaki Halt,Branch always,Load word gibi işlemlerde matematiksel işlem yapılmadığı için alu çıkışına sadece A kaydedicisindeki sayı aktarılmıştır.

Alu çıkışına yerleştirilen elde,taşma,negatif ve sıfır bayraklarıyla ilgili kodlar Ekler bölümünde Yazılım kodlarından takip edilebilir.

c.)Mux B

Bisa mikroişlemcisinde Mux B bloğu B kaydedicisinden gelen bilgi ile IR çıkışından gelen ivedi bilginin seçildiği bloktur.Seçim kontrol hafızası çıkışından gelen MB biti ile ayarlanmaktadır.

d.)Mux D

Bisa mikroişlemcisinde Mux D bloğu alu çıkışından gelen bilgi ile memory çıkışından gelen bilginin seçildiği bloktur.Seçim kontrol hafızasından gelen MD biti ile sağlanmaktadır.

e.) Mux M

Hafıza ünitesine adres bilgisinin PC den mi A kaydedicisinden mi geleceğini belirleyen bloktur.Seçim kontrol hafızasından gelen MM biti ile sağlanmaktadır.

2.1.4)Control Unit

Page 9: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

Şekil-4

a.Program Counter(PC)

IR’de yer alan DR ve SB bit gruplarındaki bilgiyle yüklenebilen PC,memory’nin hangi adres gözüne erişileceğinin dolayısıyla hangi komutun seçileceğinin belirlenmesinde görev alır.PC’nin girişindeki control memory’den gelen PI bayrağı aktifken PC 1 artırım yoluyla memory adres gözlerine erişirken,PL bayrağı aktif olduğunda IR’den de yüklenebilir ve bu değerin göstediği memory adres gözüne erişilir.

b.Instruction Register(IR)

IR(Komut kaydedicisi),bünyesinde barındırabileceği farklı opcode bilgileriyle farklı farklı komutların işletilmesinde görev almaktadır.Bu opcode bilgisi ile birlikte DR(Destination register) ve SA(Source A-A kaydedicisi için R0-R7 seçimi),SB(Source B-B kaydedicisi için R0-R7 seçimi)bilgileri IL aktif olmak şartıyla memory’den alınabilir.

c.Mux C

Mux C bloğu, Control Memory çıkışındaki NA‘dan gelen 8 bitlik sayı ile IR’den gelen 8 bitlik opcode bilgisi arasında seçim yapılan multiplexer(çoğullayıcı)ünitesidir.Bu seçim control memory ye saklanan MC biti yardımıyla yapılır.MC =’1’ ise IR’den gelen opcode bilgisi çoğullayıcı çıkışına alınır.MC = ‘0’ ise NA’dan gelen opcode bilgisi çoğullayıcı çıkışına alınır.

d.Control Address Register(CAR)

Mux C çıkışından alınan opcode bilgisi CAR’a iletilir.Bu bilginin CAR çıkışına iletilebilmesi için Mux S çıkışından gelen ve CAR’a giriş olarak bağlanan enable bitinin set edilmiş olması gerekir.Aksi takdirde CAR sadece 1 artırılır ve bir sonraki opcode bilgisi control memory ye aktarılmış olur.

Page 10: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

e.Mux S

Alu’dan gelen sıfır,taşma,elde ve negatif bayraklarına göre Mux S çıkışı set edilir ve alçak seviyede bırakılır.Bu bayrak değerleri yüksek seviye olarak Mux S çoğullayıcı bloğuna geldiğinde çıkış set edilir aksi takdirde alçak seviyede bırakılır.Hangi bayrağın durumuna göre işlem yapılacağı control memory den gelen 3 bitlik MS sinyali ile belirlenir.

f.Control Memory

BİSA’da Control memory başta verilen blok diyagramdan farklı olarak 26 bit sayısına sahiptir.TA,TB,TD bitleri iptal edilmiş,PCCLR isminde PC’yi istenildiğinde halt komutundan farklı olarak sıfırlayan giriş eklenmiştir.Control memory genel olarak datapath memory ve control unit te gerçekleşen olayların belli şartlara bağlı olarak gerçekleşmesini sağlayan bayrakların yer aldığı hafıza bloğudur.BİSA’da bu sonuçlandırma aşamasında belirlenen 30 adres gözüne bilgi depolanmıştır.

2.2) YAZILIM BÖLÜMÜ

Bisa mikroişlemcinin tasarımı için Xilinx 7.1 ISE editöründe VHDL dili kullanılarak oluşturulan yazılım kodları Ekler kısmında verilmekle birlikte aşağıda kodların koşturulmasıyla birlikte elde elde edilen Synthesis Report,Translate Report,Map Report ve Device Utilisation Summary çıktılarına erişilebilir.

a.Synthesis Report

=========================================================================

* Advanced HDL Synthesis *

=========================================================================

Advanced RAM inference ...

MAC inference ...

Advanced multiplier inference ...

Advanced Registered AddSub inference ...

DSP optimizations ...

Dynamic shift register inference ...

=========================================================================

Page 11: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

HDL Synthesis Report

Macro Statistics

# LUT RAMs : 1

256x16-bit single-port distributed RAM: 1

# ROMs : 1

256x26-bit ROM : 1

# Multipliers : 2

16x16-bit multiplier : 2

# Adders/Subtractors : 6

16-bit adder : 4

32-bit adder : 1

8-bit adder : 1

# Counters : 1

16-bit up counter : 1

# Registers : 10

1-bit register : 1

16-bit register : 9

# Latches : 15

1-bit latch : 1

16-bit latch : 6

2-bit latch : 1

26-bit latch : 1

3-bit latch : 3

32-bit latch : 2

8-bit latch : 1

# Comparators : 1

16-bit comparator greater : 1

Page 12: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

# Multiplexers : 6

1-bit 8-to-1 multiplexer : 1

16-bit 4-to-1 multiplexer : 2

16-bit 8-to-1 multiplexer : 2

2-bit 4-to-1 multiplexer : 1

# Xors : 3

1-bit xor2 : 2

16-bit xor2 : 1

Timing Summary:

---------------

Speed Grade: -12

Minimum period: 11.950ns (Maximum Frequency: 83.683MHz)

Minimum input arrival time before clock: 1.791ns

Maximum output required time after clock: 14.013ns

Maximum combinational path delay: No path found

b.Translate Report

Release 7.1i ngdbuild H.38

Copyright (c) 1995-2005 Xilinx, Inc. All rights reserved.

Command Line: ngdbuild -intstyle ise -dd h:\datakontrol/_ngo -i -p

xc4vlx15-sf363-12 microprocessor.ngc microprocessor.ngd

Reading NGO file 'H:/datakontrol/microprocessor.ngc' ...

Checking timing specifications ...

Checking expanded design ...

NGDBUILD Design Results Summary:

Page 13: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

Number of errors: 0

Number of warnings: 0

Total memory usage is 78348 kilobytes

Writing NGD file "microprocessor.ngd" ...

Writing NGDBUILD log file "microprocessor.bld"...

c.Map Report

Removed Logic Summary

---------------------------------

8 block(s) removed

2 block(s) optimized away

8 signal(s) removed

Additional Device Resource Counts

----------------------------------------------

Number of JTAG Gates for IOBs = 198

Number of Equivalent Gates for Design = 41,618

Number of RPM Macros = 0

Number of Hard Macros = 0

PMV = 0

USR_ACCESS_VIRTEX4 = 0

BUFIO = 0

GT11CLK = 0

GT11 = 0

IDELAYCTRL = 0

FRAME_ECC_VIRTEX4 = 0

STARTUP_VIRTEX4 = 0

JTAGPPC = 0

ICAP_VIRTEX4 = 0

Page 14: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

DPM = 0

DCI_TEST = 0

DCIRESET = 0

CAPTURE_VIRTEX4 = 0

BSCAN_VIRTEX4 = 0

OSERDES = 0

ISERDES = 0

BUFR = 0

EMAC = 0

PPC405_ADV = 0

MONITOR = 0

PMCD = 0

DCM_ADV = 0

DSP48 = 2

Unbonded IOBs = 0

Bonded IOBs = 198

XORs = 107

CARRY_INITs = 58

CARRY_SKIPs = 0

CARRY_MUXes = 110

Shift Registers = 0

Static Shift Registers = 0

Dynamic Shift Registers = 0

16x1 ROMs = 0

16x1 RAMs = 0

32x1 RAMs = 128

Dual Port RAMs = 0

Page 15: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

MUXFs = 281

MULT_ANDs = 0

4 input LUTs used as Route-Thrus = 9

4 input LUTs = 853

Slice Latches not driven by LUTs = 157

Slice Latches = 157

Slice Flip Flops not driven by LUTs = 32

Slice Flip Flops = 161

SliceMs = 128

SliceLs = 530

Slices = 658

F6 Muxes = 48

F5 Muxes = 105

F8 Muxes = 0

F7 Muxes = 0

Number of LUT signals with 4 loads = 3

Number of LUT signals with 3 loads = 16

Number of LUT signals with 2 loads = 116

Number of LUT signals with 1 load = 644

NGM Average fanout of LUT = 3.12

NGM Maximum fanout of LUT = 129

NGM Average fanin for LUT = 3.4689

Number of LUT symbols = 853

d.Device Utilisation Summary

Selected Device : 4vlx15sf363-12

Number of Slices: 732 out of 6144 11%

Number of Slice Flip Flops: 351 out of 12288 2%

Page 16: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

Number of 4 input LUTs: 1111 out of 12288 9%

Number of bonded IOBs: 214 out of 240 89%

Number of GCLKs: 8 out of 32 25%

Number of DSP48s: 2 out of 32 6%

3)REFERANSLAR

[1]Logic And Computer Design Fundamentals,M.Morris Mano-Charles R.Kime,Prentice Hall, 2nd Edition

[2] http://esd.cs.ucr.edu/labs/tutorial/VHDL Tutorial Learn by Example by Weijun Zhang

EKLER

EK 1:YAZILIM KODLARI

1)Microprocessor

--------------------------------------------------------------------------------

Page 17: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

-- Company:

-- Engineer: Cihat Eroğlu

--

-- Create Date: 14:33:50 05/29/08

-- Design Name:

-- Module Name: microprocessor - Behavioral

-- Project Name:

-- Target Device:

-- Tool versions:

-- Description:

--

-- Dependencies:

--

-- Revision:

-- Revision 0.01 - File Created

-- Additional Comments:

--

--------------------------------------------------------------------------------

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

---- Uncomment the following library declaration if instantiating

---- any Xilinx primitives in this code.

--library UNISIM;

--use UNISIM.VComponents.all;

Page 18: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

entity microprocessor is

Port ( clock : IN std_logic;

reset,start: IN std_logic;

PCin : IN std_logic_vector(15 downto 0);

PCclr : out std_logic;

Memoryread : IN std_logic;

cMemoryread: IN std_logic;

cpuoutput : OUT std_logic_vector(15 downto 0);

registerA : OUT std_logic_vector(15 downto 0);

registerB : OUT std_logic_vector(15 downto 0);

alu_Bmul : out std_logic_vector(15 downto 0);

PCout : OUT std_logic_vector(15 downto 0);

IRout : OUT std_logic_vector(15 downto 0);

memoryout : OUT std_logic_vector(15 downto 0);

CARout : OUT std_logic_vector(7 downto 0);

muxsout : OUT std_logic;

NA : OUT std_logic_vector(7 downto 0);

MS : OUT std_logic_vector(2 downto 0);

MC : OUT std_logic;

IL : OUT std_logic;

PI : OUT std_logic;

PL : OUT std_logic;

MB : OUT std_logic;

FunctionSel: OUT std_logic_vector(4 downto 0);

MD : OUT std_logic;

RW : OUT std_logic;

Page 19: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

MM : OUT std_logic;

MW : OUT std_logic;

muxcout : OUT std_logic_vector(7 downto 0);

Overflow : OUT std_logic;

Carry : OUT std_logic;

Negative : OUT std_logic;

Zero : OUT std_logic;

Compare : OUT std_logic_vector(1 downto 0);

memorydata : OUT std_logic_vector(15 downto 0);

mxM_out : OUT std_logic_vector(15 downto 0)

);

end microprocessor;

architecture Behavioral of microprocessor is

COMPONENT ana

PORT( clock : in std_logic;

start : IN std_logic;

PCclr : out std_logic;

PCout : out std_logic_vector(15 downto 0);

IRIM : out std_logic_vector(15 downto 0);

seIM : out std_logic_vector(15 downto 0);

dir_addr : out std_logic_vector(7 downto 0);

IRin : in std_logic_vector(15 downto 0);

IRin2 : in std_logic_vector(15 downto 0);

IRout : out std_logic_vector(15 downto 0);

DR_IR : out std_logic_vector(2 downto 0);

SA_IR : out std_logic_vector(2 downto 0);

SB_IR : out std_logic_vector(2 downto 0);

Page 20: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

CAR_out : OUT std_logic_vector(7 downto 0);

NEG : IN std_logic;

ZR : IN std_logic;

CRY : IN std_logic;

OVR : IN std_logic;

mxS_out : OUT std_logic;

Read : IN std_logic;

NA : OUT std_logic_vector(7 downto 0);

MS : OUT std_logic_vector(2 downto 0);

MC : OUT std_logic;

IL : OUT std_logic;

PI : OUT std_logic;

PL : OUT std_logic;

MB : OUT std_logic;

Func_S : OUT std_logic_vector(4 downto 0);

MD : OUT std_logic;

RW : OUT std_logic;

MM : OUT std_logic;

MW : OUT std_logic;

Data_out : OUT std_logic_vector(25 downto 0);

mxC_out : OUT std_logic_vector(7 downto 0)

);

END COMPONENT;

COMPONENT main

PORT(clock : IN std_logic;

m_alu_FS : IN std_logic_vector(4 downto 0);

m_alu_V : OUT std_logic;

Page 21: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

m_alu_C : OUT std_logic;

m_alu_N : OUT std_logic;

m_alu_Z : OUT std_logic;

alucmp : OUT std_logic_vector(1 downto 0);

m_alu_F : OUT std_logic_vector(15 downto 0);

alu_b : OUT std_logic_vector(15 downto 0);

alu_Bmul : out std_logic_vector(15 downto 0);

m_wr_en : IN std_logic;

reset : IN std_logic;

m_adrs_D : IN std_logic_vector(2 downto 0);

m_adrs_A : IN std_logic_vector(2 downto 0);

m_adrs_B : IN std_logic_vector(2 downto 0);

m_reg_A : OUT std_logic_vector(15 downto 0);

m_reg_B : OUT std_logic_vector(15 downto 0);

m_R0 : OUT std_logic_vector(15 downto 0);

m_R1 : OUT std_logic_vector(15 downto 0);

m_R2 : OUT std_logic_vector(15 downto 0);

m_R3 : OUT std_logic_vector(15 downto 0);

m_R4 : OUT std_logic_vector(15 downto 0);

m_R5 : OUT std_logic_vector(15 downto 0);

m_R6 : OUT std_logic_vector(15 downto 0);

m_R7 : OUT std_logic_vector(15 downto 0);

mxB_SB : IN std_logic_vector(15 downto 0);

mxB_sel : IN std_logic;

mxD_mrydata: IN std_logic_vector(15 downto 0);

mxDmrydata_dp : IN std_logic_vector(15 downto 0);

mxD_sel : IN std_logic;

Page 22: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

mxD_out : OUT std_logic_vector(15 downto 0);

mxM_PC : IN std_logic_vector(15 downto 0);

mxM_sel : IN std_logic;

mxM_out : OUT std_logic_vector(15 downto 0)

);

END COMPONENT;

COMPONENT memory

PORT(clock : IN std_logic;

Mre : IN std_logic;

Mwe : IN std_logic;

address : IN std_logic_vector(15 downto 0);

data_in : IN std_logic_vector(15 downto 0);

data_outmem : OUT std_logic_vector(15 downto 0);

data : OUT std_logic_vector(15 downto 0)

);

END COMPONENT;

signal PCout1,IRIM1,IRout1,seIM1,registerA1,m_alu_F1:std_logic_vector(15 downto 0);

signal data_in1,mxM_out1,memoryout1,memorydata1,Mrydatain:std_logic_vector(15 downto 0);

signal dir_addr1,CARout1:std_logic_vector(7 downto 0);

signal DR_IR1,SA_IR1,SB_IR1:std_logic_vector(2 downto 0);

signal NEG1,ZR1,CRY1,OVR1,MB1,MD1,RW1,MM1,MW1:std_logic;

signal Func_S1:std_logic_vector(4 downto 0);

signal Data_out1:std_logic_vector(25 downto 0);

signal m_R0,m_R1,m_R2,m_R3,m_R4,m_R5,m_R6,m_R7:std_logic_vector(15 downto 0);

begin

Inst_ana: ana PORT MAP(

clock => clock, -----

Page 23: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

start => start,

PCclr => PCclr,

PCout => PCout1, -----

IRIM => IRIM1, -----

seIM => seIM1, -----

dir_addr => dir_addr1,-----

IRin => memoryout1,-----

IRin2 => memorydata1,

IRout => IRout, -----

DR_IR => DR_IR1, -----

SA_IR => SA_IR1, -----

SB_IR => SB_IR1, -----

CAR_out => CARout, -----

NEG => NEG1, -----

ZR => ZR1, -----

CRY => CRY1, -----

OVR => OVR1, -----

mxS_out => muxsout,-----

Read => cMemoryread, -----

NA => NA, -----

MS => MS, -----

MC => MC, -----

IL => IL, -----

PI => PI, -----

PL => PL, -----

MB => MB1, -----

Func_S => Func_S1, -----

Page 24: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

MD => MD1, -----

RW => RW1, -----

MM => MM1, -----

MW => MW1, -----

Data_out => Data_out1,-----

mxC_out => muxcout -----

);

Inst_main: main PORT MAP(

clock => clock, -----

m_alu_FS => Func_S1, -----

m_alu_V => OVR1, -----

m_alu_C => CRY1, -----

m_alu_N => NEG1, -----

m_alu_Z => ZR1, -----

alu_b => Mrydatain,

alu_Bmul => alu_Bmul,

alucmp => COMPARE,

mxD_out => cpuoutput,-----

m_wr_en => RW1, -----

reset => reset, -----

m_adrs_D => DR_IR1, -----

m_adrs_A => SA_IR1, -----

m_adrs_B => SB_IR1, -----

m_reg_A => registerA1,-----

m_reg_B => registerB,-----

m_R0 => m_R0, -----

m_R1 => m_R1, -----

Page 25: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

m_R2 => m_R2, -----

m_R3 => m_R3, -----

m_R4 => m_R4, -----

m_R5 => m_R5, -----

m_R6 => m_R6, -----

m_R7 => m_R7, -----

mxB_SB => IRIM1, -----

mxB_sel => MB1, -----

mxD_sel => MD1, -----

m_alu_F => m_alu_F1,-----

mxD_mrydata => memoryout1,----

mxDmrydata_dp=> memorydata1,-----

mxM_PC => PCout1,-----

mxM_sel => MM1, -----

mxM_out => mxM_out1 -----

);

Inst_memory: memory PORT MAP(

clock => clock,

Mre => Memoryread,-----

Mwe => MW1, -----

address => mxM_out1, -----

data_in => Mrydatain,-----

data_outmem => memoryout1,------

data => memorydata1------

);

PCout <= PCout1;

Negative <= NEG1;

Page 26: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

Zero <= ZR1;

Carry <= CRY1;

Overflow <= OVR1;

MB <= MB1;

FunctionSel <= Func_S1;

MD <= MD1;

RW <= RW1;

MM <= MM1;

MW <= MW1;

registerA <= registerA1;

mxM_out <= mxM_out1;

memoryout <= memoryout1;

memorydata <= memorydata1;

end Behavioral;

2)Kontrol Ünitesi(Ana)

--------------------------------------------------------------------------------

-- Company:

-- Engineer:

--

-- Create Date: 06:41:51 05/29/08

-- Design Name:

-- Module Name: ana - Behavioral

-- Project Name:

-- Target Device:

-- Tool versions:

-- Description:

--

Page 27: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

-- Dependencies:

--

-- Revision:

-- Revision 0.01 - File Created

-- Additional Comments:

--

--------------------------------------------------------------------------------

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

---- Uncomment the following library declaration if instantiating

---- any Xilinx primitives in this code.

--library UNISIM;

--use UNISIM.VComponents.all;

entity ana is

Port ( clock : in std_logic;

PCclr : out std_logic;

PCout : out std_logic_vector(15 downto 0

IRIM : out std_logic_vector(15 downto 0);

seIM : out std_logic_vector(15 downto 0);

dir_addr : out std_logic_vector(7 downto 0);

IRin : in std_logic_vector(15 downto 0);

IRin2 : in std_logic_vector(15 downto 0);

IRout : out std_logic_vector(15 downto 0);

Page 28: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

DR_IR : out std_logic_vector(2 downto 0);

SA_IR : out std_logic_vector(2 downto 0);

SB_IR : out std_logic_vector(2 downto 0);

CAR_out : OUT std_logic_vector(7 downto 0);

start : IN std_logic;

NEG : IN std_logic;

ZR : IN std_logic;

CRY : IN std_logic;

OVR : IN std_logic;

mxS_out : OUT std_logic;

Read : IN std_logic;

NA : OUT std_logic_vector(7 downto 0);

MS : OUT std_logic_vector(2 downto 0);

MC : OUT std_logic;

IL : OUT std_logic;

PI : OUT std_logic;

PL : OUT std_logic;

MB : OUT std_logic;

Func_S : OUT std_logic_vector(4 downto 0);

MD : OUT std_logic;

RW : OUT std_logic;

MM : OUT std_logic;

MW : OUT std_logic;

Data_out : OUT std_logic_vector(25 downto 0);

mxC_out : OUT std_logic_vector(7 downto 0));

end ana;

architecture Behavioral of ana is

Page 29: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

COMPONENT ir

PORT(

IRin : IN std_logic_vector(15 downto 0);

IRin2 : in std_logic_vector(15 downto 0);

IRld : IN std_logic;

IRIM : OUT std_logic_vector(15 downto 0);

seIM : OUT std_logic_vector(15 downto 0);

dir_addr: OUT std_logic_vector(7 downto 0);

IRout : OUT std_logic_vector(15 downto 0);

DR_IR : OUT std_logic_vector(2 downto 0);

SA_IR : OUT std_logic_vector(2 downto 0);

SB_IR : OUT std_logic_vector(2 downto 0)

);

END COMPONENT;

COMPONENT pc

PORT(

clock : IN std_logic;

start : in std_logic;

halt : in std_logic;

PCclr : in std_logic;

PCld : IN std_logic;

PCinc : IN std_logic;

PCin : IN std_logic_vector(15 downto 0);

PCout : OUT std_logic_vector(15 downto 0)

);

END COMPONENT;

COMPONENT car

Page 30: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

PORT(

-- clock : IN std_logic;

LD_en : IN std_logic;

adrsin : IN std_logic_vector(7 downto 0);

CAR_out : OUT std_logic_vector(7 downto 0)

);

END COMPONENT;

COMPONENT mux_s

PORT(

NEG : IN std_logic;

ZR : IN std_logic;

CRY : IN std_logic;

OVR : IN std_logic;

mxS_sel : IN std_logic_vector(2 downto 0);

mxS_out : OUT std_logic

);

END COMPONENT;

COMPONENT control_memory

PORT(

Read : IN std_logic;

PCCLR : out std_logic;

Address : IN std_logic_vector(7 downto 0);

NA : OUT std_logic_vector(7 downto 0);

MS : OUT std_logic_vector(2 downto 0);

MC : OUT std_logic;

IL : OUT std_logic;

PI : OUT std_logic;

Page 31: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

PL : OUT std_logic;

MB : OUT std_logic;

Func_S : OUT std_logic_vector(4 downto 0);

MD : OUT std_logic;

RW : OUT std_logic;

MM : OUT std_logic;

MW : OUT std_logic;

Data_out : OUT std_logic_vector(25 downto 0)

);

END COMPONENT;

COMPONENT mux_c

PORT(

mxC_nxtadrs : IN std_logic_vector(7 downto 0);

mxC_opadrs : IN std_logic_vector(7 downto 0);

mxC_sel : IN std_logic;

mxC_out : OUT std_logic_vector(7 downto 0)

);

END COMPONENT;

signal PCld,PCinc,IRld,LD_en,mxC_sel1,PCclear:std_logic;

signal adrsin,Address1,mxC_next,mxC_opcode:std_logic_vector(7 downto 0);

signal mxS_sel2:std_logic_vector(2 downto 0);

signal PCin1:std_logic_vector(15 downto 0);

signal halt:std_logic;

signal IReg:std_logic_vector(15 downto 0);

signal IRop:std_logic_vector(6 downto 0);

begin

Inst_ir: ir PORT MAP(

Page 32: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

IRin => IRin,

IRin2 => IRin2,

IRld => IRld,

IRIM => IRIM,

seIM => PCin1,

dir_addr => mxC_opcode,

IRout => IReg,

DR_IR => DR_IR,

SA_IR => SA_IR,

SB_IR => SB_IR

);

Inst_pc: pc PORT MAP(

clock => clock,

PCclr => PCclear,

start =>start,

halt => halt,

PCld => PCld,

PCinc => PCinc,

PCin => PCin1,

PCout => PCout

);

Inst_car: car PORT MAP(

LD_en => LD_en,

adrsin => adrsin,

CAR_out => Address1

);

Page 33: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

Inst_mux_s: mux_s PORT MAP(

NEG => NEG,

ZR => ZR,

CRY => CRY,

OVR => OVR,

mxS_sel => mxS_sel2,

mxS_out => LD_en

);

Inst_control_memory: control_memory PORT MAP(

Read => Read,

PCCLR => PCclear,

NA => mxC_next,

MS => mxS_sel2,

MC => mxC_sel1,

IL => IRld,

PI => PCinc,

PL => PCld,

MB => MB,

Func_S => Func_S,

MD => MD,

RW => RW,

MM => MM,

MW => MW,

Address => Address1,

Data_out=> Data_out

);

Inst_mux_c: mux_c PORT MAP(

Page 34: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

mxC_nxtadrs => mxC_next,

mxC_opadrs => mxC_opcode,

mxC_out => adrsin,

mxC_sel => mxC_sel1

);

IRout <= IReg;

IRop <= IReg(15 downto 9);

halt<='1' when IRop="1010111" else '0';

IL <= IRld;

PL <= PCld;

PI <= PCinc;

PCclr <= PCclear;

seIM <= PCin1;

IL <= IRld;

mxS_out <= LD_en;

MC <= mxC_sel1;

mxC_out <= adrsin;

CAR_out <= Address1;

NA <= mxC_next;

dir_addr <= mxC_opcode;

MS <= mxS_sel2;

end Behavioral;

3)CAR

--------------------------------------------------------------------------------

-- Company:

-- Engineer:

Page 35: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

--

-- Create Date: 19:46:30 05/24/06

-- Design Name:

-- Module Name: CAR - Behavioral

-- Project Name:

-- Target Device:

-- Tool versions:

-- Description:

--

-- Dependencies:

--

-- Revision:

-- Revision 0.01 - File Created

-- Additional Comments:

--

--------------------------------------------------------------------------------

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

---- Uncomment the following library declaration if instantiating

---- any Xilinx primitives in this code.

--library UNISIM;

--use UNISIM.VComponents.all;

entity CAR is

Page 36: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

port( LD_en : in std_logic;

adrsin : in std_logic_vector(7 downto 0);

CAR_out : out std_logic_vector(7 downto 0)

);

end CAR;

architecture Behavioral of CAR is

signal tmp_OUT : std_logic_vector(7 downto 0):="00000000";

begin

process(adrsin,tmp_OUT)

begin

if (LD_en='0') then

tmp_OUT <= tmp_OUT + "00000001";

elsif (LD_en='1') then

tmp_OUT <= adrsin;

end if;

end process;

CAR_out <= tmp_OUT;

end Behavioral;

4)Control Memory

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_arith.all;

use ieee.std_logic_unsigned.all;

entity control_memory is

port( Read : in std_logic;

PCCLR : out std_logic;

Page 37: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

NA : out std_logic_vector(7 downto 0);

MS : out std_logic_vector(2 downto 0);

MC : out std_logic;

IL : out std_logic;

P : out std_logic;

PL : out std_logic;

MB : out std_logic;

Func_S : out std_logic_vector(4 downto 0);

MD : out std_logic;

RW : out std_logic;

MM : out std_logic;

MW : out std_logic;

Address : in std_logic_vector(7 downto 0);

Data_out: out std_logic_vector(25 downto 0)

);

end control_memory;

architecture Behav of control_memory is

type control_memory_Array is array (0 to 255)

of std_logic_vector(25 downto 0);

signal Content:control_memory_Array :=(

0 => "00000100100111100000000110", --nop

64 => "00001001000111101000010110", --add

65 => "00010001100111100000100110", --addi

66 => "01000010000111101000110110", --sub

67 => "00100000000111100001000110", --subi

68 => "00100000100111100001010110",

69 => "00100001100111100001100110",

Page 38: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

70 => "00100010000111100001110110",

71 => "00100011000111100010000110",

72 => "00100011100111101010010110",

73 => "00100111000111100010100110",

74 => "00100111100111101010110110",

75 => "00100110000111100011000110",

76 => "00100100000111100011010110",

77 => "00101000000111101011100110",

78 => "00111100000111100011110110",

79 => "00101000000111100100000110",

80 => "00100000100111100100011110",

81 => "00101001000111100100100110",

82 => "00101001100111101100110110",

83 => "00101100000111100101000110",

84 => "00101100100111100101010110", --mulu

85 => "00101100000111100101100110", --mul

86 => "00101100000111101101110110", --muli

87 => "00101100000111100110000110", --hlt

88 => "00101100000111100110010110",

89 => "10101100000111000110100110",

90 => "00101100000111100110110110",

91 => "00101100000111100111000110",

92 => "00101100000111100111010110",

others => "ZZZZZZZZZZZZZZZZZZZZZZZZZZ");

signal data_out1 :std_logic_vector(25 downto 0);

begin

process(Address)

Page 39: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

begin

if( Read = '1' ) then ---Read set edilirse adres gözünün içeriği çıkışa verilir.

data_out1 <= Content(conv_integer(Address));

end if;

end process;

PCCLR <= data_out1(25);

NA <= data_out1(24 downto 17);

MS <= data_out1(16 downto 14);

MC <= data_out1(13);

IL <= data_out1(12);

PI <= data_out1(11);

PL <= data_out1(10);

MB <= data_out1(9);

Func_S<= data_out1(8 downto 4);

MD <= data_out1(3);

RW <= data_out1(2);

MM <= data_out1(1);

MW <= data_out1(0);

Data_out <= data_out1 ;

end Behav;

5)IR

--------------------------------------------------------------------------------

-- Company:

-- Engineer:

--

-- Create Date: 19:45:45 05/24/06

-- Design Name:

Page 40: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

-- Module Name: IR - Behavioral

-- Project Name:

-- Target Device:

-- Tool versions:

-- Description:

--

-- Dependencies:

--

-- Revision:

-- Revision 0.01 - File Created

-- Additional Comments:

--

--------------------------------------------------------------------------------

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

---- Uncomment the following library declaration if instantiating

---- any Xilinx primitives in this code.

--library UNISIM;

--use UNISIM.VComponents.all;

entity IR is

port(

IRin : in std_logic_vector(15 downto 0);

IRin2 : in std_logic_vector(15 downto 0);

Page 41: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

IRld : in std_logic;

IRIM : out std_logic_vector(15 downto 0);

seIM : out std_logic_vector(15 downto 0);

dir_addr out std_logic_vector(7 downto 0);

IRout : out std_logic_vector(15 downto 0);

DR_IR : out std_logic_vector(2 downto 0);

SA_IR : out std_logic_vector(2 downto 0);

SB_IR : out std_logic_vector(2 downto 0)

);

end IR;

architecture Behavioral of IR is

signal IRout1,IRout2 : std_logic_vector(15 downto 0);

begin

process(IRin,IRout1)

begin

if(IRld = '1') then

IRout1 <= IRin;

dir_addr <= '0' & IRin(15 downto 9); ---Opcode bilgisi aktarılıyor.

IRIM <= IRin; ---İvedi sayı belirleniyor.

seIM <= "0000000" & IRin(8 downto 0); ---PC'ye dallanma için yüklenecek sayı belirleniyor.

DR_IR <= IRout1(8 downto 6); ---Hedef Register belirtici

SA_IR <= IRout1(5 downto 3); ---A kaynak registeri belirtici

SB_IR <= IRout1(2 downto 0); ---B kaynak registeri belirtici

end if;

IRout <= IRout1;

end process;

end Behavioral;

Page 42: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

6)Mux_C

--------------------------------------------------------------------------------

-- Company:

-- Engineer:

--

-- Create Date: 19:46:13 05/24/06

-- Design Name:

-- Module Name: MUX_C - Behavioral

-- Project Name:

-- Target Device:

-- Tool versions:

-- Description:

--

-- Dependencies:

--

-- Revision:

-- Revision 0.01 - File Created

-- Additional Comments:

--

--------------------------------------------------------------------------------

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

---- Uncomment the following library declaration if instantiating

---- any Xilinx primitives in this code.

Page 43: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

--library UNISIM;

--use UNISIM.VComponents.all;

entity MUX_C is

port ( mxC_nxtadrs : in std_logic_vector(7 downto 0);

mxC_opadrs : in std_logic_vector(7 downto 0);

mxC_out : out std_logic_vector(7 downto 0);

mxC_sel : in std_logic

);

end MUX_C;

architecture Behavioral of MUX_C is

begin

process(mxC_nxtadrs,mxC_opadrs)

begin

if (mxC_sel = '0') then

mxC_out <= mxC_nxtadrs;

elsif (mxC_sel = '1') then

mxC_out <= mxC_opadrs;

end if;

end process;

end Behavioral;

7)Mux_S

--------------------------------------------------------------------------------

-- Company:

-- Engineer:

--

-- Create Date: 22:46:47 05/25/06

Page 44: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

-- Design Name:

-- Module Name: mux_s - Behavioral

-- Project Name:

-- Target Device:

-- Tool versions:

-- Description:

--

-- Dependencies:

--

-- Revision:

-- Revision 0.01 - File Created

-- Additional Comments:

--

--------------------------------------------------------------------------------

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

---- Uncomment the following library declaration if instantiating

---- any Xilinx primitives in this code.

--library UNISIM;

--use UNISIM.VComponents.all;

entity mux_s is

port( NEG : in std_logic;

Page 45: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

ZR : in std_logic;

CRY : in std_logic;

OVR : in std_logic;

mxS_sel: in std_logic_vector(2 downto 0);

mxS_out: out std_logic

);

end mux_s;

architecture Behavioral of mux_s is

begin

process(ZR,mxS_sel)

begin

case mxS_sel is

when "000" =>

mxS_out <= '0';

when "001" =>

mxS_out <= '1';

when "010" =>

mxS_out <= CRY;

when "011" =>

mxS_out <= OVR;

when "100" =>

mxS_out <= ZR;

when "101" =>

mxS_out <= NEG;

when "110" =>

mxS_out <= not CRY;

when others =>

Page 46: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

mxS_out <= not ZR;

end case ;

end process;

end Behavioral;

8)PC

--------------------------------------------------------------------------------

-- Company:

-- Engineer:

--

-- Create Date: 19:45:12 05/24/06

-- Design Name:

-- Module Name: PC - Behavioral

-- Project Name:

-- Target Device:

-- Tool versions:

-- Description:

--

-- Dependencies:

--

-- Revision:

-- Revision 0.01 - File Created

-- Additional Comments:

--

--------------------------------------------------------------------------------

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

Page 47: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

use IEEE.STD_LOGIC_UNSIGNED.ALL;

---- Uncomment the following library declaration if instantiating

---- any Xilinx primitives in this code.

--library UNISIM;

--use UNISIM.VComponents.all;

entity PC is

port(clock: in std_logic;

start: in std_logic;

halt : in std_logic;

PCclr: in std_logic;

PCld : in std_logic;

PCinc: in std_logic;

PCin : in std_logic_vector(15 downto 0);

PCout: out std_logic_vector(15 downto 0)

);

end PC;

architecture Behavioral of PC is

signal tmp_PC: std_logic_vector(15 downto 0):= "0000000000000000";---PC içeriği başlangıçta sıfırlanıyor.

signal run,say: std_logic;

begin

process(start,halt) ---Sistem açma kapama test ediliyor.

begin

if (halt='1') then

run <= '0';

Page 48: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

elsif(start'event and start = '1') then

run <= '1';

end if;

end process;

say <= clock and RUN; ---clock ve run her iki sinyal set edildiği zaman sistem çalışmaya başlar.

process(say,PCclr,tmp_PC,halt)

begin

if(PCclr='1' or halt='1')then ---PCclr veya halt sinyalinden biri et edilmişse PCnin içeriği sıfırlanır.

tmp_PC <= "0000000000000000";

elsif(say'event and say = '1') then

if(PCld='1')then ---PC'yi belirlenen sayıyla yükleme test edilyor.

tmp_PC <= PCin;

elsif(PCinc='1')then ---PC'yi 1 artırma test ediliyor.

tmp_PC <= tmp_PC +"0000000000000001";

end if;

end if;

end process;

PCout <= tmp_PC;

end Behavioral;

9)Datapath(main)

--------------------------------------------------------------------------------

-- Company:

-- Engineer:

--

-- Create Date: 17:38:08 05/24/08

-- Design Name:

-- Module Name: main - Behavioral

Page 49: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

-- Project Name:

-- Target Device:

-- Tool versions:

-- Description:

--

-- Dependencies:

--

-- Revision:

-- Revision 0.01 - File Created

-- Additional Comments:

--

--------------------------------------------------------------------------------

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

---- Uncomment the following library declaration if instantiating

---- any Xilinx primitives in this code.

--library UNISIM;

--use UNISIM.VComponents.all;

entity main is

port(clock : IN std_logic;

m_alu_FS : IN std_logic_vector(4 downto 0);

m_alu_V : OUT std_logic;

m_alu_C : OUT std_logic;

Page 50: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

m_alu_N : OUT std_logic;

m_alu_Z : OUT std_logic;

alucmp : OUT std_logic_vector(1 downto 0);

m_alu_F : OUT std_logic_vector(15 downto 0);

alu_b : OUT std_logic_vector(15 downto 0);

alu_Bmul : out std_logic_vector(15 downto 0);

m_wr_en : IN std_logic;

reset : IN std_logic;

m_adrs_D : IN std_logic_vector(2 downto 0);

m_adrs_A : IN std_logic_vector(2 downto 0);

m_adrs_B : IN std_logic_vector(2 downto 0);

m_reg_A : OUT std_logic_vector(15 downto 0);

m_reg_B : OUT std_logic_vector(15 downto 0);

m_R0 : OUT std_logic_vector(15 downto 0);

m_R1 : OUT std_logic_vector(15 downto 0);

m_R2 : OUT std_logic_vector(15 downto 0);

m_R3 : OUT std_logic_vector(15 downto 0);

m_R4 : OUT std_logic_vector(15 downto 0);

m_R5 : OUT std_logic_vector(15 downto 0);

m_R6 : OUT std_logic_vector(15 downto 0);

m_R7 : OUT std_logic_vector(15 downto 0);

mxB_SB : IN std_logic_vector(15 downto 0);

mxB_sel : IN std_logic;

mxD_mrydata: IN std_logic_vector(15 downto 0);

mxDmrydata_dp : IN std_logic_vector(15 downto 0);

mxD_sel : IN std_logic;

mxD_out : OUT std_logic_vector(15 downto 0);

Page 51: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

mxM_PC : IN std_logic_vector(15 downto 0);

mxM_sel : IN std_logic;

mxM_out : OUT std_logic_vector(15 downto 0));

end main;

architecture Behavioral of main is

COMPONENT alu

PORT(

alu_A : IN std_logic_vector(15 downto 0);

alu_B : IN std_logic_vector(15 downto 0);

alu_Bmul : out std_logic_vector(15 downto 0);

alu_FS : IN std_logic_vector(4 downto 0);

alu_V : OUT std_logic;

alu_C : OUT std_logic;

alu_N : OUT std_logic;

alu_Z : OUT std_logic;

alu_F : OUT std_logic_vector(15 downto 0);

alucmp : OUT std_logic_vector(1 downto 0)

);

END COMPONENT;

COMPONENT reg_file

PORT(

clock : IN std_logic;

wr_en : IN std_logic;

reset : IN std_logic;

D : IN std_logic_vector(15 downto 0);

adrs_D : IN std_logic_vector(2 downto 0);

adrs_A : IN std_logic_vector(2 downto 0);

Page 52: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

adrs_B : IN std_logic_vector(2 downto 0);

reg_A : OUT std_logic_vector(15 downto 0);

reg_B : OUT std_logic_vector(15 downto 0);

R0 : OUT std_logic_vector(15 downto 0);

R1 : OUT std_logic_vector(15 downto 0);

R2 : OUT std_logic_vector(15 downto 0);

R3 : OUT std_logic_vector(15 downto 0);

R4 : OUT std_logic_vector(15 downto 0);

R5 : OUT std_logic_vector(15 downto 0);

R6 : OUT std_logic_vector(15 downto 0);

R7 : OUT std_logic_vector(15 downto 0)

);

END COMPONENT;

COMPONENT mux_b

PORT(

mxB_SB : IN std_logic_vector(15 downto 0);

mxB_regB : IN std_logic_vector(15 downto 0);

mxB_sel : IN std_logic;

mxB_out : OUT std_logic_vector(15 downto 0)

);

END COMPONENT;

COMPONENT mux_d

PORT(

mxDmrydata : IN std_logic_vector(15 downto 0);

mxD_mrydata : IN std_logic_vector(15 downto 0);

mxD_funit : IN std_logic_vector(15 downto 0);

mxD_sel : IN std_logic;

Page 53: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

mxD_out : OUT std_logic_vector(15 downto 0)

);

END COMPONENT;

COMPONENT mux_m

PORT(

mxM_adrs : IN std_logic_vector(15 downto 0);

mxM_PC : IN std_logic_vector(15 downto 0);

mxM_sel : IN std_logic;

mxM_out : OUT std_logic_vector(15 downto 0)

);

END COMPONENT;

signal V_sig,C_sig,N_sig,Z_sig:std_logic;

signal F_sig,A_sig,B_sig,mxB_regB,mxD_funit1,mxM_regA: std_logic_vector(15 downto 0);

signal R0_sig,R1_sig,R2_sig,R3_sig,R4_sig,R5_sig,R6_sig,R7_sig:std_logic_vector(15 downto 0);

begin

Inst_alu: alu PORT MAP(

alu_A => A_sig,

alu_B => mxB_regB,

alu_Bmul => alu_Bmul,

alu_FS => m_alu_FS,

alu_V => V_sig,

alu_C => C_sig,

alu_N => N_sig,

alu_Z => Z_sig,

alu_F => mxD_funit1,

alucmp => alucmp

);

Page 54: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

Inst_reg_file: reg_file PORT MAP(

clock => clock,

wr_en => m_wr_en,

reset => reset,

D => F_sig,

adrs_D => m_adrs_D,

adrs_A => m_adrs_A,

adrs_B => m_adrs_B,

reg_A => A_sig,

reg_B => B_sig,

R0 => R0_sig,

R1 => R1_sig,

R2 => R2_sig,

R3 => R3_sig,

R4 => R4_sig,

R5 => R5_sig,

R6 => R6_sig,

R7 => R7_sig

);

Inst_mux_b: mux_b PORT MAP(

mxB_SB => mxB_SB,

mxB_regB => B_sig,

mxB_out => mxB_regB,

mxB_sel => mxB_sel

);

Inst_mux_d: mux_d PORT MAP(

mxDmrydata =>mxDmrydata_dp,

Page 55: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

mxD_mrydata => mxD_mrydata,

mxD_funit => mxD_funit1,

mxD_out => F_sig,

mxD_sel => mxD_sel

);

Inst_mux_m: mux_m PORT MAP(

mxM_adrs => A_sig,

mxM_PC => mxM_PC,

mxM_sel => mxM_sel,

mxM_out => mxM_out

);

m_alu_V <= V_sig;

m_alu_C <= C_sig;

m_alu_N <= N_sig;

m_alu_Z <= Z_sig;

mxD_out <= F_sig;

m_reg_A <= A_sig;

m_reg_B <= B_sig;

alu_b <= mxB_regB;

m_R0 <= R0_sig;

m_R1 <= R1_sig;

m_R2 <= R2_sig;

m_R3 <= R3_sig;

m_R4 <= R4_sig;

m_R5 <= R5_sig;

m_R6 <= R6_sig;

m_R7 <= R7_sig;

Page 56: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

end Behavioral;

10)ALU

--------------------------------------------------------------------------------

-- Company:

-- Engineer:

--

-- Create Date: 19:44:20 05/24/06

-- Design Name:

-- Module Name: ALU - Behavioral

-- Project Name:

-- Target Device:

-- Tool versions:

-- Description:

--

-- Dependencies:

--

-- Revision:

-- Revision 0.01 - File Created

-- Additional Comments:

--

--------------------------------------------------------------------------------

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

---- Uncomment the following library declaration if instantiating

Page 57: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

---- any Xilinx primitives in this code.

--library UNISIM;

--use UNISIM.VComponents.all;

entity alu is

port ( alu_A : in std_logic_vector(15 downto 0);

alu_B : in std_logic_vector(15 downto 0);

alu_Bmul : out std_logic_vector(15 downto 0);

alu_FS : in std_logic_vector(4 downto 0);

alu_V : out std_logic;

alu_C : out std_logic;

alu_N : out std_logic;

alu_Z : out std_logic;

alu_F : out std_logic_vector(15 downto 0);

alucmp : out std_logic_vector(1 downto 0)

);

end alu;

architecture Behavioral of alu is

signal alu_F_tmp2,alu_F_tmp3: std_logic_vector(31 downto 0);

signal alu_F_tmp : std_logic_vector(15 downto 0):="0000000000000000";

signal alu_cout_tmp : std_logic_vector(1 downto 0);

signal alu_cout_tmp1 : std_logic;

signal alu_A1,alu_A2 : std_logic_vector(15 downto 0);

signal alu_Bmul1,alu_Bmul2:std_logic_vector(15 downto 0):="0000000000000000";

begin

process(alu_FS,alu_A,alu_B,alu_F_tmp,alu_cout_tmp1,

alu_Bmul1,alu_F_tmp2,alu_A1,alu_A2,alu_Bmul2)

Page 58: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

begin

case alu_FS is

when "00000" =>

alu_F_tmp <= alu_A; ---No operation

when "00001" =>

alu_F_tmp <= alu_A + alu_B; ---Addition

when "00010" =>

alu_F_tmp <= alu_A + alu_B; ---Addition(immediate)

when "00011" =>

alu_F_tmp <= alu_A + not(alu_B)+1; ---Subtraction

when "00100" =>

alu_F_tmp <= alu_A + not(alu_B)+1; ---Subtraction(immediate)

when "00101" =>

alu_F_tmp <= alu_A + not(alu_B)+1; ---Compare

if(alu_F_tmp < "0000000000000000") then

alucmp <= "01";

elsif(alu_F_tmp = "0000000000000000") then

alucmp <= "00";

elsif(alu_F_tmp > "0000000000000000") then

alucmp <= "10";

end if;

when "00110" =>

alu_F_tmp <= alu_A and alu_B ; ---AND

when "00111" =>

alu_F_tmp <= alu_A and alu_B; ---AND(immediate)

when "01000" =>

alu_F_tmp <= alu_A or alu_B; ---OR

Page 59: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

when "01001" =>

alu_F_tmp <= alu_A or alu_B; ---OR(immediate)

when "01010" =>

alu_F_tmp <= not alu_A; ---NOT

when "01011" =>

alu_F_tmp <= alu_A xor alu_B; ---XOR

when "01100" =>

alu_F_tmp <= alu_A xor alu_B; ---XOR(immediate)

when "01101" =>

alu_F_tmp <= alu_A(14 downto 0) & '0'; ---Logical Shift Left

when "01110" =>

alu_F_tmp <= '0' & alu_A(15 downto 1); ---Logical Shift Right

when "01111" =>

alu_F_tmp <= alu_A(14 downto 0) & '0'; ---Arithmetic Shift Left

when "10000" =>

if(alu_A(15) = '1')then

alu_F_tmp <= '1' & alu_A(15 downto 1); ---Arithmetic Shift Right

elsif(alu_A(15) = '0')then

alu_F_tmp <= '0' & alu_A(15 downto 1);

end if;

when "10001" =>

alu_F_tmp <= alu_A; ---Load word

when "10010" =>

alu_F_tmp <= alu_A; ---Move

when "10011" =>

alu_F_tmp <= alu_B; ---Move(immediate)

when "10100" =>

Page 60: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

alu_F_tmp <= alu_A; ---Branch always

when "10101" => ---Multiplication unsigned

alu_F_tmp2 <= alu_A*alu_B;

alu_A1 <= alu_F_tmp2(15 downto 0);

alu_Bmul1 <= alu_F_tmp2(31 downto 16);

alu_F_tmp <= alu_A1;

when "10110" => ---Multiplication

if(alu_A(15)='0')then

alu_A2 <= alu_A;

elsif(alu_A(15)='1')then

alu_A2 <= not(alu_A)+1;

end if;

if(alu_B(15)='0')then

alu_Bmul2 <= alu_B;

elsif(alu_B(15)='1')then

alu_Bmul2 <= not(alu_B)+1;

end if;

alu_F_tmp2 <= alu_A2*alu_Bmul2;

if((alu_A(15) xor alu_B(15))='0')then

alu_F_tmp3 <= alu_F_tmp2;

elsif((alu_A(15) xor alu_B(15))='1')then

alu_F_tmp3 <= not(alu_F_tmp2)+1;

end if;

alu_A1 <= alu_F_tmp3(15 downto 0);

alu_Bmul1 <= alu_F_tmp3(31 downto 16);

alu_F_tmp <= alu_A1;

when "10111" => ---Multiplication(immediate)

Page 61: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

if(alu_A(15)='0')then

alu_A2 <= alu_A;

elsif(alu_A(15)='1')then

alu_A2 <= not(alu_A)+1;

end if;

if(alu_B(15)='0')then

alu_Bmul2 <= alu_B;

elsif(alu_B(15)='1')then

alu_Bmul2 <= not(alu_B)+1;

end if;

if((alu_A(15) xor alu_B(15))='0')then

alu_F_tmp3 <= alu_A2*alu_Bmul2;

elsif((alu_A(15) xor alu_B(15))='1')then

alu_F_tmp3 <= not(alu_A2*alu_Bmul2)+1;

end if;

alu_A1 <= alu_F_tmp3(15 downto 0);

alu_Bmul1 <= alu_F_tmp3(31 downto 16);

alu_F_tmp <= alu_A1;

when "11000" =>

alu_F_tmp <= alu_A ; ---Halt

when "11001" =>

alu_F_tmp <= alu_A ;

when "11010" =>

alu_F_tmp <= alu_B;

when "11011" =>

Page 62: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

alu_F_tmp <= alu_B;

when "11100" =>

alu_F_tmp <= alu_B;

when "11101" =>

alu_F_tmp <= alu_B;

when others =>

alu_F_tmp <= "0000000000000000";

end case;

if(alu_F_tmp(15) = '1') then

alu_N <= '1';

elsif(alu_F_tmp(15) = '0') then

alu_N <= '0';

end if;

if (alu_F_tmp = "0000000000000000") then

alu_Z <= '1';

elsif(alu_F_tmp /= "0000000000000000") then

alu_Z <= '0';

end if;

alu_cout_tmp(1) <= alu_A(15) and alu_B(15);

alu_cout_tmp(0) <= alu_A(14) and alu_B(14);

alu_cout_tmp1 <= alu_cout_tmp(1) xor alu_cout_tmp(0);

if(alu_cout_tmp1 ='1') then

alu_V <= '1';

elsif(alu_cout_tmp1 ='0')then

Page 63: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

alu_V <= '0';

end if;

if((alu_A(15) and alu_B(15))='1') then

alu_C <= '1';

elsif((alu_A(15) and alu_B(15))='0') then

alu_C <= '0';

end if;

end process;

alu_F <=alu_F_tmp;

alu_Bmul <=alu_Bmul1;

end Behavioral;

11)Mux_B

--------------------------------------------------------------------------------

-- Company:

-- Engineer:

--

-- Create Date: 19:46:03 05/24/06

-- Design Name:

-- Module Name: MUX_B - Behavioral

-- Project Name:

-- Target Device:

-- Tool versions:

-- Description:

--

-- Dependencies:

--

Page 64: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

-- Revision:

-- Revision 0.01 - File Created

-- Additional Comments:

--

--------------------------------------------------------------------------------

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

---- Uncomment the following library declaration if instantiating

---- any Xilinx primitives in this code.

--library UNISIM;

--use UNISIM.VComponents.all;

entity MUX_B is

port ( mxB_SB : in std_logic_vector(15 downto 0);

mxB_regB : in std_logic_vector(15 downto 0);

mxB_out : out std_logic_vector(15 downto 0);

mxB_sel : in std_logic

);

end MUX_B;

architecture Behavioral of MUX_B is

begin

process(mxB_sel,mxB_regB,mxB_SB)

Page 65: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

begin

if(mxB_sel = '0')then

mxB_out <= mxB_regB;

elsif(mxB_sel = '1')then

mxB_out <= mxB_SB;

end if;

end process;

end Behavioral;

12)Mux_D

--------------------------------------------------------------------------------

-- Company:

-- Engineer:

--

-- Create Date: 19:48:19 05/24/06

-- Design Name:

-- Module Name: MUX_D - Behavioral

-- Project Name:

-- Target Device:

-- Tool versions:

-- Description:

--

-- Dependencies:

--

-- Revision:

-- Revision 0.01 - File Created

-- Additional Comments:

--

Page 66: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

--------------------------------------------------------------------------------

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

---- Uncomment the following library declaration if instantiating

---- any Xilinx primitives in this code.

--library UNISIM;

--use UNISIM.VComponents.all;

entity MUX_D is

port ( mxDmrydata : IN std_logic_vector(15 downto 0);

mxD_mrydata : in std_logic_vector(15 downto 0);

mxD_funit : in std_logic_vector(15 downto 0);

mxD_out : out std_logic_vector(15 downto 0);

mxD_sel : in std_logic

);

end MUX_D;

architecture Behavioral of MUX_D is

begin

process(mxD_sel,mxD_mrydata,mxD_funit)

begin

if(mxD_sel = '0')then

mxD_out <= mxD_funit;

elsif(mxD_sel = '1')then

mxD_out <= mxD_mrydata;

Page 67: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

end if;

end process;

end Behavioral;

14)Mux_M

--------------------------------------------------------------------------------

-- Company:

-- Engineer:

--

-- Create Date: 22:43:32 05/25/06

-- Design Name:

-- Module Name: mux_m - Behavioral

-- Project Name:

-- Target Device:

-- Tool versions:

-- Description:

--

-- Dependencies:

--

-- Revision:

-- Revision 0.01 - File Created

-- Additional Comments:

--

--------------------------------------------------------------------------------

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

Page 68: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

---- Uncomment the following library declaration if instantiating

---- any Xilinx primitives in this code.

--library UNISIM;

--use UNISIM.VComponents.all;

entity mux_m is

PORT( mxM_adrs : in std_logic_vector(15 downto 0);

mxM_PC : in std_logic_vector(15 downto 0);

mxM_sel : in std_logic;

mxM_out : out std_logic_vector(15 downto 0)

);

end mux_m;

architecture Behavioral of mux_m is

begin

process(mxM_sel,mxM_PC,mxM_adrs)

begin

if(mxM_sel = '0')then

mxM_out <= mxM_adrs;

elsif (mxM_sel = '1')then

mxM_out <= mxM_PC;

end if;

end process;

end Behavioral;

15)REG_FILE

--------------------------------------------------------------------------------

Page 69: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

-- Company:

-- Engineer:

--

-- Create Date: 19:44:54 05/24/06

-- Design Name:

-- Module Name: REG_FILE - Behavioral

-- Project Name:

-- Target Device:

-- Tool versions:

-- Description:

--

-- Dependencies:

--

-- Revision:

-- Revision 0.01 - File Created

-- Additional Comments:

--

--------------------------------------------------------------------------------

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

---- Uncomment the following library declaration if instantiating

---- any Xilinx primitives in this code.

---- library UNISIM;

---- use UNISIM.VComponents.all;

Page 70: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

entity reg_file is

port ( clock : in std_logic;

wr_en : in std_logic;

reset : in std_logic;

D : in std_logic_vector(15 downto 0);

adrs_D : in std_logic_vector(2 downto 0);

adrs_A : in std_logic_vector(2 downto 0);

adrs_B : in std_logic_vector(2 downto 0);

reg_A : out std_logic_vector(15 downto 0);

reg_B : out std_logic_vector(15 downto 0);

R0 : out std_logic_vector(15 downto 0);

R1 : out std_logic_vector(15 downto 0);

R2 : out std_logic_vector(15 downto 0);

R3 : out std_logic_vector(15 downto 0);

R4 : out std_logic_vector(15 downto 0);

R5 : out std_logic_vector(15 downto 0);

R6 : out std_logic_vector(15 downto 0);

R7 : out std_logic_vector(15 downto 0));

end reg_file;

architecture Behavioral of reg_file is

type reg_type is array (0 to 7) of

std_logic_vector(15 downto 0);

signal K : reg_type;

begin

process(clock,reset,wr_en,D)

begin

Page 71: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

if (reset='1') then

K(0) <= "0000000000000000";

K(1) <= "0000000000000011";

K(2) <= "0000000000001010";

K(3) <= "0000000000000000";

K(4) <= "0000000000000000";

K(5) <= "1111111111111110";

K(6) <= "0000000000001000";

K(7) <= "0000000000000000";

elsif (clock'event and clock = '1') then

if (wr_en = '1') then ---Register yazma biti aktifse hedef registere sayıyı kopyala.

K(conv_integer(adrs_D)) <= D;

end if;

end if;

end process;

reg_A <=K(conv_integer(adrs_A));

reg_B <= K(conv_integer(adrs_B));

R0 <= K(0);

R1 <= K(1);

R2 <= K(2);

R3 <= K(3);

R4 <= K(4);

R5 <= K(5);

R6 <= K(6);

R7 <= K(7);

end Behavioral;

Page 72: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

16)Memory

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_arith.all;

use ieee.std_logic_unsigned.all;

entity memory is

port (clock :in std_logic;

Mre : in std_logic;

Mwe : in std_logic;

address :in std_logic_vector(15 downto 0);

data_in :in std_logic_vector(15 downto 0);

data_outmem,data: out std_logic_vector(15 downto 0));

end memory;

architecture behv of memory is

type ram_type is array (0 to 255) of std_logic_vector(15 downto 0);

signal tmp_ram: ram_type:=(

0 => "0000000011001010", --Nop

1 => "1000000011001010", --Add

2 => "1000001001011010", --Addi

3 => "1000010001001010", --Sub

4 => "1000011001011010", --Subi

5 => "1000100000001010", --Cmp

6 => "1000101001001010", --And

7 => "1000110001001010", --Andi

8 => "1000111001001010", --Or

9 => "1001000001001010", --Ori

10 => "1001001001011010", --Not

Page 73: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

11 => "1001010100011010", --Xor

12 => "1001011001001010", --Xori

13 => "1001100001001010", --Sll

14 => "1001101001001010", --Srl

15 => "1001110001001010", --Sla

16 => "1001111001001010", --Sra

17 => "1010000001000010", --Lw

18 => "1010001001011010", --Mov

19 => "1010010001001010", --Movi

20 => "1010011000010111", --Ba

21 => "1010100000101010", --Mulu

22 => "1010101000101011", --Mul

23 => "1010110000110101", --Muli

24 => "1010111001001010", --Halt

25 => "1011000001001010",

26 => "1011001001001010",

27 => "1011010001001010",

28 => "1011011001001010",

29 => "101110000100101

others=> "ZZZZZZZZZZZZZZZZ");

begin

process(clock,Mwe,Mre,data_in,address)

begin

if (clock'event and clock = '1') then

if (Mre = '1' AND Mwe='0')then ---Memory okuma modunda

data_outmem <= tmp_ram(conv_integer(address));

elsif(Mwe = '1'AND Mre='1')then ---Memory yazma modunda

Page 74: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

tmp_ram(conv_integer(address)) <= data_in;

end if;

end if;

end process;

data <= tmp_ram(conv_integer(address));

end behv;

EK2:MODEL SİM ÇIKTILARI

Page 75: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

Page 76: €¦  · Web viewProje Raporu. Proje Danışmanı. Yrd.Doç.Dr.Aydoğan Savran. Proje Ekibi. Arş.Gör.Özkan Akın. Cihat Eroğlu(Proje Yetkilisi) İÇİNDEKİLER. 1)GİRİŞ

73

Modelsim çıktısı alınırken öncelikle Edit Radix Decimal seçildi.Functionsel çıkışı için Unsigned olarak seçildi.