微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > .lib文件如何转化为.db文件

.lib文件如何转化为.db文件

时间:10-02 整理:3721RD 点击:
想问下各位高人,如何将.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命令时任然告知没有这条指令,请给位大侠指点下,不甚感激。


dc_shell> read_lib xx.lib
dc_shell > write_lib -format db -output xx.db xx



    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
遇到这个错误该怎么办?请您指点下,谢谢。

list_lib 一下,看看里面的lib名是什么,再write出来,看会不会是你的write后面的lib名称没写对。
这个名不一定就是那个*.lib的名称。



    嗯,就是这个错误。没有把lib名字写对。现在搞定了,谢谢

直接用DC转 把库的名字写对了 write的时候库的名字是lib里面library" "中的名字


这个回答太重要了,帮我解决了大问题

不需要这么麻烦, read_lib & write_lib就可以了, 你仔细看下那脚本,其实核心就是做了这么件事情

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名字不一致的问题。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top