微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC后端设计交流 > Perl 脚本 如何 修改替换 文件中内容?

Perl 脚本 如何 修改替换 文件中内容?

时间:10-02 整理:3721RD 点击:
各位大侠们,小弟对perl脚本不太熟悉,目前遇到个问题需要用脚本来处理。
Perl 脚本 如何 修改替换 文件中内容?

我抽出来的网表:usr/top.spic
.INCLUDE "./usr/cdl/digital_lib.cdl"
因为top.spic调用了digital_lib.cdl里面的部分cell,但digital_lib.cdl还要被其它文件所用,所以不能修改digital_lib.cdl的内容。
所以要在top.spic里,把调用digital_lib.cdl的cell的内容修改一下。

具体要求如下,将AAA:改为BBB:方式:
AAA:
XClk__I2 CLKNUHDV1 $PINS ZN=Clk__SOCECTS__N3 I=Clk__SOCECTS__N2
XClk__I1 CLKNUHDV2 $PINS ZN=Clk__L66_N0 I=Clk__SOCECTS__N1
XClk__L1_N0__CASCADE_L2_I0 CLKBUFUHDV2 $PINS Z=Clk__L1_N0__CASCADE_L2_N0
+ I=Clk__L1_N0
XClk__L67_I1 CLKNUHDV6 $PINS ZN=Clk__L67_N1 I=Clk__L66_N0
XClk__L66_I0 CLKBUFUHDV6 $PINS Z=Clk__SOCECTS__N0 I=Clk__L65_N0
XClk__L65_I0 CLKBUFUHDV1 $PINS Z=Clk__L65_N0 I=Clk__L64_N0
XClk__L63_I0 CLKBUFUHDV3 $PINS Z=Clk__SOCECTS__N4 I=Clk__L62_N0
XClk__L62_I0 CLKBUFUHDV1 $PINS Z=Clk__SOCECTS__N6 I=Clk__L61_N0
BBB:
XClk__I2 CLKNUHDV1 $PINS VDD=AVDD VSS=AGNDZN=Clk__SOCECTS__N3 I=Clk__SOCECTS__N2
XClk__I1 CLKNUHDV2 $PINS VDD=AVDD VSS=AGNDZN=Clk__L66_N0 I=Clk__SOCECTS__N1
XClk__L1_N0__CASCADE_L2_I0 CLKBUFUHDV2 $PINS VDD=AVDD VSS=AGNDZ=Clk__L1_N0__CASCADE_L2_N0
+ I=Clk__L1_N0
XClk__L67_I1 CLKNUHDV6 $PINS VDD=AVDD VSS=AGNDZN=Clk__L67_N1 I=Clk__L66_N0
XClk__L66_I0 CLKBUFUHDV6 $PINS VDD=AVDD VSS=AGNDZ=Clk__SOCECTS__N0 I=Clk__L65_N0
XClk__L65_I0 CLKBUFUHDV1 $PINS VDD=AVDD VSS=AGNDZ=Clk__L65_N0 I=Clk__L64_N0
XClk__L63_I0 CLKBUFUHDV3 $PINS VDD=AVDD VSS=AGNDZ=Clk__SOCECTS__N4 I=Clk__L62_N0
XClk__L62_I0 CLKBUFUHDV1 $PINS VDD=AVDD VSS=AGNDZ=Clk__SOCECTS__N6 I=Clk__L61_N0

补充一下,因为top.spic里的cell有的是调用digital_lib.cdl的,有的不是的。
cell名字的位置在语句中位置:
XClk__I2 CLKNUHDV1 $PINS ZN=Clk__SOCECTS__N3 I=Clk__SOCECTS__N2
XClk__I1 CLKNUHDV2 $PINS ZN=Clk__L66_N0 I=Clk__SOCECTS__N1

有很多更简单的方法,不一定要用perl解决。
vi编辑器里面整体替换,:m,ns/$PINS/$PINS A=BC=D /g (可以指定行)
或者用sed加一些匹配

谢谢大侠的帮忙,此问题已经解决了

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top