Adam, No one is arguing about that. The problem is that the LRM says that if you have an extern module declaration, then the real module declaration can use .* instead of re-listing the module ports there. My question is, what is that good for? Regards, Shalom ________________________________ From: Adam Krolnik [mailto:adam.krolnik@verisilicon.com] Sent: Monday, July 14, 2008 5:47 PM To: Gordon Vreugdenhil Cc: Bresticker, Shalom; sv-bc Subject: Re: [sv-bc] extern modules Good morning; I though external declarations were needed for systhesis tools to be able to work with .* in instantiations. E.g. you read in the external declaration of the module before it is instantiated with .*. Unfortunately, this then requires people to know what files to read first, or a suffix to specify them first. Gordon Vreugdenhil wrote: Shalom, the restriction only applies when you are using .* in the *declaration* of the module in which case .* means "pick up the formals that were defined by the extern". The .* use isn't related to an instantiation of the module (for which the existence of an extern is immaterial anyway). Extern modules are a bit of an odd feature in SV -- you don't need them to instantiate a separately compiled module, nor to use .* in an instantiation. The only advantage is for systems that might not want to inhale the whole world (synthesis perhaps) or for earlier checking of port width/type constraints. Neither of those aspects are directly related to LRM requirements. Gord Bresticker, Shalom wrote: Then how do you do separate compilation? And if they're compiled together, what do you need it for? Shalom _____________________________________________ *From: * Bresticker, Shalom *Sent: * Monday, July 14, 2008 12:18 PM *To: * Bresticker, Shalom *Subject: * Re: [sv-bc] extern modules /From: Gordon Vreugdenhil <//_gordonv_at_....._/ <mailto:gordonv_at_.....?Subject=Re:%20[sv-bc]%20extern%20modules> <mailto:gordonv_at_.....?Subject=Re:%20[sv-bc]%20extern%20modules> /> Date: Thu Jul 10 2008 - 12:37:24 PDT/ Jason, I agree that with .*, the extern really needs to come first. Since externs are a way of declaring the "type" of the module and .* is similar to a dependence on that type, I don't really see that restriction as being much of a reach either in practice or as a matter of LRM interpretation. Gord. Jason Campbell wrote: > Hi, > > > > The LRM doesn't specify if extern can be used subsequent to the module > defintion. Is it > > correct to assume that this is permitted? Maybe this can be clarified in > the LRM. > > > > If so, this makes implementation of .* in the module port list quite > difficult. The reason is > > that nets and variables can not be checked for correct usage until the > extern is compiled. --------------------------------------------------------------------- Intel Israel (74) Limited This e-mail and any attachments may contain confidential material for the sole use of the intended recipient(s). Any review or distribution by others is strictly prohibited. If you are not the intended recipient, please contact the sender and delete all copies. -- This message has been scanned for viruses and dangerous content by *MailScanner* <http://www.mailscanner.info/> <http://www.mailscanner.info/> , and is believed to be clean. -- Soli Deo Gloria Adam Krolnik Director of Design Verification VeriSilicon Inc. Plano TX. 75074 Co-author "Assertion-Based Design", "Creating Assertion-Based IP" --------------------------------------------------------------------- Intel Israel (74) Limited This e-mail and any attachments may contain confidential material for the sole use of the intended recipient(s). Any review or distribution by others is strictly prohibited. If you are not the intended recipient, please contact the sender and delete all copies. -- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean.Received on Mon Jul 14 07:53:40 2008
This archive was generated by hypermail 2.1.8 : Mon Jul 14 2008 - 07:54:08 PDT