ISSUE 57

Add Proposal  Add Analysis  Edit Class, Environment, or Release
Number 57
Category errata
Synopsis 5: scheduling
State open
Class errata-discuss
Arrival-DateOct 24 2001
Originator Shalom.Bresticker@motorola.com
Release 2001b: 5
Environment
Description
Section 5 has major problems.
Many agree to this.
Unfortunately, we did not succeed to solve them for 1364-2001.
In the meantime, vendors are creating facts in their implementations.

Detailed descriptions of the problems later.
Fix

Audit-Trail

From: Shalom.Bresticker@motorola.com
To: etf-bugs@boyd.com
Cc:
Subject: Re: errata/57: Section 5 - scheduling
Date: Sun, 6 Oct 2002 10:10:10 +0300 (IDT)

>Category: errata
>Confidential: no
>Originator: Shalom.Bresticker@motorola.com
>Class: TBD
>Description:
I promised more details on this.
Without going into a lot of detail right now,
and without doing a lot of research, I remember the following issues:

A. The requirement that nonblocking assignments be executed in the order in
which they appear contradicts the scheduling algorithm. There were some
emergency last-minutes attempts to find a solution to this, but they did not
work out.


B. PLI scheduling - I saw an HDLCON 2002 paper by Charles Dawson that seems to
discuss this. I think the URL is www.hdlcon.org/1stpl.pdf


C. Function execution: is assumed to be atomic. But the algorithm allows
interleaving of function calls. That is, if you have

fork
a = f(0);
b = f(1);
join

then it would be legal to start to execute f(0), stop in the middle, continue
with f(1), then return to f(0). The f(1) execution will of course overwrite the
values of the internal variables in the f(0) execution, corrupting it.


D. On this last one, I seem to be in a minority of one as seeing it as a
problem. I see the need for allowing atomic execution of time-less begin-end
blocks under certain conditions to guarantee that intermediate variables will
not be corrupted.
Example:
initial begin
temp = f(0) ;
a = temp ;
end
initial begin
temp = f(1) ;
b = temp ;
end

This is of course for something like non-design code, where the two uses of temp
have nothing to do with each other and do not represent signals.
I do not want to start a debate on this now, just to mention the issues.

Shalom


Unformatted


Hosted by Boyd Technology