修复上行子报文尾传递问题
This commit is contained in:
@@ -379,9 +379,28 @@ abstract class SlaveParserBase extends Module{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
when( upSendGen.io.subMsgHeadReq.fire ){ //ready
|
when( upSendGen.io.subMsgTailReq.fire ){
|
||||||
|
when( isUpSendPing ){
|
||||||
|
assert( isUpSubMsgTailValid(0) )
|
||||||
|
isUpSubMsgTailValid(0) := false.B
|
||||||
|
} .otherwise{
|
||||||
|
assert( isUpSubMsgTailValid(1) )
|
||||||
|
isUpSubMsgTailValid(1) := false.B
|
||||||
|
}
|
||||||
|
} .elsewhen( upRecParser.io.subMsgTailReq.fire ){
|
||||||
|
when( isUpRecPing ){
|
||||||
|
assert( ~isUpSubMsgTailValid(0) )
|
||||||
|
isUpSubMsgTailValid(0) := true.B
|
||||||
|
} .otherwise{
|
||||||
|
assert( ~isUpSubMsgTailValid(1) )
|
||||||
|
isUpSubMsgTailValid(1) := true.B
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
when( upSendGen.io.subMsgTailReq.fire ){ //ready
|
||||||
isUpSendPing := ~isUpSendPing
|
isUpSendPing := ~isUpSendPing
|
||||||
}.elsewhen( upRecParser.io.subMsgHeadReq.fire ){
|
}.elsewhen( upRecParser.io.subMsgTailReq.fire ){
|
||||||
isUpRecPing := ~isUpRecPing
|
isUpRecPing := ~isUpRecPing
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -739,7 +758,7 @@ trait SlaveParserRW{ this: SlaveParserBase =>
|
|||||||
))
|
))
|
||||||
|
|
||||||
|
|
||||||
when( ~isUpRecPing ){ //req fire 后 已经反相
|
when( isUpRecPing ){
|
||||||
upRecFifo(0).io.enq.valid := upRecParser.io.data.valid
|
upRecFifo(0).io.enq.valid := upRecParser.io.data.valid
|
||||||
upRecFifo(0).io.enq.bits :=
|
upRecFifo(0).io.enq.bits :=
|
||||||
Mux(
|
Mux(
|
||||||
|
|||||||
@@ -108,6 +108,7 @@ class SlaveSendGen extends Module{
|
|||||||
io.frameReq.ready := true.B
|
io.frameReq.ready := true.B
|
||||||
io.subMsgHeadReq.ready := stateCurr =/= STATE_SUBMSG_HEADER & stateNext === STATE_SUBMSG_HEADER
|
io.subMsgHeadReq.ready := stateCurr =/= STATE_SUBMSG_HEADER & stateNext === STATE_SUBMSG_HEADER
|
||||||
io.subMsgTailReq.ready := stateCurr =/= STATE_SUBMSG_TAIL & stateNext === STATE_SUBMSG_TAIL
|
io.subMsgTailReq.ready := stateCurr =/= STATE_SUBMSG_TAIL & stateNext === STATE_SUBMSG_TAIL
|
||||||
|
assert( ~(io.subMsgTailReq.ready & ~io.subMsgTailReq.valid) )
|
||||||
|
|
||||||
|
|
||||||
stateNext := Mux1H(Seq(
|
stateNext := Mux1H(Seq(
|
||||||
|
|||||||
@@ -238,7 +238,7 @@ ShinTop s_ShinTop_slv3(
|
|||||||
initial begin
|
initial begin
|
||||||
clock = 0;
|
clock = 0;
|
||||||
clk8x = 0;
|
clk8x = 0;
|
||||||
reset = 0;
|
reset = 1;
|
||||||
|
|
||||||
_reset_deactive = 1'b0;
|
_reset_deactive = 1'b0;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user