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