参数化cdrInSample,支持4相位

This commit is contained in:
RuigeLee
2025-09-11 18:57:58 +08:00
parent 99b9d9a72f
commit 958987ff6d
5 changed files with 70 additions and 87 deletions

View File

@@ -21,7 +21,7 @@ class SimCDR extends Module with RequireAsyncReset{
val cdrInAxis = Module(new CDRInAxis)
val cdrInSample = Module(new CDRInMultiSample)
val cdrInSample = Module(new CDRInMultiSample(clkNum = 4))
val cdrOut = Module(new CDROut)
val record = Module( new Queue(UInt(8.W), 256) )
@@ -57,7 +57,11 @@ class SimCDR extends Module with RequireAsyncReset{
cdrInAxis.clock := io.multiCLK(0).asClock
cdrInSample.clock := io.multiCLK(0).asClock
cdrInAxis.io.flush := io.flush
cdrInSample.multiCLK := io.multiCLK
// cdrInSample.multiCLK := io.multiCLK
cdrInSample.multiCLK(0) := io.multiCLK(0)
cdrInSample.multiCLK(1) := io.multiCLK(4)
cdrInSample.multiCLK(2) := io.multiCLK(8)
cdrInSample.multiCLK(3) := io.multiCLK(12)
cdrInAxis.io.syncSerDat := cdrInSample.io.syncSerDat
@@ -87,7 +91,7 @@ class SimCDR extends Module with RequireAsyncReset{
val isUsing8b10b = false.B
val isUsing8b10b = true.B
when( isUsing8b10b ){
@@ -107,28 +111,28 @@ class SimCDR extends Module with RequireAsyncReset{
}
// val coverData = RegInit(VecInit(Seq.fill(512){false.B}))
// when( record.io.enq.fire ){
// for( i <- 0 until 256 ){
// when( record.io.enq.bits === i.U ){
// when( b8b10Encoder.rdTest ){
// coverData(i) := true.B
// } .otherwise{
// coverData(256+i) := true.B
// }
// }
// }
// }
val coverData = RegInit(VecInit(Seq.fill(256){false.B}))
val coverData = RegInit(VecInit(Seq.fill(512){false.B}))
when( record.io.enq.fire ){
for( i <- 0 until 256 ){
when( record.io.enq.bits === i.U ){
coverData(i) := true.B
when( b8b10Encoder.rdTest ){
coverData(i) := true.B
} .otherwise{
coverData(256+i) := true.B
}
}
}
}
// val coverData = RegInit(VecInit(Seq.fill(256){false.B}))
// when( record.io.enq.fire ){
// for( i <- 0 until 256 ){
// when( record.io.enq.bits === i.U ){
// coverData(i) := true.B
// }
// }
// }
val coverage = PopCount(coverData.asUInt)
when( io.isSuccess ){
printf( cf"Coverage: ${coverage}\n")