ISSUE 341

Number 341
Category errata
Synopsis How are two dimensional arrays of regs to be treated in VPI?
State lrmdraft
Class errata-ptf
Arrival-DateMay 06 2003
Originator chas@cadence.com
Release 2001b: 26.6.7, 26.6.9
Environment
Description
The 1364-2001 specification adds VPI support for
multi-dimensional arrays (MDAs) of regs. However, there
already was support for 2 dimensional arrays of regs, known
as memories. The specification is unclear on how two
dimensional arrays of regs are to be treated. I see three
possibilities:

- Treat them only as memories
- Treat them only as MDAs
- Allow them to be both a memory and an MDA.

Fix
In order to reconcile a 2 dimensional array of regs,
formerly known as a memory, with arrays of regs with more
dimensions, I propose the following changes:

Make the following changes to section 26.6.1:

- Change the reference enclosure "memory" to "reg array"
- Add a "vpiMemory" label to the 1 to many iteration to
memory.

Make the following changes to section 26.6.3:
- Rename the memory solid enclosure as reg array
- Label the one to many transition from scope to
memory with vpiMemory.

Make the following changes to section 26.6.9:

- Change the definition enclosure "memory" to
a reference enclosure "reg array"
- Change the definition enclosure "memory word"
to a reference enclosure "reg"
- Add a label "vpiMemory" to the 1 to many iteration
from module and scope.
- Add a label "vpiMemoryWord" to the 1 to many iteration
from memory to memory word.
- Add a property to memory:

-> is a memory
bool: vpiIsMemory

- Remove the properties name and size from memory, as
they are duplicates of those in 26.6.7
- Remove the properties constant selection name, size,
and value from memory word, as they are duplicates of
those in 26.6.7.
- Replace the three notes with one that says:

The objects vpiMemory and vpiMemoryWord have been
generalized with the addition of arrays of regs. To
preserve backward compatibility, they have been
converted into methods which will return objects of
type vpiRegArray and vpiReg, respectively. See
section 26.6.7 for the definitions of regs and reg
arrays.

Make the following changes to section 26.6.19:

- Remove the memory solid enclosure in the unnamed
dotted enclosure accessed via vpiArgument

Make the following changes to section 26.6.25:

- Remove the 2 memory word reference enclosures.

Make the following changes to section 26.6.42:

- Remove the memory reference enclosure.

Make the following changes to section 26.6.43:

- Remove the memory reference enclosure.

Add the following to annex G:

- Immediately after vpiIndexedPartSelectType:

#define vpiIsMemory 73 /* TRUE for a one dimensional reg array */

Notes from proposer:

- The #define in the include file (annex G) may need
to be reconciled with other PTF items.
Audit-Trail
From: Shalom.Bresticker@motorola.com
To: chas@cadence.com
Cc: ptf-bugs@boyd.com
Subject: Re: errata/341: How are two dimensional arrays of regs to be treated
in VPI?
Date: Thu, 8 May 2003 11:14:45 +0300 (IDT)

Note 3 at the bottom of 26.6.9 says, "Although the access provided in Section
26.6.9 is still allowed, the prefered method is to iterate using vpiRegArray.
See Section 26.6.7.".

This says to me that memories are treated as both memories and MDAs.

Shalom


> The 1364-2001 specification adds VPI support for
> multi-dimensional arrays (MDAs) of regs. However, there
> already was support for 2 dimensional arrays of regs, known
> as memories. The specification is unclear on how two
> dimensional arrays of regs are to be treated. I see three
> possibilities:
>
> - Treat them only as memories
> - Treat them only as MDAs
> - Allow them to be both a memory and an MDA.

From: Shalom.Bresticker@motorola.com
To: chas@cadence.com
Cc: ptf-bugs@boyd.com
Subject: Re: errata/341: PROPOSAL - How are two dimensional arrays of regs
to be treated in VPI?
Date: Wed, 22 Oct 2003 18:18:07 +0200 (IST)

Hi,

In the pdf diagram, you used the word "obviscated".
Is that a word?
I was unable to find it neither in www.m-w.com or in www.dictionary.com.

> See the diagrams at
> http://www.verilog-2001.com/pli_errata/
> See ptf341.pdf

Thanks,
Shalom


Fix replaced by etf@boyd.com on Fri Jan 30 06:53:25 2004
In order to reconcile a 2 dimensional array of regs,
formerly known as a memory, with arrays of regs with more
dimensions, I propose the following changes:

Make the following changes to section 26.6.9:

- Change the definition enclosure "memory" to
a reference enclosure "reg array"
- Change the definition enclosure "memory word"
to a reference enclosure "reg"
- Add a label "vpiMemory" to the 1 to many iteration
from module and scope.
- Add a label "vpiMemoryWord" to the 1 to many iteration
from memory to memory word.
- Add a property to memory:

-> is a memory
bool: vpiIsMemory

Make the following changes to section 26.6.1:

- Change the reference enclosure "memory" to "reg array"
- Add a "vpiMemory" label to the 1 to many iteration to
memory.

Make the following changes to section 26.6.25:

- Remove the 2 memory word reference enclosures.

Make the following changes to section 26.6.42:

- Remove the memory reference enclosure.

Make the following changes to section 26.6.43:

- Remove the memory reference enclosure.

Add the following to annex G:

- Immediately after vpiModPathHasIfNone (line 482):

#define vpiIsMemory 73 /* A reg MDA is a memory */

See the diagrams at
http://www.verilog-2001.com/pli_errata/
See ptf341.pdf


Notes from proposer:

- The #define in the include file (annex G) may need
to be reconciled with other PTF items.


From: Shalom.Bresticker@motorola.com
To: chas@cadence.com
Cc: ptf-bugs@boyd.com
Subject: Re: errata/341: PROPOSAL - How are two dimensional arrays of regs
to be treated in VPI?
Date: Sun, 1 Feb 2004 16:40:28 +0200 (IST)

This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.
Send mail to mime@docserver.cac.washington.edu for more info.

---559023410-1857409239-1075646428=:16002
Content-Type: TEXT/PLAIN; charset=US-ASCII

> Make the following changes to section 26.6.9:
>
> - Change the definition enclosure "memory" to
> a reference enclosure "reg array"
> - Change the definition enclosure "memory word"
> to a reference enclosure "reg"
> - Add a label "vpiMemory" to the 1 to many iteration
> from module and scope.
> - Add a label "vpiMemoryWord" to the 1 to many iteration
> from memory to memory word.
> - Add a property to memory:
>
> -> is a memory
> boo: vpiIsMemory

> Make the following changes to section 26.6.1:
>
> - Change the reference enclosure "memory" to "reg array"

There is already such an enclosure ?

> - Add a "vpiMemory" label to the 1 to many iteration to
> memory.

> Add the following to annex G:
>
> - Immediately after vpiModPathHasIfNone (line 482):
>
> #define vpiIsMemory 73 /* A reg MDA is a memory */

We have already added after vpiModPathHasIfNone the following:

"#define vpiIndexedPartSelectType 72 /* Indexed part-select type */"

Presumably, you want to add the new line after this?


> See the diagrams at
> http://www.verilog-2001.com/pli_errata/
> See ptf341.pdf

The correct file name is 341_vpi_memory.pdf, attached.
It does not completely correspond to the proposed changes above.

Specifically, the original diagram contains properties name and size on
"memory" and constant selection, name, size, and value on "memory word".
These are not found in the new diagram.

There are 3 notes in the original diagram which are replaced in the new
diagram with a new note.

The new note contains "obviscated", which is not a word, nor does
"obfuscated" seem appropriate. Perhaps "obsoleted" is wanted?

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


---559023410-1857409239-1075646428=:16002
Content-Type: APPLICATION/pdf; name="341_vpi_memory.pdf"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.GSO.4.10.10402011640280.16002@eagle>
Content-Description:
Content-Disposition: attachment; filename="341_vpi_memory.pdf"

