ISSUE 654

Add Proposal  Add Analysis  Edit Class, Environment, or Release
Number 654
Category errata
Synopsis 14.2.3: specify block edge-sensitive path description with
State open
Class errata-discuss
Arrival-DateMar 03 2005
Originator Shalom.Bresticker@freescale.com
Release 2005: 14.2.3
Description
I received a behavioral model of a memory which includes specify blocks.

The interesting lines look like this:

specify
specparam trstq = 0.000;
(negedge reset_b +=> (q[0] : 1'bx)) = (trstq);
endspecify

This is an edge-sensitive delay path description which says that when there is a
negative edge on reset_b,
then there is a delay of value trstq from 1'bx to q[0].

Our lint tool did not accept this, saying that the syntax is illegal, because of
the + sign before =>,
which according to the BNF is only allowed on simple delay path descriptions,
not on edge-sensitive path delay descriptions.

They are correct about the BNF. The 1364 LRM also shows +=> only on simple
paths. Same for Verilog-XL documentation.
If you want to use the polarity symbol on edge-sensitive paths, you have to put
it before the colon( +: or -: ) (not a smiley).

But all 3 simulators that we have accept the code as written by our memory group,
who are apparently used to writing it that way all the time.

The lint tool vendor indicated that another simulator that he checked gave a
warning.

Should this syntax be legal? What does it mean?

Fix

Unknown
Audit-Trail
From: Steven Sharp <sharp@cadence.com>
To: etf-bugs@boyd.com, Shalom.Bresticker@freescale.com
Cc:
Subject: Re: errata/654: 14.2.3: specify block edge-sensitive path description with polarity
Date: Thu, 3 Mar 2005 13:55:19 -0500 (EST)

>But all 3 simulators that we have accept the code as written by our memory
group,
>who are apparently used to writing it that way all the time.
>
>Should this syntax be legal? What does it mean?

I would guess that the simulators are completely ignoring the +. Even
for simple delay path descriptions, it has no effect on the behavior of
a simulator. The tools probably throw it away as soon as they see it,
without worrying about what kind of path this is.

Steven Sharp
sharp@cadence.com

From: Shalom.Bresticker@freescale.com
To: Steven Sharp <sharp@cadence.com>
Cc: etf-bugs@boyd.com
Subject: Re: errata/654: 14.2.3: specify block edge-sensitive path description
with polarity
Date: Thu, 3 Mar 2005 23:32:37 +0200 (IST)

I agree that in practice the simulators ignore the polarity operator.

In principle, a different type of tool might relate to it.

Again, the problem is that it is not allowed by the BNF, but some people
do write that way, and the simulators do accept it, but not all tools.

Shalom


On Thu, 3 Mar 2005, Steven Sharp wrote:

>
> >But all 3 simulators that we have accept the code as written by our memory
> group,
> >who are apparently used to writing it that way all the time.
> >
> >Should this syntax be legal? What does it mean?
>
> I would guess that the simulators are completely ignoring the +. Even
> for simple delay path descriptions, it has no effect on the behavior of
> a simulator. The tools probably throw it away as soon as they see it,
> without worrying about what kind of path this is.
>
> Steven Sharp
> sharp@cadence.com
>

--
Shalom Bresticker Shalom.Bresticker @freescale.com
Design & Verification Methodology Tel: +972 9 9522268
Freescale Semiconductor Israel, Ltd. Fax: +972 9 9522890
POB 2208, Herzlia 46120, ISRAEL Cell: +972 50 5441478

[ ]Freescale Internal Use Only [ ]Freescale Confidential Proprietary

Unformatted

polarity

Hosted by Boyd Technology