[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Paramset, PARAM_LIST branch

From: Felix Salfelder
Subject: Paramset, PARAM_LIST branch
Date: Sat, 19 Nov 2022 00:42:58 +0100

Hi Al.

A paramset instance, such as in

paramset myR resistor;
        parameter someR = 1 [..];

module main()
        myR #(.someR(2)) r1(1 0); // <= here

needs some additional PARAM_LIST to resolve "someR".

In order to do so, COMPONENT::precalc_X needs a change,


should read


and a function similar to

PARAM_LIST const* COMPONENT::params()
        if(common() && common()->has_params()){
           // assert common()->params()->_try_again == scope()->params();
                return common()->params();
                return scope()->params();

In particular, COMMON_COMPONENT::precalc_X needs to take a PARAM_LIST*
instead of a CARD_LIST*. I tried this in the PARAM_LIST branch, and
there seem to be no side-effects other than the interface change.

I wonder if it is better to just add a CARD_LIST* to COMMON_COMPONENT.
With that, the interface stays intact. Is there any genuine use for a
CARD_LIST in a common? It takes some extra space, but also ...  there is
a CARD_LIST* in CARD, which could move to BASE_SUBCKT, saving much more
in comparison, and even avoid the indirection.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]