Slayt 1 - PowerPoint PPT Presentation

1 / 68
About This Presentation
Title:

Slayt 1

Description:

Slayt 1 – PowerPoint PPT presentation

Number of Views:27
Avg rating:3.0/5.0
Slides: 69
Provided by: erm71
Category:
Tags: adder | carry | increment | slayt

less

Transcript and Presenter's Notes

Title: Slayt 1


1
(No Transcript)
2
  • Bu proje,
  • CPU TURKEY 2008
  • Türkiye Islemcisini Tasarliyor
  • yarismasi için
  • Logic and Computer Design Fundamentals,
    M.Morris Mano, Charles Kime, Prentice Hall 2nd
    Edition, 2000.
  • Isimli Kitap Temel alinarak
  • MOMENTUM PROJE GRUBU
  • tarafindan hazirlanmistir.

3
MOMENTUM FIZIKSEL ISLEMCISI
4
IÇINDEKILER
  • Sistemin Temel Özellikleri
  • Islemcinin Yapisi ve Isleyisi
  • Dis baglantilar
  • Momentum Komut Çevirici
  • Deney çiktilari
  • Sonuçlar

5
SISTEMIN TEMEL ÖZELLIKLERI
  • Bu çalismada
  • 16 bitlik veri yoluna sahip,
  • Memory to register, register to memory,
    register to register veri transferlerini
    gerçeklestirebilen,
  • 8i kullanici tarafindan kontrol edilebilen
    toplam 17 adet ACC yazmaçli yazmaç ünitesine
    sahip,
  • CISC ve Von-Neumann Mimarisi mimarisinde,
  • 40 Mhz maksimum çalisma frekansli,

6
  • 8 ayri adresleme modunda 45 degisik komutu
    kosturabilen
  • 1 veya 2 kelimelik komutlara sahip
  • 10 farkli kosul için dallanma yetenegi olan
  • Derleyici destegi ile program yazabilen
  • Mikroprogram kontrollü
  • bir islemci tasarlanmistir.

7
  • Tasarim, Xlinx Webpack programinda yapilmis
    olup simulasyonda ModelSim programi
    kullanilmistir.
  • Hazirlanan sanal islemci Spartan-3E
    Starter Kite gömülerek fiziksel islemci
    hazirlandi.
  • Son olarak da Boardun klavye, LCD ,
    Monitör ve Seri Port ile haberlesmesi
    saglanarak kontrolü kolaylastiridi.

8
Desteklenen Adresleme Kipleri
  • Saklayici kipi (register)
  • Saklayici dolayli kip (register
    indirect)
  • Ivedi adresleme (immediate)
  • Dogrudan adresleme (direct)
  • Bagil adresleme (relative)
  • Dolayli bagil adresleme (relative indirect)
  • Sirali adresleme (indexed)
  • Dolayli sirali adresleme (indirect indexed)

9
Komut Kümesi
Operandsiz Bir operand Iki
operand Program kontrol
  • NOP
  • PSHR
  • POPR
  • RET
  • RTI
  • HALT
  • PUSH
  • POP
  • INC
  • DEC
  • NEG
  • COM
  • SHR
  • SHL
  • SHRA
  • SHLA
  • ROR
  • ROL
  • RORC
  • ROLC
  • MOVE
  • XCH
  • ADD
  • ADDC
  • SUB
  • SUBB
  • MUL
  • DIV
  • CMP
  • AND
  • OR
  • XOR
  • MULH
  • MULS
  • JMP
  • CALL
  • BZ
  • BNZ
  • BC
  • BNC
  • BN
  • BNN
  • BV
  • BNV
  • SYSCALL

10
Komut Kümesi
  • NOP No operation
  • PSHR Push registers
  • POPR Pop registers
  • RET Return (from a subroutine)
  • RTI Return from interrupt
  • HALT Halt
  • PUSH Push
  • POP Pop
  • INC Increment
  • DEC Decrement
  • NEG Negate
  • COM Complement

11
Komut Kümesi
  • SHR Shift right (logical)
  • SHL Shift left (logical)
  • SHRA Shift right arithmetic
  • SHLA Shift left arithmetic
  • ROR Rotate right
  • ROL Rotate left
  • RORC Rotate right with carry
  • ROLC Rotate left with carry
  • MOVE Move
  • XCH Exchange
  • ADD Add
  • ADDC Add with carry
  • SUB Subtract