JVBERi0xLjIKJeLjz9MNCjggMCBvYmoKPDwgCi9MaW5lYXJpemVkIDEgCi9P
IDExIAovSCBbIDkzMCAxODkgXSAKL0wgMTUwNjQgCi9FIDE0MzA5IAovTiAx
IAovVCAxNDc4NyAKPj4gCmVuZG9iagogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4cmVmCjgg
MjQgCjAwMDAwMDAwMTYgMDAwMDAgbiAKMDAwMDAwMDgyNCAwMDAwMCBuIAow
MDAwMDAwODkyIDAwMDAwIG4gCjAwMDAwMDExMTkgMDAwMDAgbiAKMDAwMDAw
MTI3MyAwMDAwMCBuIAowMDAwMDAxMzk4IDAwMDAwIG4gCjAwMDAwMDE2OTAg
MDAwMDAgbiAKMDAwMDAwMTk4MiAwMDAwMCBuIAowMDAwMDAyNDQ4IDAwMDAw
IG4gCjAwMDAwMDI1OTUgMDAwMDAgbiAKMDAwMDAwNDk2NiAwMDAwMCBuIAow
MDAwMDA2OTg2IDAwMDAwIG4gCjAwMDAwMDgyNjAgMDAwMDAgbiAKMDAwMDAw
ODM3MCAwMDAwMCBuIAowMDAwMDA4NjUzIDAwMDAwIG4gCjAwMDAwMDkwMDYg
MDAwMDAgbiAKMDAwMDAwOTU0NCAwMDAwMCBuIAowMDAwMDA5ODk1IDAwMDAw
IG4gCjAwMDAwMTMzNjIgMDAwMDAgbiAKMDAwMDAxMzcyOSAwMDAwMCBuIAow
MDAwMDEzOTYxIDAwMDAwIG4gCjAwMDAwMTQxNzAgMDAwMDAgbiAKMDAwMDAw
MDkzMCAwMDAwMCBuIAowMDAwMDAxMDk5IDAwMDAwIG4gCnRyYWlsZXIKPDwK
L1NpemUgMzIKL0luZm8gNiAwIFIgCi9Sb290IDkgMCBSIAovUHJldiAxNDc3
OCAKL0lEWzxjN2IzYzRmN2U4MzZkNjhkOTMyMWNmNjc5M2JiODFkOD48Yzdi
M2M0ZjdlODM2ZDY4ZDkzMjFjZjY3OTNiYjgxZDg+XQo+PgpzdGFydHhyZWYK
MAolJUVPRgogICAgIAo5IDAgb2JqCjw8IAovVHlwZSAvQ2F0YWxvZyAKL1Bh
Z2VzIDcgMCBSIAovTmFtZXMgMTAgMCBSIAo+PiAKZW5kb2JqCjEwIDAgb2Jq
Cjw8IAovRGVzdHMgNSAwIFIgCj4+IAplbmRvYmoKMzAgMCBvYmoKPDwgL1Mg
MzYgL0UgOTIgL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCAzMSAwIFIg
Pj4gCnN0cmVhbQ0KSIliYGAQY2BgXsQABMY+DNgAB5QWAGJhKGZgCGTgYZmg
w2twWULAqV99stcEWZ6FAjIT+S4vlOMsaIDpZWRgMHsHpFmBTG2AAAMAxzcL
qQplbmRzdHJlYW0KZW5kb2JqCjMxIDAgb2JqCjc5IAplbmRvYmoKMTEgMCBv
YmoKPDwgCi9UeXBlIC9QYWdlIAovUGFyZW50IDcgMCBSIAovUmVzb3VyY2Vz
IDEyIDAgUiAKL0NvbnRlbnRzIDE4IDAgUiAKL0Nyb3BCb3ggWyA5MCAwIDcw
MiA3OTIgXSAKL01lZGlhQm94IFsgMCAwIDc5MiA3OTIgXSAKL1JvdGF0ZSAw
IAo+PiAKZW5kb2JqCjEyIDAgb2JqCjw8IAovUHJvY1NldCBbIC9QREYgL1Rl
eHQgXSAKL0ZvbnQgPDwgL0YxIDE0IDAgUiAvRjMgMjcgMCBSIC9GNSAyNCAw
IFIgPj4gCi9FeHRHU3RhdGUgPDwgL0dTMSAyOSAwIFIgPj4gCj4+IAplbmRv
YmoKMTMgMCBvYmoKPDwgCi9UeXBlIC9Gb250RGVzY3JpcHRvciAKL0FzY2Vu
dCA3MTIgCi9DYXBIZWlnaHQgNzEyIAovRGVzY2VudCAtMjMyIAovRmxhZ3Mg
NCAKL0ZvbnRCQm94IFsgLTIyMiAtMjUwIDEwMDYgOTIyIF0gCi9Gb250TmFt
ZSAvQ0JGSUFNK0FyaWFsTVQgCi9JdGFsaWNBbmdsZSAwIAovU3RlbVYgODgg
Ci9YSGVpZ2h0IDU5MiAKL0NoYXJTZXQgKC90L2cvTS91L3YvbS9vL2MvUi95
L24vbC9wL2UvUC9mL0kveC9yL3NwYWNlL2gvZC9zL2kvVy9hL0wpCi9Gb250
RmlsZTMgMTcgMCBSIAo+PiAKZW5kb2JqCjE0IDAgb2JqCjw8IAovVHlwZSAv
Rm9udCAKL1N1YnR5cGUgL1R5cGUxIAovRmlyc3RDaGFyIDEgCi9MYXN0Q2hh
ciAyNyAKL1dpZHRocyBbIDgzMyA1NTYgNTU2IDU1NiAyMjIgNTU2IDMzMyA1
NTYgMjc4IDU1NiA1MDAgNTAwIDUwMCA1NTYgNTAwIDUwMCAyMjIgCjU1NiAy
NzggMjc4IDcyMiA1NTYgNTU2IDY2NyAyNzggODMzIDk0NCBdIAovRW5jb2Rp
bmcgMTYgMCBSIAovQmFzZUZvbnQgL0NCRklBTStBcmlhbE1UIAovRm9udERl
c2NyaXB0b3IgMTMgMCBSIAovVG9Vbmljb2RlIDE1IDAgUiAKPj4gCmVuZG9i
agoxNSAwIG9iago8PCAvRmlsdGVyIC9GbGF0ZURlY29kZSAvTGVuZ3RoIDM5
MiA+PiAKc3RyZWFtDQpIiVSSTW+CQBCG7/6KOdr0wA7yoYkhabRNPNg21fbO
x2BIdCErHvz33XeHmvTA5uVhBpZnJ9rstjvbjRR9ur4+yEhtZxsn1/7maqFK
Tp0ljqnp6nG6C2t9KQeKfPPhfh3lsrNtT+v1LPryD6+ju9P8xXXleX98Nk8U
fbhGXGdPND/y948Hh9swnOUidiRDRUGNtLNosy+H9/IiFD16wwOePtk3ch3K
WlxpT0JrwwWtuSpIbPP/2SzOtaVq9V5rdTHZtvAgRo4VvAEskBcKEoAEOSwm
TwFS5FQrNgAZcqYgVOTIubbEAEvkpVbkACvksJjYAJTIpVYwQIVc6TtWADVy
rWAB0CA32hKAIItWhJe2yK2CpQdsoMooyACCu8kHvsJQweojwc8xVPDkI7RA
BU8+IIihgtVHir9lqODJxysAVLD6yMI+oILVR4qdMlSw+kjCPqCC1UeCg8IB
6+JbvEJ/2H+ninPHGD7mpr4550cqzGqYJoxPZ+UxzkM/YFpwzX4FGACL5MLt
CmVuZHN0cmVhbQplbmRvYmoKMTYgMCBvYmoKPDwgCi9UeXBlIC9FbmNvZGlu
ZyAKL0RpZmZlcmVuY2VzIFsgMSAvbSAvbyAvZCAvdSAvbCAvZSAvciAvZyAv
c3BhY2UgL2EgL3kgL3MgL2MgL3AgL3ggL3YgL2kgL0wgL2YgL3QgCi9SIC9u
IC9oIC9QIC9JIC9NIC9XIF0gCj4+IAplbmRvYmoKMTcgMCBvYmoKPDwgL0Zp
bHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCAyMjc5IC9TdWJ0eXBlIC9UeXBl
MUMgPj4gCnN0cmVhbQ0KSIk8lXtUE9cWh2cImdHqjcI0KWRwZqqg1ItelYpa
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
V+R32vfX1LTmBnzL9BwUX8jZ8hYJHekyf54/wn7Xdm5mf9wm/iGzJiNGHq9Z
NWl6zHlzNiNZmfOUH9aKd1lFUNwpNezYZsigo4xVl1hotLb6wgLSd4UYSRcG
30M3yKlGIefT5UUFh4W2faywHy7XX6xgsFL11GbeR9YpHDBUJWyP2hC/NY6J
2RyhjaKjFeWXstidp4zlt+RwwRc9JFfvUZxQMBGVZn0jfaqzoPtfrEl4YWY5
niyBWMJrKC2oZU8JWMkfFk8mqFpEInN2SmbcjljhSs79bmd1+nUkgia3ifZ1
jkOO7+O3iPbJ3hPgATHHtIU5RTtNBvd3aKoYMAIth0oI/p++t7MqsZn85qso
7OyoyJdsntU2uWSd9Xdeid+MbN+df/ewAs36nfYgtOxnUrnQ7B8FwhuEC07+
jhEV3tA+c27rEun3qx982ijfN7FnQk/v96gfiyWM2H4z/T5Yk9yQ1pQIdlfj
prIjvxm+H5DQAdYlf2Z3dbQ3dLRIuhfXZ3hKl1X399fJ8xUt+Zkw/Xfa9O8u
3WzfP075c2YaO5IQB0SI8zLXY+7LM3h4Hk/i4f1xQOT7XVGAAAMAAM6SHApl
bmRzdHJlYW0KZW5kb2JqCjE4IDAgb2JqCjw8IC9MZW5ndGggMTk0NSAvRmls
dGVyIC9GbGF0ZURlY29kZSA+PiAKc3RyZWFtDQpIiaRXS3MbxxEuAQsCWLEI
EwRhSYycTWInC1VxNe/ZvaYSucpVOZk3xpcwliou8BIe/Pf9dffMYkHAjwQH
cudDv3t6eqZ19al8//W3uvr0VOrqP1WpKlXFzvDff78vP+KHr0tTfYOff6hU
E6ofK9u0ofpHdf+dqv5d6q6tgg7Vo6yMbXRbGQUeA9RVRmv+PpSms7zallYp
4iJgVchCvISmh5JXqiUVmVXZiuXxhSbSidW2zIYA2LwIZZ8eyn+9K/96V77/
oCtd3X0stasoPnyM6RrlwWWqu0fE+Al/dw/078eyfjEaF5Ozzd0P5d/vkJVP
pYmqcrFDkLxqAwcZPRlzSJRpLX/hevC8QpDREBcBG9ssxMtI6ZCV5iATawgV
ywdynXVihSCTIQBxhIWyTznIQWxdaEwE0efY7uvp2Wz+T6XNdLrRqqbVBhkI
9cvNd3ff5DCtM02LPXEGkfagY79d20RdWe/pjwlYPpTOxgy2pXO+UZGB82og
3SNKUQbWcVRJBrWQdXG1ZCtSMMm6YR0D6YHHh3mwSHmEatvmPFAaBtt6HxvT
xSo01riqr2YfXKpmj0zvqtlDF1UefaWaadVXMwEq3CTES2iSavY+DKrZe83V
TF+pZlr11UyAzYtQ9unIRlsL10FUfYDn2Fo/usjFq3BwdaNanFo5rlbHRjnU
PTafwrQKOcdp0hxJJrrGhiEm4tMJsh/fSQvh9oHdtLRpRHpkPp/5vh06nFX4
EPbsUS62O6LesyfEpxNkj/oqNZF8Fb5nvjrW5ZVr0Ivo9DgcfUc2qXzZi0Tc
MrEHTyfIPvdVSD4rOZpUGHOx8tinTo65a6gAlW9iMhdDJm97csZPpyo4cFmo
vnFDZYazfuB725IS1+IHasY2dg31ubZxvK2JTO1yCBP56UT5fc8dXOYOzlTo
ajsKoefe99xp26DHoLs3rgU3SXPbRKemCnS6pW1L9G1Pz/jpZA2H3idqN9D2
C96jQG1Ep4zMTRdVbLRPhlGgibgVYgZPJ8g+91hIba+k9Y217OvxXu61biK9
DQydpMcd7poOJzr3Hc99wTimCXoogwoDvC0DougypAa4U9Qjk0QF+843AQ8W
FvQoDhIUrQk9lMlqwtsy+ZRw8jcp2o/m8C7w3vBd0LVE7+/9s41Vja0XF9Ph
RU/KkPeAC7fzKTWEcRdry6lxeIHhngaVnCSaIEnNDktq6AkmOF0OSVNGYkdy
w1jRxZwlYYAkk15BkpwdluSQV4L7CFjTfjzHk2OIbon+q8mx1IOsgT+RkyMY
wi0ZRlfAObMdUT2YmMaIktMOMCXHN/RoERyMHmjKSOxANmHkyEmtkSSMk2TS
K4iSEwaYkiNeCc4ei6b9eI4lx8rjyhD9NyTHUhvS0vZ6jIOM6oNFPqeOqOQk
0QRJcnZYkuNNxhT+TlOPdJJN2Dtqd1nScbvKegVJcnaYkiNeCc4ei6b9eI4n
hxLrI9F/ITkHLy1PJxVWPQ4kJ8oQNRna9uTg6C4aYJ1vqxMVPGufASfADvYN
3HbAvd/wiUr5xVnTNrdOxyXET96eznfeACf608kannuvZRhgqnivBtxMD7vo
MjaZiFGI3i2Rmp3D8zqBw7gVyQUaLthpRQRqKynlQnYqpzyxx92enaTgWdS2
Jz0yqx2wHjpuqE2AiQ0raSIYKPih2NN96hcZ2/wIPVXDgeuN8ZmKnHcdd/zM
7awfBP7Y454Y6SqJsmE2WFYmeEsY72PUi9CYIHtJR1fJ0VWYLBW9NOjQ1p9d
XC7PrlbXNPiuZzwd3SoIGdjHhfC3oxyKHim3fN0kjuvL2efPWGx1CyXxZzkg
H2NX6YC3giGue2J7tcGN0NXENz1br7iJ3KLxVbfUj3zP93o9PtvgjLT1YtiF
jw2umD6d5cEVK69kcDU8dfqAwVXxlwZX+QXjJjaFJlUAq3wW4iU00eCKFW2M
qTKrVRXL40uDq+IVDa5iCIDNi1D26djgGhErbsX/qaNaJFFRX/d5pgv01iET
2x1R5Zku4TRj/d+yzwcWw52IU018PvNx9b3/YCu8vj6W2kisyAJd9S3fHff1
i9F4NC4mZ9PZnPZ+c9s1vn7JEb//oJNoX8GUR6PlgjSiADXx5uzFaLq5RbpM
/fIGaatH07FUENhxHlBCfldCe+zJkj9wEudE46LhxxF5WUyoeHHn4sTd4l0S
QhSNZ1CF94utp7NiPqIgXhbn4wmF4y8WnxWXo+XVfHW93vvh802r69FyPZ+t
Ngbnjgrfb7SvC05DUVyLqg2mxMjExeR8NS7W81eL8Ww+hqnVer0YL0ZgfM1B
4N3XYbzd8221XK6uJuCYLwtS1dVvJjfz+XTTorLr0fxiWUyKZbINQ2J9df67
VxutIL2en48uL1bjBf28eLsYX20wIIX6C/KAFIb6KoUQj4RwPrqmYx12pCWF
sLgej+aXxXj2e3b87h08Ha0n81ezxfkMAb59C3fH1fJ6mE7EML66KFIW/1CQ
wwjnjxThIL1CcPWbL6BjcgHRxcagCnYuvOUYXI08/Kko5hNigZ+9J19+dfPV
zZ/nr0dLTvO6+Ms157lPI9udsE2Bpn4zl0zf5KP6kwADACwoGAgKZW5kc3Ry
ZWFtCmVuZG9iagoxOSAwIG9iago8PCAvRmlsdGVyIC9GbGF0ZURlY29kZSAv
TGVuZ3RoIDExODIgL1N1YnR5cGUgL1R5cGUxQyA+PiAKc3RyZWFtDQpIiVRS
D0wTVxy+a3stulqU9tD0uN4rLpsLysIwTCROUdOJWnQCbuD+UOgh3UqLbYXg
nG6KMjiKRQlI5xRRnMY5i1ucWTBRo5G/CozNbHFx/+fmMuPi8nv6mrjX6pbt
Lvcl73vvfd/v9/2OZTQqhmVZ05LFtrzFeWm5PpfDPWex1+20F8b4LDyNwQKL
U1RYVGOTBlv0ySSHtNzfdn8hZ+liHyjKQ9Tr4GYiPJg2mKL5MonRsOzEd7/+
tcRbXedzra8MoFnlT6GM7OyM2THMjGNWHJ+N47w4ZqNcp7dMRgV1/oBc5Ud5
nnKvr9rrcwRkZzpCuW43WhNT86M1sl/21VA2Xi9y+ZEDBXwOp1zl8L2BvBWo
sFJGdq/HG6irltGSRyourycd+eT1Lirvk53I5UEBeq6oAK2mFp4AcnicqPBf
mVUVFa5yOU7Kbr9cW0kvPTK0F6JYRv8s/pcafVgmkTEy0xkzk87YmHxmNVPA
lDB6mjSjZjhmBuNnbrIvs/vY+6oNqj4VUa9CBvoqILLjIKrHk0EEkYhagwIm
vAG07GlKFNAdHAITT3q0+493d40NJ4wN/XwDppl/ygcVmV9i21JWYllT8s6i
BheIb82YCB09NSQcvrJ9brPUZHulNO0ZIhLT2kVvWxPwRq1hK2ghfBusVP0M
pMMLIKhxK+7l3+3a/kl1b8J5p/3QCoF0KuTS8mWhvIMrJZJ6FpjAoADizT9g
JqSm/UK4DYU7i16TGoPcF6E2mHpLGG2zbwpKxEYiPOiu7X7/N4VM2lSrECYz
r3J03BI3td6GMDX9EARqmq7+DObzLTV7yo7ICUWnBvxDAnQqcGn4ys6RjYMS
pBYTpnulQMT0WWQmSb31NHA9F0LnP5WCjVzuzm1kappg2zawr1ECG0R4oltY
XzdbgUn7DijA/DDykW2pxYALu2pwP8ym0ZpxDphj8Zpxf5BWEu3nQNKChPu5
YLQfzPdKSZWWGKObuUYt4fFmjrhpUHfBeAOm3GVP0K4dkKLGkyGb99e/uW6F
sOD14QHq/bsW5rQUQQZ5USDzcomZoNI9L3UXS2TyBdDvOCPAotNgON4uke8h
i7/adOrcsND11XbCtUgG3EyrW3B3a23SIJ3x0oefKcV43dg3iMN8NEyZkM54
/druQ+3dlmOdkQMnhc+b1mZKJEJ3grqhUE/HUcuJvZHuk8KE8ny+RPoo/63u
ogJW8lxWcZE3YDm4xXX5SaHCvmPhKqlRa+wb0xmgZitoYBw0bC/9BVrBqu6F
/Typh3z5G8i5Dcm01+mZYCHLyMp5xEoSLWCt54G9fHZk7GLRTKJb/qp9eX4f
qCyGXbSBNFATNSQmXQXROAqOZJirg8db/vyx58jm+naLMXIa9Fynf317lbDa
U1nsiVUxOkGDDusMpALYnJp7ztqkNnzMGGmjTUNx9D0urXpdg1uo2dIc8kvG
6g7EGSMN+7sbTgrwxAdfQ8LHUms4FA7ughW4YQZJ1RJ9VBObWiLWcAbf4Xul
HaSiA5YqWrjTGh3Yq/sPlQB32qLD7ZOAnQziY8B26PUg7tZPadYb8DkT5vm/
BRgA1tFCWgplbmRzdHJlYW0KZW5kb2JqCjIwIDAgb2JqCjw8IAovVHlwZSAv
RW5jb2RpbmcgCi9EaWZmZXJlbmNlcyBbIDEgL3R3byAvc2l4IC9wZXJpb2Qg
L25pbmUgL3NwYWNlIC9NIC9lIC9tIC9vIC9yIC95IF0gCj4+IAplbmRvYmoK
MjEgMCBvYmoKPDwgCi9UeXBlIC9Gb250RGVzY3JpcHRvciAKL0FzY2VudCA3
MTIgCi9DYXBIZWlnaHQgNzEyIAovRGVzY2VudCAtMjMyIAovRmxhZ3MgMjYy
MTQ4IAovRm9udEJCb3ggWyAtMTY3IC0yNTAgMTAwNiA5MzkgXSAKL0ZvbnRO
YW1lIC9DQkZJQkkrQXJpYWwtQm9sZE1UIAovSXRhbGljQW5nbGUgMCAKL1N0
ZW1WIDEzNyAKL1hIZWlnaHQgNDcyIAovQ2hhclNldCAoL00vbmluZS90d28v
bS9vL3kvZS9wZXJpb2Qvc2l4L3NwYWNlL3IpCi9Gb250RmlsZTMgMTkgMCBS
IAo+PiAKZW5kb2JqCjIyIDAgb2JqCjw8IAovVHlwZSAvRm9udERlc2NyaXB0
b3IgCi9Bc2NlbnQgNTkyIAovQ2FwSGVpZ2h0IDcxMiAKL0Rlc2NlbnQgLTIz
MiAKL0ZsYWdzIDYgCi9Gb250QkJveCBbIC0xNjcgLTI1MCAxMDA5IDg3OCBd
IAovRm9udE5hbWUgL0NCRklCTytUaW1lc05ld1JvbWFuUFNNVCAKL0l0YWxp
Y0FuZ2xlIDAgCi9TdGVtViA4MSAKL1hIZWlnaHQgNDcyIAovQ2hhclNldCAo
L3Qvai9nL00vdS9vbmUvay9BL2ZpL3YvdHdvL20vYi93L28vYy9SL2NvbW1h
L3kvbi9wL2wvZS9TL04vaHlwaGVuL2YvVC9wXAplcmlvZC9yL3NwYWNlL2gv
c2l4L2Qvcy9zZXZlbi9pL1cvYSkKL0ZvbnRGaWxlMyAyNSAwIFIgCj4+IApl
bmRvYmoKMjMgMCBvYmoKPDwgL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0
aCA0NjQgPj4gCnN0cmVhbQ0KSIlsk09r3DAQxe/+FDq25GCN/G8Di6HZNLCH
pCGb9u61x4uhlo3sJeTbV2/GCQR62OH5Z2lW73mUHo73Rz+sJn0OU3vi1fSD
7wIv0zW0bM58GbwhZ7qhXbcnqe3YzCaNm0/vy8rj0feT2e+T9CW+XNbwbr69
DiMvT/z2Mo2Nfz49vt7Y7yb9FToOg7/E9/T7TwSn6zz/5ZH9aqypa9Nxn6SH
x2Z+akY26X+6yBLajjF1vMxNy6HxFzZ7S7XZu6o27Luv75Ks0C3nXp91rRab
/6wjcNBSbPkAkEFLsVUOkEPnuqIAKKALXZEBlNBSbEYAFbQUW0iPHfROe+wA
bqGlWGcBGuhGVziAM/RZwQ+AFrpVIH/bQXd6jhKAoVmBNO2he91yGwHZqKVE
+/cAiII0j1IAoiDNo8I5CFHQlof0QBS05QG3hChI8yiRKSEK0jxK2CdEQVse
FQCiIM2jEoAoaLMPLwTnpPadNIVzUrflHQCMkppzhwgcfDk1V+FDORkMNVfA
i4Mvp+ZyHN3Bl1NzBTJ18OXUXCZb4Mtt3xYHw6BpebiLg5TEofuYLswfrsjn
JLfXEOKQyz2S+cYYD54/r9o8zZha/JJ/AgwAzZvlqAplbmRzdHJlYW0KZW5k
b2JqCjI0IDAgb2JqCjw8IAovVHlwZSAvRm9udCAKL1N1YnR5cGUgL1R5cGUx
IAovRmlyc3RDaGFyIDEgCi9MYXN0Q2hhciAzOSAKL1dpZHRocyBbIDcyMiA1
MDAgMjc4IDQ0NCAzODkgNTAwIDYxMSA1MDAgMjUwIDUwMCAyNzggNDQ0IDUw
MCA1MDAgMjc4IDg4OSA3NzggCjMzMyA1MDAgNDQ0IDUwMCA1MDAgOTQ0IDcy
MiAzMzMgNTAwIDI1MCA1MDAgMjc4IDI1MCAzMzMgNTAwIDY2NyAKNzIyIDU1
NiA1MDAgNTAwIDUwMCA1NTYgXSAKL0VuY29kaW5nIDI4IDAgUiAKL0Jhc2VG
b250IC9DQkZJQk8rVGltZXNOZXdSb21hblBTTVQgCi9Gb250RGVzY3JpcHRv
ciAyMiAwIFIgCi9Ub1VuaWNvZGUgMjMgMCBSIAo+PiAKZW5kb2JqCjI1IDAg
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
ad15rXthgLnD5W2csC90M0CWBezHBcfJ3mDzapXoXt6GTp4vz/wJ2JeVaJVu
YXMJr78OlLMxHfaoJ+CQ5yCxCdjxLMyn6BHY4wU+Gq6PDxJHI2q0QrcIGQ9z
J1UOqOVjLAjXI1Wz7NdcL3wb5Q5E5KMFJAS25L3w6J1ATD5eMlICO/K7JYMT
SMh74fGJwJ68F57sCBzIHxbgM1Ly6QI+CAjyXvjef6xaqyLgnnXF/VdBddIA
7s2qZ2tdH/2UfAupXUrjfZBmMNQdWsGfAAMAJzOPEgplbmRzdHJlYW0KZW5k
b2JqCjI3IDAgb2JqCjw8IAovVHlwZSAvRm9udCAKL1N1YnR5cGUgL1R5cGUx
IAovRmlyc3RDaGFyIDEgCi9MYXN0Q2hhciAxMSAKL1dpZHRocyBbIDU1NiA1
NTYgMjc4IDU1NiAyNzggODMzIDU1NiA4ODkgNjExIDM4OSA1NTYgXSAKL0Vu
Y29kaW5nIDIwIDAgUiAKL0Jhc2VGb250IC9DQkZJQkkrQXJpYWwtQm9sZE1U
IAovRm9udERlc2NyaXB0b3IgMjEgMCBSIAovVG9Vbmljb2RlIDI2IDAgUiAK
Pj4gCmVuZG9iagoyOCAwIG9iago8PCAKL1R5cGUgL0VuY29kaW5nIAovRGlm
ZmVyZW5jZXMgWyAxIC9OIC9vIC90IC9lIC9zIC9vbmUgL1QgL2ggL3NwYWNl
IC9iIC9qIC9jIC92IC9wIC9pIC9NIC9tIC9yIC95IAovYSAvbiAvZCAvVyAv
dyAvZiAvZyAvcGVyaW9kIC9rIC9sIC9jb21tYSAvaHlwaGVuIC91IC9SIC9B
IC9TIC90d28gCi9zaXggL3NldmVuIC9maSBdIAo+PiAKZW5kb2JqCjI5IDAg
b2JqCjw8IAovVHlwZSAvRXh0R1N0YXRlIAovU0EgZmFsc2UgCi9TTSAwLjAx
OTk4IAovVFIgL0lkZW50aXR5IAo+PiAKZW5kb2JqCjEgMCBvYmoKPDwgCi9E
IFsgMTEgMCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKPj4gCmVuZG9iagoy
IDAgb2JqCjw8IAovRCBbIDExIDAgUiAvWFlaIG51bGwgbnVsbCBudWxsIF0g
Cj4+IAplbmRvYmoKMyAwIG9iago8PCAKL0QgWyAxMSAwIFIgL1hZWiBudWxs
IG51bGwgbnVsbCBdIAo+PiAKZW5kb2JqCjQgMCBvYmoKPDwgCi9MaW1pdHMg
WyAoRikoUC4xKV0gCi9OYW1lcyBbIChGKTIgMCBSIChMKTMgMCBSIChQLjEp
MSAwIFIgXSAKPj4gCmVuZG9iago1IDAgb2JqCjw8IAovS2lkcyBbIDQgMCBS
IF0gCj4+IAplbmRvYmoKNiAwIG9iago8PCAKL1Byb2R1Y2VyIChBY3JvYmF0
IERpc3RpbGxlciA0LjA1IGZvciBTcGFyYyBTb2xhcmlzKQovQ3JlYXRvciAo
RnJhbWVNYWtlciA2LjApCi9Nb2REYXRlIChEOjIwMDMwNzE0MTQ0NTExKQov
Q3JlYXRpb25EYXRlIChEOjIwMDMwNjI0MTYxMzQ3KQo+PiAKZW5kb2JqCjcg
MCBvYmoKPDwgCi9UeXBlIC9QYWdlcyAKL0tpZHMgWyAxMSAwIFIgXSAKL0Nv
dW50IDEgCj4+IAplbmRvYmoKeHJlZgowIDggCjAwMDAwMDAwMDAgNjU1MzUg
ZiAKMDAwMDAxNDI1MSAwMDAwMCBuIAowMDAwMDE0MzA5IDAwMDAwIG4gCjAw
MDAwMTQzNjcgMDAwMDAgbiAKMDAwMDAxNDQyNSAwMDAwMCBuIAowMDAwMDE0
NTEwIDAwMDAwIG4gCjAwMDAwMTQ1NTAgMDAwMDAgbiAKMDAwMDAxNDcxMyAw
MDAwMCBuIAp0cmFpbGVyCjw8Ci9TaXplIDgKL0lEWzxjN2IzYzRmN2U4MzZk
NjhkOTMyMWNmNjc5M2JiODFkOD48YzdiM2M0ZjdlODM2ZDY4ZDkzMjFjZjY3
OTNiYjgxZDg+XQo+PgpzdGFydHhyZWYKMTczCiUlRU9GCg==
---559023410-1857409239-1075646428=:16002--
From: Charles Dawson <chas@cadence.com>
To: ptf-bugs@boyd.com
Cc:
Subject: Re: errata/341: PROPOSAL - How are two dimensional arrays of regs
to be treated in VPI?
Date: Mon, 02 Feb 2004 10:14:23 -0500

