Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

[Moved:] [Cadence Virtuoso] Element value to be calculated on the fly

Status
Not open for further replies.

adi_420

Newbie level 3
Joined
Jul 26, 2016
Messages
4
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
32
Hi

I have a schematic in Cadence Virtuoso, where the output node has a pin 'out' connected to it. Now, I want to put the value of one resistance used in the same schematic in terms of 'out', say (1000*out) ohms. I want the resistance value to change during the course of simulation, taking 'out' value calculated in the previous step. Currently if I put this expression in object properties, I get a simulation error. Is there a way to do this, apart from modelling using Verilog?

Thanks.
 

In ADE XL or Assembler you are able to make two different tests and to use value calculated from first test as variable in the second one.
 

I am not aware of this method. Can you elaborate on it?

Thanks
 

Back when cdsSpice was the simulator, you used to have
print.N / read.N file I/O which I made heavy use of in,
for example, simulating laser-trimmed (post-fab) precision
analog parts across MC runs - one MC run (w/ looped trim
codes) to find the null code, print each, then another
MC run where trim code variables are read back and set
(no point in simulating Vio yield if you're not able to trim).

You're not going to find this in the GUI but you might
be able to do it in Ocean scripts. Ocean is a mess but
learning it may be good for you. I never got past the
simplest use (dump script and maybe add a loop or
something). But I think file I/O can probably be had,
define your data table format and read it like you wrote it.
 

I looked into the post. It talks about running two separate tests. What I am looking for is running only one test, and and using the value calculated in the previous time step to be used for calculation of another value in the next time step. For example,
R(t)=2.1*V(t-1),
where both variables are part of the same test.
Any ideas for this?
 

Ok. So you are suggesting that I scripting may be the only way out here. Do you have any idea if I can do this in Verilog-A?
 

I'm not specifically working with Cadence Virtuoso. A general property of circuit simulators is that they treat static component parameters (e.g. resistance values) and simulation variables (e.g. node voltages) differently. To make a controlled, e.g. a voltage dependent resistor, you need to refer to behavioral simulation statements that can represent arbitrary expressions combining simulation variables.

Review the Virtuoso manuals how behavior modeling can be implemented with this tool.
 

Veriloga might be the way to go. But when you say R(t)
and V(t-1), I think about the difference between
simulation time and simulation timestep; are you going
to sample and set, or make this a continuous function,
and so on. Do you need to "remember", to react at a
fixed time lag, to continuously change with zero delay?
These are for you to think about. If you can express
it, I'm fairly optimistic that you can code it. But clarity
is a key stepping-stone, to that.
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top