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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1650|回复: 15

[求助] Virtuoso里面有LNA的理想模型吗?

[复制链接]
发表于 2024-9-9 18:34:56 | 显示全部楼层 |阅读模式

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

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

x
analoglib里面有吗?


自己想用个sub-GHz的LNA,但不会用管子来搭。
发表于 2024-9-10 09:46:49 | 显示全部楼层
rfLib里有,但完全没有频率特性,全通带的LNA。需要你在前后级再加理想滤波器模拟实际的带通LNA
 楼主| 发表于 2024-9-10 16:57:23 | 显示全部楼层


happylly 发表于 2024-9-10 09:46
rfLib里有,但完全没有频率特性,全通带的LNA。需要你在前后级再加理想滤波器模拟实际的带通LNA ...


谢谢,LNA_PB和LNA_BB,PB和BB分别代表什么意思啊?
发表于 2024-9-10 17:16:14 | 显示全部楼层


orientview 发表于 2024-9-10 16:57
谢谢,LNA_PB和LNA_BB,PB和BB分别代表什么意思啊?


rfLib里应该有小写的lna,这个直接拿来用就行

至于你说的那两个元件,BB是baseband,PB是passband,LNA_PB和LNA_BB有何区别,你可以看看veriloga的代码。我大概看了下,BB是区分I路和Q路的,PB不区分
 楼主| 发表于 2024-9-10 17:42:36 | 显示全部楼层


happylly 发表于 2024-9-10 17:16
rfLib里应该有小写的lna,这个直接拿来用就行

至于你说的那两个元件,BB是baseband,PB是passband,LNA_ ...


谢谢,小写的LNA,没有输出阻抗这个参数啊。


LNA的输出阻抗一般是几十K欧姆吧,这个输出阻抗非常关键啊,怎么没有这个参数呢


微信图片_20240910174211.png
发表于 2024-9-11 09:29:19 | 显示全部楼层


orientview 发表于 2024-9-10 17:42
谢谢,小写的LNA,没有输出阻抗这个参数啊。


你看下veriloga,阻抗是定义了的,默认输入输出阻抗都是50ohm

module lna(in, out);
   inout in, out;
   electrical in, out;
   parameter real nf = 2 from [0:inf);
   parameter real ip3 = -10;
   parameter real gain = 15 from [0:inf);
   parameter real isolation = 200 from (0:inf);
   parameter real rin = 50 from (0:inf);
   parameter real cin = 0 from [0:100];
   parameter real rout = 50 from (0:inf);
   parameter real cout = 0 from [0:100];
   parameter real gammain = -150 from (-inf:0];
   parameter real mismatch = 1 from [-1:1] exclude (-1:1);
   parameter real gammaout=-150 from (-inf:0];

   real      a1,a2;       
   real      s11, s12, s21, s22;

   // suppose y=c1*x+c3*x^3
   real      rip3, c3;      // real ip3, and c3
   real      rnf;           // real NF
   real      noise_current;
   electrical in_int, out_int;

   analog begin
      @(initial_step) begin

         // unfold the S parameters from dB to real values
         s11 = `db20_real(gammain);
         s11 = s11*mismatch;
         s22 = `db20_real(gammaout);
         s21 = -`db20_real(gain);
         s12 = `db20_real(-isolation);

           // note ip3 is in dBm!
         rip3 = `db10_real(ip3-30);

         // Note rip3 is already power, while textbook formula is about
         // the square root of the power (plus a factor of 2)!
         // so, 2 is the factor because complex voltage in Spectre is the
         // peak-peak value, 4 is because a1 is twice the real power limit
         c3  = 4.0/3.0*s21/(2*rip3*4);

         // noise current
         rnf = `db10_real(nf);
         noise_current = 2*sqrt((rnf-1)*1.380620e-23*$temperature/rin);
      end

      // calculate the normalized incident waves: a1, a2
      a1 = V(in)/sqrt(rin) + I(in, in_int)*sqrt(rin);
      a2 = V(out)/sqrt(rout) + I(out, out_int)*sqrt(rout);
       
      // input: parallel Rin, Cin, and controlled current from a2
      // be careful about the sign of the controlled source
      `CAPG(in_int, cin*1e-9);
      I(in_int) <+ V(in)/rin*(1-s11)/(1+s11);
      I(in_int) <+ -a2*s12/(sqrt(rin)*(1+s11));
       
      // output: parallel Rout, Cout, and controlled current from a1
      `CAPG(out_int, cout*1e-9);
      I(out_int) <+ V(out)/rout*(1-s22)/(1+s22);
      // limit the input power
      if(a1 > sqrt(s21/(3*c3)) )
        a1 = sqrt(s21/(3*c3));
      else if(a1 < -sqrt(s21/(3*c3)))
        a1 = -sqrt(s21/(3*c3));
      // add in third order contribution
      I(out_int) <+ -(a1*s21-a1*a1*a1*c3)/(sqrt(rout)*(1+s22));

      // Noise contribution
      // note the noise_current^2. Becareful about the noise input!
      // funny enough, if I use I(in_int) <+ , then it fails!
      I(in) <+ white_noise(noise_current*noise_current, "lna");
   end
endmodule // lna

 楼主| 发表于 2024-9-11 10:40:49 | 显示全部楼层


happylly 发表于 2024-9-11 09:29
你看下veriloga,阻抗是定义了的,默认输入输出阻抗都是50ohm

module lna(in, out);


谢谢。


我这边的LNA,输出阻抗不是50欧,而是几十K欧姆,有什么办法吗?
发表于 2024-9-11 11:18:09 | 显示全部楼层


copy一个新cell,把veriloga代码改一下
parameter real rout = 10k 试一下,在输出端接10k的port,看s22回损是否足够小

 楼主| 发表于 2024-9-11 18:09:04 | 显示全部楼层


happylly 发表于 2024-9-11 11:18
copy一个新cell,把veriloga代码改一下
parameter real rout = 10k 试一下,在输出端接10k的port,看s22 ...


谢谢,只有LNA吗?有没有LNTA的理想单元?
发表于 2024-9-11 18:25:44 | 显示全部楼层


orientview 发表于 2024-9-11 18:09
谢谢,只有LNA吗?有没有LNTA的理想单元?


LNTA应该是没有,可以自己写veriloga实现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2025-7-16 15:47 , Processed in 0.025706 second(s), 7 queries , Gzip On, MemCached On.

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