Shalom.Bresticker@motorola.com wrote:
>> Make the following changes to section 26.6.9:
>>
>> - Change the definition enclosure "memory" to
>> a reference enclosure "reg array"
>> - Change the definition enclosure "memory word"
>> to a reference enclosure "reg"
>> - Add a label "vpiMemory" to the 1 to many iteration
>> from module and scope.
>> - Add a label "vpiMemoryWord" to the 1 to many iteration
>> from memory to memory word.
>> - Add a property to memory:
>>
>> -> is a memory
>> boo: vpiIsMemory
>
>
>> Make the following changes to section 26.6.1:
>>
>> - Change the reference enclosure "memory" to "reg array"
>
>
> There is already such an enclosure ?

Yes, it is on the right hand side of the diagram between variables
and named event.

>
>
>> - Add a "vpiMemory" label to the 1 to many iteration to
>> memory.
>
>
>> Add the following to annex G:
>>
>> - Immediately after vpiModPathHasIfNone (line 482):
>>
>> #define vpiIsMemory 73 /* A reg MDA is a memory */
>
>
> We have already added after vpiModPathHasIfNone the following:
>
> "#define vpiIndexedPartSelectType 72 /* Indexed part-select type */"
>
> Presumably, you want to add the new line after this?

Yes, we need to add vpiIsMemory as a property that does not have
the same value as any other property.

>
>
>
>>See the diagrams at
>> http://www.verilog-2001.com/pli_errata/
>> See ptf341.pdf
>
>
> The correct file name is 341_vpi_memory.pdf, attached.
> It does not completely correspond to the proposed changes above.
>
> Specifically, the original diagram contains properties name and size on
> "memory" and constant selection, name, size, and value on "memory word".
> These are not found in the new diagram.
>
> There are 3 notes in the original diagram which are replaced in the new
> diagram with a new note.
>
> The new note contains "obviscated", which is not a word, nor does
> "obfuscated" seem appropriate. Perhaps "obsoleted" is wanted?
>


I will work on the diagram and/or proposal so that they match.

--
Charles Dawson
Senior Member of Consulting Staff - Project Lead
NC-Verilog Team
Cadence Design Systems, Inc.
270 Billerica Road
Chelmsford, MA 01824
(978) 262 - 6273
chas@cadence.com


From: Shalom Bresticker <Shalom.Bresticker@motorola.com>
To: Charles Dawson <chas@cadence.com>
Cc: ptf-bugs@boyd.com
Subject: Re: errata/341: Re: errata/341: PROPOSAL - How are two dimensional
arrays of regsto be treated in VPI?
Date: Mon, 02 Feb 2004 17:36:45 +0200

Sorry, my question was not clear.

In the diagram in 26.6.1, on the right hand side, there is an enclosure "reg
array" between
"reg" and "variables". If you change "memory" to "reg array", then there will be
two enclosures
named "reg array". Is that what you want? If not, then what about the vpiMemory
label that
you want to add?

Thanks,
Shalom

> >> Make the following changes to section 26.6.1:
> >>
> >> - Change the reference enclosure "memory" to "reg array"
> >
> >
> > There is already such an enclosure ?
>
> Yes, it is on the right hand side of the diagram between variables
> and named event.

--
Shalom Bresticker Shalom.Bresticker@motorola.com
Design & Reuse Methodology Tel: +972 9 9522268
Motorola Semiconductor Israel, Ltd. Fax: +972 9 9522890
POB 2208, Herzlia 46120, ISRAEL Cell: +972 50 441478



From: Charles Dawson <chas@cadence.com>
To: ptf-bugs@boyd.com
Cc:
Subject: Re: errata/341: Re: errata/341: Re: errata/341: PROPOSAL - How are
two dimensional arrays of regsto be treated in VPI?
Date: Mon, 02 Feb 2004 10:49:39 -0500

Yes, they both have to be there for backwards compatibility. So, iterating
on either vpiMemory or vpiRegArray will give you back objects of type
vpiRegArray. The vpiMemory iteration will only return objects that used
to be of type vpiMemory.

-Chas


Shalom Bresticker wrote:
> The following reply was made to PR errata/341; it has been noted by GNATS.
>
> From: Shalom Bresticker <Shalom.Bresticker@motorola.com>
> To: Charles Dawson <chas@cadence.com>
> Cc: ptf-bugs@boyd.com
> Subject: Re: errata/341: Re: errata/341: PROPOSAL - How are two dimensional
> arrays of regsto be treated in VPI?
> Date: Mon, 02 Feb 2004 17:36:45 +0200
>
> Sorry, my question was not clear.
>
> In the diagram in 26.6.1, on the right hand side, there is an enclosure "reg
> array" between
> "reg" and "variables". If you change "memory" to "reg array", then there will be
> two enclosures
> named "reg array". Is that what you want? If not, then what about the vpiMemory
> label that
> you want to add?
>
> Thanks,
> Shalom
>
> > >> Make the following changes to section 26.6.1:
> > >>
> > >> - Change the reference enclosure "memory" to "reg array"
> > >
> > >
> > > There is already such an enclosure ?
> >
> > Yes, it is on the right hand side of the diagram between variables
> > and named event.
>
> --
> Shalom Bresticker Shalom.Bresticker@motorola.com
> Design & Reuse Methodology Tel: +972 9 9522268
> Motorola Semiconductor Israel, Ltd. Fax: +972 9 9522890
> POB 2208, Herzlia 46120, ISRAEL Cell: +972 50 441478
>
>
>
>


--
Charles Dawson
Senior Member of Consulting Staff - Project Lead
NC-Verilog Team
Cadence Design Systems, Inc.
270 Billerica Road
Chelmsford, MA 01824
(978) 262 - 6273
chas@cadence.com



Fix replaced by etf@boyd.com on Mon Feb 2 08:54:41 2004
In order to reconcile a 2 dimensional array of regs,
formerly known as a memory, with arrays of regs with more
dimensions, I propose the following changes:

Make the following changes to section 26.6.9:

- Change the definition enclosure "memory" to
a reference enclosure "reg array"
- Change the definition enclosure "memory word"
to a reference enclosure "reg"
- Add a label "vpiMemory" to the 1 to many iteration
from module and scope.
- Add a label "vpiMemoryWord" to the 1 to many iteration
from memory to memory word.
- Add a property to memory:

-> is a memory
bool: vpiIsMemory

- Remove the properties name and size from memory, as
they are duplicates of those in 26.6.7
- Remove the properties constant selection name, size,
and value from memory word, as they are duplicates of
those in 26.6.7.
- Replace the three notes with one that says:

The objects vpiMemory and vpiMemoryWord have been
generalized with the addition of arrays of regs. To
preserve backward compatibility, they have been
converted into methods which will return objects of
type vpiRegArray and vpiReg, respectively. See
section 26.6.7 for the definitions of regs and reg
arrays.

