Skip to content

Commit

Permalink
[rom_ctrl, dv] Removal of a signal to cover cond coverage hole
Browse files Browse the repository at this point in the history
rom_ctrl coverage report shows a coverage hole for the conditional
statement as 110 not covered. The description below explains why
we can't cover the case counter_lnt and !kamc_rom_vld_o

Starting with counter_lnt = 1 means that we get the last address of
a non top word. counter_lnt is delayed by a cycle through
last_nontop_d in rom_ctrl_counter.sv.

Next is kmac_rom_vld_o which also delayed by a cycle through
kmac_rom_vld_d. The kmac_rom_vld_d signal depends on counter_read_req
which goes immediately high after reset. Then checker fsm state should
be in state ReadingLow and !counter_lnt meaning we haven't reached to
the top.

Now assuming that we are out of reset, first request to the ROM has been
sent, checker fsm is sending nontop data to KMAC and we still haven't
reached to the top; makes kmac_rom_vld_d go high. But when we reach to
the last address of the nontop data, we get counter_lnt go high and
kmac_rom_vld_d go low. Since kmac_rom_vld_o delayed through
kmac_rom_vld_d, we get counter_lnt with kmac_rom_vld_o.

Signed-off-by: Kinza Qamar <[email protected]>
  • Loading branch information
KinzaQamar committed Dec 17, 2024
1 parent 1c2fcfe commit c0d518f
Showing 1 changed file with 6 additions and 1 deletion.
7 changes: 6 additions & 1 deletion hw/ip/rom_ctrl/rtl/rom_ctrl_fsm.sv
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,10 @@ module rom_ctrl_fsm
ReadingLow: begin
// Switch to ReadingHigh when counter_lnt is true and kmac_rom_rdy_i & kmac_rom_vld_o
// (implying that the transaction went through)
if (counter_lnt && kmac_rom_rdy_i && kmac_rom_vld_o) begin
//
// If counter_lnt is true then we requested the last non-top word from the ROM on the last
// cycle and the response will be available now. This gets taken if kmac_rom_rdy_i.
if (counter_lnt && kmac_rom_rdy_i) begin
state_d = ReadingHigh;
end
end
Expand Down Expand Up @@ -311,4 +314,6 @@ module rom_ctrl_fsm

assign alert_o = fsm_alert | checker_alert | unexpected_counter_change;

`ASSERT(CounterLntImpliesKmacRomVldO_A, counter_lnt -> kmac_rom_vld_o)

endmodule

0 comments on commit c0d518f

Please sign in to comment.