[sv-ac] Notes from SV-AC meeting 3/10/2008

From: Thomas Thatcher <Thomas.Thatcher_at_.....>
Date: Tue Mar 11 2008 - 11:34:02 PDT
Notes from SV-AC meeting 3/10/2008

Agenda:
------

- Reminder of IEEE patent policy:


  1769    Voice vote on friendly amendments.
  2005	 Voice vote to approve changes (SV-CC review)
  2182	 Voice vote to approve changes (SV-CC review)

  Discuss checker issues.



Present:

Tom, Erik, Doron, Ed, Lisa, John, Yaniv, Manisha


- IEEE Patent policy.  Reminder.

- 1769  Passed the E-mail vote with 7 yes votes:  There were friendly
	amendments.
	John says that the amendments have been compl
	Voice vote:  Approved: 6 yes, 0 no , 0 abstain.

- 2005	Minor changes based on SV-CC review, and on Shalom
	Questions about proper English usage:
	should be processes'  (eriks original usage)
	or process' Shalom's suggestion
	Leave it to the editor to decide)

	Voice vote:   Approved:  6 yes, 0 no, 0 abstain

- 2182	Minor changes based on SV-CC review,
	Two changes:
	Technical problems with word document:
	Erik has fixed the document
	Manisha: In 36.75: Should "checker" be "checker instance"
	Erik: Need more feedback from CC on this

	Voice vote:  Approved:  5 yes, 0 no , 0 abstain

- 1900  Discussion of other groups' feedback/ issues w/ 1900
	Ed: Even rules for nested module declarations not clear
		Things more complicated because of nested declarations.	
	John:  more comfortable w/ resolving names in declaration
		context. Consistent w/ properties & sequences.
	Manisha: How to $assert_off a checker in a loop
	John:  It's one checker, so you can only turn all off or all on.
	Tom:  What's the instance name of a checker in a procedure
		Does the procedure add to the instance name
	Doron:  If you put an immediate assertion in a procedural block,
		even if labeled block, no addition to hierarchical
		instance name.
		Named block
		p. 558 of draft 4
	John:	We want names in checkers to sequences & properties
		We want name resolation in nested checker declarations
			should follow rules for nested modules
			unless a good reason not to
		We want references to checker instance follow rules for
			references to labeled items in procedural code.
		Should be consistent w/ modules


-