12
Komut Kümesi
  • SUBB Subtract with borrow
  • MUL Multiply (with microprogram)
  • DIV Division
  • CMP Compare
  • AND And
  • OR Or
  • XOR Executive-Or
  • MULH Multiply (with hardware)
  • MULS Multiply (with software)
  • JMP Jump
  • CALL Call ( a subroutine)
  • BZ Branch if zero
  • BNZ Branch if not zero
  • BC Branch if carry

13
Komut Kümesi
  • BNC Branch if not carry
  • BN Branch if negative
  • BNN Branch if not negative
  • BV Branch if overflow
  • BNV Branch if not overflow
  • SYSCALL System call (software interrut)

14
ISLEMCININ YAPISI VE ISLEYISI
  • Sistem CISC mimarisindedir tasarlanmistir
    VHDL yaziminda öncelikle her eleman component
    halinde tasarlanmistir. Daha sonra bu
    componentler birlestirilerek CPU
    olusturulmustur.
  • Islemlerin kosmasi için gerekli olan
    mikroinstruction ve kodlar donanimin içine
    yüklenmistir.
  • Sistem yapisi donanim ve yazilim olarak ikiye
    ayrilir

15
I. Donanim
  • Temel olarak 3 birimden olusur. Bunlar
  • Veri yolu(Datapath)
  • Hafiza elamani(Memory)
  • Kontrol ünitesi (Control Unit) dir.

16
(No Transcript)
17
1. Veri Yolu
  • Veri yolu, alinan bilginin islendigi
    kisimdir. Dört ana birimden olusur. Bunlar
  • Yazmaçlar (register file),
  • Muxlar (mux A, mux B,mux D),
  • Fonksiyon Ünitesi,
  • PSR ile MSTS
  • olarak düsünülebilir.

18
A) Register File
  • 8i kullanici tarafindan, 8i ise kullanici
    kullanimina kapali olup mikro-komutlarca
    kullanilan toplam 16 adet ACC tipi yazmaçtan
    olusur.

19
(No Transcript)
20
B) Multipilexerler
  • Verini gidecegi yolu seçmek için kullanilir.
  • Veriyolunda Mux A, Mux B ve Mux D
    çoklayicilari vardir. Mux A ve Mux B fonksiyon
    ünitesi ve bellege girisleri, Mux D ise veri
    yolundan çikislari denetler

21
C) Fonksiyon Ünitesi
  • Fonksiyon ünitesi asil isi yapan bölümdür.
    Gelen sinyali aritmetik, lojik veya kaydirma
    islemlerine tabi tutarak isler.
  • Yapisinda bir adet aritmetik lojik ünite (ALU)
    ve bir adet kaydirici (Shifter) bulunur.
  • ALU ise 2 ana bölümden olusur, birincisi
    aritmetik islemle yapan aritmetik ünitesi (AU),
    digeri ise lojik islemleri gerçeklestiren
    lojik ünitesidir.

22
  • Fonksiyon ünitesinin ayrica 4 adet çikisi
    vardir. Bunlar gerçeklenen islemin sonucu
    hakkinda yorum yapan çikislardir.
  • Islemin sonucunda tasma varsa V çikisi,
    elde varsa C çikisi, islemi sonucu negatif
    ise N çikisi, 0 ise Z çikisi lojik 1
    verir. 0 iken lojik 1 verir.
  • Fonksiyon ünitesinin, yapilacak fonksiyon
    seçen 5 bitlik FS girisi vardir.

23
(No Transcript)
24
(No Transcript)
25
D) PSR ile MSTS
  • PSR ile MSTS Durum bayraklarinin saklandigi
    yazmaçlardir.
  • PSR, makro durum bitlerinin saklandigi
    yazmaçtir. Bir önceki komut hakkindaki durum
    bayragini saklar.
  • PSR 4 ü V C N Z bir biti EI olmak üzere 5
    bitliktir.

26
  • MSTS, mikro-durum bitlerinin saklandigi
    yazmaçtir. Bir önceki mikro-rutin satiri
    hakkindaki durum bayragini saklar.
  • MSTS ise sadece 4 bitlik v, c, n, zyi
    hafizalamaktadir.

27
(No Transcript)
28
2. Hafiza Ünitesi(Memory)
  • Memory ünitemiz standart hafiza biriminin
    giris ve çikislarina sahiptir.
  • Data in, address in ve MO olmak üzere üç
    girisi, data out olarak da bir çikisi
    bulunmaktadir.
  • Data in ve Address girisleri,
    registerlardan çikan Data out ve Addres
    out ana hatlarina baglanmistir.

