RE: [sv-ac] Review of Mantis 1681 Proposal: Global clocking

From: Korchemny, Dmitry <dmitry.korchemny_at_.....>
Date: Tue Jul 17 2007 - 00:53:22 PDT
Hi Tom,

Please, see my comments below.

Thanks,
Dmitry

-----Original Message-----
From: owner-sv-ac@server.eda.org [mailto:owner-sv-ac@server.eda.org] On
Behalf Of Thomas Thatcher
Sent: Thursday, July 12, 2007 2:14 AM
To: sv-ac@server.eda-stds.org
Subject: [sv-ac] Review of Mantis 1681 Proposal: Global clocking

Hello Everyone,

I have reviewed Mantis 1681.  Here are my comments.

1.  Should there be a mention of global clocking in clause 16.15?

    "There are a number of ways to specify a clock for a property:"
     Add  "-- Reference to $global_clocking when a global clock is
defined"

[Korchemny, Dmitry] My original intent was to infer the property clock
from the global clocking if it was not defined and could not be inferred
in another way. But in one of our last meetings we agreed that the clock
inference would not the global clocking into account. Therefore clause
16.15 need not be modified.

2.  I'm not sure about the clock rewrite rules.  It seems to me that if

	@(c) b  ---> (!c[*0:$] ##1 c & b)

    then the new re-write rule for global_clock should be:

      @($global_clock) b  ---> (!($global_clock)[*0:$] ##1 $global_clock
& b)

    But maybe my understanding of these rules is incorrect.  My
    interpretation is that an unclocked property is evaluated on every
    simulation time-step.  For the re-write rules, $global_clock is
going to
    act like any other clock.  The rule as Dmitry wrote it would only
hold if
    the number of simulation ticks was equal to the number of global
clock
    ticks.

[Korchemny, Dmitry] The main reason to introduce the global clock was to
be able to specify the reference clock of the system, i.e., the finest
granularity clock. @(c) b  ---> (!c[*0:$] ##1 c & b) reflects this
semantics. Only this definition allows introducing the next value
functions. The ideal situation would be to define the global clock as a
simulation tick in simulation. Unfortunately, doing this makes the
simulation very inefficient, and therefore it was suggested to pick some
clock to represent the reference clock in the simulation. It is assumed
that the global clock is the finest granularity clock for a given
assertion. The previous version did contain some synchronization
requirements to the assertion clocks, but it was suggested to remove
these requirements altogether because checking them exhaustively was
very costly. We can add a comment to the rewrite rule in question that
this is the intended semantics, but in simulation it is not guaranteed
by the language rules, and therefore in the simulation @($global_clock)
b  ---> (!($global_clock)[*0:$] ##1 $global_clock & b) has to be
implemented.

Tom
-- 
------------------
Thomas J. Thatcher
Sun Microsystems
408-616-5589
------------------

-- 
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 Jul 17 00:56:47 2007

This archive was generated by hypermail 2.1.8 : Tue Jul 17 2007 - 00:58:09 PDT