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

最常用 Linux Debug 命令总结

在 RTL / 验证开发中最常用的命令如下:

复制代码
less
tail
tail -f
grep
grep -n
grep -r
find
wc
du
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 分页浏览、支持搜索

基本用法

bash 复制代码
less sim.log

常用操作

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

常见调试操作

搜索 ERROR

复制代码
/ERROR

搜索 WARNING

复制代码
/WARNING

查找 assertion

复制代码
/ASSERT

高级用法

打开文件并定位 ERROR

bash 复制代码
less +/ERROR sim.log

打开文件并跳到末尾

bash 复制代码
less +G sim.log

常用于查看 刚生成的仿真 log


2 tail ------ 查看日志末尾

基本用法

bash 复制代码
tail sim.log

默认输出 最后 10 行

指定输出行数

查看最后 100 行:

bash 复制代码
tail -n 100 sim.log

从指定行开始

bash 复制代码
tail -n +200 sim.log

含义:

复制代码
从第200行开始输出

3 tail -f ------ 实时日志监控

功能

实时监控日志文件变化。

典型场景:

  • 仿真运行时监控 log
  • regression 测试观察错误
  • CI pipeline 调试

示例

bash 复制代码
tail -f sim.log

当 log 更新时终端会持续输出新内容。

退出:

复制代码
Ctrl + C

实时过滤 ERROR

bash 复制代码
tail -f sim.log | grep ERROR

仅显示包含 ERROR 的日志。

4 grep ------ 文本搜索工具

grep 是 Linux 中最重要的 log 分析工具

基本用法

bash 复制代码
grep ERROR sim.log

显示行号

bash 复制代码
grep -n ERROR sim.log

输出示例:

复制代码
345: ERROR packet mismatch

忽略大小写

bash 复制代码
grep -i error sim.log

显示上下文

查看 ERROR 前后 5 行:

bash 复制代码
grep -n -A 5 -B 5 ERROR sim.log

参数说明:

参数 含义
-A After(后几行)
-B Before(前几行)

查找多个关键字

bash 复制代码
grep -E "ERROR|FATAL|ASSERT" sim.log

5 递归搜索 RTL

查找某信号:

bash 复制代码
grep -r "data_valid" ./rtl

查找模块定义:

bash 复制代码
grep -r "module fifo" ./rtl

查找 parameter:

bash 复制代码
grep -r "DATA_WIDTH" .

搜索 SystemVerilog class

bash 复制代码
grep -r "class axi_driver" ./tb

6 find文件查找工具

用于查找工程文件。

查找 Verilog 文件

bash 复制代码
find . -name "*.v"

查找 SystemVerilog

bash 复制代码
find . -name "*.sv"

查找模块文件

bash 复制代码
find . -name "*fifo*"

查找 log 文件

bash 复制代码
find . -name "*.log"

7 wc 日志统计与分析

统计 ERROR 数量

bash 复制代码
grep ERROR sim.log | wc -l

统计 WARNING

bash 复制代码
grep WARNING sim.log | wc -l

统计错误类型

bash 复制代码
grep ERROR sim.log | sort | uniq -c

示例输出:

复制代码
10 packet mismatch
3 timeout error

8 du 文件大小与磁盘管理

查看文件大小

bash 复制代码
du -sh sim.log

查看目录大小

bash 复制代码
du -sh *

查看磁盘空间

bash 复制代码
df -h

RTL Debug 工作流程

以下为常见 仿真失败排查流程

Step 1 查看日志末尾

bash 复制代码
tail -n 50 sim.log

判断:

  • 是否存在 ERROR
  • 是否存在 assertion failure

Step 2 搜索 ERROR

bash 复制代码
grep -n ERROR sim.log

Step 3 查看上下文

bash 复制代码
grep -n -A 10 -B 10 ERROR sim.log

Step 4 搜索 RTL 信号

bash 复制代码
grep -r "packet_valid" ./rtl

Step 5 搜索 testbench

bash 复制代码
grep -r "packet_valid" ./tb

一般调试命令组合

实时查看仿真

bash 复制代码
tail -f sim.log

实时查看 ERROR

bash 复制代码
tail -f sim.log | grep ERROR

查找 ERROR

bash 复制代码
grep -n ERROR sim.log

查找 ERROR 上下文

bash 复制代码
grep -n -A 5 -B 5 ERROR sim.log

搜索 RTL 信号

bash 复制代码
grep -r "valid_ready" ./rtl