IC设计linux环境下的常用shell/tcl
#IC设计linux环境下的常用shell/tcl# 1. 目录切换: cd (change directory)cd /projects/mango1/de/modules/uart/rtl # 切换到proj:mango1项目block目录cd .. # 返回上一级目录cd / # 跳转到根目录cd - # 返回上一条cd前的目录cd ../.. # 返回向上两层的目录,'../'还可以更多#other:常习惯使用:alias c cd #即,用c替代cd命令,还有很多其他不同类型的alias# 2. 查看目录内容:ls (list)ls # 查看当前目录文件/目录(不显示隐藏文件)ls -l # 详细列表(权限、大小、修改时间,缩写ll)ls -a # 显示所有文件(包括隐藏文件,.开头的)ls -lh # 以人类可读的单位(K/M/G)显示文件大小ls -lt # 按修改时间倒序排列(最新的在前面)ls *.v # 查看当前目录下所有Verilog源文件(*.sv/*.sdc同理)ls *log # 查看所有*log文件或者目录# 3. 文件复制:cp (copy)cp dig_top.v bak.dig_top.v # 把dig_top.v复制bak.*备份cp -rf i3c modules/ # 复制整个i3c/rtl目录(包含子文件/子目录)到modules目录下/cp chip.sdc{,.bak} # 快速创建chip.sdc的备份文件chip.sdc.bak,该命令可以在脚本中快速备份原文件,尤其tcl debug阶段更便利cp -rfL modules ~/ # 将modules及子目录所有内容,以及link文件,copy原始文件到home目录# 4. 文件/目录移动/重命名:mv (move)mv sim.log ./log_dir/ # 把sim.log移动到log_dir目录mv old_name.v new_name.v # 把文件old_name.v重命名为new_name.vmv *.err ./error_logs/ # 把所有.err后缀的文件移动到error_logs目录# 5. 文件/目录删除:rm (remove) 【谨慎使用,尤其是rm -rf】rm vcs.log # 删除单个文件(命令提示确认,-f强制删除不提示)rm -f *.log # 强制删除所有.log(无提示,常用)rm -rf ./simv* # 强制删除整个simv*、csrc目录或文件,切忌避免使用'rm -rf /',尤其有root权限diy服务器的用户 # 6. 查看文件内容cat debug.log # 一次性查看整个debug.log内容(适合小文件)在shell窗口中显示more debug.log # 分页查看大文件(向下翻页,无法向上)less debug.log # 更强大的分页查看(上下翻页、搜索,q退出,IC设计查看大日志/网表首选)head -10 debug.log # 查看debug.log的前10行tail -30 debug.log # 查看debug.log的后30行tail -f debug.log # 实时监控debug.log的更新(仿真/综合过程中实时查看日志输出,非常常用)cat a.txt b.txt > c.txt # 将a.txt和b.txt拼接,重定向到c.txt# 7. 文件搜索与内容匹配find ./ -name "*.sdc" # 在当前目录及子目录下搜索所有.sdc后缀文件find ./ -size +100M # 搜索大于100M的文件(清理大临时文件用,尤其fsdb/vcs等)grep "Error" sim.log # [vcs]在sim.log中搜索包含"Error"的行(查找仿真/综合报错,核心指令)grep -i "warning" sim.log # [vcs]忽略大小写搜索"warning"(查找警告信息)grep -r "aon_crg" ./rtl # 递归搜索./rtl目录下所有文件,查找aon_crg关键字grep -A 5 "Error" sim.log # [vcs]显示包含"Error"的行及后面5行(查看报错上下文,非常实用)grep -B 3 "Error" sim.log # [vcs]显示包含"Error"的行及前面3行(查看报错前置信息)grep -C 4 "Error" sim.log # [vcs]显示包含"Error"的行及前后各4行(完整上下文)awk '/Error / {print $0}' debug.txt # 提取报告中"Error "【含空格】相关行(分析仿真报告常用)#awk等用法,建议参考独立书籍sed -i 's/ahb_clk/axi3_clk0/g' dig_top.v # 把dig_top.v中所有"ahb_clk"替换为"axi3_clk0"(批量修改代码/网表)# 8. 文件打包与解压(归档备份设计文件/报告)tar -zcvf all_rtl.tar.gz de/rtl # 打包并压缩de/rtl目录为all_rtl.tar.gz, 也命名为*.tgztar -zxvf all_rtl.tgz -C ~/tmp # 解压.tgz文件到~/tmp目录tar -jcvf design.tar.bz2 ./src/ # 以bz2格式打包(压缩率更高,速度稍慢)tar -jxvf design.tar.bz2 # 解压.bz2格式文件
IC design阶段,常用tcl非常多,以上仅列出部分常用命令,后续还会陆续晚上和补充。