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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 18669|回复: 19

[求助] .lib文件如何转化为.db文件

[复制链接]
发表于 2011-9-9 22:36:35 | 显示全部楼层 |阅读模式

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

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

x
想问下各位高人,如何将.lib文件转化为.db文件,在网上有人说直接调用dc即可。然后还有一种说法如下:

利用tcl和synopsys的dc将lib文件转换成db文件的脚本,如下:

自用,无版权约束:)

使用方法,将所有lib文件,放在一个目录中,然后建立一个目录放db,

运行:lib2db -s lib目录 -d db目录

目录可以是绝对也可以是相对路径,当然相对路径是相对你终端所在目录

#!/bin/bash
USAGE="USAGE : lib2db -s source_dir -d direct_dir"

if ! [ $# -eq 4 ] ; then
  echo $USAGE
  exit 1
fi

while getopts ":s:d:" flag ; do
case $flag in
s)
  src=$OPTARG
;;
d)
  dir=$OPTARG
;;
?)
  echo ++++++++++++++++invalid option+++++++++++++++
  echo $USAGE
  exit 1
;;
esac
done

cat > ~/.lib2db.tcl <<EOF
foreach lib [glob -nocomplain $src/*.lib] {
  set tmp [string trimleft \$lib $src*/]
  set lib_name [string trimright \$tmp .lib]
  read_lib \$lib
  write_lib \$lib_name -format db -o $dir/\${lib_name}.db
}
exit
EOF

dc_shell-t -f ~/.lib2db.tcl
\rm -r ~/.lib2db.tcl 2>/dev/null
\rm -r ./command.log 2>/dev/null
echo ++++++++++++++++Done+++++++++++++++

然后我按照上面方法,对我的.bashrc文件进行了如上修改(把这个代码给敲了进去),但是输入lib2db命令时任然告知没有这条指令,请给位大侠指点下,不甚感激。。。


发表于 2011-9-10 19:46:39 | 显示全部楼层
回复 1# daiyijun

dc_shell> read_lib xx.lib
dc_shell > write_lib -format db -output xx.db xx
 楼主| 发表于 2011-9-12 10:51:05 | 显示全部楼层
回复 2# firewear


    e ... 我按照你的方法试了一下,一开始说读入.lib文件成功,此时有返回1。随后开始,写.db文件,但是报错说无法找到前面读的一个文件(XX),不知道哪里出错了.这两条指令我是这样写的:
dc_shell>read_lib /media/info/lib/nang_worst_low_ccs.lib
dc_shell>write_lib -format db -output /media/info/lib/nang_worst_low_ccs.db

然后在网上还看到一种写法是:
但输入后仍然报错,说没找到库文件
dc_shell>read_lib /media/info/lib/nang_worst_low_ccs.lib
dc_shell>write_lib nang_worst_low_ccs -output /media/info/lib/nang_worst_low_ccs.db

遇到这个错误该怎么办?请您指点下,谢谢。
发表于 2011-9-13 11:39:44 | 显示全部楼层
list_lib 一下,看看里面的lib名是什么,再write出来,看会不会是你的write后面的lib名称没写对。
这个名不一定就是那个*.lib的名称。
 楼主| 发表于 2011-9-13 14:12:06 | 显示全部楼层
回复 4# chlor


    嗯,就是这个错误。。。没有把lib名字写对。。。现在搞定了,谢谢
发表于 2011-11-28 10:28:50 | 显示全部楼层
直接用DC转 把库的名字写对了 write的时候库的名字是lib里面library" "中的名字
发表于 2012-11-21 09:05:52 | 显示全部楼层
回复 4# chlor

这个回答太重要了,帮我解决了大问题
发表于 2012-11-21 14:48:27 | 显示全部楼层
不需要这么麻烦, read_lib & write_lib就可以了, 你仔细看下那脚本,其实核心就是做了这么件事情
发表于 2016-5-12 16:46:46 | 显示全部楼层
set ALIBFILE "[glob *.lib]"
foreach curlib $ALIBFILE {
     read_lib $curlib
     set libname "[get_object_name [get_lib]]"
     write_lib -format db $libname -output "[format %s.%s [file rootname $curlib] db]"
     remove_design -all
}
exit
这个脚本的优点:
1、只需要把所有要装换的lib放在一个路径下就行,不需要再脚本里去列出所有名字。
2、不用担心lib文件的名字和lib名字不一致的问题。
发表于 2019-1-5 15:50:18 | 显示全部楼层
学习了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-4-20 12:26 , Processed in 0.029435 second(s), 6 queries , Gzip On, Redis On.

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