提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
脚本说明
1、这几个脚本只适用于3D layout 仿真组件
2、脚本作用是为了仿真完成后能快速打印出IL,RL,NEXT,FEXT的图形
1、rename port 脚本
这个脚本的作用是将软件自动生成的端口名[器件位号].[器件引脚].[网络名称]改成[网络名称]__[器件位号]_[器件引脚]
比如软件自动生成的端口U1.AC2.DDR2_A_DQ0 重命名为 DDR2_A_DQ0_U1_AC2
做这一步的目的是为后续的操作做准备
import ScriptEnv
ScriptEnv.Initialize("Ansoft.ElectronicsDesktop")
oProject = oDesktop.GetActiveProject()
active_project_name = oProject.GetName()
oDesign = oProject.GetActiveDesign()
active_design_name_str = oDesign.GetName()
active_design_name_list = active_design_name_str.split(";")
active_design_name = active_design_name_list[1]
oModule = oDesign.GetModule("Excitations")
all_port_list = oModule.GetAllPortList()
def delete_illegal_char(str_net,illegal_char)
for char_x in illegal_char:
str_net = str_net.replace(char_x ,"")
return str_net
for port in all_port_list:
list1 = port.split(".")
if list1.__len__() == 3:
comp_name = list1[0]
pin_num = list1[1]
net_name = list1[2]
net_name = delete_illegal_char(net_name, "[]")
port_rename = "{net_name}_{component}_{pin_number}".format(component= comp_name , net_name = net_name, pin_number = pin_num )
oModule.Rename(port,port_rename)
InfoMessage = "{old_name} rename to {new_name}".format(old_name = port , new_name = port_rename )
oDesktop.AddMessage(active_project_name, active_design_name, 0, InfoMessage, "Port rename")
else:
InfoMessage = "{old_name} is not a Component.Pin.Netname format, the renaming has been ignored".format(old_name = port )
oDesktop.AddMessage(active_project_name, active_design_name, 1, InfoMessage, "Port rename")
all_port_list_new = oModule.GetAllPortList()
diff_keyword_list = [
["TXP","TXN"],
["RXP","RXN"],
["T","C"],
["DQS","DQSB"]]
diff_keyword_position = -3
z_single = 50
z_diff = 100