Make the following changes to section 26.6.1:

- Change the reference enclosure "memory" to "reg array"
- Add a "vpiMemory" label to the 1 to many iteration to
memory.

Make the following changes to section 26.6.25:

- Remove the 2 memory word reference enclosures.

Make the following changes to section 26.6.42:

- Remove the memory reference enclosure.

Make the following changes to section 26.6.43:

- Remove the memory reference enclosure.

Add the following to annex G:

- Immediately after vpiModPathHasIfNone (line 482):

#define vpiIsMemory 73 /* A reg MDA is a memory */

See the diagrams at
http://www.verilog-2001.com/pli_errata/
See 341_vpi_memory.pdf


Notes from proposer:

- The #define in the include file (annex G) may need
to be reconciled with other PTF items.


From: Charles Dawson <chas@cadence.com>
To: ptf-bugs@boyd.com
Cc:
Subject: Re: errata/341: PROPOSAL - How are two dimensional arrays of regsto
be treated in VPI?
Date: Mon, 02 Feb 2004 12:16:03 -0500

This is a multi-part message in MIME format.
--------------030100080601070206030203
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit

Please find attached a new diagram. Hope this doesn't mess up the web site.

-Chas


Charles Dawson wrote:
> The following reply was made to PR errata/341; it has been noted by GNATS.
>
> From: Charles Dawson <chas@cadence.com>
> To: ptf-bugs@boyd.com
> Cc:
> Subject: Re: errata/341: Re: errata/341: Re: errata/341: PROPOSAL - How are
> two dimensional arrays of regsto be treated in VPI?
> Date: Mon, 02 Feb 2004 10:49:39 -0500
>
> Yes, they both have to be there for backwards compatibility. So, iterating
> on either vpiMemory or vpiRegArray will give you back objects of type
> vpiRegArray. The vpiMemory iteration will only return objects that used
> to be of type vpiMemory.
>
> -Chas
>
>
> Shalom Bresticker wrote:
> > The following reply was made to PR errata/341; it has been noted by GNATS.
> >
> > From: Shalom Bresticker <Shalom.Bresticker@motorola.com>
> > To: Charles Dawson <chas@cadence.com>
> > Cc: ptf-bugs@boyd.com
> > Subject: Re: errata/341: Re: errata/341: PROPOSAL - How are two dimensional
> > arrays of regsto be treated in VPI?
> > Date: Mon, 02 Feb 2004 17:36:45 +0200
> >
> > Sorry, my question was not clear.
> >
> > In the diagram in 26.6.1, on the right hand side, there is an enclosure "reg
> > array" between
> > "reg" and "variables". If you change "memory" to "reg array", then there will be
> > two enclosures
> > named "reg array". Is that what you want? If not, then what about the vpiMemory
> > label that
> > you want to add?
> >
> > Thanks,
> > Shalom
> >
> > > >> Make the following changes to section 26.6.1:
> > > >>
> > > >> - Change the reference enclosure "memory" to "reg array"
> > > >
> > > >
> > > > There is already such an enclosure ?
> > >
> > > Yes, it is on the right hand side of the diagram between variables
> > > and named event.
> >
> > --
> > Shalom Bresticker Shalom.Bresticker@motorola.com
> > Design & Reuse Methodology Tel: +972 9 9522268
> > Motorola Semiconductor Israel, Ltd. Fax: +972 9 9522890
> > POB 2208, Herzlia 46120, ISRAEL Cell: +972 50 441478
> >
> >
> >
> >
>
>
> --
> Charles Dawson
> Senior Member of Consulting Staff - Project Lead
> NC-Verilog Team
> Cadence Design Systems, Inc.
> 270 Billerica Road
> Chelmsford, MA 01824
> (978) 262 - 6273
> chas@cadence.com
>
>
>


--
Charles Dawson
Senior Member of Consulting Staff - Project Lead
NC-Verilog Team
Cadence Design Systems, Inc.
270 Billerica Road
Chelmsford, MA 01824
(978) 262 - 6273
chas@cadence.com


--------------030100080601070206030203
Content-Type: application/pdf;
name="341.pdf"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="341.pdf"

