The Designer's Guide Community Forum
https://designers-guide.org/forum/YaBB.pl
Design Languages >> Verilog-AMS >> fixed time step in Verilog-A?
https://designers-guide.org/forum/YaBB.pl?num=1412664633

Message started by fgcsk on Oct 6th, 2014, 11:50pm

Title: fixed time step in Verilog-A?
Post by fgcsk on Oct 6th, 2014, 11:50pm

Is there any way to have a fixed time step in Verilog-A?
I know $bound_step can limit the time step to a certain amount, but it does not guarantee the time step is fixed if I understand correctly.

Actually I just want to implement something like this:
Y = Y + dYdt*timestep

I know Y=idt(dYdt, 0) can do it, but at some events I also need to directly modify Y, and idt() is an analog operator that is not allowed to do so.
Any suggestions?

Title: Re: fixed time step in Verilog-A?
Post by Geoffrey_Coram on Nov 13th, 2014, 10:22am

There is a reset argument to idt() that allows you to set the output to zero; can you use that?

What you're asking for is a little tricky; what happens when the simulator fails to converge at a timepoint (due to nonlinearities in other parts of the circuit) and backs up to take a smaller time step?  Will it know how to back out the direct modifications you made to Y ?

Title: Re: fixed time step in Verilog-A?
Post by fgcsk on Nov 22nd, 2014, 11:54pm

Thanks for explaining why there is no fixed time step.
The reset argument of idt cannot help, and I've already come up with a way to solve this problem, which is to separate the total Y into two variables.
One is the idt(), and the other one is the modification.

The Designer's Guide Community Forum » Powered by YaBB 2.2.2!
YaBB © 2000-2008. All Rights Reserved.