修复上行子报文尾传递问题
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
|
||||
}.elsewhen( upRecParser.io.subMsgHeadReq.fire ){
|
||||
}.elsewhen( upRecParser.io.subMsgTailReq.fire ){
|
||||
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.bits :=
|
||||
Mux(
|
||||
|
||||
@@ -108,6 +108,7 @@ class SlaveSendGen extends Module{
|
||||
io.frameReq.ready := true.B
|
||||
io.subMsgHeadReq.ready := stateCurr =/= STATE_SUBMSG_HEADER & stateNext === STATE_SUBMSG_HEADER
|
||||
io.subMsgTailReq.ready := stateCurr =/= STATE_SUBMSG_TAIL & stateNext === STATE_SUBMSG_TAIL
|
||||
assert( ~(io.subMsgTailReq.ready & ~io.subMsgTailReq.valid) )
|
||||
|
||||
|
||||
stateNext := Mux1H(Seq(
|
||||
|
||||
@@ -238,7 +238,7 @@ ShinTop s_ShinTop_slv3(
|
||||
initial begin
|
||||
clock = 0;
|
||||
clk8x = 0;
|
||||
reset = 0;
|
||||
reset = 1;
|
||||
|
||||
_reset_deactive = 1'b0;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user