Subject: RE: Another Proposal for OVL Assertion Library.....
From: Harry Foster (harry@verplex.com)
Date: Tue Nov 20 2001 - 07:44:26 PST
This is a great idea Sean.
At HP we had a separate set of event monitors (like the
OVL assertions) which was used exclusively for functional
coverage. This turned out to be an invaluable part of our
verification methodology. I like your idea of merging these
capabilities into the OVL (same set of monitors for assertions
and events as oppose to maintaining two different sets).
We can talk more about this today
Best regards,
-Harry
> -----Original Message-----
> From: owner-assertion@eda.org [mailto:owner-assertion@eda.org]On Behalf
> Of Sean W. Smith
> Sent: Monday, November 19, 2001 10:02 AM
> To: John Emmitt; Harry Foster; assertion@eda.org
> Subject: Another Proposal for OVL Assertion Library.....
>
>
> All,
>
> Below I will describe my latest enhancement idea for OVL>
> I'm not sure
> whether this be part of the OVL package or an end user modification. The
> problem/requirement we are finding using OVL on our current
> project is that
> some designers are using OVL to add functional coverage points to their
> design. Examples: Designer A wants to see that the a memory request
> arrives the same cycle as a refresh cycle starts. Designer B wants to
> ensure that Resource A is in all three possible states while resource B is
> busy. Right or Wrong they have turned to OVL to implement these
> functional
> coverage points in their design. The means for doing this exists
> in OVL by
> using a severity other than 0. Problem being that OVL doesn't define what
> the severities mean. Below I will show an example of what I have
> coded for
> our team and we can discuss it further here or at our
> meetings.... I'm very
> interested in feedback from others to see if this is useful.
>
> Severity Definition:
>
> 0 = Error, Fatal (test terminates)
> 1 = Error, Non Fatal (test does not terminate)
> 2 = Warning, Non Fatal
> 3 = Note, Display message for all occurrences
> 4 = Note Display only the first occurrence of the message (could
> easy be the
> fist n occurrences)
>
> task ovl_error;
> input [8*63:0] err_msg;
> begin
>
> `ifdef ASSERT_MAX_REPORT_ERROR
> if (error_count <= `ASSERT_MAX_REPORT_ERROR)
> `endif
> if (severity_level == 0) begin
> error_count = error_count + 1;
> $display("OVL_ERROR : %s : %s : %0s : severity %0d : time
> %0t : %m",
> assert_name, msg, err_msg, severity_level, $time);
> ovl_finish;
> end
> if (severity_level == 1) begin
> $display("OVL_ERROR : %s : %s : %0s : severity %0d : time
> %0t : %m",
> assert_name, msg, err_msg, severity_level, $time);
> error_count = error_count + 1;
> end
> if (severity_level == 2) begin
> $display("OVL_WARNING : %s : %s : %0s : severity %0d : time %0t :
> %m",
> assert_name, msg, err_msg, severity_level, $time);
> ovl_warning;
> end
> if (severity_level == 3) begin
> $display("OVL_NOTE : %s : %s : %0s : severity %0d : time
> %0t : %m",
> assert_name, msg, err_msg, severity_level, $time);
> end
> if ((severity_level == 4) && (error_count == 1)) begin
> $display("OVL_NOTE : %s : %s : %0s : severity %0d : time
> %0t : %m",
> assert_name, msg, err_msg, severity_level, $time);
> end
> end
> endtask
>
> task ovl_finish;
> begin
> #100 $finish;
> end
> endtask
>
> task ovl_init_msg;
> begin
> $display("OVL_NOTE: %s initialized @ %m Severity: %0d, Message: %s",
> assert_name,severity_level, msg);
> end
> endtask
>
> task ovl_warning;
> begin
> // Some user defined Stuff Here, PLI?
> end
> endtask
>
> regards,
> Sean
>
> Sean W. Smith ASIC Design & Verification
> sesmith@cisco.com Cisco Systems, RTP, NC
> seansmith@nc.rr.com Empowering The Internet Generation
>
> http://qcontinuum.tzo.com/sean for PGP key and more information
> http://www.fototime.com/inv/23BD67820A2B057 for Lots of Personal Photos
>
This archive was generated by hypermail 2b28 : Tue Nov 20 2001 - 08:17:36 PST