完成对4b5b,8b10b的覆盖测试
This commit is contained in:
@@ -17,7 +17,9 @@ class Decode_Bundle extends Bundle{
|
||||
class b8b10Encode extends Module with RequireAsyncReset{
|
||||
val io = IO(new Encode_Bundle)
|
||||
|
||||
val rd = RegInit(false.B)
|
||||
val rdTest = IO(Output(Bool())) //测试使用
|
||||
dontTouch(rdTest)
|
||||
val rd = RegInit(false.B); rdTest := rd
|
||||
|
||||
|
||||
val b5b6LookUp = Mux1H(Seq(
|
||||
|
||||
@@ -87,7 +87,7 @@ class SimCDR extends Module with RequireAsyncReset{
|
||||
|
||||
|
||||
|
||||
val isUsing8b10b = true.B
|
||||
val isUsing8b10b = false.B
|
||||
|
||||
|
||||
when( isUsing8b10b ){
|
||||
@@ -106,6 +106,34 @@ class SimCDR extends Module with RequireAsyncReset{
|
||||
b8b10Decoder.io.dataIn := 0.U
|
||||
}
|
||||
|
||||
|
||||
// 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}))
|
||||
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")
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -43,8 +43,9 @@ module SimCDRTb(
|
||||
wire success;
|
||||
wire failed;
|
||||
|
||||
integer seed = 666;
|
||||
always @(posedge clock) begin
|
||||
data <= $random;
|
||||
data <= $random(seed);
|
||||
end
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user