The Designer's Guide Community Forum
https://designers-guide.org/forum/YaBB.pl Design Languages >> Verilog-AMS >> Variable pulse generator https://designers-guide.org/forum/YaBB.pl?num=1269815816 Message started by Nader K on Mar 28th, 2010, 3:36pm |
Title: Variable pulse generator Post by Nader K on Mar 28th, 2010, 3:36pm Hello, I am new to verilog-A can somone help me create a fixed length pulse generator which generates a pulse when its input falls from one to zero? |
Title: Re: Variable pulse generator Post by Geoffrey_Coram on Mar 29th, 2010, 6:36am You should at least try to give this a start. People are willing to help you fix an issue, but not so likely to write the whole model for you. Have you looked at the models available in the Verilog-AMS model library on this site? (Click the Verilog-AMS tab in the header bar.) |
Title: Re: Variable pulse generator Post by Nader K on Mar 31st, 2010, 12:38am I am using this but its only working on the first falling edge, how can i fix it in order for it to work on every falling edge? Thanks module fixed_pulse_generator(in,out); parameter real td = 0.5n; // width of pulse parameter real tt = 0n; // output transition time (s) output out; input in; voltage in, out; real Vout; analog begin @(cross(V(in), -1)) Vout = 1.2; V(out) <+ transition(-Vout, td, tt); V(out) <+ transition(Vout, 2*td, tt); end endmodule |
Title: Re: Variable pulse generator Post by Geoffrey_Coram on Apr 5th, 2010, 5:46am What should happen if you get two falling edges in less than "td" ? Ie, the first pulse isn't over before the second starts? |
Title: Re: Variable pulse generator Post by Marq Kole on Apr 6th, 2010, 3:43am Your code doesn't change anything after the cross: Vout is constant (=1.2) after the first negative edge. You will need both a cross event and a timer event to make Vout change levels and have the transition operator react to that. Code:
|
Title: Re: Variable pulse generator Post by Slavian on Dec 17th, 2010, 12:20pm When I'm trying to run it (using Cadence Virtuoso) I don't see any graph, only the following message is displayed: "Unable to plot expression <VT("net5"...(itc.) because it does not evaluate to an object that can be plotted, like a waveform or parametric wave. See the Visualization & Analysis Tool documentation for information about the types of objects that can be plotted in Visualization & Analysis Tool. Only the expressions that evaluate to those objects can be plotted." Does anyone know what does it mean and how to make it work? Thanks. |
Title: Re: Variable pulse generator Post by Geoffrey_Coram on Dec 20th, 2010, 5:22am Slavian wrote on Dec 17th, 2010, 12:20pm:
Are you sure you've got that copied correctly? Why is there VT rather than just V? |
Title: Re: Variable pulse generator Post by Slavian on Dec 20th, 2010, 5:26am Geoffrey_Coram wrote on Dec 20th, 2010, 5:22am:
Vt - Voltage transition. I want to use this pulse as a function of a time. So if i take a simulation 1 usec length, I expect to see the results... But I don't get any wave form at all... |
Title: Re: Variable pulse generator Post by Andrew Beckett on Jan 3rd, 2011, 12:28am It appears you're a bit confused here - the VT() function is an ADE calculator function that allows you to access the transient voltage on a named signal - it's nothing to do with the VerilogA model described in this post. Most likely the problem is because the signal is not in the result database because it didn't get saved. Which simulator were you using? Can you maybe post the actual netlist you were using? Best Regards, Andrew. |
Title: Re: Variable pulse generator Post by Slavian on Jan 3rd, 2011, 11:51am Hi all! I've solved the problem by writing a new function by myself. Thank you. |
Title: Re: Variable pulse generator Post by Andrew Beckett on Jan 3rd, 2011, 12:27pm OK, although I cannot see what the VT() had to do with the VerilogA module described in this thread - so I've no idea why you needed to rewrite any "function"... The VT() function is an ADE calculator function, whereas the module is a VerilogA module. Chalk and Cheese - two completely different things. Regards, Andrew. |
The Designer's Guide Community Forum » Powered by YaBB 2.2.2! YaBB © 2000-2008. All Rights Reserved. |