The Designer's Guide Community Forum
https://designers-guide.org/forum/YaBB.pl Design >> Mixed-Signal Design >> Verilog-A model for comparator https://designers-guide.org/forum/YaBB.pl?num=1168530176 Message started by cat18521 on Jan 11th, 2007, 7:42am |
Title: Verilog-A model for comparator Post by cat18521 on Jan 11th, 2007, 7:42am I am a student in the university and now I'm designing the comparator part of a SAR-ADC.The comparator consists of 3 stages preamplifiers and a regenerative latch.I want to use verilog-a to do it.But I am confused about a thing that whether I should write the verilog-a models for the 3 preamplifiers and the latch and then combine them together or only write a model for the comparator? If anyone have the verilog-a model for the preamplifier and the latch, can you please send it to me, cause I'm a new bird about the verilog-a. Thanks a lot!! my email: ronaldomiao@yahoo.com.cn |
Title: Re: Verilog-A model for comparator Post by Ken Kundert on Jan 11th, 2007, 8:34am In general you should write a combined model unless there is some compelling reason for writing separate models and combining them. You do this because it is generally easier to write one model rather than several, and the single model generally runs considerably faster. Also, it is best if people post any models they might have to this website rather than sending it directly to you so everyone can benefit. A comparator model is given on the Verilog-AMS page: http://www.designers-guide.org/VerilogAMS/. -Ken |
Title: Re: Verilog-A model for comparator Post by cat18521 on Jan 11th, 2007, 2:24pm to Ken:thank you for your reply! I have downloaded the comparator model from the webpage you gave.But I find that it is rather too simple. and many parameters are not included in that model.The comparator I need should have differential input(ip,in) ,differential output(outp,outn),reset signal and clock signal. I have write some code for my preamplifier and latch, but I am not sure about its correctness.Also, I don't know how to add clock signal into the model and how to define the active time for each stage of the preamplifiers. If you know ,please give me some advice! Thanks My preamplifier code: // VerilogA for addaLabs, cmp, veriloga `include "constants.vams" `include "disciplines.vams" module cmp (ip, in, outp, outn, reset); inout ip, in, outp, outn, reset; electrical ip, in, outp, outn, reset; parameter vo = 0; // output offset voltage parameter tr = 1n; // rise time parameter tf = 1n; // fall time parameter Vt = 0; // threshold voltage parameter Vdd = 3; // supply voltage parameter td = 1n; // threshold voltage parameter cm_voltage = 0; parameter gain = 10; real voutp, voutn; analog begin if (V(reset) > 0.5) voutp = cm_voltage; else if ( (V(ip) - cm_voltage) > Vt ) voutp = (V(ip) - V(in)) * gain; else voutp = (V(ip) - V(in)) * gain; if (V(reset) > 0.5) voutn = cm_voltage; else if ( (V(in) - cm_voltage) > Vt ) voutn = (V(in) - V(ip)) * gain; else voutn = (V(in) - V(ip)) * gain; V(outp) <+ transition (voutp, td, tr, tf); V(outn) <+ transition (voutn, td, tr, tf); end endmodule My latch code: // VerilogA for addaLabs, ADClatch, veriloga `include "constants.vams" `include "disciplines.vams" module ADClatch (in, out, reset); inout in, reset, out; electrical in, reset, out; parameter gain = 1000000; // 1EXP+06 parameter rt = 1n ; // risetime, default = 1 ns parameter td = 1n; parameter cm_voltage = 0; parameter vdd = 3; parameter vss = -3; real vout; analog begin if (V(reset) > 0.5) vout = cm_voltage; else if (V(in) * gain > vdd) vout = vdd; else if (V(in) * gain < vss) vout = vss; else vout = V(in) * gain; // V(in) could be positive or negative V(out) <+ transition (vout, td, rt, rt); end endmodule |
The Designer's Guide Community Forum » Powered by YaBB 2.2.2! YaBB © 2000-2008. All Rights Reserved. |