29
  • Bellegimizin hücre genisligini
    islemcimizdeki veri yolu genisligi
    belirlemektedir. Veri yolu genisligimiz 16 bit
    oldugu için hücre genisligi 16 bittir.
  • Satir sayisini belirlemek için ise bellegin
    adres girisine veri yolunun adres çikisinin LSB 7
    biti baglanmistir.

30
3. Kontrol Ünitesi
  • Islemlerin akisi için kendini kontrol edecek
    kodlari ve bu islemlerin uygulandigi veri yolunu
    kontrol eden komutlari üreten kisimdir.
  • Kontrol ünitesi Genel olarak 4 ana kisim
    içerir

31
  • 1. Instruction Register 16 bitlik
    Instruction Wordün yazildigi bölümdür. Veri,
    veri yolundan veya bellekten gelebilir.

32
  • 2. Instruction to Microaddress Mapper
    IRden gelen bilgiye ve o andaki Control
    Romun yolladigi bilgiye göre kendi içindeki
    romdan bir adresi seçer ve o adresteki
    bilgiyi Microsequencera yollar.

33
  • 3.Microsequencer Kontrol ünitesinin
    kalbidir. Komut akisinin düzenini saglayip
    Control Roma uygulanacak olan komutun adresini
    yollar.

34
  • 4.Kontrol ROM Microsequencerdan gelen
    adres bilgisinin karsiligi olan veriyi hem
    kontrol ünitesine hem de veri yoluna uygular.

35
II. Yazilim
  • Proje kapsaminda yazilim ile kastedilen,
    mapping (haritalayici) ROM, kontrol ROM ve
    memory (hafiza elemani)e yazilmasi gereken
    kodlardir.
  • Bu kodlar veri yolunda islenecek bilgiyi seçer
    ve siralar, ardindan islenen bilginin istenen
    konuma yazilmasini saglar.
  • Yazilim için gerekli olan ASM asagidadir.

36
(No Transcript)
37
  • Komut türüne göre degisiklik gösterse de genel
    olarak komutlari isleme isi 5 mikro-rutinde
    gerçeklesir. Buna göre
  • Ilk olarak hafiza elemaninda islenecek
    kod alinarak instruction register (komut
    yazmaci)a yazilir.
  • Buradan operasyon kodu(opcode)nun ilk üç
    bitine bakilarak yapilacak islemin operand sayisi
    belirlenir. Eger operand sayisi 0dan farkli ise
    operand alimi yapilir.

38
  • Daha sonra her islem kendi operand sayisina
    göre yürütülür (EX,execution mikrorutini).
    Yürütülmekten kasit, kontrol ünitesi
    çikislarinin veri yoluna uygulanarak gerekli
    islem sonuçlarinin alinmasidir.
  • Executiondan sonra ise sira veri yolundan
    çikan sonucun ne yapilacagina karar vermeye
    gelmistir. Islemin özel durumlarina göre gerekli
    görülen sonuçlar memory veya yazmaçlara
    yazilir(WB, write-back mikro-rutini).

39
  • Seçilen islemin dallanma olmasi durumu
    ise veri yolundan bagimsiz, tamamen program
    siralamasi ile ilgili olup Hafiza elemanlarina
    yazilma yapilmaz.
  • Son olarak ise disaridan bir kesme isteginin
    olup olmadigini kontrol etmek için gerekli kesme
    sinyalleri kontrol edilir ve eger yoksa yeni
    bir komut alabilmek için IF e
    yönlendirilir(INT, interrupt handling
    mikro-rutini).

40
DIS BAGLANTILAR
  • Anahtar ve ledler
  • Klavye
  • Lcd
  • Vga
  • Rs-232

41
Anahtar ve Ledler
42
Klavye
  • Klavyenin ikincil karakter özellikleri
    kullanilmamaktadir. Bunun yerine bazi tuslara
    bazi görevler yüklenmistir ve bu proje için
    yeterli olmaktadir.
  • Klavyede bilgi girisi hexadecimal olarak
    yapilmalidir.
  • Görevli tuslar ve görevleri sunlardir

43
  • 0,1,2,3,...,9,A,B,C,D,E,F Hexadecimal sayi
    girmek için kullanilir.
  • Esc Clear_All(Reset) tusudur. Islemcideki
    bütün elemanlarin ilk halini geri yükler.

44
  • Enter Klavyeden bilgi yükleme isleminde
    kullanilir. Load ve Stop açikken istenilen bilgi
    ekrana yazilir. Yama islemi bittikten sonra load
    0a çekilip entere basilirsa yükleme
    gerçeklesir.
  • TAB Adres ve Data arasinda geçisi saglar.
    Yani adres yazildiktan sonra taba basilarak
    dataya yada data konumundan adres konumuna
    devamli geçisi saglar.

