在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1886|回复: 4

[求助] 关于verilog_a建模opamp的问题

[复制链接]
发表于 2019-5-7 09:44:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
楼主在学习verlog_a,在看如下opamp的示例代码时,有些疑惑
想请问各位大佬,两个问题

1、代码里定义的节点cout_n、cout_p是什么意思呢,具体的物理含义是指什么呢?
2、在代码的GM_stage部分,如下两句
   I(cout_n,vref)<+ V(cout_n,vref)/100e6;
   I(cout_p,vref)<+ V(cout_p,vref)/100e6;
其中的100e6指的是什么呢,不太清楚这两句话的含义

谢谢各位大佬!

附代码:
`include "discipline.h"
`include "constants.h"
module diff_opamp(vout_p,vout_n,vref,vin_p,vin_n,vsupply_p,vsupply_n);
input vref,vsupply_p,vsupply_n;
inout vout_p,vout_n,vin_p,vin_n;
parameter  freq_unitygain=1e6;
parameter  gain=1000;
parameter  r_in=10e6;
parameter  i_bias=0;
parameter  r_out=100;
parameter real  iin_max=100e-6;
parameter real  slew_rate=20e6;
parameter  vin_offset=0;
parameter  vsoft=0.5;
real  gm_nom;
real  vmax_in;
real  vin_al,c1,r1;
electrical vout_p,vout_n,vref,vin_p,vin_n,vsupply_n,vsupply_p;
electrical cout_n,cout_p;

analog begin
     @(initial_step or initial_step("dc"))begin
      c1=iin_max/slew_rate;
      gm_nom=2*3.14*freq_unitygain*c1;
      r1=gain/gm_nom;
      vmax_in=iin_max/gm_nom;
      end
   //
   //input stage
   //
  V(vref)<+ V(vsupply_n)+0.5*V(vsupply_p,vsupply_n);
    vin_al=V(vin_p,vin_n)/2+vin_offset;
    I(vref,vin_n)<+i_bias;
    I(vref,vin_p)<+i_bias;
    I(vin_p,vin_n)<+V(vin_p,vin_n)/r_in+vin_offset/r_in;
   //
   //GM stage with slew rating
   //
   I(cout_n,vref)<+ V(cout_n,vref)/100e6;
   I(cout_p,vref)<+ V(cout_p,vref)/100e6;
  if(vin_al>vmax_in)begin
     I(vref,cout_p)<+ iin_max;
     I(vref,cout_n)<+ -iin_max;
        end
     else if(vin_al<-vmax_in)begin
       I(vref,cout_p)<+ -iin_max;
       I(vref,cout_n)<+  iin_max;
         end
      else begin
          I(vref,cout_p)<+0.5*gm_nom*vin_al;
          I(vref,cout_n)<+ -0.5*gm_nom*vin_al;
           end
     //  
     //dominate pole
     //
    I(vref,cout_n)<+ c1*ddt(V(vref,cout_n));
    I(vref,cout_p)<+ c1*ddt(V(vref,cout_p));
    I(vref,cout_n)<+ V(vref,cout_n)/r1;
    I(vref,cout_p)<+ V(vref,cout_p)/r1;
    //
    //output stage
    //
    I(vout_n,vref)<+ V(vref,cout_n)/r1;
    I(vout_n,vref)<+ V(vout_n,vref)/r1;
    I(vout_p,vref)<+ V(vref,cout_p)/r1;
    I(vout_p,vref)<+ V(vout_p,vref)/r1;
    //
    //soft output limiting
    //
    if(V(vout_p)>(V(vsupply_p)-vsoft))begin
     I(cout_p,vref)<+gm_nom*(V(vout_p,vsupply_p)+vsoft);
                 end
      else if(V(vout_p)<(V(vsupply_n)+vsoft))begin
         I(cout_p,vref)<+gm_nom*(V(vout_p,vsupply_n)-vsoft);
        end
    if(V(vout_n)>(V(vsupply_n)-vsoft))begin
     I(cout_n,vref)<+gm_nom*(V(vout_n,vsupply_p)+vsoft);
                 end
      else if(V(vout_n)<(V(vsupply_n)+vsoft))begin
         I(cout_n,vref)<+gm_nom*(V(vout_n,vsupply_n)-vsoft);
        end
end
endmodule

发表于 2019-5-7 13:51:07 | 显示全部楼层
cout_p,n 是第一级输出;
I(cout_n,vref)<+ V(cout_n,vref)/100e6;
I(cout_p,vref)<+ V(cout_p,vref)/100e6;
这两句是指在cout_p,n到参考地vref之间加100Mohm的电阻
 楼主| 发表于 2019-5-7 20:24:46 | 显示全部楼层


david_reg 发表于 2019-5-7 13:51
cout_p,n 是第一级输出;
I(cout_n,vref)


呜呜呜,真的谢谢大哥我还有两个问题想请教大哥

1、为什么要在cout和参考地之间加一个100Mohm的电阻呢?
2、output stage的电流为什么等于V(cout)/rout + V(vout)/rout呢?想象不出来输出级是一个什么样的结构
我的理解是 I(vout)等于V(vout)/rout,再建立一个V(cout)与V(vout)的关系就可以了
    //
    //output stage
    //
    I(vout_n,vref)<+ V(vref,cout_n)/rout;
    I(vout_n,vref)<+ V(vout_n,vref)/rout;
发表于 2019-5-8 20:18:33 | 显示全部楼层
1. 第一级输出电阻是100M和r1的并联, 至于为什么要加这个100M我也不是很清楚;
I(cout_n,vref)<+ V(cout_n,vref)/100e6;
I(vout_n,vref)<+ V(vref,cout_n)/r1;

2.  I(vout_n,vref)<+ V(vref,cout_n)/rout;  ---- 这一句表示一个vccs, 跨导gm=1/rout
I(vout_n,vref)<+ V(vout_n,vref)/rout;  ------ 这是与跨导并联的电阻 rout;
这样第二级的电压增益就是 gm*rout=1.
 楼主| 发表于 2019-5-9 19:53:58 | 显示全部楼层


david_reg 发表于 2019-5-8 20:18
1. 第一级输出电阻是100M和r1的并联, 至于为什么要加这个100M我也不是很清楚;
I(cout_n,vref) ...


感谢大佬的回复!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-2-12 09:03 , Processed in 0.017169 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表