Hi, In my views, the core functionality of tasks and functions restricts such a kind of use model and is correct. The intended use model for tasks and functions is ability to execute common procedures. The result of these execution is either passed as a single value thru function or thru output/inout args from a task. How do you plan to see the assertion results thru them for a whole bunch of assertions encapsulate in them, By nature assertion are declarative in form , spanning over the temporal domain. Also since functions are supposed to execute in one time unit, it really is not feasible to have assertions in them spanning over a period of time. Thanks Abhishek -----Original Message----- From: owner-sv-ac@eda.org [mailto:owner-sv-ac@eda.org] On Behalf Of Surya Pratik Saha Sent: Tuesday, December 15, 2009 2:40 PM To: sv-bc@eda.org; sv-ac@server.eda.org Cc: Adhip Das Subject: [sv-ac] Is concurrent assertion not allowed inside task/function? Hi, I did not see any restriction in the LRM that prevents concurrent assertion statement inside task/function. Though all the standard simulators fail for the following case for same reason: module top(input clk,a,b,c); property prop; @(posedge clk) a ##1 b ##1 c; endproperty task tsk; assert property(prop) $display("\n time = %g , testname = %s Passed",$time,"test1_16_7"); else $display("\n time = %g , testname = %s Failed",$time,"test1_16_7"); endtask function func(); assert property(prop) $display("\n time = %g , testname = %s Passed",$time,"test1_16_7"); else $display("\n time = %g , testname = %s Failed",$time,"test1_16_7"); endfunction endmodule Please comment on it. -- Regards Surya -- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean. -- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean.Received on Tue Dec 15 01:52:39 2009
This archive was generated by hypermail 2.1.8 : Tue Dec 15 2009 - 01:53:52 PST