Assertions

i have a basic doubt of to what signals assertions are necessary in a design.
Example: can we write assertions for the registers ? or for the bits representing some status and interrupt flag in the register.
i am unable to differentiate what comes to coverage and what comes to assertions .

please help in in this basic idea

In reply to vikram kolanu:

… what signals assertions are necessary in a design.

Looking at assertions in terms of “signals” is the wrong way to use assertions. Instead, assertions should be seen in terms of properties and requirements. The signals are the byproducts that are used to identify and clarify the requirements.
So, what are the properties and requirements of a design? Where do they come from?
They come from detailed specs about the design, architectural plans, standard interface docs, etc.
SVA concurrent assertions are based on clocks, thus signals off registers will typically be used, but so do signals off of ports. You addressed “interrupt flags”, sure, they are included in an assertion for requirements such as Upon receipt of a message, an interrupt shall be generated. That interrupt needs to be acknowledged within 5 cycles.


default clocking @(posedge clk); endclocking
ap_uart_eot: assert property(@(posedge uart_clk) uart_eot |->  @(posedge clk) uart_interrupt);  
ap_intrpt2ack: assert property(uart_interrupt |-> ##[1:5] intrpt_ack);   

From my SVA Handbook see how assertions can also be used in a requirement document: http://systemverilog.us/req_verif_plan.pdf

Ben Cohen
http://www.systemverilog.us/ ben@systemverilog.us
For training, consulting, services: contact Home - My cvcblr