- Nature of a checker?
= namespace: not in global module namespace
= property-like
= want same answers for properties & checkers- self-determined type?
= Inlining?
= No, vendor consistency hard
- binding checkers
= checker in package or compilation unit scope is fine
= other cases? (nested contexts)- forbid
= targeting sequential scope? - forbid
- Checker instantiation in presence of new concurrent assert semantics / proc scopes
= fork/join? - forbidden for assertions, so checkers too
= static and automatic variables
= static assignments & procedures are free-running
= automatics & assertion are 'armed' by procedural code
= multiple instantiations: each instantiation is a static type based on point of instantiation
= outside proc code: "lifts" assertions outside & treat as normal
= automatic is equivalent to static
= shared auto variables & multiclocked asserts? - force coupling, user can sync if non-dflt point needed
= initial in checkers?
- checkvars (determinstic)-- maybe don't need
= Needed to enable seq/prop to interact with checker state? No.
= Continuous assignments? If in checker, put in observed region?
= Disallow, just use 'let'
= checkvar edges- should work OK if NBAs harmonized. Just use NBAs and treat vars in checkers as normal.
= initialization issue?- should be OK.
= check vars in action blocks? No change from normal variables.
- Nondeterminstic free vars
= Designate with 'rand'? -or new keyword
= When do they get new vals?
- require event at user-level to cause re-randomization (tool imp)
= How are they assigned? -- assumptions? Which considered?
- need to specify something doable (no non-boolean predicates)
= stability issues - adding assertiion shouldn't affect (state explicitly)
- affected by bind?
= Merge with random variable concept?-- not exactly
- use randomization constraints?
- always_check/initial_check? - construct changing behavior of event
= Solved by 'edge', don't need anymore
- covergroups in checkers
== static code in checkers? -- like covergroup in class
= always an embedded covergroup when in checker? -one inst per cg per check inst
--
ErikSeligman - 20 May 2008