JVBERi0xLjIKJeLjz9MNCjggMCBvYmoKPDwgCi9MaW5lYXJpemVkIDEgCi9PIDExIAovSCBb
IDEwMzAgMTk3IF0gCi9MIDE3MDM2IAovRSAxNjI4MSAKL04gMSAKL1QgMTY3NTkgCj4+IApl
bmRvYmoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB4cmVmCjggMjkgCjAwMDAwMDAwMTYgMDAwMDAgbiAKMDAwMDAwMDkyNCAw
MDAwMCBuIAowMDAwMDAwOTkyIDAwMDAwIG4gCjAwMDAwMDEyMjcgMDAwMDAgbiAKMDAwMDAw
MTM4MSAwMDAwMCBuIAowMDAwMDAxNTE3IDAwMDAwIG4gCjAwMDAwMDE5NzMgMDAwMDAgbiAK
MDAwMDAwMjI2MSAwMDAwMCBuIAowMDAwMDAyNTQ1IDAwMDAwIG4gCjAwMDAwMDI2ODYgMDAw
MDAgbiAKMDAwMDAwNDg4MSAwMDAwMCBuIAowMDAwMDA2OTI3IDAwMDAwIG4gCjAwMDAwMDcx
ODUgMDAwMDAgbiAKMDAwMDAwNzUxOSAwMDAwMCBuIAowMDAwMDA4NTc4IDAwMDAwIG4gCjAw
MDAwMDg2NjAgMDAwMDAgbiAKMDAwMDAwODg3NyAwMDAwMCBuIAowMDAwMDEyMzk3IDAwMDAw
IG4gCjAwMDAwMTI3NTIgMDAwMDAgbiAKMDAwMDAxMzEwNyAwMDAwMCBuIAowMDAwMDEzNjYz
IDAwMDAwIG4gCjAwMDAwMTM4NzUgMDAwMDAgbiAKMDAwMDAxNTE1MCAwMDAwMCBuIAowMDAw
MDE1MjYwIDAwMDAwIG4gCjAwMDAwMTU1NDMgMDAwMDAgbiAKMDAwMDAxNTc3NSAwMDAwMCBu
IAowMDAwMDE2MTQyIDAwMDAwIG4gCjAwMDAwMDEwMzAgMDAwMDAgbiAKMDAwMDAwMTIwNyAw
MDAwMCBuIAp0cmFpbGVyCjw8Ci9TaXplIDM3Ci9JbmZvIDYgMCBSIAovUm9vdCA5IDAgUiAK
L1ByZXYgMTY3NTAgCi9JRFs8YmUxYWMwOWNjMzI2N2Y1Njc1NzY0MjY3NGUzYjJkNTE+PGJl
MWFjMDljYzMyNjdmNTY3NTc2NDI2NzRlM2IyZDUxPl0KPj4Kc3RhcnR4cmVmCjAKJSVFT0YK
ICAgICAKOSAwIG9iago8PCAKL1R5cGUgL0NhdGFsb2cgCi9QYWdlcyA3IDAgUiAKL05hbWVz
IDEwIDAgUiAKPj4gCmVuZG9iagoxMCAwIG9iago8PCAKL0Rlc3RzIDUgMCBSIAo+PiAKZW5k
b2JqCjM1IDAgb2JqCjw8IC9TIDM2IC9FIDk5IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5n
dGggMzYgMCBSID4+IApzdHJlYW0NCkiJYmBgkGZgYGFjAAKrKQzYAAeUFgBiCShmYAhk4GGZ
YC5ecJ5ng02L+lpugb+2CowcvfmCikKyG5q9FsjyLJgu+ACqlZGBwW4WkGYFMrUBAgwASQUO
XQplbmRzdHJlYW0KZW5kb2JqCjM2IDAgb2JqCjg3IAplbmRvYmoKMTEgMCBvYmoKPDwgCi9U
eXBlIC9QYWdlIAovUGFyZW50IDcgMCBSIAovUmVzb3VyY2VzIDEyIDAgUiAKL0NvbnRlbnRz
IDE4IDAgUiAKL0Nyb3BCb3ggWyA5MCAwIDcwMiA3OTIgXSAKL01lZGlhQm94IFsgMCAwIDc5
MiA3OTIgXSAKL1JvdGF0ZSAwIAo+PiAKZW5kb2JqCjEyIDAgb2JqCjw8IAovUHJvY1NldCBb
IC9QREYgL1RleHQgXSAKL0ZvbnQgPDwgL0YxIDE1IDAgUiAvRjMgMjMgMCBSIC9GNSAzMiAw
IFIgL0Y3IDI2IDAgUiA+PiAKL0V4dEdTdGF0ZSA8PCAvR1MxIDM0IDAgUiA+PiAKPj4gCmVu
ZG9iagoxMyAwIG9iago8PCAvRmlsdGVyIC9GbGF0ZURlY29kZSAvTGVuZ3RoIDM4MiA+PiAK
c3RyZWFtDQpIiVSST2+CQBDF736KOdr0wA7yRxND0mibeLBtqu0d2MGQ6EIWPPjty9uxJj0w
efx2ZljeTLTZbXeuHSn69F19kJGa1lkvQ3f1tVAlp9YRx2Tbery/hVhfyp6iqfhwG0a57FzT
0Xo9i76mw2H0N5q/+LY874/P5omiD2/Ft+5E8yN//0zgcO37s1zEjWSoKMhKM4s2+7J/Ly9C
0aM2HPD9k52VoS9r8aU7Ca0NF7TmVUHi7P+zWZxqSdXou+ZqMNm2mEAMHSt4A1hALxQkAAl0
CCZPAVLoVDM2ABl0piBk5NC5lsQAS+ilZuQAK+gQTGwASuhSMxiggq60xwqghq4VZAAW2ioI
PQRatEcoaaBDMAluygZWGc1ADw7eqR85/pZhBasfKa7OsILvfrwCwApWP7IlAKxg9SPFPRhW
sPqR4B4MK/juRyiBFax+JBgDxqdh6jEZNI3yb2aYKpbssRX11ftpYcImhl3BcrROHsvadz12
Ac/sV4ABADlZu3UKZW5kc3RyZWFtCmVuZG9iagoxNCAwIG9iago8PCAKL1R5cGUgL0ZvbnRE
ZXNjcmlwdG9yIAovQXNjZW50IDcxMiAKL0NhcEhlaWdodCA3MTIgCi9EZXNjZW50IC0yMzIg
Ci9GbGFncyA0IAovRm9udEJCb3ggWyAtMjIyIC0yNTAgMTAwNiA5MjIgXSAKL0ZvbnROYW1l
IC9BT0lPQ0MrQXJpYWxNVCAKL0l0YWxpY0FuZ2xlIDAgCi9TdGVtViA4OCAKL1hIZWlnaHQg
NTkyIAovQ2hhclNldCAoL28vUi95L24vbC9wL2UvUC9mL0kveC9yL3NwYWNlL2gvZC9pL1cv
YS9ML3QvZy9NL3Uvdi9tKQovRm9udEZpbGUzIDE3IDAgUiAKPj4gCmVuZG9iagoxNSAwIG9i
ago8PCAKL1R5cGUgL0ZvbnQgCi9TdWJ0eXBlIC9UeXBlMSAKL0ZpcnN0Q2hhciAxIAovTGFz
dENoYXIgMjUgCi9XaWR0aHMgWyA4MzMgNTU2IDU1NiA1NTYgMjIyIDU1NiAzMzMgNTU2IDI3
OCA1NTYgNTAwIDUwMCA1NTYgMjIyIDU1NiAyNzggMjc4IAo3MjIgNTU2IDU1NiA2NjcgMjc4
IDUwMCA4MzMgOTQ0IF0gCi9FbmNvZGluZyAxNiAwIFIgCi9CYXNlRm9udCAvQU9JT0NDK0Fy
aWFsTVQgCi9Gb250RGVzY3JpcHRvciAxNCAwIFIgCi9Ub1VuaWNvZGUgMTMgMCBSIAo+PiAK
ZW5kb2JqCjE2IDAgb2JqCjw8IAovVHlwZSAvRW5jb2RpbmcgCi9EaWZmZXJlbmNlcyBbIDEg
L20gL28gL2QgL3UgL2wgL2UgL3IgL2cgL3NwYWNlIC9hIC95IC92IC9wIC9pIC9MIC9mIC90
IC9SIC9uIC9oIAovUCAvSSAveCAvTSAvVyBdIAo+PiAKZW5kb2JqCjE3IDAgb2JqCjw8IC9G
aWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggMjEwMyAvU3VidHlwZSAvVHlwZTFDID4+IApz
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
jYgbN+f/1HUtcqqo9/s89wV6D5Gt3Z6o8tyXcJrD/m/Zp0ON4W7FOSc+n/lShfoUq5FYkQ56
DnR8v9w1LybTybSYzRfLM6qD7U3f+uacI36muCmhRsslakSB1Mf1/MVksb1Bxkxz/gUy10wW
UykoSODYoKL8QUUdSCR78chVHCSNK4mfUeRrMaOKxu2Ms3mDF0wIUZTOoQovHdsslsX2xmCy
65sJh1ScT2f0C/zIZ614OVlfCJdrNpdXQtYH5M+3Hc5pM1knqm2Wm62m8/LZVvumyCrPiuIy
q3pVXBbrzfXqi+Iq+/B6NV1mBdNlkvLN5upqNV1NkqRtJm84BXhf9joeRrZZrzcXs2ryploX
Wxpsm1ezt1W1IP90M6nI53UxK9bkVxubojrbnP/29VYriF5V55OXxLGZrs5W16vpxRZTWGi+
rMgZaAvNRYXADCynwCqKCGKX1B1C+nE9La6q1eV0Ur0spsuanb19B+8mV7Pq9XJ1vqxer66v
4eL0d+vLap958ntK3cgXlaT3q4L8RBS/p8AqpP+AgCx+CTUzFjmfrraGN469uGbvXYPw/1AU
1Yzo8HNw5o9fv/367TfVm8mawquuivfNJad5SB8bnrFRgaZ5VUmG3+Zj/qsAAwByzi54CmVu
ZHN0cmVhbQplbmRvYmoKMTkgMCBvYmoKPDwgCi9UeXBlIC9Gb250RGVzY3JpcHRvciAKL0Fz
Y2VudCA3MTIgCi9DYXBIZWlnaHQgNzEyIAovRGVzY2VudCAtMjMyIAovRmxhZ3MgNjggCi9G
b250QkJveCBbIC0yNjEgLTI1MCAxMDU5IDkzNiBdIAovRm9udE5hbWUgL0FPSU9DSCtBcmlh
bC1JdGFsaWNNVCAKL0l0YWxpY0FuZ2xlIC0xMiAKL1N0ZW1WIDg4IAovWEhlaWdodCA1OTIg
Ci9DaGFyU2V0ICgvby9jL3AvZS94L3IvcykKL0ZvbnRGaWxlMyAyMSAwIFIgCj4+IAplbmRv
YmoKMjAgMCBvYmoKPDwgL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCAyNjAgPj4gCnN0
cmVhbQ0KSIlckE1vgzAMhu/8Ch87TVOADtgBRZpaVeLQbRrd7mliUCQIUQiH/vvFgVXaDrHs
x/HHa3Zojo3RHtiHm2SLHjptlMN5WpxEuGKvDWQ5KC39FkUrR2GBheL2NnscG9NNUNcJ+wzJ
2bsb7F6dFsNT48Wg5fnymD4Ae3cKnTY97C7Z13cA7WLtgCMaDylwDgq7hB3Owr6JEYH9bxHz
2bbApHC2QqITpkeo04wHU3FAo/7mknKtuHZruH2NJq32PICc/GjSMoI9+c8rOBEoyC9WUBAo
yS/XHi8Eqm0+gZwnYY3fgbQRnesuTC7OBc3xplEuCdMG72e3kyUd9JIfAQYAYjR/CwplbmRz
dHJlYW0KZW5kb2JqCjIxIDAgb2JqCjw8IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGgg
OTY4IC9TdWJ0eXBlIC9UeXBlMUMgPj4gCnN0cmVhbQ0KSIlcUn9MW1UYfa/lvaHWbvStFfrm
65WIbsCmOMPA0DACxTLH76ISJ1uhr+OxrsXXroRMU5P5IxXGnGPgGBvo0LoNcWyLSAKMuU2Y
jjTSRYkRMXl1zswM8Z/vjWsyH2Ua4/3jJPfc+53z3fNdkohTESRJGvJKi0rzrWl5omB3rS/y
2V1CXbFt6SRLTiBklpTXqOSH1XJiXECjkjmNAR/BbYtDizkU10vebWlZRs0K+GMl3E24tNig
I+JI8rp0606+p7FZFHbW+9DaunUoIzs7I30JN8YwM4abYpgVw2yU5/DU8qiy2evjd3tRkbvO
IzZ6RLuPd2xAKM/lQhVLal5UwXt50a+wsZ6R4EV25BPtDn63XdyFPE5kq+dRscft8TU38ij/
norgcacjkd8pKPIi70CCG/mUe1WVqEyxcPuQ3e1Atn9lSp1OoY6PkbzLyzfVK0X3DIttaDmn
f7b/y05ZBUQhUUaUE5WEjagm4pWkiTiigjhHYNJJDqj0qhdwpnYiEIZp/0f++Yju0i9wUmJG
ZBbK9VXNNTnPsD7zYVg51gNueMLE/Ng3sy/VxIxI71JgfGQwF9da8XaciJOlLQu3o1fAOMxp
AxGwhCEjTI5LMDGnlp+CAn16bY6fZ0uqRuc7Wg+2HjbJOrqt50DPWWO0BhLwRmzLwhWKzKM3
ciEOWAmI6V4O3wJOP9UzdmOB/fJyw6aDptZXW15/57V4bSAsp4bJMQnCknoMqvUYzRcqZetB
B4lQBWzmLF6FrSn4SWzhpHY9qL6Gx2D1z2ctZqy24Mexxp3WCRynxYV+KI3IyROlEZ1cJTEz
+/BLeom+AgPUfrrk1LAwxYIBVkEKlAGXO51mrXFu22EK7qeYm13fUtl0H/5Kz8yc6pwMXeQu
fjw0fJX9/lOrZXMNLsEJe3e1nXjFxNx0DLScGzVqUa9frpgLNJ1u0vXLDzGT/YY5eggc3T98
ePl4KOlE9+ej4+yx7rcCXSbm/TOzFDPZsafpkJc127IEf8zxkw/+pMz00qSUt+sGo3tn4dno
ixITHQSLHlveBHNghGVmIGXqp+9+23w6/bxpS6jhyHnjyf7PvuGY60fng2sPmJamtuZtrA3l
spjb9nRx5rXGqENp8mrjF3teNlY/734O64K3Q5x2Qmm3q4kMymfUQQOoadgA5R1ih3hUSLqQ
TP1OYwO0Kx+ii8IEjVNxZSD0xnHxQtL2X6l1NBjwIUor9t3Z0YmdnVDQQsNC+1/XOlb8h4pf
pu6L3C89EGnXaKT3NA/K46vlrfq/BRgAderNawplbmRzdHJlYW0KZW5kb2JqCjIyIDAgb2Jq
Cjw8IAovVHlwZSAvRW5jb2RpbmcgCi9EaWZmZXJlbmNlcyBbIDEgL3MgL2MgL28gL3AgL2Ug
L3ggL3IgXSAKPj4gCmVuZG9iagoyMyAwIG9iago8PCAKL1R5cGUgL0ZvbnQgCi9TdWJ0eXBl
IC9UeXBlMSAKL0ZpcnN0Q2hhciAxIAovTGFzdENoYXIgNyAKL1dpZHRocyBbIDUwMCA1MDAg
NTU2IDU1NiA1NTYgNTAwIDMzMyBdIAovRW5jb2RpbmcgMjIgMCBSIAovQmFzZUZvbnQgL0FP
SU9DSCtBcmlhbC1JdGFsaWNNVCAKL0ZvbnREZXNjcmlwdG9yIDE5IDAgUiAKL1RvVW5pY29k
ZSAyMCAwIFIgCj4+IAplbmRvYmoKMjQgMCBvYmoKPDwgL0ZpbHRlciAvRmxhdGVEZWNvZGUg
L0xlbmd0aCAzNDI4IC9TdWJ0eXBlIC9UeXBlMUMgPj4gCnN0cmVhbQ0KSIlkVGlUFNkVrqK7
qlC0VWpKnS7tqnEjbsAcOSyaqOioiMOi4MacCAgN9EjT0N0sLUIGcImnZRGEUaGgsREEwVYQ
osc4E8RlTBQYlxEjbvyYgWRGnWQy9+HrxBRochI975xb57z71Xe/+733LkkoXQiSJN8PDFsb
9tG6+ZE6vdYUqs3cYNDHpoRHhESOJH3RJALxJJrmgqYp0PtKNH3cZLwEF73c89KF0tjIV1br
6ziOQXMnoNBJXdMmbnQnFCPMbuR00nOlIdVi1CUmmcVfxM0VPwzw918gxwDv0bhoNPqORr/R
+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
qt9lXFyToMfTYBp1F4K/KROgSlbrrOFcqkB7Q4CoiQIWnTc3l7Wug6Rh6cQ2UT8kCWNlXU5n
KEze+zQW+dy2ncbqstpKImQkIy4lQ2OIbG0BpJwOVpml2fJxsyrY3eAm7opYdKZZt8nJtH2Y
iDcng11We8jscqq8noZWUcSy6GyNY4crD5jhMRM5OWmvHpDiHlm7HF4Xols6XaHu+kkcnsIi
zmfdWVGj3VspMtOdtMfp+qFJXNwBoWLkMqlg45RUiyZDVmLSZ2+kqdzy3VwxrSkzbi8MGYJH
b/oe9DDUbMgWtsi8za4jgWd38XJW7a5ao5llErHpNSiWmQ8bOwgWnoZOkt0mFp3Y68l3FUQp
frSHhHEhyRkO7jmlwlx4hbRSQrXWkkLjGXI4JzAybjgGx3LofpPHztOgkuMzw4yMFRhEJOsI
Jxf2wJYA0cg8rOEpHnJIWc8jmHz5s8/V3zROv0C3u1ztvSuOz8QoJQ2rGU1EVoYgjEc36+xp
kWmjV5BUIstem4WmeJvFQv6KCufQdCcuPwRGu1yItw8/rEd/WYp6tjS26yU+ussRE8O3xLws
7IuHIeUfAgwAxpS6eQplbmRzdHJlYW0KZW5kb2JqCjI1IDAgb2JqCjw8IAovVHlwZSAvRm9u
dERlc2NyaXB0b3IgCi9Bc2NlbnQgNTkyIAovQ2FwSGVpZ2h0IDcxMiAKL0Rlc2NlbnQgLTIz
MiAKL0ZsYWdzIDYgCi9Gb250QkJveCBbIC0xNjcgLTI1MCAxMDA5IDg3OCBdIAovRm9udE5h
bWUgL0FPSU9ESytUaW1lc05ld1JvbWFuUFNNVCAKL0l0YWxpY0FuZ2xlIDAgCi9TdGVtViA4
MSAKL1hIZWlnaHQgNDcyIAovQ2hhclNldCAoL28vYy9SL2NvbW1hL3kvbi9wL2wvZS9TL04v
ei9oeXBoZW4vZi9UL3BlcmlvZC9yL3NwYWNlL2gvc2l4L2Qvcy9zZXZlbi9pXAovVy9hL3Qv
ai9nL00vdS9vbmUvay9BL2ZpL3YvdHdvL20vYi93KQovRm9udEZpbGUzIDI0IDAgUiAKPj4g
CmVuZG9iagoyNiAwIG9iago8PCAKL1R5cGUgL0ZvbnQgCi9TdWJ0eXBlIC9UeXBlMSAKL0Zp
cnN0Q2hhciAxIAovTGFzdENoYXIgNDAgCi9XaWR0aHMgWyA3MjIgNTAwIDI3OCA0NDQgMzg5
IDUwMCA2MTEgNTAwIDUwMCAyNzggNDQ0IDUwMCA1MDAgMjc4IDg4OSA3NzggMzMzIAo1MDAg
NDQ0IDUwMCA1MDAgOTQ0IDUwMCAyNzggNDQ0IDcyMiAzMzMgMjUwIDI1MCA1MDAgMjUwIDMz
MyA1MDAgCjY2NyA3MjIgNTU2IDUwMCA1MDAgNTAwIDU1NiBdIAovRW5jb2RpbmcgMjggMCBS
IAovQmFzZUZvbnQgL0FPSU9ESytUaW1lc05ld1JvbWFuUFNNVCAKL0ZvbnREZXNjcmlwdG9y
IDI1IDAgUiAKL1RvVW5pY29kZSAyNyAwIFIgCj4+IAplbmRvYmoKMjcgMCBvYmoKPDwgL0Zp
bHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCA0ODIgPj4gCnN0cmVhbQ0KSIlsk81rpEAQxe/+
FX3Msge7ys+BQdhMEphDsiGT3buj5SDEVtRhyX+//bpMIJCDxfPZX+9ndXw43h1dv5r4eR6b
k6ym6107yzJe50bMWS69M8Sm7Zt1ewu1GerJxH7y6X1ZZTi6bjT7fRS/+I/LOr+bm9d+kOVJ
/r2MQ+2eT4+vP+0PE/+eW5l7d/Hf6c9fb5yu0/Qmg7jVWFNVppUuig+P9fRUD2Lib1YJQ2g7
xtjKMtWNzLW7iNlbqsyey8qIa79+i5JSp5w7fdexWmx6X3mDoUOx+QOMBDoUW6QwUuhUR2Qw
MuhMRyQwcuhQbEIwCuhQbBbWKKFLXaOEsYPeqcEwauhajV8wztBnNcIuDXSj2+YwWuhWDQtD
oEWn7GB00J2mvfMGWa9D8SOCARSkPAqcg4CClEeBNQgoSHnkCEdAQRsPICSgIOWRIy0BBSmP
rIABFKQ88mAABW08DjCAgpRHgfgEFKQ8ijAFKGjjgfgEFKQ8GPEJKEh5cDgYUNDG4xYGULDG
Z2zLoXW2+Pi3jOSs8TPwYCRnjZ8iPiM5a/wM/4WRnDV+EqYgOWvaBCdFb2p5uPW9F/k+/WhI
tCxu1WfzN9d59vciXL1wJdD5vZPP2zmNExodT/RfgAEA9fbwfQplbmRzdHJlYW0KZW5kb2Jq
CjI4IDAgb2JqCjw8IAovVHlwZSAvRW5jb2RpbmcgCi9EaWZmZXJlbmNlcyBbIDEgL04gL28g
L3QgL2UgL3MgL29uZSAvVCAvaCAvYiAvaiAvYyAvdiAvcCAvaSAvTSAvbSAvciAveSAvYSAv
biAvZCAKL1cgL2cgL2wgL3ogL3cgL2YgL3NwYWNlIC9wZXJpb2QgL2sgL2NvbW1hIC9oeXBo
ZW4gL3UgL1IgL0EgL1MgL3R3byAKL3NpeCAvc2V2ZW4gL2ZpIF0gCj4+IAplbmRvYmoKMjkg
MCBvYmoKPDwgL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCAxMTgzIC9TdWJ0eXBlIC9U
eXBlMUMgPj4gCnN0cmVhbQ0KSIlUUg1MU1cYfa/ta9HVIrQPTR+v7xaXzQVlcRgmEqdM0ola
cPy4gfuh2od0Ky22FYJzuimK8CgWJSCdU0RxGucsbnFmwUSNRv5UYGxmi4v7n5vLjIvLd/U2
cbfVLdt7eSe55957zved77GMRsWwLGvKLcwvzFucnutzOdyzn/e6nfaSGJ+FkxgssDhVhUU1
NmmwRZ9Cckjr/S33F3KWbvaBojxEvQ5uJsKDpKFUzZfJjIZlJ7779a/F3pp6n2ttVQDNXPMU
mpOdPWdWDDPjmBXHZ+M4L47ZKNfpXS2j4np/QK72o3zPGq+vxutzBGRnBkK5bjcqiqn5UZHs
l321lI3Xi1x+5EABn8MpVzt8byJvJSqpkpHd6/EG6mtktPiRisvryUA+ea2LyvtkJ3J5UICe
Ky1GK6iFJ4AcHicq+VemsLLStUaOk7LbL9dV0UuPDO0lKJbRP4v/pUYflklkjMw0xsxkMDam
gFnBFDPljJ4mzagZjpnO+Jmb7CvsXva+ap2qX0XUhchAXwVEdhxE9XgKiCASUWtQwITXgZY9
RYliuoNDYOJJr3bfsZ7usZGEseGfb0CS+acCUJH55bZNq8stReXvLmp0gfj29InQkZPDwqEr
W+e2SM22VyvSnyEiMa1c9I41Aa/XGjaDFsK3wUrVT0MGvAiCGrfhPn5H99ZPavoSzjntB5cJ
pEshF5cuCeUfWC6RtDPABIYEEG/+ATMgLf0Xwq0r2V76utQU5L4ItcPUW8Jou31DUCI2EuFB
d23X+78pZNKGOoUwmflVo+OWuKn1NoSp6YcgUNMM9Wcwn2+t3b36sJxQenLQPyxAlwIXR65s
v7x+SIK0MsL0LBeImDGTzCBpt54Grvd86NynUrCJy92+hUxNF2xbBvc2SWCDCE90CxvqZykw
ae9+BZgfLn9ky7MYcEl3LR6AWTRaM84BcyxeMx4I0kqiAxxIWpDwABeMDoD5XgWp1hJjdCPX
pCU83sgRNw3qLhhvwJS77HHatQNS1XgyZPP+hrdWLRMWvDEySL1/18Ls1lKYQ14SyLxcYiao
YvfLPWUSmXwe9NtOC7DoFBiOdUjke8jirzafPDsidH+1lXCtkgG30OoW3N1clzxEZ5z38DOl
Gq8b+4dwmI+GKRPSGa9f23Wwo8dytCuy/4TwefPKTIlE6E5QNxzq7TxiOb4n0nNCmFBeKJBI
P+W/1V1QwEqeyyor9QYsBza5Lj0pVNq3LSyUmrTG/jGdAWo3gwbGQcP20V+gDazqPtjHkwYo
kL+BnNuQQnudlgkWsoQsn0esJNEC1gYe2EtnLo9dKJ1BdEtfsy8t6AeVxbCTNpAOaqKGxOSr
IBpHwZECc3XweOufP/Ye3tjQYTFGToGe6/Kv7agWVniqyjyxKkYnaNBhnYFUAptTe89Zl9yO
jxoj7bRpKIu+x6XXrGp0C7WbWkJ+yVjTiThjpHFfT+MJAZ744GtI+FhqC4fCwZ2wDDdOJ2la
oo9qYlNLxBrO4Dt0r6KTVHZCnqKFO23RwT26/1AJcKc9OtIxCdjJID4GbKdeD+Iu/ZQWvQGf
NWGe/1uAAQAnkUJqCmVuZHN0cmVhbQplbmRvYmoKMzAgMCBvYmoKPDwgCi9UeXBlIC9FbmNv
ZGluZyAKL0RpZmZlcmVuY2VzIFsgMSAvdHdvIC9zaXggL3BlcmlvZCAvbmluZSAvc3BhY2Ug
L00gL2UgL20gL28gL3IgL3kgXSAKPj4gCmVuZG9iagozMSAwIG9iago8PCAKL1R5cGUgL0Zv
bnREZXNjcmlwdG9yIAovQXNjZW50IDcxMiAKL0NhcEhlaWdodCA3MTIgCi9EZXNjZW50IC0y
MzIgCi9GbGFncyAyNjIxNDggCi9Gb250QkJveCBbIC0xNjcgLTI1MCAxMDA2IDkzOSBdIAov
Rm9udE5hbWUgL0FPSU9EQytBcmlhbC1Cb2xkTVQgCi9JdGFsaWNBbmdsZSAwIAovU3RlbVYg
MTM3IAovWEhlaWdodCA0NzIgCi9DaGFyU2V0ICgvby95L2UvcGVyaW9kL3NpeC9zcGFjZS9y
L00vbmluZS90d28vbSkKL0ZvbnRGaWxlMyAyOSAwIFIgCj4+IAplbmRvYmoKMzIgMCBvYmoK
PDwgCi9UeXBlIC9Gb250IAovU3VidHlwZSAvVHlwZTEgCi9GaXJzdENoYXIgMSAKL0xhc3RD
aGFyIDExIAovV2lkdGhzIFsgNTU2IDU1NiAyNzggNTU2IDI3OCA4MzMgNTU2IDg4OSA2MTEg
Mzg5IDU1NiBdIAovRW5jb2RpbmcgMzAgMCBSIAovQmFzZUZvbnQgL0FPSU9EQytBcmlhbC1C
b2xkTVQgCi9Gb250RGVzY3JpcHRvciAzMSAwIFIgCi9Ub1VuaWNvZGUgMzMgMCBSIAo+PiAK
ZW5kb2JqCjMzIDAgb2JqCjw8IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggMjkzID4+
IApzdHJlYW0NCkiJVJFNb4MwDIbv/AofO01TAqW0SAhpazeJQ7dptLsHYlAkCFGAQ//94sAq
9ZBXbx47H7bZsTgVWk3Avu1QlzhBo7S0OA6zrREqbJWGMAKp6mndea17YYC5w+VtnLAvdDNA
lgXsxwXHyd5g82qV6F7ehk6eL8/8CdiXlWiVbmFzCa+/DpSzMR32qCfgkOcgsQnY8SzMp+gR
2OMFPhqujw8SRyNqtEK3CBkPcydVDqjlYywI1yNVs+zXXC98G+UOROSjBSQEtuS98OidQEw+
XjJSAjvyuyWDE0jIe+HxicCevBee7AgcyB8W4DNS8ukCPggI8l743n+sWqsi4J51xf1XQXXS
AO7NqmdrXR/9lHwLqV1K432QZjDUHVrBnwADACczjxIKZW5kc3RyZWFtCmVuZG9iagozNCAw
IG9iago8PCAKL1R5cGUgL0V4dEdTdGF0ZSAKL1NBIGZhbHNlIAovU00gMC4wMTk5OCAKL1RS
IC9JZGVudGl0eSAKPj4gCmVuZG9iagoxIDAgb2JqCjw8IAovRCBbIDExIDAgUiAvWFlaIG51
bGwgbnVsbCBudWxsIF0gCj4+IAplbmRvYmoKMiAwIG9iago8PCAKL0QgWyAxMSAwIFIgL1hZ
WiBudWxsIG51bGwgbnVsbCBdIAo+PiAKZW5kb2JqCjMgMCBvYmoKPDwgCi9EIFsgMTEgMCBS
IC9YWVogbnVsbCBudWxsIG51bGwgXSAKPj4gCmVuZG9iago0IDAgb2JqCjw8IAovTGltaXRz
IFsgKEYpKFAuMSldIAovTmFtZXMgWyAoRikyIDAgUiAoTCkzIDAgUiAoUC4xKTEgMCBSIF0g
Cj4+IAplbmRvYmoKNSAwIG9iago8PCAKL0tpZHMgWyA0IDAgUiBdIAo+PiAKZW5kb2JqCjYg
MCBvYmoKPDwgCi9Qcm9kdWNlciAoQWNyb2JhdCBEaXN0aWxsZXIgNC4wNSBmb3IgU3BhcmMg
U29sYXJpcykKL0NyZWF0b3IgKEZyYW1lTWFrZXIgNi4wKQovTW9kRGF0ZSAoRDoyMDA0MDIw
MjExMjc1MSkKL0NyZWF0aW9uRGF0ZSAoRDoyMDAzMDYyNDE2MTM0NykKPj4gCmVuZG9iago3
IDAgb2JqCjw8IAovVHlwZSAvUGFnZXMgCi9LaWRzIFsgMTEgMCBSIF0gCi9Db3VudCAxIAo+
PiAKZW5kb2JqCnhyZWYKMCA4IAowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMTYyMjMgMDAw
MDAgbiAKMDAwMDAxNjI4MSAwMDAwMCBuIAowMDAwMDE2MzM5IDAwMDAwIG4gCjAwMDAwMTYz
OTcgMDAwMDAgbiAKMDAwMDAxNjQ4MiAwMDAwMCBuIAowMDAwMDE2NTIyIDAwMDAwIG4gCjAw
MDAwMTY2ODUgMDAwMDAgbiAKdHJhaWxlcgo8PAovU2l6ZSA4Ci9JRFs8YmUxYWMwOWNjMzI2
N2Y1Njc1NzY0MjY3NGUzYjJkNTE+PGJlMWFjMDljYzMyNjdmNTY3NTc2NDI2NzRlM2IyZDUx
Pl0KPj4Kc3RhcnR4cmVmCjE3MwolJUVPRgo=
--------------030100080601070206030203--

