[Top][All Lists]

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

Re: [Gnucap-devel] Hierarchical name ordering

From: al davis
Subject: Re: [Gnucap-devel] Hierarchical name ordering
Date: Sat, 19 Jan 2008 15:47:44 -0500
User-agent: KMail/1.9.7

On Saturday 19 January 2008, a r wrote:
> What I would like to be able to do is:
> X1 (1 2) foo bob=2k
..  an instance "X1" of "foo" (whatever that is) with a 
parameter "bob" set to "2k"

> .alter different subcircuit

> X1 (1 2) bar bob=2k
..  an instance "X1" of "bar" (whatever that is) with a 
parameter "bob" set to "2k"

Is this in parallel with the previous X1?  Now you have two?  or 
do you want to replace it?

To replace it:
.delete X1
X1 (1 2) bar bob=2k

You can't change the type of an instance, other than by 
replacing it.

> .alter bob=5k

Do you mean:
.param bob=5k

You can do that, but the "bob" in "X1" is in a different scope, 
so it probably won't do what you want.

How about:
X1 (1 2) bar bob=x1bob

Now you can change the value of x1bob:

.param x1bob=5k

and change it again:

.param x1bob=10k

> .param X1.bob=5k

I am not sure if this should work.  It violates encapsulation.  
It probably will work eventually, because Verilog has a spec 
for doing it.  You can accomplish what you want with different 
syntax as I have shown.

> X1.R1 (a b) resistor_model r=bob w=2u

Violates encapsulation, and really screws things up.  X1 is an 
object of type "bar".  If you make this kind of change, it 
isn't a "bar" anymore.

You need to pass in parameters through the parameter list.

> .delete X1.R1

Violates encapsulation .. see above.

It is not known what a "bar" is, other than its connections and 
parameters.  It might be a subcircuit, might be a built-in or 
plugin C model, might be a compiled Verilog model, etc.  Might 
even be a pseudo-component used as a probe or measuring device.

Suppose I have:

X1 (1 2) bar bob=x1bob
X2 (3 4) bar bob=x2bob

X1 and X2 are structurally identical, and must remain so.  They 
share storage.  Some calculations are shared.  In future, they 
may share a cache.

> Of course, syntax is not an issue. I recall seeing commands
> like modify, merge and delete in the gnucap manual. Can I do
> something similar with them?

I think you can do it.  It looks like a syntax issue.

If you think of it like programming ..  "no globals", but there 
is a mechanism for passing parameters and asking for 

> If not - ignore it. Interactive mode is not "must have"
> feature for me. 

It has interactive mode, more so than any other simulator I know 
of.  I consider it to be a "must have".

> There is plenty more important things: 
> expressions, more analyses, IO commands, veriloga and so on.

I agree.  My effort now is concentrating on the core, with the 
intent to move as much as possible to plugins.  I consider 
plugins to be user data.  Hopefully that will encourage others 
to get involved.

reply via email to

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