Преглед на файлове

Implement memory write

sindre-ex1
Sindre Stephansen преди 6 години
родител
ревизия
5a510d0f3f
променени са 2 файла, в които са добавени 6 реда и са изтрити 1 реда
  1. +1
    -1
      src/main/scala/CPU.scala
  2. +5
    -0
      src/main/scala/ID.scala

+ 1
- 1
src/main/scala/CPU.scala Целия файл

@@ -66,7 +66,7 @@ class CPU extends MultiIOModule {
//printf(p"S3: ALUop=${ID.io.ALUop}, data1=${ID.io.data1.asSInt}, data2=${ID.io.data2.asSInt} || ")

// Stage 4
MEM.io.dataIn := 0.U
MEM.io.dataIn := ShiftRegister(ID.io.data3, 1)
MEM.io.dataAddress := EX.io.result
MEM.io.writeEnable := ShiftRegister(ID.io.controlSignals.memWrite, 1)
//printf(p"S4: res=${EX.io.result} || ")


+ 5
- 0
src/main/scala/ID.scala Целия файл

@@ -30,6 +30,7 @@ class InstructionDecode extends MultiIOModule {
val controlSignals = Output(new ControlSignals)
val data1 = Output(UInt(32.W))
val data2 = Output(UInt(32.W))
val data3 = Output(UInt(32.W))
val ALUop = Output(UInt(4.W))
}
)
@@ -39,6 +40,7 @@ class InstructionDecode extends MultiIOModule {

val data1 = RegInit(UInt(32.W), 0.U)
val data2 = RegInit(UInt(32.W), 0.U)
val data3 = RegInit(UInt(32.W), 0.U)
val ALUop = RegInit(UInt(4.W), 0.U)
val controlSignals = Reg(new ControlSignals)

@@ -69,6 +71,9 @@ class InstructionDecode extends MultiIOModule {

io.data1 := data1
io.data2 := data2
io.data3 := data3

data3 := registers.io.readData2

switch (decoder.op1Select) {
is (Op1Select.rs1) {


Loading…
Отказ
Запис