From: Charles Dawson <chas@cadence.com>
To: PTF-bugs <ptf-bugs@boyd.com>
Cc:
Subject: errata/341: problems with passed proposal
Date: Wed, 18 Feb 2004 10:30:00 -0500

Hi All,

Well, now that we have passed this one, we have found
more problems (of course). They are:

Make the following changes to section 26.6.3:

- Rename the memory solid enclosure as reg array
- Label the one to many transition from scope to
memory with vpiMemory

Make the following changes to section 26.6.19:

- Remove the memory solid enclosure in the unnamed
dotted enclosure accessed via vpiArgument.

Change the passed proposal to put vpiIsMemory on
the vpiRegArray definition in 26.6.7 instead of
in 26.6.9.


--
Charles Dawson
Senior Member of Consulting Staff - Project Lead
NC-Verilog Team
Cadence Design Systems, Inc.
270 Billerica Road
Chelmsford, MA 01824
(978) 262 - 6273
chas@cadence.com


From: Shalom Bresticker <Shalom.Bresticker@motorola.com>
To: ptf-bugs@boyd.com
Cc:
Subject: errata/341: How are two dimensional arrays of regs to be treated in VPI?
Date: Sun, 22 Feb 2004 17:36:37 +0200

This is a multi-part message in MIME format.
--------------48AD87B46DA5D4FCED2CD952
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

This is an attempt to enter the corrected diagram into the database.

Shalom
--------------48AD87B46DA5D4FCED2CD952
Content-Type: application/pdf;
name="PTF-341_proposal.pdf"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="PTF-341_proposal.pdf"

