Re: Hierarchical name ordering
al davis <[email protected]>
| Newsgroups | gmane.comp.gnu.gnucap.devel |
|---|---|
| Message-ID | <[email protected]> |
On Saturday 19 January 2008, a r wrote: > Although consistency with other simulators is "nice to have" > I don't think it makes much difference for a gnucap user. > It's just a convention after all. That is why it has been this way for years. > > If it's simple to add and maintain, I would prefer an option > (can be hidden). But then, with so many other changes, I > wouldn't bother with backward compatibility much. It really is simple. There is no technical reason for it to be one way or the other. (aside from the old reason of matching the first letter). It is easy to make it take it either way. > Personally, I would prefer some blocking issues (like probing > voltages of internal nets) to be resolved as well. That is more difficult than it seems. The problem is that the name list takes significant space, if it is copied. So, subcircuits are instantiated with a "shallow copy" which strategically makes unique copies only where it is absolutely needed. It will be done eventually, but my to-do list is huge. For now, you can get the info you need by probing components. Mostly, I prefer probing components anyway. If you really need a node voltage, put a nothing component from that node to ground, and probe its voltage. The best choice is an "admittance" element, with a value of 0. You can name it the same as the node. > > BTW, can you post a sample code that: > a) replaces a nested cell with a different one, > b) replaces an instance parameter of such a cell. > > >From the documentation, it seems like this is a supported > > feature of > > Gnucap but I could have never figured out how to do it in > practice. Can you explain? a) I don't think it works. Replace a component inside a particular instantiation of a subckt with something else? b) I think you can accomplish what you want with named parameters. Remember .. in gnucap, a "param" is a variable. It can be changed at any time. In some other simulators it is a text pre-processor substitution. .subckt foo (a b) .param bob=10k R1 (a b) bob .ends X1 (1 2) foo bob=2k X2 (2 3) foo bob=bill X3 (3 0) foo .param bill=300 .op .param bill=2k .op