Python在IC中的应用——文本处理

python在ic中的应用,主要处理的对象以文本为主,这里简单举一个例子:
sdf后仿中往往生成的log中会有一些违例信息,timing violation路径或者$setuphold违例,这些信息混杂在后仿log中。
下面这个脚本就是简单的剔除这些信息,得到一个简化的类似前仿的log;
下面脚本参考:
用法:./simsdf_clean.py sim.log
生成简化后的sim_vio_clean.log和违例信息sim_vio.log
#!/tools/python-3.6.12/bin/python3.6# -*- coding: utf-8 -*- import osimport sysimport reoutput_filename='sim_vio_clean.log'vio_filename='sim_vio.log'vio_regex         = re.compile(r.*timing violation|setuphold.*)lines= if len(sys.argv) > 1:    file_path = sys.argv[1]else:    print([error] ====== please enter a file_path)    print([usage]: python script.py  )    sys.exit()#vio_cleanwith open(file_path, r) as f:     for line in f:      match = vio_regex.search(line)      if match:          continue                line = re.sub(r'^s*$', '', line)      lines += linewith open(output_filename, w) as f:     f.write(lines)##viowith open(file_path, r) as fin:     with open(vio_filename, w) as fout:       for line in fin:          match = vio_regex.search(line)          if match:             line_vio=line             fout.write(line_vio) 其中简单说明re.compile 函数:
compile 函数用于编译正则表达式,生成一个正则表达式( pattern )对象,供 match() 和 search() 这两个函数使用。这个对象可以用于在后续的正则表达式匹配操作中重复使用。
语法格式为:
re.compile(pattern, flags=0) pattern : 要编译的正则表达式字符串
flags : 可选,表示匹配模式,比如忽略大小写,多行模式等,具体参数为:
re.i 忽略大小写
re.l 表示特殊字符集 w, w, , b, s, s 依赖于当前环境
re.m 多行模式
re.s 即为 . 并且包括换行符在内的任意字符(. 不包括换行符)
re.u 表示特殊字符集 w, w, , b, d, d, s, s 依赖于 unicode 字符属性数据库
re.x 为了增加可读性,忽略空格和 # 后面的注释


台积电:未来十年的CMOS器件技术
小米6最终完整曝光,同时Note3也有新消息,配置残暴
推动底层技术变革 加速AR/VR产业应用落地
华为5G专利全球排名第一名占比达到20%
龙芯中科连续两年为安徽省大数据与人工智能应用竞赛保驾护航
Python在IC中的应用——文本处理
SpringCloud微服务架构:实现分布式系统的无缝协作
一种简单易用的OOK调制方案介绍
图像稳定中的大行程压电偏转镜,适用于快速偏转应用
LLMs时代进行无害性评估的基准解析
PS5手柄造型疑似曝光 手柄摇杆更小扳机键更大
如何避免运放负反馈产生的自激振荡?
digilent口袋仪器平台简介
加密货币怎么赚钱
莫仕EXTreme Ten60Power连接器荣获中国CEM大奖
制动电阻的特性及计算方法,铍铜电阻焊接小技巧
3D 打印机UNIZ首款消费级产品:搭载第四代光固化技术
受华为中兴事件影响 中国5G基站部署前景不明朗
如何解决满足SOC的最佳方法?
传感器动态和静态主要技术指标