The Designer's Guide Community
Forum
Welcome, Guest. Please Login or Register. Please follow the Forum guidelines.
Apr 19th, 2024, 9:49pm
Pages: 1
Send Topic Print
How to introduce delay in verilogA? (Read 1215 times)
Nishtha
New Member
*
Offline



Posts: 6

How to introduce delay in verilogA?
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
Back to top
 
 
View Profile   IP Logged
Ken Kundert
Global Moderator
*****
Offline



Posts: 2384
Silicon Valley
Re: How to introduce delay in verilogA?
Reply #1 - 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
Back to top
 
 
View Profile WWW   IP Logged
Nishtha
New Member
*
Offline



Posts: 6

Re: How to introduce delay in verilogA?
Reply #2 - 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
Back to top
 
 
View Profile   IP Logged
Ken Kundert
Global Moderator
*****
Offline



Posts: 2384
Silicon Valley
Re: How to introduce delay in verilogA?
Reply #3 - 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
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.