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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 25701|回复: 25

请教一个HSPICE做monte carlo 分析的问题

[复制链接]
发表于 2009-1-3 16:40:47 | 显示全部楼层 |阅读模式

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

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

x
初学
做DC分析
四个电阻
想随机取不同的值 对通过的电流进行DC扫描
看电压


four resistors
.option modmonte=1
.param bias=1m
.param rsheet=agauss(100,5,3)
i1 0 1 bias
i2 0 2 bias
i3 0 3 bias
i4 0 4 bias
r1 1 0 resistor l=10u
r2 2 0 resistor l=10u
r3 3 0 resistor l=10u
r4 4 0 resistor l=10u
.model resistor R w=1u l=3u rsh=rsheet
.op
.dc bias 1m 2m 0.1m sweep monte=1
.print v(1) v(2) v(3) v(4)
.end



结果看到:



*** monte carlo  index =     1 ***
      MODEL PARAMETER MONTE CARLO DEFINITIONS
        0:r1      
rsheet                          
     resistor        =   98.23   

        0:r2      
rsheet                          
     resistor        =   99.77   

        0:r3      
rsheet                          
     resistor        =   100.3   

        0:r4      
rsheet                          
     resistor        =   98.24   

******  
  four resistors                                                               
  ******  dc transfer curves               tnom=  25.000 temp=  25.000         
******  
       MONTE CARLO PARAMETER DEFINITIONS
rsheet                          
x
      bias      voltage      voltage      voltage      voltage   
                     1            2            3            4     
    1.00000m    982.3457m    997.6751m      1.0026     982.3688m  
    1.10000m      1.0806       1.0806       1.0806       1.0806   
    1.20000m      1.1788       1.1788       1.1788       1.1788   
    1.30000m      1.2771       1.2771       1.2771       1.2771   
    1.40000m      1.3753       1.3753       1.3753       1.3753   
    1.50000m      1.4736       1.4736       1.4736       1.4736   
    1.60000m      1.5718       1.5718       1.5718       1.5718   
    1.70000m      1.6700       1.6700       1.6700       1.6700   
    1.80000m      1.7683       1.7683       1.7683       1.7683   
    1.90000m      1.8665       1.8665       1.8665       1.8665   
    2.00000m      1.9647       1.9647       1.9647       1.9647   

发现电阻值是不同,那应该在DC的每个点上对应不同的电压值,但仿真结果是DC扫描的第一个点4个电压值不同,但之后每个点的值都一样了,不知道是哪里设置的问题,还是语法错误,请指教!!
谢谢了
头像被屏蔽
发表于 2009-1-4 17:10:30 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2009-1-5 15:13:38 | 显示全部楼层
four resistors
.option modmonte=1
.param bias=1m
.param rsheet1=agauss(100,5,3)
.param rsheet2=agauss(100,5,3)
.param rsheet3=agauss(100,5,3)
.param rsheet4=agauss(100,5,3)
i1 0 1 bias
i2 0 2 bias
i3 0 3 bias
i4 0 4 bias

r1 1 0 rsheet1
r2 2 0 rsheet2
r3 3 0 rsheet3
r4 4 0 rsheet4
.op
.dc bias 1m 2m 0.1m sweep monte=10
.print v(1) v(2) v(3) v(4)
.end
发表于 2009-1-5 15:14:43 | 显示全部楼层
*** monte carlo  index =     1 ***
      MODEL PARAMETER MONTE CARLO DEFINITIONS
******  
four resistors                                                               
  ******  dc transfer curves               tnom=  25.000 temp=  25.000         
******  
       MONTE CARLO PARAMETER DEFINITIONS
rsheet1         
     r1              =   100.8   
rsheet2         
     r2              =   98.23   
rsheet3         
     r3              =   99.77   
rsheet4         
     r4              =   100.3   
x
      bias      voltage      voltage      voltage      voltage   
                     1            2            3            4     
    1.00000m    100.7644m     98.2346m     99.7675m    100.2603m  
    1.10000m    110.8408m    108.0580m    109.7443m    110.2863m  
    1.20000m    120.9173m    117.8815m    119.7210m    120.3124m  
    1.30000m    130.9937m    127.7049m    129.6978m    130.3384m  
    1.40000m    141.0701m    137.5284m    139.6745m    140.3644m  
    1.50000m    151.1466m    147.3519m    149.6513m    150.3905m  
    1.60000m    161.2230m    157.1753m    159.6280m    160.4165m  
    1.70000m    171.2994m    166.9988m    169.6048m    170.4425m  
    1.80000m    181.3759m    176.8222m    179.5815m    180.4686m  
    1.90000m    191.4523m    186.6457m    189.5583m    190.4946m  
    2.00000m    201.5288m    196.4691m    199.5350m    200.5206m  
y
发表于 2009-1-5 15:16:41 | 显示全部楼层
不知道是不是符合lz的仿真要求

