在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 361|回复: 5

[求助] 如何使用脚本实现下述网表替换

[复制链接]
发表于 2024-11-8 14:17:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x

                               
登录/注册后可看大图


我想实现,匹配module SC_MFS_160_120_* (1...168)到endmodule之间内容,并整体实现将上面5-7行内容替换为下面红框位置的内容。如何用脚本实现呢?请大佬们帮忙看一下。














发表于 2024-11-8 15:13:26 | 显示全部楼层
如果1..168的差异仅仅是这个名字,vim脚本都可以解决。如果端口名称可能是别的,按这个规律来修改,那么考虑用Python
 楼主| 发表于 2024-11-8 15:17:58 | 显示全部楼层


acrofoxAgain 发表于 2024-11-8 15:13
如果1..168的差异仅仅是这个名字,vim脚本都可以解决。如果端口名称可能是别的,按这个规律来修改,那么考 ...


端口名字是这个规律的,后面只是那个数字的区别,中间内容一样,我想尽量用vim解决呢,大佬可以提供个思路嘛?第一次弄,有点搞不定
发表于 2024-11-8 15:51:37 | 显示全部楼层
用vim脚本的思路是这样
/ 跳到指定的module
标记一个mark a
/  跳到endmodule  
标记一个mark b
若干条 'a, 'b s 替换命令

然后或者用指定次数的循环,或者每次循环跳转后判断行号是不是回返,实现168个替换

也可以把上面的过程写成函数,1..168这个数字作为函数的参数,然后调用168次(这个可以用另一个一行的shell脚本实现)
发表于 2024-11-8 17:03:13 | 显示全部楼层


acrofoxAgain 发表于 2024-11-8 15:51
用vim脚本的思路是这样
/ 跳到指定的module
标记一个mark a


还有个思路,先把下面红框的2行yy复制

再qa,p,循环168次
再qa,3dd,删除上面红框3行,循环168次。
不用写替换命令。
发表于 2024-11-8 21:44:16 | 显示全部楼层


Kingdoms_Guo 发表于 2024-11-8 17:03
还有个思路,先把下面红框的2行yy复制

再qa,p,循环168次


还有一个办法,用vim正则表达式可以多行匹配的功能直接查找替换。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-25 16:06 , Processed in 0.020759 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表