Skip to content

第 5 章:Mystic 图形界面(GUI)

来源:mystic_ug.pdf(W‑2024.09),Chapter 5 Mystic Graphical User Interface

Mystic GUI 让提取流程可视化、可交互:可以逐行执行策略、监控拟合曲线、即时绘图,并通过内置 IPython Console 调整模型卡。本章分两部分:第一部分讲解 GUI 布局、各面板与工具条;第二部分给出典型用法(交互运行、参数探索、平行坐标、Smith/极坐标图等)。


5.1 面板与菜单总览

5.1.1 菜单/工具栏

  • 菜单栏(表 11)File(打开/保存/退出)、Edit(复制、查找、首选项)、Run(控制 Console 执行)、Reset(重置面板/会话)、Help(快捷键与 API 链接)。
  • Run 工具栏(图 25):提供 Run/ContinueRun Next LinePauseBreakpointReset。默认把整段缩进代码当作一个块执行,可用 %unpackLoopsPreferences > Run > Loop Unpacking 调整逐行模式。
  • 左侧工具栏:快速显示/隐藏各面板,鼠标悬停可见提示。

图 25:Run 工具栏按钮分布

5.1.2 可停靠面板

GUI 主窗口默认分四区(图 20),均可透过左侧栏开关、首选项保存布局:

图 20:Mystic GUI 默认面板布局

  1. Editor

    • 打开策略脚本,可编辑/保存。运行时,已执行行变灰只读,当前行黄色,运行中行绿色。
    • 支持自动缩进、Ctrl+F 查找、Ctrl+T 块注释、Tab 缩进、代码补全。
    • 通过点击行号或工具栏按钮设置断点;执行到断点自动暂停。

    图 21:黄色行显示下一条语句,灰色行表示已执行内容

  2. Syntax Checker

    • 运行前检查 Python 语法。若无问题显示“无错误”提示(图 22)。发生警告/错误时,页签出现星号(图 23),方便快速定位。

    图 22:Syntax Checker 面板提示未发现问题

    图 23:Syntax Checker 检测到潜在问题时会在页签上加星号

  3. Console(IPython)

    • 注入 Mystic 命名空间,可运行 Editor 中的命令也可手动输入。内置多条魔法命令:
      • %echo:在 Console 打印 GUI 绘图对等命令。
      • %help:列出常用绘图/控制指令(图 24)。
      • %history:回顾命令历史;%ns:列出变量;%unpackLoops:逐行展开循环。
    • Console 还提供多种绘图函数,供 Plot Area 面板调用。

    图 24:Console 中  打印可用指令摘要

  4. Plot Log

    • 记录 GUI 背后生成的绘图命令,方便复制到脚本自动化;可全文搜索。

    图 26:Plot Log 记录每一次绘图指令,便于复制进脚本

  5. Doc Lookup

    • 查询任意变量/方法文档(如输入 SimData,图 27)。支持 Ctrl+L 快速检索光标下文本,或输入 SimData.WritePLTFile 查方法。

    图 27:Doc Lookup 可直接查看  类的 API 文档

  6. Variable Explorer

    • 以表格列出 Console 变量,显示类型/尺寸/值(图 28)。双击 list/dict/np.array/SimData/Model 等容器,可展开内容。
    • Model(Netlist)视图会高亮已修改参数(图 29),并可随时保存当前模型卡。

    图 28:Variable Explorer 列表形式展示命名空间变量

    图 29:Netlist 视图中已修改的参数会以绿色突出显示

  7. Plot Area & Plot Parameters:详见 5.2。

  8. Wizards:详见 5.2.4。


5.2 绘图与可视化

5.2.1 Plot Area 面板

  • 使用 addFigure('IdVgld') 创建空图(图 30),返回 FigureWidget,可通过 plot() 传入 SimData

    图 30:Plot Area 新建空图后,左右 Y 轴默认可独立配置

  • SimData 默认有目标列与拟合列,初次绘制时仅显示目标曲线(图 31),调用 ExtractionUtils.PrintErrorsseries.updateData() 便能同时显示 target/fit(图 32)。

    图 31:低漏电 Id–Vg 目标曲线示例

    图 32:同一图内同时显示目标(蓝)与拟合(红)曲线

  • 交互操作:

    • 鼠标滚轮等比缩放;右键拖动任意方向自由缩放;在某轴上按住右键沿轴方向缩放;左键拖动平移;A 按钮自动缩放;Log/Lin 按钮直接切换坐标轴尺度(图 33)。
    • removeFigure/removeFiguresFigureWidget.removeSeries 清理图形/曲线。

    图 33:左轴切换为 log10 后可放大观测弱信号

  • 多图管理:可在 Preferences > Plots 勾选 Auto Adjust 根据窗口大小调整网格;任一图可全屏/恢复;plotGroup 参数把图归类到不同标签页。

  • 通过 Plot Parameters 的 Group 列表可视化/编辑分组(图 34),支持导出整个分组为 PNG。

    图 34:Group 列表支持快速切换或批量导出同类图