我觉得仅仅做蒙特卡罗分析没什么价值 重要的应该是做最坏情况分析 只是我一直搞不定 如果lz有所研究的话不妨讨论下  
 楼主| 发表于 2009-1-6 12:21:10 | 显示全部楼层


原帖由 ttrrttrr 于 2009-1-5 15:16 发表
不知道是不是符合lz的仿真要求

我觉得仅仅做蒙特卡罗分析没什么价值 重要的应该是做最坏情况分析 只是我一直搞不定 如果lz有所研究的话不妨讨论下  




谢谢您的交流!
不过和我的本来想法还有一些差别,因为我想随机的是模型里的某个参数,比如MOS管的Vth0,而不是W或L

我本身的语句里 rsh 是一个模型中的参数  *.model resistor R w=1u l=3u rsh=rsheet
而引用resistor这个模型时预设rsheet为变量,随机取值。

而在您的修改中
直接调用了理想电阻,没用模型resistor,理想电阻的阻值是在调用时可以外部修改的,所以如果这样的话,直接设一个rsheet,就可以搞定了
four resistors
.option modmonte=1
.param bias=1m
.param rsheet=agauss(100,5,3)
i1 0 1 bias
i2 0 2 bias
i3 0 3 bias
i4 0 4 bias
r1 1 0 rsheet
r2 2 0 rsheet
r3 3 0 rsheet
r4 4 0 rsheet
.op
.dc bias 1m 2m 0.1m sweep monte=1
.print v(1) v(2) v(3) v(4)
.end

结果
rsheet                          
     r1              =   100.8      r2              =   98.23   
     r3              =   99.77      r4              =   100.3   
x
      bias      voltage      voltage      voltage      voltage   
                     1            2            3            4     
    1.00000m    100.7644m     98.2346m     99.7675m    100.2603m  
    1.10000m    110.8408m    108.0580m    109.7443m    110.2863m  
    1.20000m    120.9173m    117.8815m    119.7210m    120.3124m  
    1.30000m    130.9937m    127.7049m    129.6978m    130.3384m  
    1.40000m    141.0701m    137.5284m    139.6745m    140.3644m  
    1.50000m    151.1466m    147.3519m    149.6513m    150.3905m  
    1.60000m    161.2230m    157.1753m    159.6280m    160.4165m  
    1.70000m    171.2994m    166.9988m    169.6048m    170.4425m  
    1.80000m    181.3759m    176.8222m    179.5815m    180.4686m  
    1.90000m    191.4523m    186.6457m    189.5583m    190.4946m  
    2.00000m    201.5288m    196.4691m    199.5350m    200.5206m  

或许讨论电阻没什么明显的意义。
所以我想问的是MOS管,在做MC分析的时候,由于引用一个MOS模型时,自己能修改的量是W和L,这个可以随机,比如:

.PARAM  XW=GAUSS(10u,0.01,3)

M1 1 2 3 4 n18 L=0.5u W=XW

但是,对于Vth0,如果也想随机的话,一般怎末设置?
我没有什么好办法,只能去修改库,比如:
库里有   VTH0     = '0.401815+DVTH_N18'  
我自己又加了一项 VTH0     = '0.401815+DVTH_N18+XVTH_0'
然后在外部随机 'XVTH_0'
但是在应用中
如果有M1 M2 两个管子都用这个模型
由于已经加了modmonte=1
在瞬态仿真中,可以随机出两个不同的VTH0,
但在DC扫面时,就发现类似前述的电阻的问题,算第一个点取不同VTH0,后面的点又相同了,而我希望的是一直按不同的VTH0计算所有点。

不知道是什么问题,希望能跟您交流!
 楼主| 发表于 2009-1-6 12:31:52 | 显示全部楼层


原帖由 ttrrttrr 于 2009-1-5 15:16 发表
不知道是不是符合lz的仿真要求

我觉得仅仅做蒙特卡罗分析没什么价值 重要的应该是做最坏情况分析 只是我一直搞不定 如果lz有所研究的话不妨讨论下  



对worst case分析,我了解的不多,我选择做MC分析的原因是想在系统中引入随机的失调误差,然后利用校准模块去校准,比如比较器的输入对管M1,M2,MC分析可以产生随机的VHT1 VTH2,可能引起比较器的误翻转.
而对worst case分析,我个人理解其结果是使M1,M2两管最慢,但两管还是没有失调,只能影响比较器速度,我了解不多,不知道worst case分析能不能产生失调等非理想因素,如果可以的话,请您指点一下,我可以试试,呵呵!
发表于 2009-3-11 14:04:41 | 显示全部楼层
luguo luguo xuexi zhong
发表于 2010-3-29 22:10:53 | 显示全部楼层
这个帖子好  顶起来 希望大家继续讨论
发表于 2010-3-29 23:26:37 | 显示全部楼层
为什么不看manual呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2025-2-20 04:42 , Processed in 0.023099 second(s), 7 queries , Gzip On, Redis On.

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