qq27303272的个人空间 https://blog.eetop.cn/221538 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

IC之脚本

已有 1906 次阅读| 2012-8-1 23:08

参加工作一年多了,主要从事IC验证方面的工作,脚本用的不深,但多少都用到了点。
在IC验证中,tcl,shell和perl脚本用得较多。
刚开始接触的是shell脚本,当时是做单元后仿,由于单元好几百个,每个单元需要建一个目录,并且每个单元又要写几个spice激励文件,但是每个spice文件大体结构除了引用的网表目录和端口名不同外,其他基本一样,刚接触shell,发现shell对这种重复性的工作解决起来得心应手:
1、把所有单元名字、网表路径和端口名字写入一个文件中reg.list,一个单元放入一行,中间用空格隔开
2、写好一个模版文件,例如名字叫 temp.sp
3、然后编写shell脚本来建文件夹、替换路径和修改端口名,类似如下:

#!/usr/bin/sh   $这个是shell脚本安装的路径

for $reg in `cat reg.list`
do
  $reg_name=awk  '{print $1}' $reg
$reg_path=awk '{print $2}' $reg
$reg_port=awk '{print $3}'  $reg
mkdir $reg_name
sed  -e "s#path#$reg_path#g" -e "s#port#$reg_port#g" <temp.sp>${reg_name}/${reg_port}
done

之后接触vi编辑器,发现vi的命令记录和自动执行功能也能实现一次写完多个文件。不过用shell脚本比用vi编辑器有个优势在于脚本不需要打开文本界面,这样,可以处理比较大的文本,用vi的话,文件大小超过1G则处理起来很慢。

接着又有项目的需要,我接触到了TCL脚本,TCL脚本相比我之前在shell中用到的功能增加了一些数据类型,如列之类,还包括很多字符串处理、文件处理的函数,也不知道是不是理解的不够透彻,我认为TCL脚本能做的事,用shell也一样的能实现,在我看来,TCL相对于shell只是在提供的函数方面更适合文本处理以及IC工具大多提供和TCL脚本的接口函数。

再到后面,由于常听人说perl处理文本最强,于是去看了 《小骆驼丛书——learing perl》, perl增加了很多数据类型,例如:散列,哈希等等,与C++比较接近,可以创建类之类,不过IC中很少用到这种高级功能。

在IC中用到的脚本大部分是用来处理文本,如果碰到数据文件的转换,例如将vcd格式的波形转换成vec格式的波形,这个虽然有vtran语言可以实现,但是也可以通过perl来实现。  对文本进行替换或者删除操作的话,建议直接用shell,简单速度快,如果是与软件做接口的话用TCL比较方便,比如DC,siliconsmart等等,能有效利用软件中提供的TCL函数库。

点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 1

    粉丝
  • 0

    好友
  • 7

    获赞
  • 2

    评论
  • 1668

    访问数
关闭

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

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

GMT+8, 2024-4-24 12:08 , Processed in 0.023015 second(s), 13 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部