5.2.2 Plot Parameters 面板

  • 每个图对应一个页签(图 35),可配置标题、坐标轴、对数等参数(默认值在 Preferences > Plots 设置,见图 36)。

    图 35:Plot Parameters 为每张图生成独立页签

    图 36:Preferences 中可预设绘图与坐标轴默认参数

  • 链接图标:可把同一组的轴设置联动,例如多张 I‑V 图共用 log10 纵轴。

  • 新增曲线后会生成对应菜单(图 37),包含颜色、线型、标记、数据列等;支持 Transforms 对单条曲线应用量纲变化。

    图 37:曲线菜单可单独设置数据列、样式与变换

  • Series 面板也提供 mask/weight 等控制,便于强调特定偏置。

    图 38:Curve Properties 可一次修改多条曲线的样式

5.2.3 Plot Area 其他功能

  • FigureWidget.plotParallelCoordinates:绘制多维 FoM(5.3.3 示例)。
  • mode="polar" 绘制极坐标/S 参数;Smith 图会自动增加 Smith Axis 选项。
  • 所有图均可通过 Plot Parameters 导出/复制命令。

5.2.4 Wizards 面板

  • 左侧列出内置向导(如 Sensitivity Analysis);右侧提供参数表单(图 39),支持嵌套 list/dict(图 40)。
  • 可引用 Console 中现有对象:在输入框输入变量名,执行前 GUI 会验证并提示缺失变量(图 41)。
  • 点击 Copy 将生成指令复制到 Editor,或直接 Run 在 Console 执行;Object Name 可命名返回值。

图 39:Wizards 面板列出常用向导并显示参数表单

图 40:嵌套字典/列表输入框

图 41:当引用变量缺失时会弹出提示对话框


5.3 使用示例

5.3.1 交互式运行策略(Interactive Run)

python
IdVg = mdb.Load(ivar="vgate", dvar="idrain", project=targetProjectName)
IdVgld = IdVg.FilterData('eq', 0.05, 'bias.drain')
IdVgld.interactive = True
IdVgld.name = 'IdVgld'
IdVgld.plotGroup = 'IV'
  • 被标记为 interactiveSimData 会在 Plot Area 自动生成实时曲线,随 ExtractionUtils.DoStage 更新。
  • ExtractionUtils.PrintErrors("Initial", IdVgld, ...) 可保留蓝色“基准”快照(图 42);PrintErrors("IdVgld", ...) 则刷新当前(红色)拟合曲线(图 43–图 44)。
  • 若标签不同(如 "Initial" vs "IsVgld"),Plot Area 会保留多条历史曲线,便于比较不同阶段误差。

图 42:初始拟合状态作为蓝色快照保留

图 43:第一阶段结束后的实时拟合(红)对比初值(蓝)

图 44:策略完成后的最终拟合效果

5.3.2 InteractiveParamSweep 滑块

python
pmax = {"QMFACTOR":1.0,"CDSC":0.2,"U0":0.1,"UA":10.0,"UD":0.2}
ExtractionUtils.InteractiveParamSweep(
  IdVgld, Simulator, Model,
  [PHIG,QMFACTOR,CDSC,U0,UA,EU,UD,ETAMOB,UCS],
  pmax=pmax, num=101
)
  • 为每个 OptParam 创建滑块并绑定后台仿真;可在 Plot Parameters 中微调步长/范围,也可添加/删除滑块。适合粗调参数或评估敏感度(图 45)。

图 45:可拖动滑块即时观察参数对 Id–Vg 的影响

5.3.3 平行坐标图(Parallel Coordinates)

python
ld_foms = IdVgld.MakeFoMTarget(['ioff','vt','ion'])
hd_foms = IdVghd.MakeFoMTarget(['ioff','vt','ion'])
fig = addFigure('NMOS FoMs')
fig.plotParallelCoordinates([ld_foms, hd_foms], suffix=['_lin','_sat'])
  • 用 FoM(如 Ioff/Vt/Ion)压缩多条曲线,再于平行坐标图中对比 target(黑)与 fit(红)(图 46)。
  • Shift+拖动可在任意轴上建立筛选(图 47),聚焦某 Gate Length/Fin Width 区间;Plot Parameters 提供选择编辑。

图 46:14 nm FinFET 各几何条件的 FoM 拟合对比

图 47:通过选择区域聚焦特定 Lg 的并行坐标图

5.3.4 Smith/Polar 图

python
fig = addFigure('S-Params')
fig.plot(S_data,
         column=['s(11)re','s(11)i','s(22)re','s(22)i'],
         mode="smith", colour="#000000", markerStyle='o')
fig.plot(S_data,
         column=['s(11)re-fit','s(11)i-fit','s(22)re-fit','s(22)i-fit'],
         mode="smith", colour="#FF0000", markerStyle='Triangle')

图 48:示例 RF 设备的 S 参数数据(27.7–28.2 GHz)

  • mode="smith"mode="polar" 可直接生成图 49 所示 Smith/极坐标,便于 RF 目标校验;同样支持 interactive 自动更新。

图 49:Smith 图与极坐标图对比目标(黑)与拟合(红)S 参数

基于 Sentaurus TCAD 官方文档构建

代码块