Cadence virtuoso gmid曲线

文章详细介绍了如何在Spectre仿真环境中计算gmid、ft、gmro等表达式,并通过计算器工具进行操作。接着,展示了如何保存这些公式以备后续使用,以及如何修改脚本来进行参数扫描,生成多条曲线,包括gmid-ft、gmid-gmro和gmid-IDoverW的关系图。

gmid表达式

dc仿真结束后Outputs-setup

输出名称 点击open

打开计算器 Tools-Browser

在dcdc里面找到gmoverid

右击calculate

此时gmoverid表达式已经出现在计算器里面,

在下图中选择Get Expression获得这个表达式,点击add添加,gmid表达式就添加好了。

ft表达式

下面添加ft表达式,ft=gm/(2πcgg)

清除刚才计算器里面的内容,同样的方法,首先在dcdc里面找到gm的值右击calculate,再在dcdc里面找到cgg右击calculate,此时计算器里面的是cgg表达式,在表达式最后面输入*6.28

再选择计算器里面的除号即可得到ft表达式

Get Expression,add

本征增益表达式

下面添加本征增益的表达式gmro=gm/gds

选择gm,选择gds,除号。

电流密度

id/w曲线

上述相同的方法先找到id

w在element-info文件夹里面,右击放在计算器里面,按除号,可以得到id/w的值

所有的公式编辑好之后,最好保存下来,这样下次用的时候直接load就行了。

画图

接下来画图,两个两个曲线画,先选gmid和ft曲线图

画出来是下图这样,但是gmid曲线是以gmid为横坐标的,所以要修改一下

点击坐标的vgs,把plot vs里面的vgs换成gmid

这样就是横坐标为gmid,纵坐标为ft的曲线图。

同理可以画出gmid-gmro,以及gmid-idw曲线。

对沟道长度进行参数扫描

把所有的曲线都设置成plot

ADE-Tools-参数扫描

保存为ocn脚本,tool-save script

OK保存

需要对脚本进行修改

首先把所有plot语句删除,再添加新的窗口,定义xy曲线,三幅图像。

修改前

paramRun()

gmid = getData("NM0:gmoverid" ?resultsDir "/home/simulation/gmid/spectre/schematic/" ?result "dc-dc")

plot( gmid ?expr '( "gmid" ) )

ft = (getData("NM0:gm" ?resultsDir "/home/simulation/gmid/spectre/schematic/" ?result "dc-dc") / (getData("NM0:cgg" ?resultsDir "/home/simulation/gmid/spectre/schematic/" ?result "dc-dc") * 6.28))

plot( ft ?expr '( "ft" ) )

gmro = (getData("NM0:gm" ?resultsDir "/home/simulation/gmid/spectre/schematic/" ?result "dc-dc") / getData("NM0:gds" ?resultsDir "/home/simulation/gmid/spectre/schematic/" ?result "dc-dc"))

plot( gmro ?expr '( "gmro" ) )

IDoverW = (getData("NM0:id" ?resultsDir "/home/simulation/gmid/spectre/schematic/" ?result "dc-dc") / (pv "/NM0" "w" ?resultsDir "/home/simulation/gmid/spectre/schematic/" ?result "element-info"))

plot( IDoverW ?expr '( "IDoverW" ) )

修改后

paramRun()

gmid = getData("NM0:gmoverid" ?resultsDir "/home/simulation/gmid/spectre/schematic/" ?result "dc-dc")

ft = (getData("NM0:gm" ?resultsDir "/home/simulation/gmid/spectre/schematic/" ?result "dc-dc") / (getData("NM0:cgg" ?resultsDir "/home/simulation/gmid/spectre/schematic/" ?result "dc-dc") * 6.28))

gmro = (getData("NM0:gm" ?resultsDir "/home/simulation/gmid/spectre/schematic/" ?result "dc-dc") / getData("NM0:gds" ?resultsDir "/home/simulation/gmid/spectre/schematic/" ?result "dc-dc"))

IDoverW = (getData("NM0:id" ?resultsDir "/home/simulation/gmid/spectre/schematic/" ?result "dc-dc") / (pv "/NM0" "w" ?resultsDir "/home/simulation/gmid/spectre/schematic/" ?result "element-info"))

newWindow()

ocnYvsYplot(?wavex gmid ?wavey ft)

addSubwindow()

ocnYvsYplot(?wavex gmid ?wavey gmro)

addSubwindow()

ocnYvsYplot(?wavex gmid ?wavey IDoverW)

保存

运行ocn脚本,不需要ADE了,在icfb里面,load刚才的ocn脚本

### 使用 Virtuoso 获取 gm/id 曲线并绘制 IDW 曲线Cadence Virtuoso 中获取 `gm/id` 曲线以及绘制 `IDW` 曲线的过程涉及多个步骤,具体操作如下: 对于 `gm/id` 曲线的数据提取,可以利用 ADE L 软件中的命令来完成。通过特定的仿真设置和数据处理脚本实现自动化流程。 #### 提取 gm/id 数据 为了获得 `gm/id` 的数值,可以通过编写 Tcl/SPICE 命令来进行模拟运行,并指定保存路径以便后续分析工具读取这些数据文件[^1]。 ```tcl set gmid_data [getData("NM0:gmoverid" ?resultsDir "/home/simulation/gmid/spectre/schematic/" ?result "dc-dc")] ``` 此段代码用于从给定的结果目录中加载名为 `"dc-dc"` 的直流扫描结果下的 NMOS 晶体管 `NM0` 的跨导 (`gm`) 与阈值电压 (`id`) 的比率(`gm/id`)。 #### 绘制 IDW 曲线 要创建 `IDW` (即 Id-Vds-W/L) 图表,在拥有上述提到的 `gm/id` 关系之后还需要进一步计算不同宽度(W)/长度(L)比例下器件的工作电流(Id),这通常是在相同的偏置条件下改变几何参数后重新做一次 DC 扫描得到新一组 I-V 特性曲线从而得出相应的 Id 值。 一旦拥有了完整的 Id 和 Vds 测量集,就可以使用 Python 或者其他绘图库如 Matplotlib 来可视化这些数据点形成所需的图表。 ```python import matplotlib.pyplot as plt # Assume 'voltage_points' and 'current_values' are lists containing the measured data. plt.figure() plt.plot(voltage_points, current_values) plt.title('IDW Curve') plt.xlabel('Vds Voltage (V)') plt.ylabel('Drain Current (A)') plt.grid(True) plt.show() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值