diff --git a/src/main/scala/backBoard/shin/Interface.scala b/src/main/scala/backBoard/shin/Interface.scala index a6d67b5..ec04f66 100644 --- a/src/main/scala/backBoard/shin/Interface.scala +++ b/src/main/scala/backBoard/shin/Interface.scala @@ -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 diff --git a/src/main/scala/backBoard/shin/ShinTop.scala b/src/main/scala/backBoard/shin/ShinTop.scala index 84233a2..7ba2710 100644 --- a/src/main/scala/backBoard/shin/ShinTop.scala +++ b/src/main/scala/backBoard/shin/ShinTop.scala @@ -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 diff --git a/src/main/scala/backBoard/shin/SlaveParser.scala b/src/main/scala/backBoard/shin/SlaveParser.scala index 8b2081b..9ad77df 100644 --- a/src/main/scala/backBoard/shin/SlaveParser.scala +++ b/src/main/scala/backBoard/shin/SlaveParser.scala @@ -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 diff --git a/tb/shinTest/gen_pkt.py b/tb/shinTest/gen_pkt.py index 36d0ada..6db47e9 100755 --- a/tb/shinTest/gen_pkt.py +++ b/tb/shinTest/gen_pkt.py @@ -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()) diff --git a/tb/shinTest/testcase_result/base_tc06_result.log b/tb/shinTest/testcase_result/base_tc06_result.log index 06f2b23..9f14a36 100644 --- a/tb/shinTest/testcase_result/base_tc06_result.log +++ b/tb/shinTest/testcase_result/base_tc06_result.log @@ -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