[sv-ac] checker question

From: Kulshrestha, Manisha <Manisha_Kulshrestha@mentor.com>
Date: Fri Mar 18 2011 - 03:55:45 PDT

Hi Dimitry,

In section 17.5 it says:

An always procedure in a checker body may contain deferred and concurrent assertions, nonblocking variable
assignments (see 17.7.1) and a procedural timing control statement using an event control. All other
statements shall not appear inside an always procedure.

But in a previous example (17.3.2) there is a checker instance inside always procedure in a checker. Is this legal ?

checker c3(event clk, logic a);
p3: assert property (@clk a);
endchecker
checker c2(event clk, logic a);
c3 c3_stat(clk, a);
always @(clk) begin
c3 c3_proc(clk, a); // ILLEGAL if c2 is instantiated as below
end
endchecker
module m2(logic clk, logic [3:0] d);
always @(posedge clk) begin
for (int i = 0; i < 4; i++) begin
c2 check_loop(posedge clk, d [const'(i)]);
end
end
endmodule : m2

We may need a fix in the LRM to make it clear.

Thanks.
Manisha

-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Received on Fri Mar 18 03:56:10 2011

This archive was generated by hypermail 2.1.8 : Fri Mar 18 2011 - 03:56:33 PDT