物理层和链路层的包头一起合并处理
This commit is contained in:
@@ -64,7 +64,7 @@ trait CDRInOverSample{ this: CDRInBase =>
|
|||||||
|
|
||||||
trait CDRInAxis{ this: CDRInBase =>
|
trait CDRInAxis{ this: CDRInBase =>
|
||||||
|
|
||||||
def HeaderByte: Int = 4
|
def HeaderByte: Int = 8
|
||||||
|
|
||||||
val ETH_PRE = "h55".U
|
val ETH_PRE = "h55".U
|
||||||
val ETH_SFD = "hD5".U
|
val ETH_SFD = "hD5".U
|
||||||
@@ -138,7 +138,7 @@ trait CDRInAxis{ this: CDRInBase =>
|
|||||||
|
|
||||||
|
|
||||||
val axis_valid = RegInit(false.B)
|
val axis_valid = RegInit(false.B)
|
||||||
val axis_tdata = RegEnable( shiftData, bitCnt === 7.U & ( stateCurr === STATE_PAYLOAD | stateCurr === STATE_CRC ) )
|
val axis_tdata = RegEnable( shiftData, bitCnt === 7.U & ( stateCurr === STATE_HEADER | stateCurr === STATE_PAYLOAD | stateCurr === STATE_CRC ) )
|
||||||
val axis_tuser = RegEnable( stateCurr === STATE_CRC & byteCnt === 3.U & (crcOut =/= ~Cat( shiftData, crcCmp(31,8) )), bitCnt === 7.U )
|
val axis_tuser = RegEnable( stateCurr === STATE_CRC & byteCnt === 3.U & (crcOut =/= ~Cat( shiftData, crcCmp(31,8) )), bitCnt === 7.U )
|
||||||
val axis_tlast = RegEnable( stateCurr === STATE_CRC & byteCnt === 3.U, bitCnt === 7.U )
|
val axis_tlast = RegEnable( stateCurr === STATE_CRC & byteCnt === 3.U, bitCnt === 7.U )
|
||||||
|
|
||||||
@@ -150,7 +150,7 @@ trait CDRInAxis{ this: CDRInBase =>
|
|||||||
|
|
||||||
when( io.axis.fire ){
|
when( io.axis.fire ){
|
||||||
axis_valid := false.B
|
axis_valid := false.B
|
||||||
} .elsewhen( bitCnt === 7.U & ( stateCurr === STATE_PAYLOAD | stateCurr === STATE_CRC ) ){
|
} .elsewhen( bitCnt === 7.U & ( stateCurr === STATE_HEADER | stateCurr === STATE_PAYLOAD | stateCurr === STATE_CRC ) ){
|
||||||
axis_valid := true.B
|
axis_valid := true.B
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user