FPGA ile İşlemci Tasarımı / BT-II / #2 (İç Mimari)

BT-II'nin iç mimarisi aşağıda görülmektedir:

Modüller:

Register File: Registerlerin tutulduğu modül. 13 tane 16 bitlik registerden oluşur. Geriye kalan PC, LR ve SP registerleri dışarıdan bu modüle bağlanır.

ALU: Matematiksel işlemlerin yapıldığı modül

PC/LR: Program Counter ve Link Registeri. Yürütülen komutun adresinin tutar. Dallanmaları kontrol eder.

SP: Stack Pointer registeri. Stack adresinin saklar.

IRH, IRL: Instruction Register High, Instruction Register Low. Yürütülen komutun tutulduğu register. 16 bitlik komutlarda komut sadece IRH'de, 32 bitlik komutlarda komutlar IRH ve IRL'de tutulur.

ID&CU: Instruction Decoder and Control Unit. Komutları çözen ve buna göre modülleri konfigüre eden modül.

Sinyaller:

Register File Kontrol Sinyalleri:

Rn, Rm ve Rd: Okunacak ve yazılacak registerlerin seçildiği sinyaller. Her biri 4 bit uzunluğundadır.

EnableH, EnableL: Yazılacak registerin üst 8 bitini ve alt 8 bitini aktif eden sinyaller.

RnHC, RnLC, RmHC, RmLC: Okunacak registerin üst 8 bitini ve alt 8 bitini aktif eden sinyaller.

ALU Kontrol Sinyalleri:

ALUOp: ALU'da toplama-çıkarma, mantık, çarpma ve shift işlemlerinden hangisinin yapılacağının seçildiği sinyal.

AddSubOp: Toplama-çıkarma ünitesinde 8/16-bit toplama ve 8/16-bit çıkarma işlemlerinden hangisinin yapılacağının seçildiği sinyal.

LogicOp: Mantık ünitesinde and, or, xor ve not işlemlerinden hangisinin yapılacağının seçildiği sinyal.

ShiftOp: Shift ünitesinde sağa, sola, mantıksal ve aritmetik shift işlemlerinden hangilerin yapılacağının seçildiği sinyal.

PC/LR Kontrol Sinyalleri:

PCEnable, LREnable: PC ve LR registerlerini yazma için aktif eden sinyaller.

Branch1Sel, Branch2Sel: Ne tür dallanma yapılacağının seçildiği sinyaller.

Size: O an yürütülen komutun boyutunun seçildiği sinyal. PC bu değere göre kendini 2 ya da 4 arttırır.

SP Kontrol Sinyalleri:

SP Enable: SP registerini yazma için aktif eden sinyal.

D/I: Decrease Increase. SP registerinin 4 arttırılıcağının ya da 4 azaltılacağının seçildiği sinyal.

SPSel: SP registerinin yeni değerinin hangi kaynaktan geliceğinin seçildiği sinyal.

ImData: Immediate Data. SP registerinin değeri direk değiştirilecekse, SP'nin yeni değeri bu sinyal üzerinden alınır.

IRH, IRL Kontrol Sinyalleri:

IRHEnable, IRHEnable: IRH ve IRL registerlerini yazma için aktif eden sinyal.

Diğer Kontrol Sinyalleri:

ALUMux: ALU'ya gelen verinin kaynağını seçen sinyal.

ALUZeroMux: ALU'ya gelen 2. verinin kaynağını seçen sinyal. '1' konumunda ALU'ya "0x0000" değerini gönderir.

L/H: 32 bitlik komutlar yürütülürken, komutun 2. parçasının okumak için bu sinyal '1' konumuna getirilir ve PC+0x02 adresindeki komut okunur.

AddressMux: Adres sinyalinin kaynağını seçen sinyal.

ReturnMux: Register modülüne giden sinyalin kaynağını seçen sinyal.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.