VCS 2023.12 与 Verdi 2023.12 联调指南:5步搭建Linux高效Debug环境 📅 2026/7/13 12:40:32 VCS 2023.12 与 Verdi 2023.12 联调指南5步搭建Linux高效Debug环境在数字IC验证领域VCS和Verdi的组合堪称黄金搭档。VCS作为业界领先的仿真工具提供高效的编译和仿真能力而Verdi则以其强大的波形调试和代码追踪功能成为debug的不二之选。本文将详细介绍如何在Linux环境下从零开始配置VCS 2023.12和Verdi 2023.12的联调环境并提供可复用的Makefile模板。1. 环境准备与安装1.1 系统要求操作系统推荐使用CentOS 7/8或Ubuntu 20.04 LTS硬件配置至少16GB内存大型设计建议32GB100GB以上可用磁盘空间支持OpenGL的显卡Verdi图形界面需要1.2 软件依赖安装# CentOS sudo yum install -y glibc-devel libXext libXtst libX11 libXft gcc gcc-c ksh # Ubuntu sudo apt-get install -y build-essential libx11-6 libxext6 libxtst6 libxft2 ksh1.3 工具安装从Synopsys官网获取安装包VCS 2023.12 Linux版Verdi 2023.12 Linux版解压并运行安装程序# 解压安装包 tar -zxvf vcs_vO-2023.12.tar.gz tar -zxvf verdi_vO-2023.12.tar.gz # 运行安装 cd vcs_vO-2023.12 ./installer cd ../verdi_vO-2023.12 ./installer2. License配置与验证2.1 License文件配置典型的Synopsys license文件需要包含以下特征码SERVER hostname hostid 27000 DAEMON snpslmd /path/to/snpslmd FEATURE VCS snpslmd 2023.12 31-dec-2025 ... FEATURE Verdi snpslmd 2023.12 31-dec-2025 ...2.2 环境变量设置在~/.bashrc中添加export VCS_HOME/opt/synopsys/vcs/O-2023.12 export VERDI_HOME/opt/synopsys/verdi/O-2023.12 export PATH$VCS_HOME/bin:$VERDI_HOME/bin:$PATH export LM_LICENSE_FILE27000your_license_server2.3 License验证# 启动license服务器 lmgrd -c /path/to/license.dat -l /tmp/license.log # 验证license vcs -lic verdi -lic3. 工程配置与Makefile编写3.1 目录结构建议project/ ├── rtl/ # RTL代码 ├── tb/ # 测试平台 ├── sim/ # 仿真目录 ├── wave/ # 波形文件 └── Makefile # 构建脚本3.2 Makefile核心模板# 工具路径 VCS : vcs VERDI : verdi # 编译选项 VCS_OPTS : -full64 -sverilog v2k -debug_accessall -lca VCS_OPTS -timescale1ns/1ps -notice -diag timescale # 仿真选项 SIM_OPTS : fsdbdump -l sim.log # 源文件列表 RTL_FILES : $(wildcard rtl/*.v) TB_FILES : $(wildcard tb/*.sv) # 默认目标 all: compile run # 编译 compile: $(VCS) $(VCS_OPTS) $(RTL_FILES) $(TB_FILES) -top tb_top # 运行仿真 run: ./simv $(SIM_OPTS) # 启动Verdi调试 debug: $(VERDI) -sv -f filelist.f -ssf wave.fsdb # 清理 clean: rm -rf csrc simv* *.log *.fsdb *.key *.vpd DVEfiles4. 联调技巧与实战演示4.1 波形生成配置在测试平台中添加以下代码生成fsdb波形initial begin $fsdbDumpfile(wave.fsdb); $fsdbDumpvars(0, tb_top); end4.2 Verdi高效调试技巧信号追踪Ctrlw添加信号到波形窗口F3追踪信号驱动路径F4追踪信号负载路径代码导航Ctrlg跳转到指定行号Ctrl]跳转到模块定义波形分析Shift鼠标拖动测量时间间隔Ctrlf信号值搜索4.3 常见问题解决问题现象可能原因解决方案编译时报undefined module文件未包含在编译列表检查filelist是否完整Verdi无法显示波形fsdb文件路径错误确认-ssf参数指定正确路径仿真速度慢波形dump范围过大限制dump层级$fsdbDumpvars(1, top)5. 自动化脚本进阶5.1 参数化Makefile# 添加参数化选项 ifdef GUI SIM_OPTS -gui endif ifdef COV VCS_OPTS -cm linecondfsmbranchtgl endif5.2 批量回归测试脚本#!/bin/bash TEST_LIST(test1 test2 test3) for test in ${TEST_LIST[]}; do echo Running $test... make run TEST$test | tee ${test}.log # 检查仿真结果 if grep -q TEST PASSED ${test}.log; then echo $test PASS result.rpt else echo $test FAIL result.rpt fi done5.3 性能优化建议增量编译使用-incremental选项加速编译并行仿真添加-jN参数N为CPU核心数智能波形dump使用$fsdbAutoSwitchDumpfile管理大波形// 自动分割大波形文件 initial begin $fsdbAutoSwitchDumpfile(500, wave_%d.fsdb, 20); $fsdbDumpvars(...); end掌握VCS和Verdi的高效联调能显著提升验证效率。在实际项目中建议结合UVM方法学构建完整的验证环境这套工具链可以支持从模块级到系统级的全流程验证需求。