注: 该方式依赖 Cadence 提供的 MATLAB axlMatlab套件,请确认cadence已关联matlab(终端执行“which axlMatlab”,确认是否安装),也可在result处右键“open Matlab”尝试是否启动matlab软件。 参考链接:help -> ADE Assembler User Guide。

mastro中打开help,选择ade assemble user guide
点击以下目录查看具体使用方法,见页码P332~P351。

说明书的P332页为Using Maltab expressions in outputs
脚本如下(供参考),需要放置在virtuoso启动路径下。
function results = my_calculation()
% MY_CALCULATION 计算 Cadence ADE 中信号 /BG_lv 的平均值
% 该函数用于在 Cadence Virtuoso ADE 环境中,通过 MATLAB 脚本进行后处理。
% 它读取当前仿真结果中的指定电压波形,计算其均值,并返回结构体。
% 返回值 results.mean_value 即为均值。
% 使用前需确保已在 ADE 中运行仿真并加载结果。
% 可通过菜单:Results -> Export -> MATLAB 或直接调用此脚本。
% 清空工作区(保留 adeInfo 变量,用于与 Cadence 交互)
clc
clear vars -except adeInfo
close all
% 导入 Cadence MATLAB 接口所需的命名空间(用于波形操作,)
import cadence.utils.cdsPlot;
import cadence.srrdata.*;
import cadence.Queryry.*;
% 1. 读取目标信号波形数据
try
% 方式一(推荐):通过函数参数传入波形对象(可复用性更强,要求高版本matlab)
% 若使用此方式,函数头部应改为:function results = my_calculation(wave)
% 并且下方应使用:wave_data = ade2wave(wave);
%
% 方式二(当前):直接指定信号路径(硬编码,仅适用于固定设计)
% 此处使用 VT() 函数获取节点电压(Cadence 接口函数)
% 注意:'/BG_lv' 应为仿真中正确的节点名称(如带层次路径)
wave_data = VT('/BG_lv').y; % 获取cadence ade中的波形数据点的 y 轴数值向量;
VAR_val=VAR('fre');% % 获取cadence ade中的参数数值;
catch ME
% 若读取失败,抛出错误并显示原因
error('读取波形 /BG_lv 失败:%s', ME.message);
end
% 2. 计算均值,可更换自己需要的处理语句
mean_value = mean(wave_data); % 计算所有数据点的平均值
% 3. 打印结果(可选)
% 打印均值,保留4位小数(示例格式,可根据需要调整)
fprintf('信号 /BG_lv 的平均值:%.4f\n', mean_value);
% 4. 组织返回结果
% 将均值存入结构体,以便在其他脚本或 ADE 中调用
results = struct('mean_value', mean_valuem,'VAR_val',VAR_val);
end
复制成功
results = struct('mean_value', mean_value);
复制成功
myResult = my_calculation()
复制成功
但需要后续引用 myResult.mean_value。
运行仿真后,查看输出结果,表达式:mat.mean_value 将显示matlab脚本处理后的返回数据。
1)如果matlab表达式仿真出现error,请沟通IT确认已安装matlab,且cadence可调用matlab,同时在results处执行open matlab后再次尝试;
2)错误将在CIW展示,请知悉~;
3)根据测试来看,ade中的波形或者变量等原始数据可用于matlab脚本,区别在于:maltab中的表达式需要为单引号'',不能为“”,但是仅限于存储的VT、IT、VF等数据;
4)上述代码支持matlab 2018b及后续版本,如果为2018以上版亦可参考以下链接(复制搜索可见):
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删