diff --git a/src/main/scala/backBoard/ebus/CDRIn.scala b/src/main/scala/backBoard/ebus/CDRIn.scala index 49c0602..e78db95 100644 --- a/src/main/scala/backBoard/ebus/CDRIn.scala +++ b/src/main/scala/backBoard/ebus/CDRIn.scala @@ -83,24 +83,28 @@ trait CDRInMultiSample{ this: CDRInBase => for( i <- 0 until 16 ) yield { sampleReg(i) } - } else if (true){ //5选3 多数投票 滤波 + } else if (false){ //5选3 多数投票 滤波 for( i <- 0 until 16 ) yield { - (sampleReg((i-2+16)%16) & sampleReg((i-1+16)%16) & sampleReg((i+0)%16)) | - (sampleReg((i-2+16)%16) & sampleReg((i-1+16)%16) & sampleReg((i+1)%16)) | - (sampleReg((i-2+16)%16) & sampleReg((i-1+16)%16) & sampleReg((i+2)%16)) | - (sampleReg((i-2+16)%16) & sampleReg((i+0)%16) & sampleReg((i+1)%16)) | - (sampleReg((i-2+16)%16) & sampleReg((i+0)%16) & sampleReg((i+2)%16)) | - (sampleReg((i-2+16)%16) & sampleReg((i+1)%16) & sampleReg((i+2)%16)) | - (sampleReg((i-1+16)%16) & sampleReg((i+0)%16) & sampleReg((i+1)%16)) | - (sampleReg((i-1+16)%16) & sampleReg((i+0)%16) & sampleReg((i+2)%16)) | - (sampleReg((i-1+16)%16) & sampleReg((i+1)%16) & sampleReg((i+2)%16)) | - (sampleReg((i-0)%16) & sampleReg((i+1)%16) & sampleReg((i+2)%16)) + withClockAndReset(multiCLK((i+3)%16).asClock, reset.asBool){ RegNext( + (sampleReg((i-2+16)%16) & sampleReg((i-1+16)%16) & sampleReg((i+0)%16)) | + (sampleReg((i-2+16)%16) & sampleReg((i-1+16)%16) & sampleReg((i+1)%16)) | + (sampleReg((i-2+16)%16) & sampleReg((i-1+16)%16) & sampleReg((i+2)%16)) | + (sampleReg((i-2+16)%16) & sampleReg((i+0)%16) & sampleReg((i+1)%16)) | + (sampleReg((i-2+16)%16) & sampleReg((i+0)%16) & sampleReg((i+2)%16)) | + (sampleReg((i-2+16)%16) & sampleReg((i+1)%16) & sampleReg((i+2)%16)) | + (sampleReg((i-1+16)%16) & sampleReg((i+0)%16) & sampleReg((i+1)%16)) | + (sampleReg((i-1+16)%16) & sampleReg((i+0)%16) & sampleReg((i+2)%16)) | + (sampleReg((i-1+16)%16) & sampleReg((i+1)%16) & sampleReg((i+2)%16)) | + (sampleReg((i-0)%16) & sampleReg((i+1)%16) & sampleReg((i+2)%16)) + )} } } else { //3选2 多数投票 滤波 for( i <- 0 until 16 ) yield { - (sampleReg((i-1+16)%16) & sampleReg((i+0)%16)) | - (sampleReg((i-1+16)%16) & sampleReg((i+1)%16)) | - (sampleReg((i+0)%16) & sampleReg((i+1)%16)) + withClockAndReset(multiCLK((i+2)%16).asClock, reset.asBool){ RegNext( + (sampleReg((i-1+16)%16) & sampleReg((i+0)%16)) | + (sampleReg((i-1+16)%16) & sampleReg((i+1)%16)) | + (sampleReg((i+0)%16) & sampleReg((i+1)%16)) + )} } } @@ -246,3 +250,4 @@ with CDRInOverSample class MPCDRIn extends CDRInBase with CDRInAxis with CDRInMultiSample +