bug:滤波需要顺序打拍,防止边界上跳变
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user