The Designer's Guide Community Forum
https://designers-guide.org/forum/YaBB.pl
Design Languages >> Verilog-AMS >> How to introduce delay in verilogA?
https://designers-guide.org/forum/YaBB.pl?num=1456541731

Message started by Nishtha on Feb 26th, 2016, 6:55pm

Title: How to introduce delay in verilogA?
Post by Nishtha on Feb 26th, 2016, 6:55pm

Hello,

I am working on a verilogA model for a spintronic device. I want to incorporate a delay to represent the switching delay of the magnetic layer and initially just put in a constant number (200ps) by which the output is just delayed whenever an input switching event occurs.

The input swing is between -0.1V and 0.1V and the output swing is between   19mV and 79mV. I tried to use the transition filter. It's giving me convergence issues.

Can you please suggest me a function for incorporating delay please?

Best,
Nishtha

Title: Re: How to introduce delay in verilogA?
Post by Ken Kundert on Feb 29th, 2016, 1:56am

You would use transition if your signal is piecewise constant. If you want to delay a continuous signal, you would use absdelay().

You should include your model in your post. It it would make it easier to offer help.

-Ken

Title: Re: How to introduce delay in verilogA?
Post by Nishtha on Mar 8th, 2016, 3:03pm

I really appreciate your help on this. Unfortunately, I am unable to post my model here at this time.

I tried 'transition' filter and it gives me a perfectly delayed output only when I add an extra terminal.


Code:
V(D,S)<+transition(vout,Tau,100E-12,100E-12);
V(state,S)<+transition(V(D,S),Tau,100E-12,100E-12);


In the above code, only after adding "state" as an extra terminal, I could delay the output V(D,S). "vout" is an internal node being assigned the value of the output per the cases in if-else statements. Tau is the delay I want to introduce in the output.

I really want to remove the extra terminal since it affects the device performance and functionality as a whole.

Best,
Nishtha

Title: Re: How to introduce delay in verilogA?
Post by Ken Kundert on Mar 9th, 2016, 10:21am

Without more of the model or a description of the actual problem, I don't think anyone will be able to help you.

In particular interest is how vout is being updated. It is piecewise constant, right? How do you force a time point at the instant it is expected to change?

-Ken

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