JVBERi0xLjIKJeLjz9MNCjggMCBvYmoKPDwgCi9MaW5lYXJpemVkIDEgCi9PIDExIAovSCBbIDEw
MzAgMTk3IF0gCi9MIDE3MDM2IAovRSAxNjI4MSAKL04gMSAKL1QgMTY3NTkgCj4+IAplbmRvYmoK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB4cmVmCjggMjkgCjAwMDAwMDAwMTYgMDAwMDAgbiAKMDAwMDAwMDkyNCAwMDAwMCBuIAowMDAw
MDAwOTkyIDAwMDAwIG4gCjAwMDAwMDEyMjcgMDAwMDAgbiAKMDAwMDAwMTM4MSAwMDAwMCBuIAow
MDAwMDAxNTE3IDAwMDAwIG4gCjAwMDAwMDE5NzMgMDAwMDAgbiAKMDAwMDAwMjI2MSAwMDAwMCBu
IAowMDAwMDAyNTQ1IDAwMDAwIG4gCjAwMDAwMDI2ODYgMDAwMDAgbiAKMDAwMDAwNDg4MSAwMDAw
MCBuIAowMDAwMDA2OTI3IDAwMDAwIG4gCjAwMDAwMDcxODUgMDAwMDAgbiAKMDAwMDAwNzUxOSAw
MDAwMCBuIAowMDAwMDA4NTc4IDAwMDAwIG4gCjAwMDAwMDg2NjAgMDAwMDAgbiAKMDAwMDAwODg3
NyAwMDAwMCBuIAowMDAwMDEyMzk3IDAwMDAwIG4gCjAwMDAwMTI3NTIgMDAwMDAgbiAKMDAwMDAx
MzEwNyAwMDAwMCBuIAowMDAwMDEzNjYzIDAwMDAwIG4gCjAwMDAwMTM4NzUgMDAwMDAgbiAKMDAw
MDAxNTE1MCAwMDAwMCBuIAowMDAwMDE1MjYwIDAwMDAwIG4gCjAwMDAwMTU1NDMgMDAwMDAgbiAK
MDAwMDAxNTc3NSAwMDAwMCBuIAowMDAwMDE2MTQyIDAwMDAwIG4gCjAwMDAwMDEwMzAgMDAwMDAg
biAKMDAwMDAwMTIwNyAwMDAwMCBuIAp0cmFpbGVyCjw8Ci9TaXplIDM3Ci9JbmZvIDYgMCBSIAov
Um9vdCA5IDAgUiAKL1ByZXYgMTY3NTAgCi9JRFs8YmUxYWMwOWNjMzI2N2Y1Njc1NzY0MjY3NGUz
YjJkNTE+PGJlMWFjMDljYzMyNjdmNTY3NTc2NDI2NzRlM2IyZDUxPl0KPj4Kc3RhcnR4cmVmCjAK
JSVFT0YKICAgICAKOSAwIG9iago8PCAKL1R5cGUgL0NhdGFsb2cgCi9QYWdlcyA3IDAgUiAKL05h
bWVzIDEwIDAgUiAKPj4gCmVuZG9iagoxMCAwIG9iago8PCAKL0Rlc3RzIDUgMCBSIAo+PiAKZW5k
b2JqCjM1IDAgb2JqCjw8IC9TIDM2IC9FIDk5IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGgg
MzYgMCBSID4+IApzdHJlYW0NCkiJYmBgkGZgYGFjAAKrKQzYAAeUFgBiCShmYAhk4GGZYC5ecJ5n
g02L+lpugb+2CowcvfmCikKyG5q9FsjyLJgu+ACqlZGBwW4WkGYFMrUBAgwASQUOXQplbmRzdHJl
YW0KZW5kb2JqCjM2IDAgb2JqCjg3IAplbmRvYmoKMTEgMCBvYmoKPDwgCi9UeXBlIC9QYWdlIAov
UGFyZW50IDcgMCBSIAovUmVzb3VyY2VzIDEyIDAgUiAKL0NvbnRlbnRzIDE4IDAgUiAKL0Nyb3BC
b3ggWyA5MCAwIDcwMiA3OTIgXSAKL01lZGlhQm94IFsgMCAwIDc5MiA3OTIgXSAKL1JvdGF0ZSAw
IAo+PiAKZW5kb2JqCjEyIDAgb2JqCjw8IAovUHJvY1NldCBbIC9QREYgL1RleHQgXSAKL0ZvbnQg
PDwgL0YxIDE1IDAgUiAvRjMgMjMgMCBSIC9GNSAzMiAwIFIgL0Y3IDI2IDAgUiA+PiAKL0V4dEdT
dGF0ZSA8PCAvR1MxIDM0IDAgUiA+PiAKPj4gCmVuZG9iagoxMyAwIG9iago8PCAvRmlsdGVyIC9G
bGF0ZURlY29kZSAvTGVuZ3RoIDM4MiA+PiAKc3RyZWFtDQpIiVSST2+CQBDF736KOdr0wA7yRxND
0mibeLBtqu0d2MGQ6EIWPPjty9uxJj0wefx2ZljeTLTZbXeuHSn69F19kJGa1lkvQ3f1tVAlp9YR
x2Tbery/hVhfyp6iqfhwG0a57FzT0Xo9i76mw2H0N5q/+LY874/P5omiD2/Ft+5E8yN//0zgcO37
s1zEjWSoKMhKM4s2+7J/Ly9C0aM2HPD9k52VoS9r8aU7Ca0NF7TmVUHi7P+zWZxqSdXou+ZqMNm2
mEAMHSt4A1hALxQkAAl0CCZPAVLoVDM2ABl0piBk5NC5lsQAS+ilZuQAK+gQTGwASuhSMxiggq60
xwqghq4VZAAW2ioIPQRatEcoaaBDMAluygZWGc1ADw7eqR85/pZhBasfKa7OsILvfrwCwApWP7Il
AKxg9SPFPRhWsPqR4B4MK/juRyiBFax+JBgDxqdh6jEZNI3yb2aYKpbssRX11ftpYcImhl3BcrRO
Hsvadz12Ac/sV4ABADlZu3UKZW5kc3RyZWFtCmVuZG9iagoxNCAwIG9iago8PCAKL1R5cGUgL0Zv
bnREZXNjcmlwdG9yIAovQXNjZW50IDcxMiAKL0NhcEhlaWdodCA3MTIgCi9EZXNjZW50IC0yMzIg
Ci9GbGFncyA0IAovRm9udEJCb3ggWyAtMjIyIC0yNTAgMTAwNiA5MjIgXSAKL0ZvbnROYW1lIC9B
T0lPQ0MrQXJpYWxNVCAKL0l0YWxpY0FuZ2xlIDAgCi9TdGVtViA4OCAKL1hIZWlnaHQgNTkyIAov
Q2hhclNldCAoL28vUi95L24vbC9wL2UvUC9mL0kveC9yL3NwYWNlL2gvZC9pL1cvYS9ML3QvZy9N
L3Uvdi9tKQovRm9udEZpbGUzIDE3IDAgUiAKPj4gCmVuZG9iagoxNSAwIG9iago8PCAKL1R5cGUg
L0ZvbnQgCi9TdWJ0eXBlIC9UeXBlMSAKL0ZpcnN0Q2hhciAxIAovTGFzdENoYXIgMjUgCi9XaWR0
aHMgWyA4MzMgNTU2IDU1NiA1NTYgMjIyIDU1NiAzMzMgNTU2IDI3OCA1NTYgNTAwIDUwMCA1NTYg
MjIyIDU1NiAyNzggMjc4IAo3MjIgNTU2IDU1NiA2NjcgMjc4IDUwMCA4MzMgOTQ0IF0gCi9FbmNv
ZGluZyAxNiAwIFIgCi9CYXNlRm9udCAvQU9JT0NDK0FyaWFsTVQgCi9Gb250RGVzY3JpcHRvciAx
NCAwIFIgCi9Ub1VuaWNvZGUgMTMgMCBSIAo+PiAKZW5kb2JqCjE2IDAgb2JqCjw8IAovVHlwZSAv
RW5jb2RpbmcgCi9EaWZmZXJlbmNlcyBbIDEgL20gL28gL2QgL3UgL2wgL2UgL3IgL2cgL3NwYWNl
IC9hIC95IC92IC9wIC9pIC9MIC9mIC90IC9SIC9uIC9oIAovUCAvSSAveCAvTSAvVyBdIAo+PiAK
ZW5kb2JqCjE3IDAgb2JqCjw8IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggMjEwMyAvU3Vi
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
xX7RKAtglc9CvIQmmmyxoj0zdWa1qmZ5fGmyVbyiyVYMAbB5Eco+fXKyjYgbN+f/1HUtcqqo9/s8
9wV6D5Gt3Z6o8tyXcJrD/m/Zp0ON4W7FOSc+n/lShfoUq5FYkQ56DnR8v9w1LybTybSYzRfLM6qD
7U3f+uacI36muCmhRsslakSB1Mf1/MVksb1Bxkxz/gUy10wWUykoSODYoKL8QUUdSCR78chVHCSN
K4mfUeRrMaOKxu2Ms3mDF0wIUZTOoQovHdsslsX2xmCy65sJh1ScT2f0C/zIZ614OVlfCJdrNpdX
QtYH5M+3Hc5pM1knqm2Wm62m8/LZVvumyCrPiuIyq3pVXBbrzfXqi+Iq+/B6NV1mBdNlkvLN5upq
NV1NkqRtJm84BXhf9joeRrZZrzcXs2ryploXWxpsm1ezt1W1IP90M6nI53UxK9bkVxubojrbnP/2
9VYriF5V55OXxLGZrs5W16vpxRZTWGi+rMgZaAvNRYXADCynwCqKCGKX1B1C+nE9La6q1eV0Ur0s
psuanb19B+8mV7Pq9XJ1vqxer66v4eL0d+vLap958ntK3cgXlaT3q4L8RBS/p8AqpP+AgCx+CTUz
FjmfrraGN469uGbvXYPw/1AU1Yzo8HNw5o9fv/367TfVm8mawquuivfNJad5SB8bnrFRgaZ5VUmG
3+Zj/qsAAwByzi54CmVuZHN0cmVhbQplbmRvYmoKMTkgMCBvYmoKPDwgCi9UeXBlIC9Gb250RGVz
Y3JpcHRvciAKL0FzY2VudCA3MTIgCi9DYXBIZWlnaHQgNzEyIAovRGVzY2VudCAtMjMyIAovRmxh
Z3MgNjggCi9Gb250QkJveCBbIC0yNjEgLTI1MCAxMDU5IDkzNiBdIAovRm9udE5hbWUgL0FPSU9D
SCtBcmlhbC1JdGFsaWNNVCAKL0l0YWxpY0FuZ2xlIC0xMiAKL1N0ZW1WIDg4IAovWEhlaWdodCA1
OTIgCi9DaGFyU2V0ICgvby9jL3AvZS94L3IvcykKL0ZvbnRGaWxlMyAyMSAwIFIgCj4+IAplbmRv
YmoKMjAgMCBvYmoKPDwgL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCAyNjAgPj4gCnN0cmVh
bQ0KSIlckE1vgzAMhu/8Ch87TVOADtgBRZpaVeLQbRrd7mliUCQIUQiH/vvFgVXaDrHsx/HHa3Zo
jo3RHtiHm2SLHjptlMN5WpxEuGKvDWQ5KC39FkUrR2GBheL2NnscG9NNUNcJ+wzJ2bsb7F6dFsNT
48Wg5fnymD4Ae3cKnTY97C7Z13cA7WLtgCMaDylwDgq7hB3Owr6JEYH9bxHz2bbApHC2QqITpkeo
04wHU3FAo/7mknKtuHZruH2NJq32PICc/GjSMoI9+c8rOBEoyC9WUBAoyS/XHi8Eqm0+gZwnYY3f
gbQRnesuTC7OBc3xplEuCdMG72e3kyUd9JIfAQYAYjR/CwplbmRzdHJlYW0KZW5kb2JqCjIxIDAg
b2JqCjw8IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggOTY4IC9TdWJ0eXBlIC9UeXBlMUMg
Pj4gCnN0cmVhbQ0KSIlcUn9MW1UYfa/lvaHWbvStFfrm65WIbsCmOMPA0DACxTLH76ISJ1uhr+Ox
rsXXroRMU5P5IxXGnGPgGBvo0LoNcWyLSAKMuU2YjjTSRYkRMXl1zswM8Z/vjWsyH2Ua4/3jJPfc
+53z3fNdkohTESRJGvJKi0rzrWl5omB3rS/y2V1CXbFt6SRLTiBklpTXqOSH1XJiXECjkjmNAR/B
bYtDizkU10vebWlZRs0K+GMl3E24tNigI+JI8rp0606+p7FZFHbW+9DaunUoIzs7I30JN8YwM4ab
YpgVw2yU5/DU8qiy2evjd3tRkbvOIzZ6RLuPd2xAKM/lQhVLal5UwXt50a+wsZ6R4EV25BPtDn63
XdyFPE5kq+dRscft8TU38ij/norgcacjkd8pKPIi70CCG/mUe1WVqEyxcPuQ3e1Atn9lSp1OoY6P
kbzLyzfVK0X3DIttaDmnf7b/y05ZBUQhUUaUE5WEjagm4pWkiTiigjhHYNJJDqj0qhdwpnYiEIZp
/0f++Yju0i9wUmJGZBbK9VXNNTnPsD7zYVg51gNueMLE/Ng3sy/VxIxI71JgfGQwF9da8XaciJOl
LQu3o1fAOMxpAxGwhCEjTI5LMDGnlp+CAn16bY6fZ0uqRuc7Wg+2HjbJOrqt50DPWWO0BhLwRmzL
whWKzKM3ciEOWAmI6V4O3wJOP9UzdmOB/fJyw6aDptZXW15/57V4bSAsp4bJMQnCknoMqvUYzRcq
ZetBB4lQBWzmLF6FrSn4SWzhpHY9qL6Gx2D1z2ctZqy24Mexxp3WCRynxYV+KI3IyROlEZ1cJTEz
+/BLeom+AgPUfrrk1LAwxYIBVkEKlAGXO51mrXFu22EK7qeYm13fUtl0H/5Kz8yc6pwMXeQufjw0
fJX9/lOrZXMNLsEJe3e1nXjFxNx0DLScGzVqUa9frpgLNJ1u0vXLDzGT/YY5eggc3T98ePl4KOlE
9+ej4+yx7rcCXSbm/TOzFDPZsafpkJc127IEf8zxkw/+pMz00qSUt+sGo3tn4dnoixITHQSLHlve
BHNghGVmIGXqp+9+23w6/bxpS6jhyHnjyf7PvuGY60fng2sPmJamtuZtrA3lspjb9nRx5rXGqENp
8mrjF3teNlY/734O64K3Q5x2Qmm3q4kMymfUQQOoadgA5R1ih3hUSLqQTP1OYwO0Kx+ii8IEjVNx
ZSD0xnHxQtL2X6l1NBjwIUor9t3Z0YmdnVDQQsNC+1/XOlb8h4pfpu6L3C89EGnXaKT3NA/K46vl
rfq/BRgAderNawplbmRzdHJlYW0KZW5kb2JqCjIyIDAgb2JqCjw8IAovVHlwZSAvRW5jb2Rpbmcg
Ci9EaWZmZXJlbmNlcyBbIDEgL3MgL2MgL28gL3AgL2UgL3ggL3IgXSAKPj4gCmVuZG9iagoyMyAw
IG9iago8PCAKL1R5cGUgL0ZvbnQgCi9TdWJ0eXBlIC9UeXBlMSAKL0ZpcnN0Q2hhciAxIAovTGFz
dENoYXIgNyAKL1dpZHRocyBbIDUwMCA1MDAgNTU2IDU1NiA1NTYgNTAwIDMzMyBdIAovRW5jb2Rp
bmcgMjIgMCBSIAovQmFzZUZvbnQgL0FPSU9DSCtBcmlhbC1JdGFsaWNNVCAKL0ZvbnREZXNjcmlw
dG9yIDE5IDAgUiAKL1RvVW5pY29kZSAyMCAwIFIgCj4+IAplbmRvYmoKMjQgMCBvYmoKPDwgL0Zp
bHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCAzNDI4IC9TdWJ0eXBlIC9UeXBlMUMgPj4gCnN0cmVh
bQ0KSIlkVGlUFNkVrqK7qlC0VWpKnS7tqnEjbsAcOSyaqOioiMOi4MacCAgN9EjT0N0sLUIGcImn
ZRGEUaGgsREEwVYQosc4E8RlTBQYlxEjbvyYgWRGnWQy9+HrxBRochI975xb57z71Xe/+733Lkko
XQiSJN8PDFsb9tG6+ZE6vdYUqs3cYNDHpoRHhESOJH3RJALxJJrmgqYp0PtKNH3cZLwEF73c89KF
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
VC+nNsj1Zu0uHf2R/YswAx1Pu4gMviRQnOQWD0vIhEon1jiZqDCro2KpCteiUs36wg10blmoj4Gr
ZAeN7pSguccyv712/NTpE+rECKQkqt9lXFyToMfTYBp1F4K/KROgSlbrrOFcqkB7Q4CoiQIWnTc3
l7Wug6Rh6cQ2UT8kCWNlXU5nKEze+zQW+dy2ncbqstpKImQkIy4lQ2OIbG0BpJwOVpml2fJxsyrY
3eAm7opYdKZZt8nJtH2YiDcng11We8jscqq8noZWUcSy6GyNY4crD5jhMRM5OWmvHpDiHlm7HF4X
ols6XaHu+kkcnsIizmfdWVGj3VspMtOdtMfp+qFJXNwBoWLkMqlg45RUiyZDVmLSZ2+kqdzy3Vwx
rSkzbi8MGYJHb/oe9DDUbMgWtsi8za4jgWd38XJW7a5ao5llErHpNSiWmQ8bOwgWnoZOkt0mFp3Y
68l3FUQpfrSHhHEhyRkO7jmlwlx4hbRSQrXWkkLjGXI4JzAybjgGx3LofpPHztOgkuMzw4yMFRhE
JOsIJxf2wJYA0cg8rOEpHnJIWc8jmHz5s8/V3zROv0C3u1ztvSuOz8QoJQ2rGU1EVoYgjEc36+xp
kWmjV5BUIstem4WmeJvFQv6KCufQdCcuPwRGu1yItw8/rEd/WYp6tjS26yU+ussRE8O3xLws7IuH
IeUfAgwAxpS6eQplbmRzdHJlYW0KZW5kb2JqCjI1IDAgb2JqCjw8IAovVHlwZSAvRm9udERlc2Ny
aXB0b3IgCi9Bc2NlbnQgNTkyIAovQ2FwSGVpZ2h0IDcxMiAKL0Rlc2NlbnQgLTIzMiAKL0ZsYWdz
IDYgCi9Gb250QkJveCBbIC0xNjcgLTI1MCAxMDA5IDg3OCBdIAovRm9udE5hbWUgL0FPSU9ESytU
aW1lc05ld1JvbWFuUFNNVCAKL0l0YWxpY0FuZ2xlIDAgCi9TdGVtViA4MSAKL1hIZWlnaHQgNDcy
IAovQ2hhclNldCAoL28vYy9SL2NvbW1hL3kvbi9wL2wvZS9TL04vei9oeXBoZW4vZi9UL3Blcmlv
ZC9yL3NwYWNlL2gvc2l4L2Qvcy9zZXZlbi9pXAovVy9hL3Qvai9nL00vdS9vbmUvay9BL2ZpL3Yv
dHdvL20vYi93KQovRm9udEZpbGUzIDI0IDAgUiAKPj4gCmVuZG9iagoyNiAwIG9iago8PCAKL1R5
cGUgL0ZvbnQgCi9TdWJ0eXBlIC9UeXBlMSAKL0ZpcnN0Q2hhciAxIAovTGFzdENoYXIgNDAgCi9X
aWR0aHMgWyA3MjIgNTAwIDI3OCA0NDQgMzg5IDUwMCA2MTEgNTAwIDUwMCAyNzggNDQ0IDUwMCA1
MDAgMjc4IDg4OSA3NzggMzMzIAo1MDAgNDQ0IDUwMCA1MDAgOTQ0IDUwMCAyNzggNDQ0IDcyMiAz
MzMgMjUwIDI1MCA1MDAgMjUwIDMzMyA1MDAgCjY2NyA3MjIgNTU2IDUwMCA1MDAgNTAwIDU1NiBd
IAovRW5jb2RpbmcgMjggMCBSIAovQmFzZUZvbnQgL0FPSU9ESytUaW1lc05ld1JvbWFuUFNNVCAK
L0ZvbnREZXNjcmlwdG9yIDI1IDAgUiAKL1RvVW5pY29kZSAyNyAwIFIgCj4+IAplbmRvYmoKMjcg
MCBvYmoKPDwgL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCA0ODIgPj4gCnN0cmVhbQ0KSIls
k81rpEAQxe/+FX3Msge7ys+BQdhMEphDsiGT3buj5SDEVtRhyX+//bpMIJCDxfPZX+9ndXw43h1d
v5r4eR6bk6ym6107yzJe50bMWS69M8Sm7Zt1ewu1GerJxH7y6X1ZZTi6bjT7fRS/+I/LOr+bm9d+
kOVJ/r2MQ+2eT4+vP+0PE/+eW5l7d/Hf6c9fb5yu0/Qmg7jVWFNVppUuig+P9fRUD2Lib1YJQ2g7
xtjKMtWNzLW7iNlbqsyey8qIa79+i5JSp5w7fdexWmx6X3mDoUOx+QOMBDoUW6QwUuhUR2QwMuhM
RyQwcuhQbEIwCuhQbBbWKKFLXaOEsYPeqcEwauhajV8wztBnNcIuDXSj2+YwWuhWDQtDoEWn7GB0
0J2mvfMGWa9D8SOCARSkPAqcg4CClEeBNQgoSHnkCEdAQRsPICSgIOWRIy0BBSmPrIABFKQ88mAA
BW08DjCAgpRHgfgEFKQ8ijAFKGjjgfgEFKQ8GPEJKEh5cDgYUNDG4xYGULDGZ2zLoXW2+Pi3jOSs
8TPwYCRnjZ8iPiM5a/wM/4WRnDV+EqYgOWvaBCdFb2p5uPW9F/k+/WhItCxu1WfzN9d59vciXL1w
JdD5vZPP2zmNExodT/RfgAEA9fbwfQplbmRzdHJlYW0KZW5kb2JqCjI4IDAgb2JqCjw8IAovVHlw
ZSAvRW5jb2RpbmcgCi9EaWZmZXJlbmNlcyBbIDEgL04gL28gL3QgL2UgL3MgL29uZSAvVCAvaCAv
YiAvaiAvYyAvdiAvcCAvaSAvTSAvbSAvciAveSAvYSAvbiAvZCAKL1cgL2cgL2wgL3ogL3cgL2Yg
L3NwYWNlIC9wZXJpb2QgL2sgL2NvbW1hIC9oeXBoZW4gL3UgL1IgL0EgL1MgL3R3byAKL3NpeCAv
c2V2ZW4gL2ZpIF0gCj4+IAplbmRvYmoKMjkgMCBvYmoKPDwgL0ZpbHRlciAvRmxhdGVEZWNvZGUg
L0xlbmd0aCAxMTgzIC9TdWJ0eXBlIC9UeXBlMUMgPj4gCnN0cmVhbQ0KSIlUUg1MU1cYfa/ta9HV
IrQPTR+v7xaXzQVlcRgmEqdM0olacPy4gfuh2od0Ky22FYJzuimK8CgWJSCdU0RxGucsbnFmwUSN
Rv5UYGxmi4v7n5vLjIvLd/U2cbfVLdt7eSe55957zved77GMRsWwLGvKLcwvzFucnutzOdyzn/e6
nfaSGJ+FkxgssDhVhUU1NmmwRZ9Cckjr/S33F3KWbvaBojxEvQ5uJsKDpKFUzZfJjIZlJ7779a/F
3pp6n2ttVQDNXPMUmpOdPWdWDDPjmBXHZ+M4L47ZKNfpXS2j4np/QK72o3zPGq+vxutzBGRnBkK5
bjcqiqn5UZHsl321lI3Xi1x+5EABn8MpVzt8byJvJSqpkpHd6/EG6mtktPiRisvryUA+ea2Lyvtk
J3J5UICeKy1GK6iFJ4AcHicq+VemsLLStUaOk7LbL9dV0UuPDO0lKJbRP4v/pUYflklkjMw0xsxk
MDamgFnBFDPljJ4mzagZjpnO+Jmb7CvsXva+ap2qX0XUhchAXwVEdhxE9XgKiCASUWtQwITXgZY9
RYliuoNDYOJJr3bfsZ7usZGEseGfb0CS+acCUJH55bZNq8stReXvLmp0gfj29InQkZPDwqErW+e2
SM22VyvSnyEiMa1c9I41Aa/XGjaDFsK3wUrVT0MGvAiCGrfhPn5H99ZPavoSzjntB5cJpEshF5cu
CeUfWC6RtDPABIYEEG/+ATMgLf0Xwq0r2V76utQU5L4ItcPUW8Jou31DUCI2EuFBd23X+78pZNKG
OoUwmflVo+OWuKn1NoSp6YcgUNMM9Wcwn2+t3b36sJxQenLQPyxAlwIXR65sv7x+SIK0MsL0LBeI
mDGTzCBpt54Grvd86NynUrCJy92+hUxNF2xbBvc2SWCDCE90CxvqZykwae9+BZgfLn9ky7MYcEl3
LR6AWTRaM84BcyxeMx4I0kqiAxxIWpDwABeMDoD5XgWp1hJjdCPXpCU83sgRNw3qLhhvwJS77HHa
tQNS1XgyZPP+hrdWLRMWvDEySL1/18Ls1lKYQ14SyLxcYiaoYvfLPWUSmXwe9NtOC7DoFBiOdUjk
e8jirzafPDsidH+1lXCtkgG30OoW3N1clzxEZ5z38DOlGq8b+4dwmI+GKRPSGa9f23Wwo8dytCuy
/4TwefPKTIlE6E5QNxzq7TxiOb4n0nNCmFBeKJBIP+W/1V1QwEqeyyor9QYsBza5Lj0pVNq3LSyU
mrTG/jGdAWo3gwbGQcP20V+gDazqPtjHkwYokL+BnNuQQnudlgkWsoQsn0esJNEC1gYe2EtnLo9d
KJ1BdEtfsy8t6AeVxbCTNpAOaqKGxOSrIBpHwZECc3XweOufP/Ye3tjQYTFGToGe6/Kv7agWVniq
yjyxKkYnaNBhnYFUAptTe89Zl9yOjxoj7bRpKIu+x6XXrGp0C7WbWkJ+yVjTiThjpHFfT+MJAZ74
4GtI+FhqC4fCwZ2wDDdOJ2laoo9qYlNLxBrO4Dt0r6KTVHZCnqKFO23RwT26/1AJcKc9OtIxCdjJ
ID4GbKdeD+Iu/ZQWvQGfNWGe/1uAAQAnkUJqCmVuZHN0cmVhbQplbmRvYmoKMzAgMCBvYmoKPDwg
Ci9UeXBlIC9FbmNvZGluZyAKL0RpZmZlcmVuY2VzIFsgMSAvdHdvIC9zaXggL3BlcmlvZCAvbmlu
ZSAvc3BhY2UgL00gL2UgL20gL28gL3IgL3kgXSAKPj4gCmVuZG9iagozMSAwIG9iago8PCAKL1R5
cGUgL0ZvbnREZXNjcmlwdG9yIAovQXNjZW50IDcxMiAKL0NhcEhlaWdodCA3MTIgCi9EZXNjZW50
IC0yMzIgCi9GbGFncyAyNjIxNDggCi9Gb250QkJveCBbIC0xNjcgLTI1MCAxMDA2IDkzOSBdIAov
Rm9udE5hbWUgL0FPSU9EQytBcmlhbC1Cb2xkTVQgCi9JdGFsaWNBbmdsZSAwIAovU3RlbVYgMTM3
IAovWEhlaWdodCA0NzIgCi9DaGFyU2V0ICgvby95L2UvcGVyaW9kL3NpeC9zcGFjZS9yL00vbmlu
ZS90d28vbSkKL0ZvbnRGaWxlMyAyOSAwIFIgCj4+IAplbmRvYmoKMzIgMCBvYmoKPDwgCi9UeXBl
IC9Gb250IAovU3VidHlwZSAvVHlwZTEgCi9GaXJzdENoYXIgMSAKL0xhc3RDaGFyIDExIAovV2lk
dGhzIFsgNTU2IDU1NiAyNzggNTU2IDI3OCA4MzMgNTU2IDg4OSA2MTEgMzg5IDU1NiBdIAovRW5j
b2RpbmcgMzAgMCBSIAovQmFzZUZvbnQgL0FPSU9EQytBcmlhbC1Cb2xkTVQgCi9Gb250RGVzY3Jp
cHRvciAzMSAwIFIgCi9Ub1VuaWNvZGUgMzMgMCBSIAo+PiAKZW5kb2JqCjMzIDAgb2JqCjw8IC9G
aWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggMjkzID4+IApzdHJlYW0NCkiJVJFNb4MwDIbv/Aof
O01TAqW0SAhpazeJQ7dptLsHYlAkCFGAQ//94sAq9ZBXbx47H7bZsTgVWk3Avu1QlzhBo7S0OA6z
rREqbJWGMAKp6mndea17YYC5w+VtnLAvdDNAlgXsxwXHyd5g82qV6F7ehk6eL8/8CdiXlWiVbmFz
Ca+/DpSzMR32qCfgkOcgsQnY8SzMp+gR2OMFPhqujw8SRyNqtEK3CBkPcydVDqjlYywI1yNVs+zX
XC98G+UOROSjBSQEtuS98OidQEw+XjJSAjvyuyWDE0jIe+HxicCevBee7AgcyB8W4DNS8ukCPggI
8l743n+sWqsi4J51xf1XQXXSAO7NqmdrXR/9lHwLqV1K432QZjDUHVrBnwADACczjxIKZW5kc3Ry
ZWFtCmVuZG9iagozNCAwIG9iago8PCAKL1R5cGUgL0V4dEdTdGF0ZSAKL1NBIGZhbHNlIAovU00g
MC4wMTk5OCAKL1RSIC9JZGVudGl0eSAKPj4gCmVuZG9iagoxIDAgb2JqCjw8IAovRCBbIDExIDAg
UiAvWFlaIG51bGwgbnVsbCBudWxsIF0gCj4+IAplbmRvYmoKMiAwIG9iago8PCAKL0QgWyAxMSAw
IFIgL1hZWiBudWxsIG51bGwgbnVsbCBdIAo+PiAKZW5kb2JqCjMgMCBvYmoKPDwgCi9EIFsgMTEg
MCBSIC9YWVogbnVsbCBudWxsIG51bGwgXSAKPj4gCmVuZG9iago0IDAgb2JqCjw8IAovTGltaXRz
IFsgKEYpKFAuMSldIAovTmFtZXMgWyAoRikyIDAgUiAoTCkzIDAgUiAoUC4xKTEgMCBSIF0gCj4+
IAplbmRvYmoKNSAwIG9iago8PCAKL0tpZHMgWyA0IDAgUiBdIAo+PiAKZW5kb2JqCjYgMCBvYmoK
PDwgCi9Qcm9kdWNlciAoQWNyb2JhdCBEaXN0aWxsZXIgNC4wNSBmb3IgU3BhcmMgU29sYXJpcykK
L0NyZWF0b3IgKEZyYW1lTWFrZXIgNi4wKQovTW9kRGF0ZSAoRDoyMDA0MDIwMjExMjc1MSkKL0Ny
ZWF0aW9uRGF0ZSAoRDoyMDAzMDYyNDE2MTM0NykKPj4gCmVuZG9iago3IDAgb2JqCjw8IAovVHlw
ZSAvUGFnZXMgCi9LaWRzIFsgMTEgMCBSIF0gCi9Db3VudCAxIAo+PiAKZW5kb2JqCnhyZWYKMCA4
IAowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMTYyMjMgMDAwMDAgbiAKMDAwMDAxNjI4MSAwMDAw
MCBuIAowMDAwMDE2MzM5IDAwMDAwIG4gCjAwMDAwMTYzOTcgMDAwMDAgbiAKMDAwMDAxNjQ4MiAw
MDAwMCBuIAowMDAwMDE2NTIyIDAwMDAwIG4gCjAwMDAwMTY2ODUgMDAwMDAgbiAKdHJhaWxlcgo8
PAovU2l6ZSA4Ci9JRFs8YmUxYWMwOWNjMzI2N2Y1Njc1NzY0MjY3NGUzYjJkNTE+PGJlMWFjMDlj
YzMyNjdmNTY3NTc2NDI2NzRlM2IyZDUxPl0KPj4Kc3RhcnR4cmVmCjE3MwolJUVPRgo=


