1. ADS AEL脚本简介
在设计匹配电路时,如果PDK中未提供合适的电感与变压器,需要自行绘制,这会花费大量时间重复绘制。为提高绘制效率,我编写了一些AEL脚本,实现了电感和变压器的自动绘制。AEL是ADS内置的脚本语言,能够自动化版图绘制、参数化器件设计、批量处理与修改和自定义工具开发。
2. AEL基础函数
下面总结了绘制变压器你可能最少用到的AEL函数介绍, 更多函数请参考ADS帮助文档.
2.1 基础图形函数
// 1. 设置当前绘制层
de_set_layer(layerNum); // 设置当前工作层
// 2. 绘制路径
de_set_path_width(pathWidth); // 设置路径宽度
de_set_path_corner(DB_SQUARE_CORNER); // 设置拐角类型
de_add_path(); // 开始路径绘制
de_add_point(x, y); // 添加路径点
de_end(); // 结束路径绘制
// 3. 绘制矩形
db_add_rectangle(context, layerId,
x1, y1, // 左下角坐标
x2, y2); // 右上角坐标
2.2 版图操作函数
// 1. 选择与删除
de_select_all(); // 选择所有图形
de_deselect_all(); // 取消所有选择
de_delete(); // 删除选中图形
de_select_range(x1, y1, x2, y2); // 选择指定范围内的图形
// 2. 图形变换
de_move(dx, dy); // 移动图形
de_rotate(centerX, centerY, angle); // 旋转图形
de_chop(x1, y1, x2, y2); // 创建中空区域
// 3. 层操作
db_get_layerid(context, layerName, "drawing"); // 获取层ID
db_get_layer_number(layerId); // 获取层号
2.3 环境与数据操作
// 1. 设计上下文操作
de_get_current_design_context(); // 获取当前设计上下文
de_get_design_context_from_name(strcat(lib_name, ":", cell_name, ":layout")); // 获取指定单元的设计上下文
de_show_context_in_new_window(context); // 在新窗口中显示设计上下文
// 2. 端口(Pin)操作
db_create_pin(context, // 设计上下文
x, y, // 端口位置
angle, // 端口角度(0,90,180,270)
layerId, // 端口所在层
pinNumber, // 端口编号(可选)
pinName); // 端口名称(可选)
// 3. 参数操作
dm_item_get_parm_names(itemDefP); // 获取单元的参数名列表
de_set_item_parameters(itemInfo, params_list); // 设置单元的参数
// 4. 项目操作
de_init_item(strcat(lib_name, ":", cell_name, &