Re: [sv-bc] Are modport port directions enforced?

From: Brad Pierce <Brad.Pierce_at_.....>
Date: Thu Mar 01 2007 - 13:52:24 PST
As I wrote in http://www.eda-stds.org/sv-bc/hm/5567.html , one
interpretation is that "every interface data object made available by a
modport is accessible with ref/inout semantics depending on its kind,
and the input/output qualifiers in the modport declaration are merely
restrictions".

I don't agree with that interpretation, but if it were so, then there
would be no difference between using an 'output' qualifier or a 'ref'
qualifier on a modport component of variable kind, hence "What would be
the point of using 'output' in a modport declaration versus simply
picking up the default ref/inout semantics for the kind of the data
object?"

-- Brad

-----Original Message-----
From: owner-sv-bc@eda.org [mailto:owner-sv-bc@eda.org] On Behalf Of
Francoise Martinolle
Sent: Thursday, March 01, 2007 9:33 AM
To: Jonathan Bromley; sv-bc@eda-stds.org
Subject: RE: [sv-bc] Are modport port directions enforced?

I think that there are differences, subtle but visible.

When you write to an output the write has to propagate up to the object
connected in the parent module instance. when you write to a ref port,
you are writing to the original object and that write is immediately
visible. Because there is a continuous assignment from the output port
to the connected object, there may or may not be an extra cycle
(depending if the continuous assignment for propagation is inlined with
the write operation or not).
If you write the output with a force statement, I think that only that
output is forced but not the object connected to it. That is not the
case for the ref port, the original object would be forced.

Francoise
    '

-----Original Message-----
From: owner-sv-bc@eda.org [mailto:owner-sv-bc@eda.org] On Behalf Of
Jonathan Bromley
Sent: Thursday, March 01, 2007 8:54 AM
To: sv-bc@eda-stds.org
Subject: RE: [sv-bc] Are modport port directions enforced?

[Shalom]

> According to this interpretation, variables are passed as ref ports, 
> which really do reference the original, and one could look at nets as 
> using port collapsing. Does that make sense?

Not to me.  If it is that way, what is the difference between "ref" and
"output" in a modport, given that port mode "output"
has never stopped us reading things?
--
Jonathan Bromley, Consultant

DOULOS - Developing Design Know-how
VHDL * Verilog * SystemC * e * Perl * Tcl/Tk * Project Services

Doulos Ltd. Church Hatch, 22 Market Place, Ringwood, Hampshire, BH24
1AW, UK
Tel: +44 (0)1425 471223                   Email:
jonathan.bromley@doulos.com
Fax: +44 (0)1425 471573                           Web:
http://www.doulos.com

The contents of this message may contain personal views which are not
the views of Doulos Ltd., unless specifically stated.

--
This message has been scanned for viruses and dangerous content by
MailScanner, and is believed to be clean.



--
This message has been scanned for viruses and dangerous content by
MailScanner, and is believed to be clean.



-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Received on Thu Mar 1 13:52:45 2007

This archive was generated by hypermail 2.1.8 : Thu Mar 01 2007 - 13:52:55 PST