《每日一题》第81题Perl脚本处理:利用perl对文本进行处理
Posted 芯司机
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《每日一题》第81题Perl脚本处理:利用perl对文本进行处理相关的知识,希望对你有一定的参考价值。
精彩导读
Perl和Tcl是ic设计中最常用的两种脚本语言,在这里先总结一下Perl的作用:
用于生成Verilog代码
在写verilog时,经常遇到一些规律性强,编写又比较麻烦的代码,而这些恰恰又是可重用性比较强的。比如总线模块、FIR滤波器、IIR滤波器,只要滤波器阶数和参数定了编码都大致相似的模块,就比较适合用来自动生成实现他们功能的verilog代码。Perl的强项在于文本处理,对于verilog代码的生成,perl的代码会比较简洁易写。
用于扩充Verilog的语法
有一些verilog没有的语法功能,可以使用perl来扩充。比如工程中某变量的bit数有变化,导致了门级描述中门的个数变化,就可以用perl来生成相应的verilog代码。
用于验证中的数据处理
验证中有些数据格式需要处理,还有些数据需要分析。比如用matlab生成的数据改写成verilog能识别的ROM格式,或是直接生成ROM的verilog。还有Verilog验证后生成的数据格式变成下一级做数据分析软件能识别的格式。Perl还能直接对verilog验证所得数据进行数据比对和分析。
后端工具与前后级连接的格式处理
如果说Tcl比较常用在后端的软件使用中,那么perl就大多数用在软件和软件之间粘合上。有一些前级的工具所得结果不能直接用于下级工具的输入,那他们之间的转换用perl是完全合适的。
如上所述,基本上都用在文本格式的转换上。其实,perl的功能和C/C++是一样的,只是运行的方式不同,C等是编译之后生成exe文件,而perl是需要perl的运行环境支撑,有点像运行语句编译一句的感觉,这就与matlab的原理有点相似。可perl与C相比更加灵活,在文本操作上的编码相当简便。
脚本语言也是IC工程师必须要掌握的技能。
手稿解读
问:
用perl或者shell脚本对当前目录中所有符合下面名字的文件内容进行处理,并同意第一列每个单词出现的个数,左图为源文件,右图为处理后的文件。
答:
open INF, "excel.txt";
my $line = <INF>;
my $string_num; #统计单词出现的次数
while (defined $line) {
if ($line =~/^[a-z]+,(ww),(ww),(ww),(ww),(ww)$/) {
print "$5$4$3$2$1
";
$string_num = $string_num + 1;
} else {
print "$line";
}
$line = <INF>;
}
close <INF>;
往期真题
《每日一题》第50题FPGA芯片中的储存器资源
直击求职难点,真题秀,剑指offer
请大家持续关注芯司机,我们会带来更多更全面的知识分享,助力学生就业,打造好就业加油站平台
以上是关于《每日一题》第81题Perl脚本处理:利用perl对文本进行处理的主要内容,如果未能解决你的问题,请参考以下文章