代码清理
This commit is contained in:
@@ -28,27 +28,6 @@ abstract class CDRInBase extends Module{
|
|||||||
trait CDRInOverSample{ this: CDRInBase =>
|
trait CDRInOverSample{ this: CDRInBase =>
|
||||||
val sampleReg = withClockAndReset(io.overCLK.asClock, reset.asBool){ ShiftRegisters( RegNext(io.serDat), sampleRate ) }
|
val sampleReg = withClockAndReset(io.overCLK.asClock, reset.asBool){ ShiftRegisters( RegNext(io.serDat), sampleRate ) }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// val arbShiftData = for( i <- 0 until sampleRate ) yield { RegInit(0.U(24.W)) }
|
|
||||||
// val arbSel = Reg(UInt( log2Ceil(sampleRate).W ))
|
|
||||||
// val isArbLock = RegInit(false.B)
|
|
||||||
|
|
||||||
// for( i <- 0 until sampleRate ){
|
|
||||||
// arbShiftData(i) := Cat( arbShiftData(i)(22,0), RegNext(sampleReg(i)) )
|
|
||||||
// when( arbShiftData(i) === "h5A5A5A".U & ~isArbLock ){
|
|
||||||
// isArbLock := true.B
|
|
||||||
// arbSel := i.U
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
// when( ( 0 until sampleRate ).map{ i => (arbShiftData(i) === 0.U) }.reduce(_&_) ){
|
|
||||||
// isArbLock := false.B
|
|
||||||
// }
|
|
||||||
|
|
||||||
// val syncSerDat =
|
|
||||||
// Mux1H( (0 until sampleRate).map{ i => (( arbSel === i.U ) -> ShiftRegister( sampleReg(i), 2) ) } )
|
|
||||||
|
|
||||||
val arbCnt = withClockAndReset(io.overCLK.asClock, reset.asBool){ RegInit("b00000001".U(sampleRate.W)) }
|
val arbCnt = withClockAndReset(io.overCLK.asClock, reset.asBool){ RegInit("b00000001".U(sampleRate.W)) }
|
||||||
arbCnt := Cat( arbCnt(sampleRate-2,0), arbCnt.extract(sampleRate-1) )
|
arbCnt := Cat( arbCnt(sampleRate-2,0), arbCnt.extract(sampleRate-1) )
|
||||||
val arbLock = withClockAndReset(io.overCLK.asClock, reset.asBool){ Reg(UInt( sampleRate.W )) }
|
val arbLock = withClockAndReset(io.overCLK.asClock, reset.asBool){ Reg(UInt( sampleRate.W )) }
|
||||||
@@ -58,29 +37,6 @@ trait CDRInOverSample{ this: CDRInBase =>
|
|||||||
|
|
||||||
val asyncSerDat = withClockAndReset(io.overCLK.asClock, reset.asBool){ RegNext(
|
val asyncSerDat = withClockAndReset(io.overCLK.asClock, reset.asBool){ RegNext(
|
||||||
Mux1H(
|
Mux1H(
|
||||||
// Seq(
|
|
||||||
// //(arbLock === "b0001".U & arbCnt === "b0001".U) -> sampleReg(3),
|
|
||||||
// (arbLock === (1.U << 0) & arbCnt === (1.U << 0)) -> sampleReg(3),
|
|
||||||
// (arbLock === (1.U << 0) & arbCnt === (1.U << 1)) -> sampleReg(0),
|
|
||||||
// (arbLock === (1.U << 0) & arbCnt === (1.U << 2)) -> sampleReg(1),
|
|
||||||
// (arbLock === (1.U << 0) & arbCnt === (1.U << 3)) -> sampleReg(2),
|
|
||||||
|
|
||||||
// (arbLock === (1.U << 1) & arbCnt === (1.U << 0)) -> sampleReg(2),
|
|
||||||
// (arbLock === (1.U << 1) & arbCnt === (1.U << 1)) -> sampleReg(3),
|
|
||||||
// (arbLock === (1.U << 1) & arbCnt === (1.U << 2)) -> sampleReg(0),
|
|
||||||
// (arbLock === (1.U << 1) & arbCnt === (1.U << 3)) -> sampleReg(1),
|
|
||||||
|
|
||||||
// (arbLock === (1.U << 2) & arbCnt === (1.U << 0)) -> sampleReg(1),
|
|
||||||
// (arbLock === (1.U << 2) & arbCnt === (1.U << 1)) -> sampleReg(2),
|
|
||||||
// (arbLock === (1.U << 2) & arbCnt === (1.U << 2)) -> sampleReg(3),
|
|
||||||
// (arbLock === (1.U << 2) & arbCnt === (1.U << 3)) -> sampleReg(0),
|
|
||||||
|
|
||||||
// (arbLock === (1.U << 3) & arbCnt === (1.U << 0)) -> sampleReg(0),
|
|
||||||
// (arbLock === (1.U << 3) & arbCnt === (1.U << 1)) -> sampleReg(1),
|
|
||||||
// (arbLock === (1.U << 3) & arbCnt === (1.U << 2)) -> sampleReg(2),
|
|
||||||
// (arbLock === (1.U << 3) & arbCnt === (1.U << 3)) -> sampleReg(3),
|
|
||||||
// )
|
|
||||||
|
|
||||||
(for { i <- 0 until sampleRate; j <- 0 until sampleRate } yield {
|
(for { i <- 0 until sampleRate; j <- 0 until sampleRate } yield {
|
||||||
//跳变沿到来锁定的位置 锁定拍当前所在的位置 选择锁定拍后一拍的值认为是正确值
|
//跳变沿到来锁定的位置 锁定拍当前所在的位置 选择锁定拍后一拍的值认为是正确值
|
||||||
((arbLock === (1.U << i)) & (arbCnt === (1.U << j))) -> sampleReg((sampleRate - 1 - i + j) % sampleRate)
|
((arbLock === (1.U << i)) & (arbCnt === (1.U << j))) -> sampleReg((sampleRate - 1 - i + j) % sampleRate)
|
||||||
|
|||||||
Reference in New Issue
Block a user