转发功能已经调通

This commit is contained in:
Ruige Lee
2025-04-14 16:43:10 +08:00
parent 00a7b0fe6e
commit 4552cc05db
5 changed files with 203 additions and 49 deletions

View File

@@ -77,8 +77,7 @@ class SlaveSendGen extends Module{
}
}
io.frameReq.ready := true.B
io.subMsgReq.ready := true.B
val lengthCnt = Reg(UInt(12.W))
val frameLenCnt = Reg(UInt(12.W))
@@ -101,17 +100,18 @@ class SlaveSendGen extends Module{
io.frameReq.ready := true.B
io.subMsgReq.ready := stateCurr =/= STATE_SUBMSG_HEADER & stateNext === STATE_SUBMSG_HEADER
stateNext := Mux1H(Seq(
(stateCurr === STATE_IDLE) -> Mux( io.frameReq.fire, STATE_FRAME_HEADER, STATE_IDLE ),
(stateCurr === STATE_FRAME_HEADER) -> Mux( lengthCnt === (2-1).U, Mux( io.subMsgReq.valid, STATE_SUBMSG_HEADER, STATE_ERROR ), STATE_FRAME_HEADER),
(stateCurr === STATE_SUBMSG_HEADER) -> Mux( lengthCnt === (64-1).U, STATE_SUBMSG_DATA, STATE_SUBMSG_HEADER),
(stateCurr === STATE_SUBMSG_HEADER) -> Mux( lengthCnt === (8-1).U, STATE_SUBMSG_DATA, STATE_SUBMSG_HEADER),
(stateCurr === STATE_SUBMSG_DATA) ->
Mux( lengthCnt === subMsgInfoSel.length-1.U, //已经发送完成该子报文
Mux( frameLenCnt === frameInfo.frameLenAim, STATE_CRC, //主报文长度达到, 进CRC
Mux( frameLenCnt === frameInfo.frameLenAim -1.U, STATE_CRC, //主报文长度达到, 进CRC
Mux( io.subMsgReq.valid, STATE_SUBMSG_HEADER, STATE_ERROR ) ), //主报文长度未到,进下一个子报文
STATE_SUBMSG_DATA
),
@@ -153,7 +153,11 @@ class SlaveSendGen extends Module{
(subMsgInfoSel.source === 1.U) -> io.data(1).bits,
))
crc.io.dataIn := tdata_submsg_data
crc.io.dataIn := Mux1H(Seq(
(stateCurr === STATE_FRAME_HEADER) -> tdata_frame_header,
(stateCurr === STATE_SUBMSG_HEADER) -> tdata_submsg_header,
(stateCurr === STATE_SUBMSG_DATA) -> tdata_submsg_data,
))
val tdata_crc = Mux1H(Seq(