RE: [sv-bc] Proposal to make it easier to use packages with port declarations

From: francoise martinolle <fm_at_.....>
Date: Tue Apr 25 2006 - 13:01:09 PDT
Today, either you have the import shared_decls::* before the module
declaration.
Or you use full package references: shared_decls::WIDTH
 
shared_decls::instruction_t
 
Francoise
       '


  _____  

From: owner-sv-bc@eda.org [mailto:owner-sv-bc@eda.org] On Behalf Of Brad
Pierce
Sent: Tuesday, April 25, 2006 2:42 PM
To: sv-bc@eda.org
Subject: Re: [sv-bc] Proposal to make it easier to use packages with port
declarations



How about the following?  Also illegal?

 

  module m (data, a, result);

    input [WIDTH-1:0] data; 
    input instruction_t a; 
    output [WIDTH-1:0] result;
    import shared_decls::* // this defines WIDTH and instruction_t used
above 
    ... 
  endmodule

 

-- Brad


  _____  


From: Warmke, Doug [mailto:doug_warmke@mentor.com] 
Sent: Tuesday, April 25, 2006 8:36 AM
To: Brad Pierce; sv-bc@eda.org
Subject: RE: [sv-bc] Proposal to make it easier to use packages with port
declarations

 

Brad,

 

That example is illegal.

 

You have to place the

 

  import shared_decls::*;

 

statement in $unit scope, somewhere

before the module declaration in the input stream.

 

The compiler needs to see any types etc. used in

port declarations before the ports are declared.

 

Regards,

Doug

 


  _____  


From: owner-sv-bc@server.eda.org [mailto:owner-sv-bc@server.eda.org] On
Behalf Of Brad Pierce
Sent: Tuesday, April 25, 2006 8:33 AM
To: sv-bc@server.eda.org
Subject: Re: [sv-bc] Proposal to make it easier to use packages with port
declarations

Following up on  http://www.eda.org/sv-bc/hm/2546.html .

 

Is it correct that a package "import statement affects declarations in the
scope that contains the import, regardless of the relative order of the
declarations and imports statements"?

 

If so, does a package import affect ANSI-style module port declarations?
For example, 

   module ( input [WIDTH-1:0] data, 
            input instruction_t a, 
            output [WIDTH-1:0] result 
          ); 
      import shared_decls::* // this defines WIDTH and instruction_t used
above 
    ... 
  endmodule 

See also

 

    http://www.eda.org/sv-bc/hm/2547.html

    http://www.eda.org/sv-bc/hm/2548.html

 

-- Brad

 

 

 

 

 

 
Received on Tue Apr 25 13:01:18 2006

This archive was generated by hypermail 2.1.8 : Tue Apr 25 2006 - 13:01:26 PDT