45
  • F1,F2,...,F7 LCD den görüntülenen bilgileri
    seçer. Detayli bilgi raporda da verilmisti.
  • G tusu Halt komutundan kurtarmak için
    gerekli go anahtaridir
  • S tusu LCD ekrana yazilan adres yada data
    bilgisinin tamamini temizler.

46
  • R tusu PCnin içerigini sifirlar. Daha önceki
    sürümde PCyi sifirlamak için Load ve Stop ayni
    anda 1 yapiliyordu. Bu sürümde bu özellik
    Kaldirildi. Nedeni ise bazi durumlarda
    sakincalari olmasiydi. Bu sürümde PCyi
    sifirlamak için klavyeden R tusuna basilir.
  • Backspace Silme tusudur. Ekrana yazilan son
    harfi siler.

47
LCD
  • Mod 010 için
  • REG50 x XX
  • REG60 x XX
  • Mod 011 için
  • REG70 x XX
  • IR0 x XX
  • Mod 100 için
  • PC0 x XX
  • SP0 x XX
  • Hâlihazirdaki islemcide LCDnin modlari ve
    modlardaki kaliplar su sekildedir
  • Mod 000 için
  • REG10 x XX
  • REG20 x XX
  • Mod 001 için
  • REG30 x XX
  • REG40 x XX

48
NOT LCD ekrandaki bilgiler 16lik tabanda
gösterilir.
  • Mod 101 için
  • M-ADR 0 x XX
  • M-DATA0 x XX
  • Mod 110 için
  • M-ADR 0 x XX
  • M-DATA0 x XX
  • Mod 111 için
  • MOMENTUM
  • 2008
  • .

49
VGA
  • CPU nun içindeki bazi verileri
    ögrenebilmek için ekrana çikti aldik böylece CPU
    MOMENTUMun hangi asamada oldugunu veya yapilan
    islemin sonuçlari görebiliyoruz

50
RS-232 Seri Port
  • RS'232 seri portunun amaci islemci çalisirken
    bellege yeni komutlar yazabilmektir. Bu sayede
    sistem board üzerine bir kez kurulduktan sonra,
    tekrar tekrar derlenip yüklemeye gerek birakmadan
    seri port araciligiyla harici bir bilgisayardan
    programlanabilecektir.
  • Ayrica seri port ile Momentum Komut Çevirici
    haberlestirilerek, MKC yardimiyla islemcinin
    diline çevrilen komutlar direk olarak islemciye
    de yüklenebilmektedir.

51
MOMENTUM KOMUT ÇEVIRICI
  • Kullanici tarafindan yazilan kodlari CPUnun
    taniyacagi makine koduna çevirmek amaciyla MKC
    isimli kod çevirme programi hazirlanmis ve ekte
    kullanima sunulmustur.
  • Kullanim için gerekli detayli bilgi yardim
    mönüsünden rahatlikla edinilebilinir.

52
  • MKC kodu, çevirmenin yaninda, çevirilen kodu
    alansal olarak inceleme, hata ayiklama, hex
    olarak çikti verme olarak detayli sekilde
    inceler.
  • Çevrilen komutlari dosyaya yaz özelligi ile
    istenen bölümleri istenen dosyaya yazar.
  • Bunu yaninda komutlar mikroislemciye yükle
    butonu ile, RS232 seri portu yardimiyla
    mikroislemciye yüklenebilir. Bunun için butona
    basildiktan sonra gerekli talimatlara uymak
    yeterli olacaktir.

53
(No Transcript)
54
(No Transcript)
55
(No Transcript)
56
DENEY ÇIKTILARI
  • Sanal islemci tasarlandiktan sonra tasarim
    boarda yüklendi ve board üzerine deneyler
    yapilmaya baslandi. Bunlardan bir örnek asagida
    fotograflariyla beraber gösterilmistir
  • Öncelikli olarak Project nevigatordan boarda
    yükleme yapilirken bellege asagida görülen iki
    komut initial olarak yazilmistir. Daha sonra
    bütün kodlar derlenerek boarda gömülmüstür.

57
(No Transcript)
58
  • Ardindan boarda yüklenen tasarimin memorisinin
    içerigi F6 tusuna basilarak kontol edilmis ve
    girilen init memory datalarinin belrtilen
    adreslere gerçekten yüklenmis oldugu görülmüstür.

