Shabtay’s take 04/28 - Issues resolved.
Needs explanation in the mixed usage section and only requires spec review.
Committee agrees
Mixed SCE-MI 1.1/2.0 usage
a)
Firming up the seams between the new DPI-based features and the SCE-MI 1.1
features: restrictions on mixing etc.
b) Initialization and Creset in 1.1 -- how can 2.0 models be made compatible with
1.1 models utilizing these mechanisms?
Some
of this already covered by other discussions.
When
a 1.1 model is used in a 2.0 environment, this should work. A model may not mix
1.1 and 2.0 constructs. May use pure HDL constructs, i.e. no messaging
mechanisms.
2.0
models have time frozen rather than clock frozen.
As
soon as any 1.1 model exists in a run, all clocks must be sourced from SCE-MI
clocks.
At
highest level of hierarchy when there is an import/export construct, there can
be no SCE-MI 1.1 construct below that (except clock port) and visa versa.
John to create a set of rules for this.
No
SCE-MI 1.1 object should call any 2.0 feature and visa versa on the SW side.
JohnS> One of my AI's last week at the face to
face was to write up a formal requirement for preventing mixes of SCE-MI 1.1
constructs with SCE-MI 2 constructs in the same transactor and C models.
For
purposes of this description, the following definitions are given:
A
SCE-MI 1.1 HDL model is defined as a hierarchy with the following properties:
1.
At least one SCE-MI 1.1 message port or clock control macro (but not clock port
macro) is instantiated at the highest level of the hierarchy within the model.
2.
More SCE-MI 1.1 message ports or clock controls may be instantiated at lower
sub-hierarchies of the model.
A
SCE-MI 2.0 HDL model is defined as a hierarchy with the following properties:
1.
At least one SCE-MI 2.0 DPI function call us declared at the highest level of
the hierarchy within the model.
2.
More SCE-MI 2.0 DPI function calls may be declared at lower sub-hierarchies of
the model.
Requirements
for SCE-MI 2:
1.
No SCE-MI 1.1 models as defined above can contain any SCE-MI 2.0 function call
declarations or calls anywhere in their hierarchy.
2.
No SCE-MI 2.0 models as defined above can contain any SCE-MI 1.1 message port
or clock control macros anywhere in their hierarchy.
3.
No SCE-MI 1.1 callback functions can make direct calls to exported DPI calls.
4.
No SCE-MI 2.0 imported function calls can make calls to the SCE-MI 1.1 service
loop or to send on any of the input ports.
<End
JohnS
>Per
So
I noticed you used the convention proposed by Russ to use 2.0 to refer to the
features that are new in 2.0 and 1.1/1.x to refer to the old features that are
retained in SCE-MI 2.0 for backwards compatibility reasons, right? It would be nice to have a figure in the
preamble to the standard (one of the introductory sections,
that is) that shows the relationship between 1.1 and 2.0 . . .
<End
Per
>Russ
I
agree with this. We definitely need to talk about the SCEMI 1.1 clock macros
and their relationship to SCEMI 2.0, whether it's possible to have a SCEMI 2.0 emulatable testbench without them, etc.
<End
Russ
>Shabtay
Can
you explain the why SCE-MI 1.1 message port must be instantiated only at the
highest level of the hierarchy within the model and why DPI function call is
declared at the highest level of the hierarchy within the model?
>>JohnS
The
use of the term "model" is arbitrary but convenient.
The
more precise definition is "some level of hierarchy containing macros in itself or below cannot have DPI functions anywhere in itself
or below".
Similarly,
"some level of hierarchy containing DPI functions in itself
or below cannot have macros anywhere in itself or below.
This
forces macros to only exist in disjoint hierarchies from functions.
I'm
just conveniently labeling such hierarchies as "models" because that
is how we think of them.
<<End
JohnS
>>Per
John
said `at least one SCE-MI 1.1 message port/clock control macro' must be
instantiated at the highest level of the model.
He did not say that *all* message ports/clock control macros must be
instantiated at that level. Similarly for DPI. So
you can definitely have macros at any level of hierarchy below the top level of
the model. Again, similarly for a SCE-MI 2.0 DPI model.
<<End
Per
Shabtay? John clarified my "highest level" question
and I agree with him. The way I see it, I can create a single model
(transactor) and instantiate one SCE-MI 1.1 message port 5 levels down the
hierarchy. Independently of whether this makes much sense, it is still a
legitimate SCE-MI 1.1 use model. Correct? If not, I'd like to learn why not.
I
agree now with your more precise definition.
<End
Shabtay