The Designer's Guide Community
Forum
Welcome, Guest. Please Login or Register. Please follow the Forum guidelines.
Mar 28th, 2024, 9:21am
Pages: 1
Send Topic Print
How to perform current division Cadence Virtuoso (Read 151 times)
lummiuster
New Member
*
Offline



Posts: 8

How to perform current division Cadence Virtuoso
Oct 19th, 2017, 8:27pm
 
Hi,

I need to use dependent sources in my circuit. I am only aware of PCCCS and PVCCS.
What I need to do is have a current that has the following current equation:
Current =
(2.753*y^2*log(805444*x^3 + 26223*x^2 + 115*x + 1.0e-60))/(0.95930*y^2 + 1.0)/y

x is the current that flows through a DC voltage source.
y is the voltage at a node of the circuit.

How can I implement such equation?
My issue with CCCS is that we can't divide by the controlling input. i.e, we cannot do current= a/x + b/x^2...
Second issue is that I don't know any instance that lets me take as input a current and a voltage.
Third issue is to use log in my equation.

Anybody knows how I can implement such thing?

Thanks a million
Back to top
 
 
View Profile   IP Logged
Geoffrey_Coram
Senior Fellow
******
Offline



Posts: 1998
Massachusetts, USA
Re: How to perform current division Cadence Virtuoso
Reply #1 - Oct 23rd, 2017, 7:22am
 
There is a "bsource" element that allows arbitrary expressions, which could probably handle this.

I'd be concerned about the expression you have, though. Eg, on the first iteration of the dc solution, many simulators start with a v-vector that is all zeros. This would probably mean that y=0 on the very first iteration, and the resulting division by zero would prevent the simulator from knowing how to change that voltage. Newton's method could also produce a negative current (x) during one iteration.
Back to top
 
 

If at first you do succeed, STOP, raise your standards, and stop wasting your time.
View Profile WWW   IP Logged
lummiuster
New Member
*
Offline



Posts: 8

Re: How to perform current division Cadence Virtuoso
Reply #2 - Oct 24th, 2017, 9:35pm
 
Hi,

Thanks a lot for your answer, this is bringing me hope. However I am having some issues with it. First I can't find it in my library. Second, I tried to follow some steps I found online on how to create a symbol but I get completely lost.

I'm a beginner. All I know is Virtuoso/Cadence, create schematic and create a symbol out of a schematic.

Can you please give me more detail on how to create the bsource symbol?
You mentioned that it might lead to some error with DC simulation. I don't think it is an issue with me as I only need transient simulation.

Thanks in advance!
Back to top
 
 
View Profile   IP Logged
Geoffrey_Coram
Senior Fellow
******
Offline



Posts: 1998
Massachusetts, USA
Re: How to perform current division Cadence Virtuoso
Reply #3 - Oct 25th, 2017, 7:50am
 
But any transient simulation starts with a computation of the time-0 solution, which is a dc solution.
Back to top
 
 

If at first you do succeed, STOP, raise your standards, and stop wasting your time.
View Profile WWW   IP Logged
Geoffrey_Coram
Senior Fellow
******
Offline



Posts: 1998
Massachusetts, USA
Re: How to perform current division Cadence Virtuoso
Reply #4 - Oct 25th, 2017, 7:54am
 
You shouldn't have to create the bsource symbol; it should be in a library.
Do you have an analogLib library? Where do you get the symbols for resistors, capacitors, voltage sources, etc. when you're making a schematic? Don't you see bsource in that list?
Back to top
 
 

If at first you do succeed, STOP, raise your standards, and stop wasting your time.
View Profile WWW   IP Logged
lummiuster
New Member
*
Offline



Posts: 8

Re: How to perform current division Cadence Virtuoso
Reply #5 - Oct 25th, 2017, 8:16am
 
Hi,

Yes I have analogLib. However bsource is not in it.
Do you think the first iteration could completely ruin the whole transient simulation?
Back to top
 
 
View Profile   IP Logged
Geoffrey_Coram
Senior Fellow
******
Offline



Posts: 1998
Massachusetts, USA
Re: How to perform current division Cadence Virtuoso
Reply #6 - Oct 27th, 2017, 6:24am
 
It could ruin the sim - if the simulator doesn't know where to start, how can it proceed?

Could you use 1/(abs(y) + 1e-30) instead of 1/y?
Back to top
 
 

If at first you do succeed, STOP, raise your standards, and stop wasting your time.
View Profile WWW   IP Logged
lummiuster
New Member
*
Offline



Posts: 8

Re: How to perform current division Cadence Virtuoso
Reply #7 - Oct 27th, 2017, 12:32pm
 
I don't think I can use abs(y) instead of y. because I don't know if the voltage across the resistor (y) will go negative.

Do you know how I can add bsource to my library?

Thanks
Back to top
 
 
View Profile   IP Logged
Geoffrey_Coram
Senior Fellow
******
Offline



Posts: 1998
Massachusetts, USA
Re: How to perform current division Cadence Virtuoso
Reply #8 - Oct 31st, 2017, 10:23am
 
If the voltage y can go negative, then it might also be zero, in which case your expression involving 1/y blows up. So, I think you need to think about what should happen in that case, and whether your equation is correct.

I don't know how to add bsource. Are you using a recent version of the software? (If you have a really old version, maybe bsource is not supported.)
Back to top
 
 

If at first you do succeed, STOP, raise your standards, and stop wasting your time.
View Profile WWW   IP Logged
Andrew Beckett
Senior Fellow
******
Offline

Life, don't talk to
me about Life...

Posts: 1742
Bracknell, UK
Re: How to perform current division Cadence Virtuoso
Reply #9 - Dec 21st, 2017, 7:53am
 
The bsource component was added in analogLib in IC617 ISR6 (so relatively recently - within the last 2 years). If you're using an older version, there's this Cadence Online Support article which tells you how to create your own.
Back to top
 
 
View Profile WWW   IP Logged
Pages: 1
Send Topic Print
Copyright 2002-2024 Designer’s Guide Consulting, Inc. Designer’s Guide® is a registered trademark of Designer’s Guide Consulting, Inc. All rights reserved. Send comments or questions to editor@designers-guide.org. Consider submitting a paper or model.