The Designer's Guide Community Forum
https://designers-guide.org/forum/YaBB.pl
Design Languages >> Verilog-AMS >> Help me understand this verilog-A code
https://designers-guide.org/forum/YaBB.pl?num=1305632055

Message started by dfury on May 17th, 2011, 4:34am

Title: Help me understand this verilog-A code
Post by dfury on May 17th, 2011, 4:34am

Help me understand this verilog-A code .I simply dont know anything about verilog-A. I want to modify this code for low voltage of 0 and high voltage of 2.5V.Can anyone help me modify this.

   This is a code for a comparator

   "
   module comparator(sigin, sigref, sigout);
   input sigin, sigref;
   output sigout;
   electrical sigin, sigref, sigout;
   parameter real sigout_high = 10;
   parameter real sigout_low = -10;
   parameter real sigin_offset = 0;
   parameter real comp_slope =1000;


   analog begin

   @ ( initial_step ) begin
   if (sigout_high <= sigout_low) begin
   $display("Range specification error. sigout_high = (%E) less than sigout_low = (%E).\n", sigout_high, sigout_low );
   $finish;
   end
   end

   V(sigout) <+ 0.5 * (sigout_high - sigout_low)
   * tanh(comp_slope*(V(sigin, sigref)- sigin_offset))
   + (sigout_high + sigout_low)/2;

   "


REGARDS

Title: Re: Help me understand this verilog-A code
Post by boe on May 17th, 2011, 8:46am

Dfury,

Set sigout_high and sigout_low accordingly.

Note that tanh has an output range of +/-1.

B O E

Title: Re: Help me understand this verilog-A code
Post by dfury on May 17th, 2011, 8:52am

okay.what about how we control the comparators speed? i mean if one input is changing at a rate of 1000MHz then will this work?

Title: Re: Help me understand this verilog-A code
Post by Geoffrey_Coram on May 17th, 2011, 12:57pm

Did you look at the comparator posted on this site?
http://www.designers-guide.org/Books/dg-vams/ch5/ch5-listing05.tgz

It has td and tt (delay and transition time), which you should be able to use to control the speed.

Title: Re: Help me understand this verilog-A code
Post by dfury on May 17th, 2011, 1:24pm

okay but is this an analog input comparator?

Title: Re: Help me understand this verilog-A code
Post by boe on May 18th, 2011, 2:30am

Dfury,
The code you suggested in the initial post is infinitely fast. It just scales the input and limits with tanh.
The code Geoffrey suggested is also a continuous-time comparator. However, you need to scale the output appropriately.
B O E

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