找回密码
 立即注册
首页 业界区 业界 IC工程师常用linux命令(持续更新ing)

IC工程师常用linux命令(持续更新ing)

碣滥 11 小时前
最常用 Linux Debug 命令总结

在 RTL / 验证开发中最常用的命令如下:
  1. less
  2. tail
  3. tail -f
  4. grep
  5. grep -n
  6. grep -r
  7. find
  8. wc
  9. du
  10. df
复制代码
数字 IC 设计与验证环境中,在 Linux 服务器上进行仿真日志(simulation log)、编译日志(compile log)、以及 RTL 调试信息分析时常用的命令和操作方法。
目标包括:

  • 快速定位 ERROR / WARNING
  • 分析 仿真失败原因
  • 搜索 RTL 信号或模块
  • 提高 log 调试效率
适用于以下工具环境:

  • VCS
  • QuestaSim / ModelSim
  • Verilator
  • Xcelium
  • FPGA 仿真环境
1 less —— 交互式日志浏览工具

功能

less 用于 分页浏览大型文本文件,适用于 GB 级仿真日志。
相比 cat:
命令特点cat一次性输出全部内容less分页浏览、支持搜索基本用法
  1. less sim.log
复制代码
常用操作

按键功能Space向下翻页b向上翻页g跳到文件开头G跳到文件末尾q退出/pattern搜索字符串n下一个匹配N上一个匹配常见调试操作

搜索 ERROR
  1. /ERROR
复制代码
搜索 WARNING
  1. /WARNING
复制代码
查找 assertion
  1. /ASSERT
复制代码
高级用法

打开文件并定位 ERROR
  1. less +/ERROR sim.log
复制代码
打开文件并跳到末尾
  1. less +G sim.log
复制代码
常用于查看 刚生成的仿真 log
2 tail —— 查看日志末尾

基本用法
  1. tail sim.log
复制代码
默认输出 最后 10 行
指定输出行数

查看最后 100 行:
  1. tail -n 100 sim.log
复制代码
从指定行开始
  1. tail -n +200 sim.log
复制代码
含义:
  1. 从第200行开始输出
复制代码
3 tail -f —— 实时日志监控

功能

实时监控日志文件变化。
典型场景:

  • 仿真运行时监控 log
  • regression 测试观察错误
  • CI pipeline 调试
示例
  1. tail -f sim.log
复制代码
当 log 更新时终端会持续输出新内容。
退出:
  1. Ctrl + C
复制代码
实时过滤 ERROR
  1. tail -f sim.log | grep ERROR
复制代码
仅显示包含 ERROR 的日志。
4 grep —— 文本搜索工具

grep 是 Linux 中最重要的 log 分析工具
基本用法
  1. grep ERROR sim.log
复制代码
显示行号
  1. grep -n ERROR sim.log
复制代码
输出示例:
  1. 345: ERROR packet mismatch
复制代码
忽略大小写
  1. grep -i error sim.log
复制代码
显示上下文

查看 ERROR 前后 5 行:
  1. grep -n -A 5 -B 5 ERROR sim.log
复制代码
参数说明:
参数含义-AAfter(后几行)-BBefore(前几行)查找多个关键字
  1. grep -E "ERROR|FATAL|ASSERT" sim.log
复制代码
5 递归搜索 RTL

查找某信号:
  1. grep -r "data_valid" ./rtl
复制代码
查找模块定义:
  1. grep -r "module fifo" ./rtl
复制代码
查找 parameter:
  1. grep -r "DATA_WIDTH" .
复制代码
搜索 SystemVerilog class
  1. grep -r "class axi_driver" ./tb
复制代码
6 find文件查找工具

用于查找工程文件。
查找 Verilog 文件
  1. find . -name "*.v"
复制代码
查找 SystemVerilog
  1. find . -name "*.sv"
复制代码
查找模块文件
  1. find . -name "*fifo*"
复制代码
查找 log 文件
  1. find . -name "*.log"
复制代码
7 wc 日志统计与分析

统计 ERROR 数量
  1. grep ERROR sim.log | wc -l
复制代码
统计 WARNING
  1. grep WARNING sim.log | wc -l
复制代码
统计错误类型
  1. grep ERROR sim.log | sort | uniq -c
复制代码
示例输出:
  1. 10 packet mismatch
  2. 3 timeout error
复制代码
8 du  文件大小与磁盘管理

查看文件大小
  1. du -sh sim.log
复制代码
查看目录大小
  1. du -sh *
复制代码
查看磁盘空间
  1. df -h
复制代码
RTL Debug 工作流程

以下为常见 仿真失败排查流程
Step 1 查看日志末尾
  1. tail -n 50 sim.log
复制代码
判断:

  • 是否存在 ERROR
  • 是否存在 assertion failure
Step 2 搜索 ERROR
  1. grep -n ERROR sim.log
复制代码
Step 3 查看上下文
  1. grep -n -A 10 -B 10 ERROR sim.log
复制代码
Step 4 搜索 RTL 信号
  1. grep -r "packet_valid" ./rtl
复制代码
Step 5 搜索 testbench
  1. grep -r "packet_valid" ./tb
复制代码
一般调试命令组合

实时查看仿真
  1. tail -f sim.log
复制代码
实时查看 ERROR
  1. tail -f sim.log | grep ERROR
复制代码
查找 ERROR
  1. grep -n ERROR sim.log
复制代码
查找 ERROR 上下文
  1. grep -n -A 5 -B 5 ERROR sim.log
复制代码
搜索 RTL 信号
  1. grep -r "valid_ready" ./rtl
复制代码
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册