PERL
seuwilson
IC设计
展开
-
verilog 文本自动对齐:input output wire reg
1、之前有个脚本可以对齐input和output,但是没有解决wire和reg定义不对齐的问题。所以脚本改进了下,支持input output wire reg对齐2、知识点总结:perl的字符串进行比较时需要使用eq,lt,gt,不能使用数字比较符==,>=,否则会出现逻辑错误。#! /usr/bin/perluse 5.010;use strict;my ($sec,$min,$hour,$day,$mon,$year,$weekday,$yeardate,$saving原创 2022-03-16 17:32:26 · 2139 阅读 · 3 评论 -
verilog-module input和output自动对齐脚本-perl
总结1.之前用emacs的autoreg和autowire,以及后来使用的gvim 插件autodef,都没有找到合适对齐module input和output的方法,索性就自己写了个perl脚本来对齐。2.使用对齐后代码确实美观了不少。3.脚本使用:可以对当前目录下的.v文件统一进行对齐。脚本名字是run_indent.pl使用效果如下:#! /usr/bin/perluse 5.010;use strict;my ($sec,$min,$hour,$day,$m原创 2021-08-27 12:11:53 · 1697 阅读 · 0 评论 -
文件夹数量巨大下的关键字搜索
问题产生:跑随机仿真的时候,往往会有5w或者10w的文件夹生成,随机跑完后需要把关键error信息筛选出来,单纯的使用grep会报出数量太多无法识别的情况问题解决:用perl脚本抓取想要的信息,好处是:1.不受文件夹里文件数量的限制,2.可以在大规模随机仿真后即可进行error搜索,不需要再单独去用时间搜索一遍,搜索一遍的时间可能在半个小时级别以上。#! /usr/bin/perluse 5.010;use strict;#use warnings;use Getopt::Long;u原创 2020-11-02 19:06:06 · 169 阅读 · 0 评论 -
perl:对应的目录生成,采用调用外部命令shell mkdir
1.写脚本经常会遇到把生成的文件放到指定的目录2.直接调用外部shell mkdir比较方便3.使用mkdir前先判断下该目录是否存在,以免反复运行脚本每次因为目录存在而报warning4.下面代码是生成10000个随机 mem data base。#! /usr/bin/perluse 5.010;use strict;for (my $num=0;$num<...原创 2019-10-18 10:38:48 · 577 阅读 · 0 评论 -
perl对目录下rtl 包含rtc字符的替换-更新
1.根据版本管理软件sos的特性,每次大量check in 前需要先人工去check下是否有明显错误。2.增加了GetOptions选项,方便只discard,只修改,只check in 和全套的discard-check out-check in3.使用方法./run_001.plx -m./run_001.plx -d./run_001.plx -i./run_00...原创 2019-10-11 10:22:51 · 235 阅读 · 0 评论 -
perl:使用printf遇到的陷阱记录
在使用句柄打印的时候,经常会使用到如下命令printf $store_fh "$_";如果$_ 里面包含有%b, %d等字符,会被替换成0。这时如果更换为print $store_fh "$_";就不会遇到这种问题。比如针对这个语句...原创 2019-10-10 17:20:53 · 203 阅读 · 0 评论 -
perl:递归找指定文件并筛选
需求:1.在指定目录下找到指定的文件,并且是递归寻找。比如在某目录下找到对应的.v文件,并剔除掉不需要的目录文件,将筛选好的文件名放到指定的文件下或者存到数组里,供后面使用。采用的是perl File::Find功能#! /usr/bin/perluse 5.010;use strict;use warnings;my @dir = '/proj/../modem/u...原创 2019-09-26 15:00:21 · 764 阅读 · 0 评论 -
perl对目录下rtl 包含rtc字符的替换
项目需求:1.根据项目需要,将2bit 或3bit的rtc进行替换为64bit rtc难点:2.由于rtl各层次之间的信号关联会发生变化。3.不同module之间的rtc名字存在相同性。解决办法:1.分析出了lib rtl的输入名都是RTC,因此写脚本的时候把RTC相关的行全部抓出来。2.除了极少部分的名字采用了特殊命名。绝大部分都是采用rf1p_rtc,rf2p_rt...原创 2019-09-25 15:16:08 · 180 阅读 · 0 评论 -
perl:文件目录下读取文件操作glob
1.很多时候我们需要处理在一个目录下的同一类型文件。2.可以不用采取读入文件的方式获取目录下的文件名。3.使用glob来获取目录下对应的文件名。...原创 2019-09-17 11:04:02 · 1405 阅读 · 0 评论 -
perl:打开文件与读取里面的行-demo
1.经常会碰到打开几个文件进行处理。2.容易把文件名和文件里的内容混淆。3.使用钻石操作符可以非常方便的把文件里面内容提取出来。#! /usr/bin/perluse 5.010;open $get_file,'>',"file.txt";foreach my $file (@ARGV){ say "$file"; printf $get_file("%1...原创 2019-09-16 14:15:41 · 787 阅读 · 0 评论 -
perl:excel寄存器列表生成bus rtl
#!/usr/bin/perl#use Spreadsheet::ParseExcel;use Spreadsheet::ParseXLSX;use 5.010;use Tkx;Tkx::wm_title('.','ASR Register Bus Rtl Generator');Tkx::wm_resizable('.','0', '0');Tkx::ttk__label('...原创 2019-09-16 11:00:49 · 1000 阅读 · 0 评论 -
perl把不匹配的那些行打印出来
1.经常会遇到把不匹配某些特征的行打印出来。可以用!~来操作(含义是不匹配)。#! /usr/bin/perluse 5.010;use strict;if (-e "get_file.txt"){ say "get_file is exist"; unlink "get_file.txt"; say "get_file is delete"; }...原创 2019-09-16 10:55:06 · 1567 阅读 · 0 评论 -
perl特殊字符使用
__FILE__,表示执行的文件名。__LINE__,表示执行行的行号。__PACKAGE__,表示执行的package。原创 2019-09-11 15:02:03 · 327 阅读 · 0 评论 -
perl脚本整理
########################################script 1####################################################################################################################################################...原创 2018-08-14 15:30:00 · 2681 阅读 · 0 评论