RE: [sv-bc] modport_identifier in an assignment

From: Brad Pierce <Brad.Pierce_at_.....>
Date: Wed Apr 25 2007 - 08:39:43 PDT
According to Annex A, 
 
    "The full syntax and semantics of Verilog and SystemVerilog are not
described solely using BNF. The normative text description contained
within the chapters of IEEE Std 1364 and this standard provide
additional details on the syntax and semantics described in this BNF."

The grammar of Annex A generates many phrases that are not semantically
legal.  It also generates the legal phrases in your initial e-mail, in
which a modport is applied to an interface instance of which the modport
is a member.

-- Brad

________________________________

From: Rich, Dave [mailto:Dave_Rich@mentor.com] 
Sent: Wednesday, April 25, 2007 12:10 AM
To: Brad Pierce; sv-bc@eda-stds.org; sv-ec@eda-stds.org
Subject: RE: [sv-bc] modport_identifier in an assignment



But a modport does not introduce a nested hierarchical scope. We don't
refer to sb_intf.slave.data or a.slave.data, just sb_intf.data or a.data
(from that same example)

 

Dave

 

 

________________________________

From: owner-sv-bc@server.eda.org [mailto:owner-sv-bc@server.eda.org] On
Behalf Of Brad Pierce
Sent: Tuesday, April 24, 2007 11:37 PM
To: sv-bc@server.eda-stds.org; sv-ec@server.eda-stds.org
Subject: Re: [sv-bc] modport_identifier in an assignment

 

Dave,

 

A reference to an interface instance is parsed with
hierarchical_identifier.  For example, 

 

              ordered_port_connection  ::= expression ::= primary ::=
hierarchical_identifier ::= 'sb_intf.slave'

 

-- Brad

 

________________________________

From: owner-sv-bc@eda.org [mailto:owner-sv-bc@eda.org] On Behalf Of
Rich, Dave
Sent: Tuesday, April 24, 2007 9:31 AM
To: sv-bc@eda-stds.org; sv-ec@eda-stds.org
Subject: [sv-bc] modport_identifier in an assignment

I've been looking through the BNF and can't find anywhere the BNF allows
you to put . modport_identifier next to an interface instance on the RHS
of a assignment. The RHS could be either an actual argument in an
argument/port list or in the assignment to a virtual interface variable.

 

For virtual  interfaces, there's no reason to add this capability other
than for redundancy, since in order to select a modport, the target must
have been declared with the specific modport_identifier. There's no BNF
to support the example in 20.8 (draft1) where there is a
modport_identifer in the assignment:

 

v32_phy = p32.phy;

 

For interface port connections, we have this feature where you can
specify the modport_identifier in the actual port when there is no
modport declared in the formal port. (See the example in 20.4.3) But I
can't see any BNF to support this syntax:

 

memMod mem(sb_intf.slave); // Connect the modport to the module instance

cpuMod cpu(sb_intf.master);

 

 

 I'd be happy to remove the feature.

 

Dave

 

 

David Rich
Verification Technologist
Design Verification & Test Division
Mentor Graphics Corporation
dave_rich@mentor.com
Office:   408 487-7206
Cell:     510 589-2625

 


-- 
This message has been scanned for viruses and 
dangerous content by MailScanner <http://www.mailscanner.info/> , and is

believed to be clean. 


-- 
This message has been scanned for viruses and 
dangerous content by MailScanner <http://www.mailscanner.info/> , 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 Wed Apr 25 08:40:19 2007

This archive was generated by hypermail 2.1.8 : Wed Apr 25 2007 - 08:40:47 PDT