Thomas Thatcher wrote:
> Hello Everyone,
> 
> This is a reminder of the SV-AC regular meeting to be held tomorrow.
> 
> 
> Dial-in Information:
> 
> Tuesday, March 11, 2008, 09:00 AM US Pacific Time 916-356-2663 (U.S. 
> toll), 888-875-9370 (U.S. toll-free), Bridge: 4,
> Passcode: 5983980
> 
> 
> Agenda:
> ------
> 
> - Reminder of IEEE patent policy:
> 
> 
>  1769    Voice vote on friendly amendments.
> 
>  Discuss checker issues.
> 
> 
>         Checker Issues:
>         ===============
> 
> 1.  Variable references in checkers.
> 
>     Is it legal to reference simple variables (or types) in a checker
> that
>     may be defined externally.
> 
>     for example:
> 
>     int a
>     checker my_check (. . .);
>         checkvar c;
> 
>     always_check (. . .)
>             c <= a;
> 
>     endchecker
> 
>     NOTE:  This is needed to be able to instantiate a covergroup.
>     Should obey same rules as anywhere else.
> 
> [Korchemny, Dmitry] In 1900 it is written that the checkers should
> resolve all the names in the declaration context (it was positively
> requested by Gord, and I agree with it, otherwise checker instantiation
> semantics becomes vague, and I doubt that it may be accepted).
> 
> 2.  Dotted names inside checkers
>     Are dotted name legal inside checkers?
>     Will they obey the same rules?
> 
> [Korchemny, Dmitry] Yes, they are. They should be resolved in the
> declaration context.
>     
> 3.  Dotted names into checkers.
>     May there be external references into checker internals using
>     dotted names?
> 
> [Korchemny, Dmitry] Yes, they can. E.g., you can $assertoff an assertion
> inside a checker (as you pointed it). The limitation is that if the
> checker variable is referenced hierarchically, it cannot be assigned to
> a regular variable (same as in assertion action blocks). Hierarchical
> checker variable cannot be assigned, either.
> 
>     We had talked about using this as a work-around for no checker
>     outputs.  It also may be required in order to set properties of
>     the covergroup.
>     It is also needed to enable/disable an assertion within a checker
> 
>     Should work the same as anywhere else.
> 
>     Will have extra rules for Single-Assignment-Rule for checker
> variables.
> [Korchemny, Dmitry] Why? I don't think so.
> 
>     For variables in final block:  No special rules.
> 
> 
> 4.  Forces on checker variables
>     Forces:  Should work the same as anywhere else.
>     Overrides SAR rule.
> [Korchemny, Dmitry] I don't see how a checker variable may be forced.
> The fact that the checker variables cannot be assigned a value outside
> of the checker body should imply that they cannot be forced.
> 
> 5.  Mantis 2091 clarifies that concurrent assertions cannot appear in
> fork-
>     join.  Clarify this is the case for checkers too
>     [Proposal has been updated]
> 
> [Korchemny, Dmitry] Agree.
> 
> 6.  Covergroups within checkers
>     1.  Only instantiations allowed within checkers.  Definitions of
> the
>     covergroup type must be defined externally.
>     2.  In checker, very limited capabilities.
>         1.  Can call new() in the declaration statement
>     2.  Can trigger the covergroup with clock event, or by assertion
>         action block, or sequence match item.
>         Not allowed to call sample() from always_check or
> initial_check
> 
>     3.  Manipulating static properties must be done externally.
>         But this is easier now, because the covergroup definition is 
> external.
>     4.  could initial_check allow assignments to covergroup statics?
> 
> [Korchemny, Dmitry] I should think more about it.
> 
> 7.  Checkers within interfaces
> 
>     From Gord:
>     Normally, one can have:
>        module m (some_interface i);
>       typedef i.T my_local_type;
>       my_local_type m = new;   // assuming i.T is a class
>        endmodule
> 
>     Could we do something similar with checkers?
>     Our answer is probably no.  We did not envision this kind of thing
> 
> [Korchemny, Dmitry] I answered Gord that 1900 does not allow it (even
> syntactically). Maybe this limitation can be lifted in the future, but I
> would certainly not allowed it now.
> 
> 8.  Naming of checker instantiations.
> 
>     What are naming conventions for instances in procedural code?
> 
> [Korchemny, Dmitry] What is a difference in this case between checkers
> and other instances?
> 
> 9.  Checkers and Bind
> 
>     Is binding allowed?
>     Yes, we definitly intend that bind can be used to instantiate
> checkers.
> 
> [Korchemny, Dmitry] This is reflected in the proposal.
> 
> 10.  Assertions within checkers.
> 
>     Clarify that assertions within checkers are not a NEW kind of 
> assertion.
>     Concurrent assertions used inside checker
>     Immediate assertions used within final procedure
>     (Not sure if deferred assertions allowed within final procedure)
> 
>     What was it that gave people the impression that assertions within
>     checkers were different?
> 
> [Korchemny, Dmitry] The question about assertions seems strange to me.
> 
> 11.  Checkers with untyped formals
> 
>     This creates new situations as to when certain information is
> available
>     What are the issues with this?
> 
> [Korchemny, Dmitry] If the names are resolved in a checker declaration
> context, and hierarchical reference to objects in checkers are not
> allowed in the actual arguments of the checkers (need to be added), I
> don't know any other outstanding issues.
> 
> 12.  Coverage on a freevar
> 
>     Is this unreliable?
>     Need to clarify.  In simulation context, this is simply a random 
> variable.
> 
> [Korchemny, Dmitry] It may be allowed, but I don't see much sense in
> using it.
> 
> 13.  New keywords that could clash with existing variable names
> 
>     Which ones will be a problem?
> [Korchemny, Dmitry] The people are talking about next. We may replace it
> with future (other suggestions?)
> 
> 14.  Inferred value functions:  $inferred_clk, $inferred_enable, etc
>     1.  What does it produce in a type sense
>     2.  Can it be used with untyped formal
>     3.  What if in a loop?
>     4.  Could the enable be an automatic?
> [Korchemny, Dmitry] See my recent answer to Gord.
> 
> 14.  Other issues within the following proposals
>     1900 1549 1681 1648 1728 1682 2088 2089
> 
> 
> 
> 
> 

-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Received on Tue Mar 11 11:36:00 2008

This archive was generated by hypermail 2.1.8 : Tue Mar 11 2008 - 11:37:01 PDT