Skip to content

Assertion cleanup - not using clock edges or resets to check and disable assertion #433

Description

@clayton8

Many of your assertions are continuously being monitored instead of checking on posedge of clock and disabling on negedge of clock. For example:

https://github.com/chipsalliance/Cores-VeeR-EL2/blob/main/design/lsu/el2_lsu_stbuf.sv#L344
https://github.com/chipsalliance/Cores-VeeR-EL2/blob/main/design/el2_dma_ctrl.sv#L505

In addition you seem to be disabling assertions at time 0 and the reenable them to avoid them firing at time 0:

https://github.com/chipsalliance/Cores-VeeR-EL2/blob/main/design/el2_veer_wrapper.sv#L965C1-L969C6

This isn't good practice and will not work if we add sync reset support #429.

Please:

  1. Change all assertions to use "assert property (@(posedge clk) disable iff(!rst_l)"
  2. Remove the time 0 assertoff/on in el2_veer_wrapper.sv

Metadata

Metadata

Assignees

No one assigned

    Labels

    futureSomething that is planned in the future, but not currently pursued

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions