[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: gEDA-user: passing parameters to a subckt



On Apr 30, 2010, at 5:11 AM, kai-martin knaak wrote:

> kai-martin knaak wrote:
> 
>> John Doty wrote:
>> 
>>> http://www.gedasymbols.org/user/john_doty/models/opamp/
>>> 
>>> Have fun! Feedback welcome.
>> 
>> Thanks!
>> Such simple models are what it takes as a starting point.
>> I will try the models for a second stab toward simulation rather than with
>> ltspice. Will report my milage on the list and/or add to the simulation
>> page on the geda wiki.
> 
> No mileage, yet, but I looked at the model file. The CA3080 is simulated 
> from transistor level. Part of the magic is the definition of the transistor 
> parameters. The comment says you applied "Pspice/Parts to the specs of a 
> CA3096 array" to get the values of the transistors. Does this mean, that  
> Pspice has a way to guess the value of transistors from the specs of a whole 
> circuit?

The CA3096 was an array of individual transistors, so I just used PSpice/parts to extract NPN and PNP model parameters as if they were discrete.

I knew that back in the 60's, analog IC designers tended to reuse the same transistor layouts without scaling. So I guessed that the transistors in the CA3096 might be identical to those in the CA3080. Proceeding on that assumption, I produced a CA3080 model using the diagram from its spec sheet and the transistors from to CA3096. Comparison of the model's behavior in PSpice with the CA3080 spec sheet validated the guess. 

I had to make changes for ngspice and I haven't checked if the changes had a significant effect, because for my purposes here I don't really care about accurately modeling the CA3080.

> 
> How would one go about to get the equivalent for, say, the abundant OP07?

OP07 is much more complex, and it's harder to guess what the transistors are like. I think it be a long, hard road to reverse engineer it at this level.

> 
> A note on the "dirty" opamp model, CA3080. Unfortunately, this particular 
> component is not only obsolete but has a non standard configuration. Pin 5 
> is "amplifier bias input" and needs to be connected to some proper value. 
> (correct me, if I am wrong) This is less then ideal for distribution in a 
> getting-started selection of models. Ideally the chosen component would be 
> widely used and be pin compatible to a maximum number of other opamps.

The CA3080 model is only used internally within the "opmediocre" model. I didn't even bother to put its symbol on my gedasymbols page. I don't expect that anyone will want to use it by itself. It's an "operational transconductance amplifier" (OTA), a kind of device no longer common on circuit boards, although they are well know in mixed-signal VLSI. One way to make an opamp is to buffer the output of an OTA operated at fixed bias, so that's how "opmediocre" is constructed. I did this because it was easy: I already had the CA3080 model, and a complementary emitter follower buffer is trivial (if prone to crossover distortion). Real opamp design is a lot more work (been there, done that).

I just wanted to create a model that would expose the underlying transistor physics in the same ways a real opamp does, but there's no attempt here to model any specific device in detail. That's a *much* harder problem, although one could, using this model structure, adjust some of the gross behavioral parameters (open loop gain, bandwidth, input bias, ...) to match a real opamp by tweaking transistor parameters.

For more abstract and idealized models, use my "opgain" or "opbw" in ngspice, or Al's parameterized model in gnucap.

John Doty              Noqsi Aerospace, Ltd.
http://www.noqsi.com/
jpd@xxxxxxxxx




_______________________________________________
geda-user mailing list
geda-user@xxxxxxxxxxxxxx
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user