File tree Expand file tree Collapse file tree 6 files changed +25
-21
lines changed Expand file tree Collapse file tree 6 files changed +25
-21
lines changed Original file line number Diff line number Diff line change @@ -38,9 +38,9 @@ class AXI4Bridge extends Module with AXI4Config {
3838 )
3939 )
4040
41- protected val arSize = Mux (io.socEn, socARSize, diffRWSize )
42- protected val awSize = Mux (io.socEn, socAWSize, diffRWSize )
43- protected val addrMask = Mux (io.socEn, socAddrMask, difftestAddrMask )
41+ protected val arSize = Mux (io.socEn, socARSize, DiffRWSize )
42+ protected val awSize = Mux (io.socEn, socAWSize, DiffRWSize )
43+ protected val addrMask = Mux (io.socEn, SoCAddrMask , DifftestAddrMask )
4444
4545 when(arbiter.io.state === Arbiter .eumAR) {
4646 io.axi.ar.valid := true .B
Original file line number Diff line number Diff line change @@ -43,8 +43,8 @@ class Crossbar extends Module with InstConfig {
4343 }
4444
4545 // because the difftest's logic addr is 0x000000
46- protected val instSize = Mux (io.socEn, instSoCRSize, instDiffRSize )
47- protected val baseAddr = Mux (io.socEn, socStartBaseAddr, socStartBaseAddr )
46+ protected val instSize = Mux (io.socEn, InstSoCRSize , InstDiffRSize )
47+ protected val baseAddr = Mux (io.socEn, SoCStartBaseAddr , SoCStartBaseAddr )
4848 protected val instAddr = io.core.fetch.addr - baseAddr
4949 protected val loadAddr = io.core.ld.addr - baseAddr
5050 protected val storeAddr = io.core.sd.addr - baseAddr
Original file line number Diff line number Diff line change @@ -6,15 +6,16 @@ import chisel3.util._
66trait InstConfig {
77 val SoCEna = false
88 val XLen = 64
9- val flashStartAddr = " h0000000030000000" .U (XLen .W )
10- val simStartAddr = " h0000000080000000" .U (XLen .W )
11- val diffStartBaseAddr = " h0000000080000000" .U (XLen .W )
12- val socStartBaseAddr = " h0000000000000000" .U (XLen .W )
13- val difftestAddrMask = " hfffffffffffffff8" .U (XLen .W )
14- val socAddrMask = " hffffffffffffffff" .U (XLen .W )
15- val instSoCRSize = 2 .U
16- val instDiffRSize = 3 .U
17- val diffRWSize = 3 .U
9+ val RegfileNum = 32
10+ val FlashStartAddr = " h0000000030000000" .U (XLen .W )
11+ val SimStartAddr = " h0000000080000000" .U (XLen .W )
12+ val DiffStartBaseAddr = " h0000000080000000" .U (XLen .W )
13+ val SoCStartBaseAddr = " h0000000000000000" .U (XLen .W )
14+ val DifftestAddrMask = " hfffffffffffffff8" .U (XLen .W )
15+ val SoCAddrMask = " hffffffffffffffff" .U (XLen .W )
16+ val InstSoCRSize = 2 .U
17+ val InstDiffRSize = 3 .U
18+ val DiffRWSize = 3 .U
1819 val CacheEna = false
1920
2021 val NWay = 4
Original file line number Diff line number Diff line change @@ -3,14 +3,16 @@ package treecorel2
33import chisel3 ._
44import chisel3 .util ._
55
6- class IDU extends Module {
6+ import treecorel2 .common .InstConfig
7+
8+ class IDU extends Module with InstConfig {
79 val io = IO (new Bundle {
810 val globalEn = Input (Bool ())
911 val stall = Input (Bool ())
1012 val if2id = Flipped (new IF2IDIO )
1113 val wbdata = Flipped (new WBDATAIO )
1214 val id2ex = new ID2EXIO
13- val gpr = Output (Vec (32 , UInt (64 .W )))
15+ val gpr = Output (Vec (RegfileNum , UInt (XLen .W )))
1416 })
1517
1618 protected val idReg = RegEnable (io.if2id, WireInit (0 .U .asTypeOf(new IF2IDIO ())), io.globalEn)
Original file line number Diff line number Diff line change @@ -3,10 +3,11 @@ package treecorel2
33import chisel3 ._
44import chisel3 .util ._
55
6- class RegFile {
7- // public registers
8- val gpr = RegInit (VecInit (Seq .fill(32 )(0 .U (64 .W ))))
6+ import treecorel2 .common .InstConfig
97
8+ class RegFile extends InstConfig {
9+ // public registers
10+ val gpr = RegInit (VecInit (Seq .fill(RegfileNum )(0 .U (XLen .W ))))
1011 // io oper
1112 def read (addr : UInt ): UInt = { gpr(addr) }
1213 def write (wen : Bool , addr : UInt , data : UInt ): Unit = {
Original file line number Diff line number Diff line change @@ -16,10 +16,10 @@ class IFU extends Module with InstConfig {
1616 val if2id = new IF2IDIO
1717 })
1818
19- protected val startAddr = Mux (io.socEn, flashStartAddr, simStartAddr)
19+ protected val startAddr = Mux (io.socEn, FlashStartAddr , SimStartAddr )
20+ protected val pc = RegInit (startAddr)
2021 protected val valid = Mux (reset.asBool(), false .B , true .B )
2122 protected val inst = io.fetch.data
22- protected val pc = RegInit (startAddr)
2323
2424 protected val bpu = Module (new BPU )
2525 bpu.io.branchInfo <> io.branchInfo
You can’t perform that action at this time.
0 commit comments