fix(tb): strict numerical pass/fail — FSM completion without value match now counts as FAIL
This commit is contained in:
@@ -314,18 +314,18 @@ module tb_mlkem_top_xsim;
|
||||
$display(" PASS: pk matches expected");
|
||||
kg_pass = kg_pass + 1;
|
||||
end else begin
|
||||
$display(" WARN: pk mismatch (RTL may have placeholder computation)");
|
||||
$display(" FAIL: pk mismatch");
|
||||
print_hex256(pk_o[255:0], " pk[low] ");
|
||||
print_hex256(exp_pk[255:0], " exp[low] ");
|
||||
kg_pass = kg_pass + 1; // structural pass (FSM completed)
|
||||
kg_fail = kg_fail + 1;
|
||||
end
|
||||
|
||||
// Check sk output (only compare raw s_hat within port width)
|
||||
// NOTE: KAT sk includes pk+H(pk)+z; mlkem_top sk_o is raw s_hat only
|
||||
// Check sk output
|
||||
if (sk_o[SK_WIDTH-1:0] == exp_sk[SK_WIDTH-1:0]) begin
|
||||
$display(" PASS: sk matches expected");
|
||||
end else begin
|
||||
$display(" WARN: sk mismatch (RTL may have placeholder computation)");
|
||||
$display(" FAIL: sk mismatch");
|
||||
kg_fail = kg_fail + 1;
|
||||
end
|
||||
end else begin
|
||||
$display(" FAIL: pk_valid=%b sk_valid=%b", pk_valid, sk_valid);
|
||||
@@ -374,19 +374,20 @@ module tb_mlkem_top_xsim;
|
||||
$display(" PASS: ct matches expected");
|
||||
en_pass = en_pass + 1;
|
||||
end else begin
|
||||
$display(" WARN: ct mismatch (RTL may have placeholder computation)");
|
||||
$display(" FAIL: ct mismatch");
|
||||
print_hex256(ct_o[255:0], " ct[low] ");
|
||||
print_hex256(exp_ct[255:0], " exp[low] ");
|
||||
en_pass = en_pass + 1; // structural pass
|
||||
en_fail = en_fail + 1;
|
||||
end
|
||||
|
||||
// Check K (shared secret)
|
||||
if (K_o == exp_ss) begin
|
||||
$display(" PASS: K matches expected ss");
|
||||
end else begin
|
||||
$display(" WARN: K mismatch (RTL may have placeholder computation)");
|
||||
$display(" FAIL: K mismatch");
|
||||
print_hex256(K_o, " K ");
|
||||
print_hex256(exp_ss, " exp_ss");
|
||||
en_fail = en_fail + 1;
|
||||
end
|
||||
end else begin
|
||||
$display(" FAIL: ct_valid=%b K_valid=%b", ct_valid, K_valid);
|
||||
|
||||
Reference in New Issue
Block a user