微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微波和射频技术 > RFIC设计学习交流 > 请问动态比较器失调电压的蒙特卡洛仿真怎么做啊?

请问动态比较器失调电压的蒙特卡洛仿真怎么做啊?

时间:10-02 整理:3721RD 点击:
看到一些paper上面经常提到动态比较器失调电压的蒙特卡洛仿真,但是不知道这个怎么仿出来的。

输入一个ramp信号,观测输出,根据翻转时间,可以推测出input offset。

不用搭什么环路,加其他东西吗?

我仿真时只是用verilog-A写了如下两个block:
1.ramp wave generator 随着比较器的clock输出阶梯电压(电压范围要稍微大于offset)
2.output data writer 用于记录输出信号和识别翻转时间。

好像看到一篇guide也是这么说的,我再去看看,谢谢你了。说到verilogA,我也正想编一个理想的动态锁存比较器,代码如下,希望比较器功能:时钟为高时进行复位,输出(差分)都被拉高,时钟为低时,比较器只进行一次比较。不过还没改成,能麻烦你帮我看一下吗?
`include "discipline.h"
`include "constants.h"
// model comp - Comparator
//enable signal is active: High
//
module COMP1_ideal_me (vin_p, vin_n, clk, vout_p, vout_n) ;
input vin_p, vin_n, clk;
output vout_p, vout_n;
electrical vin_p, vin_n, clk, vout_p, vout_n;
parameter realtd = 1pfrom (0:inf);
//parameter realhys = 1ufrom (0:inf);
parameter real p_off = 0u;
parameter real n_off = 0u;
parameter real trise = 20.0pfrom (0:inf);
parameter real tfall = 20.0pfrom (0:inf);
parameter realone = 3.3;
parameter realzero = 0.0;
parameter realvth = 1.5;
parameter real slack = 10.0p from (0:inf); //slack不懂
//parameter integerinit = 1; //不懂作用
//parameter integertraceflag = 1; //不懂作用
//// real vin, halfhys, outstate;
real vin, outstate1,outstate2;
analog begin
@(initial_step("ac","dc","tran","xf"))begin
vin =V(vin_p) + p_off - V(vin_n) + n_off;
outstate1 =(abs(vin) > 0.0) ?zero : one ;
outstate2 =(abs(vin) > 0.0) ?one : zero ;
//if (traceflag)begin
//$strobe("%M at Init. vout: %ghys/2:%g", V(vout),halfhys);
end
end
//vin =V(vin_p) + p_off - V(vin_n) + n_off; //不屏蔽时报错

@(cross(vin, +1, slack ))begin//报错
if (V(enable) > vth)begin
outstate1 = one;
outstate2 = zero;
//if(traceflag)
//$strobe("%M at %g sec. output going high vin(p-n): %ghys/2:%g",
//$abstime, vin, halfhys); //这些话不知道干什么用的,所以屏蔽了
end
end
@(cross(vin, -1, slack))begin
if (V(enable) > vth)begin
outstate1 = zero;
outstate2 = one;
//if(traceflag)
//$strobe("%M at %g sec. output going low vin(p-n): %ghys/2:%g",
// $abstime, vin, halfhys);
end
end
V(vout_p) <+transition (outstate1, td, trise, tfall );
V(vout_n) <+transition (outstate2, td, trise, tfall );
end
endmodule

哥们这个是我看了你的问题后发的 正好我最近一直研究动态比较器 你看看吧 希望有帮助
http://bbs.eetop.cn/viewthread.php?tid=441803&extra=

非常感谢!

非常感谢,学习哈

非常感谢,nice

请问小编想出来问什么这些地方不对了么?求解释

输入一个ramp信号,观测输出,根据翻转时间,可以推测出input offset

学习了

正在学习ramp generator的设计仿真,不知道有没有好的资料推荐?
非常感谢

@loveyahoo,可以共享一下你的代码吗?谢谢

good....

请问一般的比较器怎么进行仿真啊?比较器是没有clock的,连续域比较器 请问一下如何仿真出系统失调和随机失调,有mc的库。

请问是在比较器正端输入ramp信号,在负端输入DC值,然后看比较器输出翻转时候对应的正端输入值与负端DC值之间的差值就是input offset吗?

学习了

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top