RE: [sv-ac] Issue #1296

From: Bresticker, Shalom <shalom.bresticker_at_.....>
Date: Sat Mar 04 2006 - 09:15:03 PST
Actually, I think that both 

always @(posedge clk1 or posedge clk2)

and

@(posedge clk or negedge clk)

are generally not synthesizable.

Shalom


> -----Original Message-----
> From: owner-sv-ac@eda.org [mailto:owner-sv-ac@eda.org] On
> Behalf Of Korchemny, Dmitry
> Sent: Tuesday, February 28, 2006 6:14 PM
> To: Eduard Cerny; john.havlicek@freescale.com
> Cc: sv-ac@eda.org
> Subject: RE: [sv-ac] Issue #1296
> 
> Hi Ed,
> 
> I would like to better understand the synthesizability issue.
> It is not
> clear to me how to synthesize a property with an edge-sensitive
> clock
> without a system clock?
> 
> E.g.,
> 
> assert property (@clk a |-> b);
> 
> Nevertheless, this property is legal.
> 
> Let's now consider the (illegal) property
> 
> assert property (@(posedge clk1) a |-> @(posedge clk2) b);
> 
> It is clear how to synthesize it when we have a reference
> clock. For FV
> purposes and for the emulation there is always a reference
> clock,
> therefore there are no synthesizability problems.
> 
> The question is why we need the synthesizability for the
> simulation? If
> the purpose is to "synthesize" a pure Verilog code, it may be
> solved by
> using
> 
> always @(posedge clk1 or posedge clk2)
> 
> Indeed, this is a reference clock for our case.
> 
> In the former example, @clk may be represented as @(posedge clk
> or
> negedge clk), therefore I don't see much difference between
> these two
> cases. Thus, if the first is synthesizable, why is not the
> second?
> 
> Thanks,
> Dmitry
> 
> -----Original Message-----
> From: owner-sv-ac@eda.org [mailto:owner-sv-ac@eda.org] On
> Behalf Of
> Eduard Cerny
> Sent: Wednesday, February 22, 2006 6:12 PM
> To: john.havlicek@freescale.com; Korchemny, Dmitry
> Cc: sv-ac@eda.org
> Subject: RE: [sv-ac] Issue #1296
> 
> Yes, the reason for not allowing simultaneous clock ticks of
> clk1 and
> clk2, rather than the nearest strructly future tick of clk2
> wass
> synthesizability w/o an additional system clock. I do not think
> that we
> should go back and start changing that.
> 
> ed
> 
> 
> > -----Original Message-----
> > From: owner-sv-ac@eda.org [mailto:owner-sv-ac@eda.org] On
> > Behalf Of John Havlicek
> > Sent: Wednesday, February 22, 2006 8:24 AM
> > To: dmitry.korchemny@intel.com
> > Cc: sv-ac@eda.org
> > Subject: Re: [sv-ac] Issue #1296
> >
> > Hi Dmitry:
> >
> > You are correct that the clock-flow.pdf attached to mantis
> 1296
> > does not enforce the restrictions discussed in Section 17.
> There
> > are other ways in which Annex E as it stands now is more
> general than
> > Section 17 (e.g., the treatment of "disable iff" as a general
> > property
> > operator).
> >
> > The relaxed approach to clock changes across |-> and ##0 is
> > in alignment
> > with PSL, in which the form
> >
> > A@(clk1) |-> B@(clk2)
> >
> > is legal with the semantics that you describe.
> >
> > I also support this approach, and we should strongly consider
> > removing the restrictions in Section 17, although I have said
> in
> > the past that Annex E can be written more generally than
> Section 17.
> >
> > My recollection from the SV 3.1 effort was that the
> restrictions
> > in Section 17 were written in an attempt to ensure that
> synthesizable
> > RTL representations of the assertions could be constructed.
> >
> > Best regards,
> >
> > John H.
> >
> >
> > > X-Authentication-Warning: server.eda.org: majordom set
> > sender to owner-sv-ac@eda.org using -f
> > > X-MimeOLE: Produced By Microsoft Exchange V6.5.7226.0
> > > Content-class: urn:content-classes:message
> > > Date: Wed, 22 Feb 2006 14:28:06 +0200
> > > X-MS-Has-Attach:
> > > X-MS-TNEF-Correlator:
> > > Thread-Topic: [sv-ac] Issue #1296
> > > Thread-Index: AcY3q27ufJLqkUB+SG22UhtMQ1X/mw==
> > > From: "Korchemny, Dmitry" <dmitry.korchemny@intel.com>
> > > X-OriginalArrivalTime: 22 Feb 2006 12:28:08.0199 (UTC)
> > FILETIME=[6FD7D970:01C637AB]
> > > X-Scanned-By: MIMEDefang 2.31 (www . roaringpenguin . com /
> > mimedefang)
> > > X-Virus-Status: Clean
> > > Sender: owner-sv-ac@eda.org
> > >
> > > This is a multi-part message in MIME format.
> > >
> > > ------_=_NextPart_001_01C637AB.6FC6E9CA
> > > Content-Type: text/plain;
> > > 	charset="us-ascii"
> > > Content-Transfer-Encoding: quoted-printable
> > >
> > > Hi all,
> > >
> > > =20
> > >
> > > If I understand the attached document correctly, it says
> (among the
> > > other) that the antecedent and the consequent of a property
> may have
> > > different clocks. I.e.,
> > >
> > > @(clk1) A |->@(clk2) B
> > >
> > > is legal for any clk1 and clk2. And the meaning of this
> > formula is: at
> > > the moment of the tight satisfaction of A wait for the
> > nearest tick of
> > > clk2 (this includes the case when clk2 ticks at the same
> > time as clk1)
> > > and then check B controlled by clk2.
> > >
> > > =20
> > >
> > > I definitely support this approach since it eliminates a
> redundant
> > > restriction on the consequent clock and makes property
> semantics
> > > cleaner. But there are several sentences in the LRM that
> > should be fixed
> > > accordingly. E.g. Section 17.12.2:
> > >
> > > =20
> > >
> > > ---
> > >
> > > Because |-> overlaps the end of its antecedent with the
> > beginning of its
> > > consequent, the clock for the end of the antecedent must be
> > the same as
> > > the clock for the beginning of the consequent. For example,
> > if clk0 and
> > > clk1 are not identical and s0, s1, and s2 are sequences
> > with no clocking
> > > events, then
> > >
> > > @(posedge clk0) s0 |-> @(posedge clk1) s1 ##1 @(posedge
> clk2) s2
> > >
> > > is illegal, but
> > >
> > > @(posedge clk0) s0 |-> @(posedge clk0) s1 ##1 @(posedge
> clk2) s2
> > >
> > > is legal.
> > >
> > > ---
> > >
> > > =20
> > >
> > > Thanks,
> > >
> > > Dmitry
> > >
> > >
> >
Received on Sat Mar 4 09:15:31 2006

This archive was generated by hypermail 2.1.8 : Sat Mar 04 2006 - 09:17:39 PST