59
  • Regsterlerin ilk degerleri, sanal tasarimin
    yazmaç ünitesinde kendi register numaralari
    olarak atanmisti. Bu durumda yazilan koda göre
    islem sonucu olarak 3 numarali registere
    hexadecimal olarak 18 sayisinin yani 12 nin
    yazilmis olmasi gerekmektedir ki gerçekten sonuç
    dogru olarak görülmektedir.

60
  • Ardindan disaridan girilecek olan bir kodun
    bellege yazilip, kosturulmasi amaciyla bir deney
    yapilmistir. Buna göre MKCye bir add, bir jump
    ve bir halttan olusan asagidaki programcik
    yazilmis

61
  • Ve opcodelari klavye yardimiyla asagidaki gibi
    girilmistir

62
  • ve beklenildigi gibi asagidaki basarili
    çiktilar alinmistir

63
  • Görüldügü gibi toplam sonucu olan 9 4
    numarali yazmaca yazilmis ve PC, 12 numarali
    adrese gitmis ve halt komutu oldugu için oada
    beklemeye baslamistir.
  • Bu gibi deneylerin hemen hepsi basarili sonuç
    vermis ve denenen komutlarin tamamindan dogru
    sonuçlar alinmistir.

64
SONUÇLAR
  • Kodlarin derlenmesi sonucu alinan derleme
    sonuçlari asagidaki gibidir

65
  • HDL Synthesis Report
  • Macro Statistics
  • ROMs
    9
  • 16x6-bit ROM
    1
  • 16x7-bit ROM
    8
  • Multipliers
    1
  • 8x8-bit multiplier
    1
  • Adders/Subtractors
    10
  • 10-bit adder
    1
  • 16-bit adder
    3
  • 16-bit subtractor
    1
  • 17-bit adder carry in
    1
  • 17-bit subtractor
    1
  • 5-bit adder
    1
  • 8-bit adder
    2
  • Counters
    6
  • 10-bit up counter
    2
  • 2-bit up counter
    2
  • Comparators
    22
  • 10-bit comparator greatequal
    2
  • 10-bit comparator less
    1
  • 11-bit comparator greatequal
    4
  • 11-bit comparator lessequal
    4
  • 3-bit comparator not equal
    1
  • 32-bit comparator greatequal
    2
  • 32-bit comparator less
    2
  • 32-bit comparator not equal
    2
  • 5-bit comparator greatequal
    1
  • 5-bit comparator less
    1
  • 7-bit comparator greatequal
    1
  • 7-bit comparator lessequal
    1
  • Multiplexers
    18
  • 1-bit 16-to-1 multiplexer
    1
  • 1-bit 8-to-1 multiplexer
    1
  • 16-bit 128-to-1 multiplexer
    2
  • 16-bit 16-to-1 multiplexer
    2
  • 16-bit 4-to-1 multiplexer
    4

66
  • Advanced HDL Synthesis Report
  • Macro Statistics
  • FSMs
    1
  • ROMs
    9
  • 16x6-bit ROM
    1
  • 16x7-bit ROM
    8
  • Multipliers
    1
  • 8x8-bit multiplier
    1
  • Adders/Subtractors
    10
  • 10-bit adder
    1
  • 16-bit adder
    3
  • 16-bit subtractor
    1
  • 17-bit adder carry in
    1
  • 17-bit subtractor
    1
  • 5-bit adder
    1
  • 8-bit adder
    2
  • Counters
    6
  • 10-bit up counter
    2
  • Comparators
    22
  • 10-bit comparator greatequal
    2
  • 10-bit comparator less
    1
  • 11-bit comparator greatequal
    4
  • 11-bit comparator lessequal
    4
  • 3-bit comparator not equal
    1
  • 32-bit comparator greatequal 2
  • 32-bit comparator less
    2
  • 32-bit comparator not equal
    2
  • 5-bit comparator greatequal
    1
  • 5-bit comparator less
    1
  • 7-bit comparator greatequal
    1
  • 7-bit comparator lessequal
    1
  • Multiplexers
    78
  • 1-bit 128-to-1 multiplexer
    32
  • 1-bit 16-to-1 multiplexer
    33
  • 1-bit 8-to-1 multiplexer
    1
  • 16-bit 4-to-1 multiplexer
    4
  • 16-bit 7-to-1 multiplexer
    2

67
  • Speed Grade -4
  • Minimum period 26.173ns (Maximum Frequency
    38.207MHz)
  • Minimum input arrival time before clock
    14.114ns
  • Maximum output required time after clock
    13.283ns
  • Maximum combinational path delay 5.760ns

68
  • Izlediginiz için tesekkür ederiz
Write a Comment
User Comments (0)
About PowerShow.com