--------------48AD87B46DA5D4FCED2CD952--

From: Shalom Bresticker <Shalom.Bresticker@motorola.com>
To: ptf-bugs@boyd.com
Cc:
Subject: Re: errata/341: PROPOSAL - How are two dimensional arrays of regs to be
treated in VPI?
Date: Sun, 22 Feb 2004 18:00:10 +0200

Minor quibbles:

> - Immediately after vpiModPathHasIfNone (line 482):
>
> #define vpiIsMemory 73 /* A reg MDA is a memory */

"MDA" is not used anywhere in LRM. Should be "multidimensional array", as in
"#define vpiMultiArray 59 /* Object is a multidimensional array */"

Should be
Should be after the lines:

"#define vpiIndexedPartSelectType 72 /* Indexed part-select type */
#define vpiPosIndexed 1 /* +: */
#define vpiNegIndexed 2 /* -: */"


> See the diagrams at
> http://www.verilog-2001.com/pli_errata/
> See 341_vpi_memory.pdf

That is not the updated diagram.


> http://boydtechinc.com/cgi-bin/issueproposal.pl?cmd=view&database=default&pr=341

--
Shalom Bresticker Shalom.Bresticker@motorola.com
Design & Reuse Methodology Tel: +972 9 9522268
Motorola Semiconductor Israel, Ltd. Fax: +972 9 9522890
POB 2208, Herzlia 46120, ISRAEL Cell: +972 50 441478

[x]Motorola General Business Information
[ ]Motorola Internal Use Only
[ ]Motorola Confidential Proprietary




Fix replaced by etf@boyd.com on Wed Feb 25 14:41:54 2004
In order to reconcile a 2 dimensional array of regs,
formerly known as a memory, with arrays of regs with more
dimensions, I propose the following changes:

Make the following changes to section 26.6.1:

- Change the reference enclosure "memory" to "reg array"
- Add a "vpiMemory" label to the 1 to many iteration to
memory.

Make the following changes to section 26.6.3:
- Rename the memory solid enclosure as reg array
- Label the one to many transition from scope to
memory with vpiMemory.

Make the following changes to section 26.6.9:

- Change the definition enclosure "memory" to
a reference enclosure "reg array"
- Change the definition enclosure "memory word"
to a reference enclosure "reg"
- Add a label "vpiMemory" to the 1 to many iteration
from module and scope.
- Add a label "vpiMemoryWord" to the 1 to many iteration
from memory to memory word.
- Add a property to memory:

-> is a memory
bool: vpiIsMemory

- Remove the properties name and size from memory, as
they are duplicates of those in 26.6.7
- Remove the properties constant selection name, size,
and value from memory word, as they are duplicates of
those in 26.6.7.
- Replace the three notes with one that says:

The objects vpiMemory and vpiMemoryWord have been
generalized with the addition of arrays of regs. To
preserve backward compatibility, they have been
converted into methods which will return objects of
type vpiRegArray and vpiReg, respectively. See
section 26.6.7 for the definitions of regs and reg
arrays.

Make the following changes to section 26.6.19:

- Remove the memory solid enclosure in the unnamed
dotted enclosure accessed via vpiArgument

Make the following changes to section 26.6.25:

- Remove the 2 memory word reference enclosures.

Make the following changes to section 26.6.42:

- Remove the memory reference enclosure.

Make the following changes to section 26.6.43:

- Remove the memory reference enclosure.

Add the following to annex G:

- Immediately after vpiIndexedPartSelectType:

#define vpiIsMemory 73 /* TRUE for a one dimensional reg array */

Notes from proposer:

- The #define in the include file (annex G) may need
to be reconciled with other PTF items.


Unformatted


Hosted by Boyd Technology