RE: [sv-ac] 1691 Introduce global clocking

From: Bresticker, Shalom <shalom.bresticker_at_.....>
Date: Thu Aug 30 2007 - 08:20:39 PDT
That is what you have to convince others, because not everyone shares
your opinion today. It is not self-evident to everyone.

Shalom

> -----Original Message-----
> From: Korchemny, Dmitry 
> Sent: Thursday, August 30, 2007 4:52 PM
> To: Bresticker, Shalom; 'john.havlicek@freescale.com'
> Cc: 'sv-ac@server.eda-stds.org'
> Subject: RE: [sv-ac] 1691 Introduce global clocking
> 
> Hi Shalom,
> 
> I also agree with John's comments, but I cannot agree that SV 
> is a simulation language only and that the other aspects are 
> not important. E.g., in the context of simulation you cannot 
> talk about such basic formal verification concepts as 
> fairness and liveness. If we are going to limit ourselves to 
> simulation aspects only then the right solution would be to 
> replace SVA with PSL, and let each language do its own job.
> 
> I think that the advantage of SVA is in its native 
> integration with the rest of SV, and if we want to keep SVA 
> as part of the language we need to change our perception of 
> SV as a simulation language only.
> 
> Thanks,
> Dmitry
> 
> -----Original Message-----
> From: Bresticker, Shalom
> Sent: Wednesday, August 29, 2007 10:50 AM
> To: john.havlicek@freescale.com; Korchemny, Dmitry
> Cc: sv-ac@server.eda-stds.org
> Subject: RE: [sv-ac] 1691 Introduce global clocking
> 
> I like John's suggestions.
> 
> FYI, I participated in the champions' discussion on this 
> issue. I believe the biggest single reservation the 
> participants had was about the justification for a 
> non-simulation construct, in the same way that the LRM does 
> not have special constructs for synthesis. SystemVerilog is 
> first and foremost a simulation language. All the semantics 
> are defined in this context. 
> 
> So the justification for adding a construct driven by formal 
> verification needs has to be strong on this point.
> 
> One might ask, for example, why not use attributes, which 
> were introduced as a way of allowing non-simulation 
> characteristics in the hardware description, while being 
> ignored by simulation? In your case, however, you want to 
> write assertions, which are part of the simulation language, 
> using the global clock.
> 
> Regards,
> Shalom
>  
> 
> > -----Original Message-----
> > From: owner-sv-ac@server.eda.org
> > [mailto:owner-sv-ac@server.eda.org] On Behalf Of John Havlicek
> > Sent: Wednesday, August 29, 2007 5:40 AM
> > To: Korchemny, Dmitry
> > Cc: sv-ac@server.eda-stds.org
> > Subject: Re: [sv-ac] 1691 Introduce global clocking
> > 
> > Hi Dmitry:
> > 
> > I have a few suggestions below.  Feel free to follow them or not.
> > 
> > J.H.
> > 
> > . I recommend adjusting
> > 
> >      The global clocking is not directly related to the compilation 
> > units.
> >      The requirement is to be at most one global clocking statement 
> > after the
> >      elaboration stage.
> >  
> >   to
> > 
> >      Global clocking is not directly related to compilation units.
> >      The requirement is that there be at most one global clocking
> >      statement after the elaboration stage.  The global clocking
> >      statement applies to the entire elaborated model, regardless of
> >      the particular compilation unit in which it appears.
> > 
> > . I recommend adjusting
> > 
> >      * The LRM is based on event based simulation.
> > 
> >      This is exactly the reason why the global clocking is needed. 
> > There is
> >      no need in a concept of global clocking for cycle-based 
> > simulation - the
> >      notion of the reference clock is already in the 
> language in this 
> > case.
> > 
> >   to
> > 
> >      * The LRM is based on event based simulation.
> > 
> >      SystemVerilog provides a unified language for writing 
> both design
> >      models and associated assertion-based specifications.  
> These are
> >      used not only in simulation, but also in formal verification,
> >      where the tractability of the verification computation usually
> >      hinges on abstraction and simplification of the event-based
> >      semantics.  The purpose of the global clocking construct is to
> >      provide a way to specify the primary clock that synchronizes
> >      transitions in formal models and thereby obtain efficiencies in
> >      formal verification computations.
> > 
> > . I recommend adjusting
> > 
> >      * If in a package would need to be imported
> > 
> >      Global clocking cannot be specified in a package.
> > 
> >   to
> > 
> >      * If in a package would need to be imported
> > 
> >      Global clocking cannot be specified in a package.  Global
> >      clocking may be referenced by items declared within a package.
> >      
> > . I recomment adjusting
> > 
> >      * Not sure why need this global thing, we already have 
> clocking 
> > blocks.
> > 
> >      Using clocking events defined by regular clocking blocks is not
> >      different from the assertion point of view from the regular 
> > clocking
> >      events. Using default clocking does not solve the problem, 
> > either,
> >      because default clocking definition may differ from module to 
> > module. We
> >      need to specify the same clock for all assertions that 
> reference 
> > it
> >      explicitly, to be able to explicitly specify a transition 
> > relation.
> > 
> >   to
> > 
> >      * Not sure why need this global thing, we already have 
> clocking 
> > blocks.
> > 
> >      The purpose of the global clocking construct is to 
> provide a way
> >      to specify the primary clock that synchronizes transitions in
> >      formal models and thereby obtain efficiencies in formal
> >      verification computations.  Using clocking events defined by
> >      regular clocking blocks, even the default for a 
> particular scope,
> >      does not accomplish specification of the global 
> primary clock for
> >      the entire formal model.
> > 
> > > X-Authentication-Warning: server.eda-stds.org: majordom set
> > sender to
> > > owner-sv-ac@eda.org using -f
> > > X-ExtLoop1: 1
> > > X-IronPort-AV: E=Sophos;i="4.19,317,1183359600"; 
> > >    d="scan'208,217";a="289422246"
> > > X-MimeOLE: Produced By Microsoft Exchange V6.5
> > > Content-class: urn:content-classes:message
> > > Date: Tue, 28 Aug 2007 18:27:48 +0300
> > > X-MS-Has-Attach: 
> > > X-MS-TNEF-Correlator: 
> > > Thread-Topic: [sv-ac] 1691 Introduce  global clocking
> > > Thread-Index: Acfph/1CV4O2OzAsRDSQLPsipsiQ9A==
> > > From: "Korchemny, Dmitry" <dmitry.korchemny@intel.com>
> > > X-OriginalArrivalTime: 28 Aug 2007 15:27:57.0196 (UTC) 
> > > FILETIME=[029C24C0:01C7E988]
> > > X-eda.org-MailScanner: Found to be clean, Found to be clean
> > > X-Spam-Status: No, No
> > > Sender: owner-sv-ac@eda.org
> > > X-eda.org-MailScanner-Information: Please contact the ISP 
> for more 
> > > information
> > > X-eda.org-MailScanner-From: owner-sv-ac@server.eda.org
> > > 
> > > This is a multi-part message in MIME format.
> > > 
> > > ------_=_NextPart_001_01C7E987.FD5B7206
> > > Content-Type: text/plain;
> > > 	charset="us-ascii"
> > > Content-Transfer-Encoding: quoted-printable
> > > 
> > > Hi all,
> > > 
> > > =20
> > > 
> > > I had an action item to address the champions' comments concerning
> > > 1691 "Introduce global clocking". Please, find below my 
> answer for 
> > > your review.
> > > 
> > > =20
> > > 
> > > Thanks,
> > > 
> > > Dmitry
> > > 
> > > =20
> > > 
> > > *	The proposal doesn't discuss what the global clock is with
> > > respect to compilation units=20
> > > 
> > > =20
> > > 
> > > The global clocking is not directly related to the
> > compilation units.
> > > The requirement is to be at most one global clocking
> > statement after
> > > the elaboration stage.
> > > 
> > > =20
> > > 
> > > *	There is no concept of globals in SystemVerilog=20
> > > 
> > > =20
> > > 
> > > The concept of globals is mentioned in the LRM. See for
> > example Clause
> > > 3.12.3 "Simulation time unit". It states:
> > > 
> > > =20
> > > 
> > > "The global time precision, also called the simulation time
> > unit, is
> > > the minimum of all the timeprecision statements and the
> > smallest time
> > > precision argument of all the `timescale compiler 
> directives in the 
> > > design. The step time unit is equal to the global time precision."
> > > 
> > > =20
> > > 
> > > There is also a notion of a global symbol/task/function in
> > Clause 34.
> > > 
> > > =20
> > > 
> > > *	It should be a tool option=20
> > > 
> > > =20
> > > 
> > > This seems to be problematic since a transition to a new
> > tool becomes
> > > unpredictable. We should take advantage of standardizing
> > it, to make
> > > this concept well-defined.
> > > 
> > > =20
> > > 
> > > *	Strange that it is global and needs to be in a module, it should
> > > be in compilation unit space=20
> > > 
> > > =20
> > > 
> > > Since the global clocking defines a clocking event, it
> > makes sense to
> > > consider it as a kind of clocking, and not as an absolutely new 
> > > construct. LRM defines that the clocking block shall not
> > appear in a
> > > compilation unit space, this is why the global clocking 
> declaration 
> > > rules have been defined in a similar way. The consistency
> > is crucial
> > > here.
> > > 
> > > =20
> > > 
> > > *	Not sure it fits in with the general usage of the language=20
> > > 
> > > =20
> > > 
> > > In the introduction to the LRM it is written:
> > > 
> > > "SystemVerilog enables the use of a unified language for
> > abstract and
> > > detailed specification of the design, specification of 
> assertions, 
> > > coverage, and testbench verification that is based on manual or 
> > > automatic methodologies."=20
> > > 
> > > =20
> > > 
> > > This implies that SystemVerilog should answer the needs of 
> > > assertion-based formal verification. For formal verification of 
> > > synchronous systems the notion of the reference clock is 
> important, 
> > > especially for multiclock design and for building abstract formal 
> > > models of the system. The detailed description of the 
> motivation of 
> > > this feature may be found in the preamble to 1681.
> > > 
> > > =20
> > > 
> > > Since formal verification of RTL is in scope of the language, the 
> > > notion of the reference clock needs to be covered by the language.
> > > 
> > > =20
> > > 
> > > *	The LRM is based on event based simulation.=20
> > > 
> > > =20
> > > 
> > > This is exactly the reason why the global clocking is
> > needed. There is
> > > no need in a concept of global clocking for cycle-based
> > simulation -
> > > the notion of the reference clock is already in the
> > language in this case.
> > > 
> > > =20
> > > 
> > > *	If in a package would need to be imported=20
> > > 
> > > =20
> > > 
> > > Global clocking cannot be specified in a package.
> > > 
> > > =20
> > > 
> > > *	Not sure why need this global thing, we already have clocking
> > > blocks.=20
> > > 
> > > =20
> > > 
> > > Using clocking events defined by regular clocking blocks is not 
> > > different from the assertion point of view from the regular
> > clocking
> > > events. Using default clocking does not solve the 
> problem, either, 
> > > because default clocking definition may differ from module
> > to module. 
> > > We need to specify the same clock for all assertions that
> > reference it
> > > explicitly, to be able to explicitly specify a transition 
> relation.
> > > 
> > > =20
> > > 
> > > *	The proposal says that global clock is for the design. Can the
> > > testbench use the global clock? (proposal seems to not say)=20
> > > 
> > > =20
> > > 
> > > Yes, the test bench is also part of the design. The 
> global clocking 
> > > just defines an event which may be used everywhere. It does
> > not differ
> > > from any other event except for the formal semantics of 
> assertions 
> > > where it is considered to represent the reference clock.
> > > 
> > > =20
> > > 
> > > *	Proposal shouldn't use the term design if it isn't clear=20
> > > 
> > > =20
> > > 
> > > Unfortunately, there is no term in the LRM for the "whole
> > thing" other
> > > than design. The term "design" is already used in the LRM:
> > > 
> > > =20
> > > 
> > > "The global time precision, also called the simulation time
> > unit, is
> > > the minimum of all the timeprecision statements and the
> > smallest time
> > > precision argument of all the `timescale compiler 
> directives in the 
> > > design. The step time unit is equal to the global time precision."
> > > 
> > > =20
> > > 
> > > (again citing 3.12.3).
> > > 
> > > =20
> > > 
> > > It seems reasonable to define a special term in the LRM
> > specifying the
> > > "whole thing", and then update 1681 proposal accordingly. 
> > We believe
> > > that such basic terms should be introduced by SV-BC.
> > > 
> > > =20
> > > 
> > > =20
> > 
> > --
> > 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 Thu Aug 30 08:21:09 2007

This archive was generated by hypermail 2.1.8 : Thu Aug 30 2007 - 08:21:15 PDT