Appearance
第 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/Continue、Run Next Line、Pause、Breakpoint、Reset。默认把整段缩进代码当作一个块执行,可用%unpackLoops或Preferences > Run > Loop Unpacking调整逐行模式。 - 左侧工具栏:快速显示/隐藏各面板,鼠标悬停可见提示。

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

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

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


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

- 注入 Mystic 命名空间,可运行 Editor 中的命令也可手动输入。内置多条魔法命令:
Plot Log:
- 记录 GUI 背后生成的绘图命令,方便复制到脚本自动化;可全文搜索。

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

- 查询任意变量/方法文档(如输入
Variable Explorer:
- 以表格列出 Console 变量,显示类型/尺寸/值(图 28)。双击 list/dict/
np.array/SimData/Model等容器,可展开内容。 - Model(Netlist)视图会高亮已修改参数(图 29),并可随时保存当前模型卡。


- 以表格列出 Console 变量,显示类型/尺寸/值(图 28)。双击 list/dict/
Plot Area & Plot Parameters:详见 5.2。
Wizards:详见 5.2.4。
5.2 绘图与可视化
5.2.1 Plot Area 面板
使用
addFigure('IdVgld')创建空图(图 30),返回FigureWidget,可通过plot()传入SimData。
SimData默认有目标列与拟合列,初次绘制时仅显示目标曲线(图 31),调用ExtractionUtils.PrintErrors后series.updateData()便能同时显示 target/fit(图 32)。

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

- 鼠标滚轮等比缩放;右键拖动任意方向自由缩放;在某轴上按住右键沿轴方向缩放;左键拖动平移;
多图管理:可在
Preferences > Plots勾选Auto Adjust根据窗口大小调整网格;任一图可全屏/恢复;plotGroup参数把图归类到不同标签页。通过 Plot Parameters 的
Group列表可视化/编辑分组(图 34),支持导出整个分组为 PNG。
5.2.2 Plot Parameters 面板
每个图对应一个页签(图 35),可配置标题、坐标轴、对数等参数(默认值在
Preferences > Plots设置,见图 36)。

链接图标:可把同一组的轴设置联动,例如多张 I‑V 图共用 log10 纵轴。
新增曲线后会生成对应菜单(图 37),包含颜色、线型、标记、数据列等;支持
Transforms对单条曲线应用量纲变化。
Series面板也提供mask/weight等控制,便于强调特定偏置。
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可命名返回值。



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'- 被标记为
interactive的SimData会在 Plot Area 自动生成实时曲线,随ExtractionUtils.DoStage更新。 ExtractionUtils.PrintErrors("Initial", IdVgld, ...)可保留蓝色“基准”快照(图 42);PrintErrors("IdVgld", ...)则刷新当前(红色)拟合曲线(图 43–图 44)。- 若标签不同(如 "Initial" vs "IsVgld"),Plot Area 会保留多条历史曲线,便于比较不同阶段误差。



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)。

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 提供选择编辑。


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')
mode="smith"或mode="polar"可直接生成图 49 所示 Smith/极坐标,便于 RF 目标校验;同样支持interactive自动更新。
