Re: [sv-bc] setting parameters in configurations

From: Don Mills <mills_at_.....>
Date: Mon Sep 17 2007 - 14:38:40 PDT
See my responses below:

Gordon Vreugdenhil wrote:
>
> Don Mills wrote:
> > I have opened a mantis item on this subject #2037 and uploaded my first
> > draft of the new section.  For those of you who have looked at my
> > preliminary draft earlier today - you will find the uploaded draft 
> to be
> > much more verbose.
> >
>
>
> Don,
>
> I think the general intent of the proposal is reasonable but I
> have some issues with the current form.
>
> First, I don't like:
>    instance top.a1 #(1,2);
>
> Normally, the change part of an instance clause is either
> in a lib_list or a use_clause.  I would fold this into
> the "use_clause" part and have something like:
>     instance top.a1 use #(1,2);
I prefer my original syntax leaving the "use_clause" for specific cell 
binding.  But I will concede on this because I have not strong argument 
for my approach other then it is similar syntax to instantiation 
redefinition of parameters.  I like to keep things the same where I 
can.  Maybe someone else has preferences one way or the other here.
>
> I would reserve the syntax you used for possible other semantics in
> the future.
>
>
Each of the following will be added to the write up of my next upload.
> I would make (at least) the following restrictions:
>   1) a localparam in a configuration shall only be set to a literal value
>   2) index expressions in a hierarchical name shall only refer to
>      literals or localparams of the configuration
>   3) if a reference to a name in the target instance context is used
>      in an override, it shall be the only term in the expression.
>   4) a hierarchical name in a parameter override shall be resolved
>      starting in the context of the configured instance.  If a 
> hierarchical
>      name is used, it must be the only term in the expression.  (i.e 
> you can't have
>      a.b.c + 7).
>   4) a parameter override in a configuration shall not refer to a
>      constant function other than a predefined constant system functions
>
> The above are likely enough though I need to think about it some more.
>
> This basically boils down to either having a simple name to name
> remapping of a parameter or having a value that can be determined
> as a literal at the time the configuration is compiled.  That avoids
> most of the hard issues that Mark was beginning to raise in terms of the
> context of the evaluation of the parameter override expression.  I
> think (from a quick look) that all the examples you have are still
> legal given this set of restrictions.
>
>
> I would reword:
>     When an instantiation has parameter overrides and the configuration
>     instance does not specificy parameter overrides...
> to be:
>     When an instantiation has parameter overrides and the configuration
>     instance does not have a parameter override list...
done
>
>
> There also seems to be a contradictory approach.  You say:
>    instance top.a1 #();  // set all parameters in instance a1 back to 
> their default
> but when you have at least one override, the rest don't go back to
> their defaults, they are unmodified.
>
> I would prefer to say that #() means "everything goes back to default"
> and #(.name) means "use the existing instance's value for .name".
This is addressed.  I was using ".name" substitution.  That is now 
removed from the examples.  I don't want to have .name substitution as 
part of this pass.
> The overall proposal is still somewhat informal, but if we
> can get consensus on a viable rule set, that shouldn't be too
> hard to fix.
>
> Gord
>

-- 
==========================================================
Don Mills
mills@lcdm-eng.com
www.lcdm-eng.com
==========================================================


-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Received on Tue Sep 18 00:08:29 2007

This archive was generated by hypermail 2.1.8 : Tue Sep 18 2007 - 00:09:31 PDT