Merge remote-tracking branch 'origin/eb_dev' into mp_eb_dev

# Conflicts:
#	tb/shinTest/ShinTopSpiTb.v
#	tb/shinTest/testcase_result/base_tc06_result.log
This commit is contained in:
Ruige Lee
2025-08-11 16:13:26 +08:00
5 changed files with 38 additions and 29 deletions

View File

@@ -42,6 +42,8 @@ class CommonRegisterBundle extends Bundle{
val spiSel = UInt(2.W)
val uniCode = UInt(64.W)
val softResetCode = Vec(4, UInt(8.W))
val intEnable = UInt(32.W)
@@ -195,6 +197,9 @@ class InterfaceIO extends Bundle{
val latchPin = Input(Vec(2, Bool()))
val isPoReset = Output(Bool())
val hwSerial = Input(UInt(48.W))
val uniCode = Input(UInt(64.W))
}
@@ -232,7 +237,11 @@ abstract class InterfaceBase extends Module{
((0 until 6).map{ i =>
(addr === ("h2".U(16.W) + i.U) ) -> cReg.hwSerial( 8*i+7,8*i+0 )
}) ++
((0 until 8).map{ i =>
(addr === ("h10".U(16.W) + i.U) ) -> cReg.uniCode( 8*i+7,8*i+0 )
}) ++
Seq(
(addr === "h8".U ) -> cReg.busRate( 7,0 ),
(addr === "h9".U ) -> cReg.spiSel,
@@ -588,14 +597,7 @@ trait InterfaceMCUop{ this: InterfaceBase =>
cReg.mstOrSlv := RegEnable( dataw(1,0), 0.U, isEnW & addrw === "h0".U & cReg.mstOrSlv === 0.U )
cReg.hwVersion := RegEnable( dataw , "hF0".U, isEnW & addrw === "h1".U & cReg.mstOrSlv === 0.U )
cReg.hwSerial :=
Cat(
(0 until 6).map{ i =>
RegEnable( dataw, "haa".U, isEnW & addrw === ("h2".U(16.W) + i.U) & cReg.mstOrSlv === 0.U )
}.reverse
)
cReg.busRate := RegEnable( dataw, "h55".U, isEnW & addrw === "h8".U & cReg.mstOrSlv === 0.U )
cReg.spiSel := RegEnable( dataw(1,0), 0.U, isEnW & addrw === "h9".U & cReg.mstOrSlv === 0.U )
@@ -1382,6 +1384,9 @@ with InterfaceWdt
with InterfaceSystem
with InterfaceEvent
{
cReg.hwVersion := "h1".U
cReg.hwSerial := io.hwSerial
cReg.uniCode := io.uniCode
io.txReq.bits.txSM := mReg.txSM

View File

@@ -30,6 +30,8 @@ class ShinTopIO extends Bundle{
val interrupt = Output(Bool())
val latchPin = Input(Vec(2, Bool()))
val hwSerial = Input(UInt(48.W))
val uniCode = Input(UInt(64.W))
}
@@ -58,6 +60,8 @@ abstract class ShinTopBase extends Module{
val interface = Module(new Interface)
interface.io.latchPin := io.latchPin
interface.io.uniCode := io.uniCode
interface.io.hwSerial := io.hwSerial
interface.io.intTransEnd(0) := downCDRIn.io.axis.fire & downCDRIn.io.axis.bits.tlast
interface.io.intTransEnd(1) := downCDROut.io.axis.fire & downCDROut.io.axis.bits.tlast
@@ -354,12 +358,12 @@ trait ShinTopSlave{ this: ShinTopBase =>
}
slaveParser.io.intHWClr(0) := interface.io.intHWClr(0)
slaveParser.io.intHWClr(1) := interface.io.intHWClr(1)
downCDRIn.reset := reset.asBool | interface.io.intHWClr(0)
upCDRIn.reset := reset.asBool | interface.io.intHWClr(1)
downCDROut.reset := reset.asBool | interface.io.intHWClr(0)
upCDROut.reset := reset.asBool | interface.io.intHWClr(1)
slaveParser.io.intHWClr(0) := interface.io.intHWTrig(0) & interface.io.intHWClr(0)
slaveParser.io.intHWClr(1) := interface.io.intHWTrig(1) & interface.io.intHWClr(1)
downCDRIn.reset := reset.asBool | ( interface.io.intHWTrig(0) & interface.io.intHWClr(0) )
upCDRIn.reset := reset.asBool | ( interface.io.intHWTrig(1) & interface.io.intHWClr(1) )
downCDROut.reset := reset.asBool | ( interface.io.intHWTrig(0) & interface.io.intHWClr(0) )
upCDROut.reset := reset.asBool | ( interface.io.intHWTrig(1) & interface.io.intHWClr(1) )
interface.io.lvds <> slaveParser.io.lvds

View File

@@ -991,11 +991,11 @@ with SlaveParserProbe{
io.intHWTrig(0) := downRecParser.io.isError
io.intHWTrig(1) := upRecParser.io.isError
downRecParser.reset := reset.asBool | io.intHWClr(0)
downSendGen.reset := reset.asBool | io.intHWClr(0)
downRecParser.reset := reset.asBool | (downRecParser.io.isError & io.intHWClr(0))
downSendGen.reset := reset.asBool | (downRecParser.io.isError & io.intHWClr(0))
upRecParser.reset := reset.asBool | io.intHWClr(1)
upSendGen.reset := reset.asBool | io.intHWClr(1)
upRecParser.reset := reset.asBool | (upRecParser.io.isError & io.intHWClr(1))
upSendGen.reset := reset.asBool | (upRecParser.io.isError & io.intHWClr(1))
io.downRecStat := downRecParser.io.stat
io.upRecStat := upRecParser.io.stat

View File

@@ -56,7 +56,7 @@ if __name__ == '__main__':
#add_tc_2_runlist(ebmmu.tc5())
#add_tc_2_runlist(ebmmu.tc6())
#add_tc_2_runlist(ebmmu.tc7())
#add_tc_2_runlist(ebmmu.tc8())
add_tc_2_runlist(ebmmu.tc8())
#add_tc_2_runlist(ebmmu.tc9())
#add_tc_2_runlist(ebmmu.tc10())
#add_tc_2_runlist(ebmmu.tc11())

View File

@@ -11,18 +11,18 @@
16'h1000 8'h00 16'h0271 8'h26 8'hd0 8'h00 8'h00 8'h00 8'h0c 8'h10 8'h00 8'h00 8'h81 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h10 8'h10 8'h00 8'h00 8'h8c 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h04 8'h10 8'h00 8'h00 8'h80 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h08 8'h10 8'h00 8'h00 8'h98 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h04 8'h03 8'h06 8'h00 8'h02 8'h00 8'h00 8'h00 8'h00 8'h00 8'h08 8'h03 8'h06 8'h00 8'h02 8'h00 8'h00 8'h00 8'h00 8'h00 8'h0c 8'h03 8'h06 8'h00 8'h02 8'h00 8'h00 8'h00 8'h00 8'h00 8'h10 8'h03 8'h06 8'h00 8'h02 8'h00 8'h00 8'h00 8'h00
16'h0020 8'h00 16'h0001 8'h01
16'h0800 8'h01 16'h0271 8'h26 8'hd0 8'h00 8'h04 8'h00 8'h0c 8'h10 8'h00 8'h00 8'h81 8'h03 8'h04 8'h05 8'h06 8'h07 8'h08 8'h09 8'h0a 8'h0b 8'h0c 8'h0d 8'h0e 8'h0f 8'h10 8'h11 8'h12 8'h13 8'h14 8'h15 8'h16 8'h17 8'h18 8'h19 8'h1a 8'h1b 8'h1c 8'h1d 8'h1e 8'h1f 8'h20 8'h21 8'h22 8'h23 8'h24 8'h25 8'h26 8'h27 8'h28 8'h29 8'h2a 8'h2b 8'h2c 8'h2d 8'h2e 8'h2f 8'h30 8'h31 8'h32 8'h33 8'h34 8'h35 8'h36 8'h37 8'h38 8'h39 8'h3a 8'h3b 8'h3c 8'h3d 8'h3e 8'h3f 8'h40 8'h41 8'h42 8'h43 8'h44 8'h45 8'h46 8'h47 8'h48 8'h49 8'h4a 8'h4b 8'h4c 8'h4d 8'h4e 8'h4f 8'h50 8'h51 8'h52 8'h53 8'h54 8'h55 8'h56 8'h57 8'h58 8'h59 8'h5a 8'h5b 8'h5c 8'h5d 8'h5e 8'h5f 8'h60 8'h61 8'h62 8'h63 8'h64 8'h65 8'h66 8'h67 8'h68 8'h69 8'h6a 8'h6b 8'h6c 8'h6d 8'h6e 8'h6f 8'h70 8'h71 8'h72 8'h73 8'h74 8'h75 8'h76 8'h77 8'h78 8'h79 8'h7a 8'h7b 8'h7c 8'h7d 8'h7e 8'h7f 8'h80 8'h81 8'h82 8'h83 8'h00 8'h01 8'h00 8'h10 8'h10 8'h00 8'h00 8'h8c 8'h04 8'h05 8'h06 8'h07 8'h08 8'h09 8'h0a 8'h0b 8'h0c 8'h0d 8'h0e 8'h0f 8'h10 8'h11 8'h12 8'h13 8'h14 8'h15 8'h16 8'h17 8'h18 8'h19 8'h1a 8'h1b 8'h1c 8'h1d 8'h1e 8'h1f 8'h20 8'h21 8'h22 8'h23 8'h24 8'h25 8'h26 8'h27 8'h28 8'h29 8'h2a 8'h2b 8'h2c 8'h2d 8'h2e 8'h2f 8'h30 8'h31 8'h32 8'h33 8'h34 8'h35 8'h36 8'h37 8'h38 8'h39 8'h3a 8'h3b 8'h3c 8'h3d 8'h3e 8'h3f 8'h40 8'h41 8'h42 8'h43 8'h44 8'h45 8'h46 8'h47 8'h48 8'h49 8'h4a 8'h4b 8'h4c 8'h4d 8'h4e 8'h4f 8'h50 8'h51 8'h52 8'h53 8'h54 8'h55 8'h56 8'h57 8'h58 8'h59 8'h5a 8'h5b 8'h5c 8'h5d 8'h5e 8'h5f 8'h60 8'h61 8'h62 8'h63 8'h64 8'h65 8'h66 8'h67 8'h68 8'h69 8'h6a 8'h6b 8'h6c 8'h6d 8'h6e 8'h6f 8'h70 8'h71 8'h72 8'h73 8'h74 8'h75 8'h76 8'h77 8'h78 8'h79 8'h7a 8'h7b 8'h7c 8'h7d 8'h7e 8'h7f 8'h80 8'h81 8'h82 8'h83 8'h84 8'h85 8'h86 8'h87 8'h88 8'h89 8'h8a 8'h8b 8'h8c 8'h8d 8'h8e 8'h8f 8'h00 8'h01 8'h00 8'h04 8'h10 8'h00 8'h00 8'h80 8'h01 8'h02 8'h03 8'h04 8'h05 8'h06 8'h07 8'h08 8'h09 8'h0a 8'h0b 8'h0c 8'h0d 8'h0e 8'h0f 8'h10 8'h11 8'h12 8'h13 8'h14 8'h15 8'h16 8'h17 8'h18 8'h19 8'h1a 8'h1b 8'h1c 8'h1d 8'h1e 8'h1f 8'h20 8'h21 8'h22 8'h23 8'h24 8'h25 8'h26 8'h27 8'h28 8'h29 8'h2a 8'h2b 8'h2c 8'h2d 8'h2e 8'h2f 8'h30 8'h31 8'h32 8'h33 8'h34 8'h35 8'h36 8'h37 8'h38 8'h39 8'h3a 8'h3b 8'h3c 8'h3d 8'h3e 8'h3f 8'h40 8'h41 8'h42 8'h43 8'h44 8'h45 8'h46 8'h47 8'h48 8'h49 8'h4a 8'h4b 8'h4c 8'h4d 8'h4e 8'h4f 8'h50 8'h51 8'h52 8'h53 8'h54 8'h55 8'h56 8'h57 8'h58 8'h59 8'h5a 8'h5b 8'h5c 8'h5d 8'h5e 8'h5f 8'h60 8'h61 8'h62 8'h63 8'h64 8'h65 8'h66 8'h67 8'h68 8'h69 8'h6a 8'h6b 8'h6c 8'h6d 8'h6e 8'h6f 8'h70 8'h71 8'h72 8'h73 8'h74 8'h75 8'h76 8'h77 8'h78 8'h79 8'h7a 8'h7b 8'h7c 8'h7d 8'h7e 8'h7f 8'h80 8'h00 8'h01 8'h00 8'h08 8'h10 8'h00 8'h00 8'h98 8'h02 8'h03 8'h04 8'h05 8'h06 8'h07 8'h08 8'h09 8'h0a 8'h0b 8'h0c 8'h0d 8'h0e 8'h0f 8'h10 8'h11 8'h12 8'h13 8'h14 8'h15 8'h16 8'h17 8'h18 8'h19 8'h1a 8'h1b 8'h1c 8'h1d 8'h1e 8'h1f 8'h20 8'h21 8'h22 8'h23 8'h24 8'h25 8'h26 8'h27 8'h28 8'h29 8'h2a 8'h2b 8'h2c 8'h2d 8'h2e 8'h2f 8'h30 8'h31 8'h32 8'h33 8'h34 8'h35 8'h36 8'h37 8'h38 8'h39 8'h3a 8'h3b 8'h3c 8'h3d 8'h3e 8'h3f 8'h40 8'h41 8'h42 8'h43 8'h44 8'h45 8'h46 8'h47 8'h48 8'h49 8'h4a 8'h4b 8'h4c 8'h4d 8'h4e 8'h4f 8'h50 8'h51 8'h52 8'h53 8'h54 8'h55 8'h56 8'h57 8'h58 8'h59 8'h5a 8'h5b 8'h5c 8'h5d 8'h5e 8'h5f 8'h60 8'h61 8'h62 8'h63 8'h64 8'h65 8'h66 8'h67 8'h68 8'h69 8'h6a 8'h6b 8'h6c 8'h6d 8'h6e 8'h6f 8'h70 8'h71 8'h72 8'h73 8'h74 8'h75 8'h76 8'h77 8'h78 8'h79 8'h7a 8'h7b 8'h7c 8'h7d 8'h7e 8'h7f 8'h80 8'h81 8'h82 8'h83 8'h84 8'h85 8'h86 8'h87 8'h88 8'h89 8'h8a 8'h8b 8'h8c 8'h8d 8'h8e 8'h8f 8'h90 8'h91 8'h92 8'h93 8'h94 8'h95 8'h96 8'h97 8'h98 8'h99 8'h00 8'h01 8'h00 8'h04 8'h03 8'h06 8'h00 8'h02 8'h80 8'h00 8'h00 8'h01 8'h00 8'h08 8'h03 8'h06 8'h00 8'h02 8'h98 8'h00 8'h00 8'h01 8'h00 8'h0c 8'h03 8'h06 8'h00 8'h02 8'h81 8'h00 8'h00 8'h01 8'h00 8'h10 8'h03 8'h06 8'h00 8'h02 8'h8c 8'h00 8'h00 8'h01
16'h0074 8'h01 16'h0004 8'h03 8'h00 8'h06 8'h00
16'h0074 8'h01 16'h0004 8'h00 8'h02 8'h0f 8'h00
16'h0074 8'h01 16'h0004 8'h00 8'h02 8'h0f 8'h00
16'h0074 8'h01 16'h0004 8'h00 8'h02 8'h0f 8'h00
16'h0074 8'h01 16'h0004 8'h00 8'h02 8'h0f 8'h00
16'h0074 8'h01 16'h0004 8'h13 8'h00 8'h06 8'h00
16'h0074 8'h01 16'h0004 8'h10 8'h02 8'h0f 8'h00
16'h0074 8'h01 16'h0004 8'h10 8'h02 8'h0f 8'h00
16'h0074 8'h01 16'h0004 8'h10 8'h02 8'h0f 8'h00
16'h0074 8'h01 16'h0004 8'h10 8'h02 8'h0f 8'h00
16'h0078 8'h00 16'h0004 8'hff 8'hff 8'hff 8'hff
16'h0078 8'h00 16'h0004 8'hff 8'hff 8'hff 8'hff
16'h0078 8'h00 16'h0004 8'hff 8'hff 8'hff 8'hff
16'h0078 8'h00 16'h0004 8'hff 8'hff 8'hff 8'hff
16'h0078 8'h00 16'h0004 8'hff 8'hff 8'hff 8'hff
16'h0074 8'h01 16'h0004 8'h00 8'h00 8'h00 8'h00
16'h0074 8'h01 16'h0004 8'h00 8'h00 8'h00 8'h00
16'h0074 8'h01 16'h0004 8'h00 8'h00 8'h00 8'h00
16'h0074 8'h01 16'h0004 8'h00 8'h00 8'h00 8'h00
16'h0074 8'h01 16'h0004 8'h00 8'h00 8'h00 8'h00
16'h0074 8'h01 16'h0004 8'h10 8'h00 8'h00 8'h00
16'h0074 8'h01 16'h0004 8'h10 8'h00 8'h00 8'h00
16'h0074 8'h01 16'h0004 8'h10 8'h00 8'h00 8'h00
16'h0074 8'h01 16'h0004 8'h10 8'h00 8'h00 8'h00
16'h0074 8'h01 16'h0004 8'h10 8'h00 8'h00 8'h00