【开发环境】 irun(ncverilog)无法dump fsdb波形问题解决方法
一、前言
本人使用IRUN仿真并通过调用$fsdbDumpfile函数生成波形时,IRUN无法识别$fsdbDumpfile函数。先总结解决方法如下,供大家参考。
二、问题
1. 在TestBeach中,调用以下函数生成fsdb波形文件;
1 //Enable dump fsdb 2 initial 3 begin 4 $fsdbDumpfile("test.fsdb"); 5 $fsdbDumpvars(0,TB); 6 end
2. IRUN运行时出现如下错误:$fsdbDumpfile和$fsdbDumpvars 函数不能识别;
Building instance overlay tables: .................... Done Generating native compiled code: worklib.HANDSHAKE_TB:v <0x45f2bf0a> streams: 1, words: 554 Building instance specific data structures. Loading native compiled code: .................... Done Design hierarchy summary: Instances Unique Modules: 2 2 Registers: 15 15 Scalar wires: 7 - Always blocks: 7 7 Initial blocks: 5 5 Cont. assignments: 0 2 Simulation timescale: 100ps Writing initial simulation snapshot: worklib.HANDSHAKE_TB:v Loading snapshot worklib.HANDSHAKE_TB:v .................... Done $fsdbDumpfile("test.fsdb"); | ncsim: *E,MSSYSTF (./tb.v,75|14): User Defined system task or function ($fsdbDumpfile) registered during elaboration and used within the simulation has not been registered during simulation. $fsdbDumpvars (0,TB); | ncsim: *E,MSSYSTF (./handshake_tb.v,76|14): User Defined system task or function ($fsdbDumpvars) registered during elaboration and used within the simulation has not been registered during simulation.
原因: irun未能正确加载debpli.so导致;
二、方法
1. 设置LD_LIBRARY_PATH如下:
其中NOVAS_HOME为VERDI安装目录,注意此处CentOS为32位系统,64位系统需要直到的目录;
#32bit CentOS
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$NOVAS_HOME/share/PLI/lib/LINUX:$NOVAS_HOME/share/PLI/IUS/LINUX/boot"
#64bit CentOS export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$NOVAS_HOME/share/PLI/lib/LINUX64:$NOVAS_HOME/share/PLI/IUS/LINUX64/boot"
2. 设置IRUN运行参数如下:
irun -access +rwc -loadpli1 debpli:novas_pli_boot -f XXXXXXX.f
3.设置完成后可正常运行;
irun: 13.10-p001: (c) Copyright 1995-2013 Cadence Design Systems, Inc. TOOL: irun 13.10-p001: Started on Oct 31, 2016 at 10:44:07 EDT irun -loadpli1 debpli:novas_pli_boot handshake_tb.v handshake_pulse_sync.v Caching library 'worklib' ....... Done Elaborating the design hierarchy: Top level design units: HANDSHAKE_TB Building instance overlay tables: .................... Done Generating native compiled code: worklib.HANDSHAKE_TB:v <0x0461d14c> streams: 1, words: 554 Building instance specific data structures. Loading native compiled code: .................... Done Design hierarchy summary: Instances Unique Modules: 2 2 Registers: 15 15 Scalar wires: 7 - Always blocks: 7 7 Initial blocks: 5 5 Cont. assignments: 0 2 Simulation timescale: 100ps Writing initial simulation snapshot: worklib.HANDSHAKE_TB:v Loading snapshot worklib.HANDSHAKE_TB:v .................... Done *Verdi3* Loading libsscore_ius131.so *Verdi3* : Enable Parallel Dumping. ncsim> source /usr/edatools/cadence/incisive/tools/inca/files/ncsimrc ncsim> run FSDB Dumper for IUS, Release Verdi3_I-2014.03, Linux, 02/10/2014 (C) 1996 - 2014 by Synopsys, Inc. *Verdi3* : Create FSDB file 'test.fsdb'
*Verdi3* : Begin traversing the scope (HANDSHAKE_TB), layer (0).