在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 686|回复: 18

[求助] Verdi 遇到 undefined module 问题

[复制链接]
发表于 2024-11-22 18:37:31 | 显示全部楼层 |阅读模式
700资产

求助:使用VCS仿真Xilinx IP,按照网上的步骤编译Vivado的 VCS仿真库,没有报错。
使用Makefile脚本compile、elaborate、sim都没有error和warning.
但是用Verdi打开设计时,Xilinx的 IP 都是 undefined mudule.谁知道这个怎么解决吗?
报错截图
194651t7lzappczed76mzp.png
手动添加编译Vivado安装目录下的data/src文件太麻烦。VCS和Vivado版本也是兼容的。


发表于 2024-11-24 10:05:57 | 显示全部楼层
本帖最后由 A1985 于 2024-11-24 10:07 编辑

需要编译xilinx自带的模型库,都在安装vivado目录里面,或者用compilesimlib或者gui的compile sim lib vcs
发表于 2024-11-24 10:50:41 来自手机 | 显示全部楼层
makefile 脚本怎么写的,看看?setup 文件呢
 楼主| 发表于 2024-11-24 12:09:50 | 显示全部楼层
本帖最后由 jumpyoung 于 2024-11-24 16:29 编辑


kk316 发表于 2024-11-24 10:50
makefile 脚本怎么写的,看看?setup 文件呢





  1. f_v  = ./Temp/filelist_v.f
  2. f_sv = ./Temp/filelist_sv.f
  3. verdi_dir = /usr/Synopsys/verdi/R-2020.12-SP1/share/PLI/VCS/linux64
  4. glbl_home = /usr/Xilinx/Vivado2022.1/Vivado/2022.1/data/verilog/src
  5. SIM_PATH =$(shell pwd)
  6. SRC_PATH =$(SIM_PATH)/Source
  7. macro_sim =$(SIM_PATH)/Macro
  8. Bench_Home =$(SIM_PATH)/Testbench
  9. Bench_File =$(notdir $(wildcard $(Bench_Home)/*.v $(Bench_Home)/*.sv))
  10. Bench_Name =$(basename $(Bench_File))

  11. all: clean filelist compile elaborate simulate verdi

  12. compile:
  13.         vlogan \
  14.         -full64 \
  15.         -work Xilinx_Lib \
  16.         $(SIM_PATH)/Temp/glbl.v \
  17.         -f $(f_sv) \
  18.         -f $(f_v) \
  19.         +v2k \
  20.         -override_timescale=1ps/1ps \
  21.         +warn=all \
  22.         +incdir+$(macro_sim) \
  23.         -l $(SIM_PATH)/Temp/VCS/Compile.log \
  24.         -sverilog \
  25.         +define+SIMULATION_EN
  26.         
  27. elaborate:
  28.         vcs \
  29.         -full64 \
  30.         -Mdir=$(SIM_PATH)/Temp/VCS/work \
  31.         -sverilog \
  32.         -override_timescale=1ps/1ps \
  33.         -lca \
  34.         +lint=TFIPC-L \
  35.         +lint=PCWM \
  36.         -debug_acc+all \
  37.         -P $(verdi_dir)/novas.tab $(verdi_dir)/pli.a \
  38.         -cm line+cond+fsm+tgl+branch \
  39.         -cm_dir $(SIM_PATH)/Temp/VCS/ \
  40.         -cm_log Coverage.log \
  41.         -l $(SIM_PATH)/Temp/VCS/Elaborate.log \
  42.         Xilinx_Lib.glbl        \
  43.         Xilinx_Lib.$(Bench_Name) \
  44.         -o $(SIM_PATH)/Temp/VCS/simv

  45. simulate:
  46.         $(SIM_PATH)/Temp/VCS/simv -l $(SIM_PATH)/Temp/VCS/Simulate.log +notimingcheck +nospecify -k $(SIM_PATH)/Temp/VCS/ucli.key

  47. verdi:
  48.         verdi -sv -f $(f_sv) -f $(f_v) -top $(Bench_Name) -ssf $(SIM_PATH)/WaveFile/*.fsdb

  49. clean:
  50.         @rm -rf csrc DVEfiles simv simv.daidir ucli.key VCS* AN.DB 64 verdiLog
  51.         @rm -rf novas.*
  52.         @rm -rf *.log *.vpd *.ddc *.svf *.SDF *Synth *Netlist* work vsim* transcript
  53.         @rm -rf ./Temp
  54.         @mkdir ./Temp
  55.         @mkdir ./Temp/VCS
  56.         @mkdir ./Temp/VCS/work

  57. filelist:
  58.         @cp $(glbl_home)/glbl.v        $(SIM_PATH)/Temp
  59.         [url=home.php?mod=space&uid=205858]@find[/url] $(SRC_PATH) -path "$(SRC_PATH)/Ipcore" -prune -o -type f -name "*.v" >Temp/filelist_v.f
  60.         @find $(SIM_PATH)/Macro/ -name "*.h" >Temp/filelist_h.f
  61.         @find $(SIM_PATH)/Testbench/ -name "*.v" >>Temp/filelist_v.f
  62.         @find $(SIM_PATH)/Ipcore/ -name "*netlist.v" >>Temp/filelist_v.f
  63.         @find $(SIM_PATH)/Model/ -name "*.v" >>Temp/filelist_v.f
  64.         
  65.         @find $(SRC_PATH) -path "$(SRC_PATH)/Ipcore" -prune -o -type f -name "*.sv" >Temp/filelist_sv.f
  66.         @find $(SIM_PATH)/Testbench/ -name "*.sv" >>Temp/filelist_sv.f
  67.         @find $(SIM_PATH)/Ipcore/ -name "*netlist.sv" >>Temp/filelist_sv.f
  68.         @find $(SIM_PATH)/Model/ -name "*.sv" >>Temp/filelist_sv.f
  69.         
  70. help:
  71.         @echo[/url] "******Welcome******"
  72.         @echo "   COMMAND LIST: "
  73.         @echo "1--- make clean "
  74.         @echo "2--- make filelist "
  75.         @echo "3--- make compile "
  76.         @echo "4--- make elaborate "
  77.         @echo "5--- make simulate "
  78.         @echo "6--- make verdi "
  79.         @echo "7--- one-click simulation, please use the command --- make all"




复制代码
使用 Vivado编译好的仿真库放在/usr/Xilinx/VivadoLib/目录下了
synopsys_sim.setup




  1. Xilinx_Lib : ./Temp/VCS/work
  2. OTHERS=/usr/Xilinx/VivadoLib/synopsys_sim.setup


复制代码



 楼主| 发表于 2024-11-24 12:17:42 | 显示全部楼层


kk316 发表于 2024-11-24 10:50
makefile 脚本怎么写的,看看?setup 文件呢


您好,感谢回复我的帖子,makefile是我在知乎上找的,稍微改了改,可以跑起来






  1. f_v  = ./Temp/filelist_v.f
  2. f_sv = ./Temp/filelist_sv.f
  3. verdi_dir = /usr/Synopsys/verdi/R-2020.12-SP1/share/PLI/VCS/linux64
  4. glbl_home = /usr/Xilinx/Vivado2022.1/Vivado/2022.1/data/verilog/src
  5. SIM_PATH =$(shell pwd)
  6. SRC_PATH =$(SIM_PATH)/Source
  7. macro_sim =$(SIM_PATH)/Macro
  8. Bench_Home =$(SIM_PATH)/Testbench
  9. Bench_File =$(notdir $(wildcard $(Bench_Home)/*.v $(Bench_Home)/*.sv))
  10. Bench_Name =$(basename $(Bench_File))

  11. all: clean filelist compile elaborate simulate verdi

  12. compile:
  13.         vlogan \
  14.         -full64 \
  15.         -work Xilinx_Lib \
  16.         $(SIM_PATH)/Temp/glbl.v \
  17.         -f $(f_sv) \
  18.         -f $(f_v) \
  19.         +v2k \
  20.         -override_timescale=1ps/1ps \
  21.         +warn=all \
  22.         +incdir+$(macro_sim) \
  23.         -l $(SIM_PATH)/Temp/VCS/Compile.log \
  24.         -sverilog \
  25.         +define+SIMULATION_EN
  26.         
  27. elaborate:
  28.         vcs \
  29.         -full64 \
  30.         -Mdir=$(SIM_PATH)/Temp/VCS/work \
  31.         -sverilog \
  32.         -override_timescale=1ps/1ps \
  33.         -lca \
  34.         +lint=TFIPC-L \
  35.         +lint=PCWM \
  36.         -debug_acc+all \
  37.         -P $(verdi_dir)/novas.tab $(verdi_dir)/pli.a \
  38.         -cm line+cond+fsm+tgl+branch \
  39.         -cm_dir $(SIM_PATH)/Temp/VCS/ \
  40.         -cm_log Coverage.log \
  41.         -l $(SIM_PATH)/Temp/VCS/Elaborate.log \
  42.         Xilinx_Lib.glbl        \
  43.         Xilinx_Lib.$(Bench_Name) \
  44.         -o $(SIM_PATH)/Temp/VCS/simv

  45. simulate:
  46.         $(SIM_PATH)/Temp/VCS/simv -l $(SIM_PATH)/Temp/VCS/Simulate.log +notimingcheck +nospecify -k $(SIM_PATH)/Temp/VCS/ucli.key

  47. verdi:
  48.         verdi -sv -f $(f_sv) -f $(f_v) -top $(Bench_Name) -ssf $(SIM_PATH)/WaveFile/*.fsdb

  49. clean:
  50.         @rm -rf csrc DVEfiles simv simv.daidir ucli.key VCS* AN.DB 64 verdiLog
  51.         @rm -rf novas.*
  52.         @rm -rf *.log *.vpd *.ddc *.svf *.SDF *Synth *Netlist* work vsim* transcript
  53.         @rm -rf ./Temp
  54.         @mkdir ./Temp
  55.         @mkdir ./Temp/VCS
  56.         @mkdir ./Temp/VCS/work

  57. filelist:
  58.         @cp $(glbl_home)/glbl.v        $(SIM_PATH)/Temp
  59.         [url=home.php?mod=space&uid=205858]@find[/url] $(SRC_PATH) -path "$(SRC_PATH)/Ipcore" -prune -o -type f -name "*.v" >Temp/filelist_v.f
  60.         [url=home.php?mod=space&uid=205858]@find[/url] $(SIM_PATH)/Macro/ -name "*.h" >Temp/filelist_h.f
  61.         [url=home.php?mod=space&uid=205858]@find[/url] $(SIM_PATH)/Testbench/ -name "*.v" >>Temp/filelist_v.f
  62.         @find $(SIM_PATH)/Ipcore/ -name "*netlist.v" >>Temp/filelist_v.f
  63.         @find $(SIM_PATH)/Model/ -name "*.v" >>Temp/filelist_v.f
  64.         
  65.         @find $(SRC_PATH) -path "$(SRC_PATH)/Ipcore" -prune -o -type f -name "*.sv" >Temp/filelist_sv.f
  66.         @find $(SIM_PATH)/Testbench/ -name "*.sv" >>Temp/filelist_sv.f
  67.         @find $(SIM_PATH)/Ipcore/ -name "*netlist.sv" >>Temp/filelist_sv.f
  68.         @find $(SIM_PATH)/Model/ -name "*.sv" >>Temp/filelist_sv.f
  69.         
  70. help:
  71.         [url=home.php?mod=space&uid=17569]@echo[/url] "******Welcome******"
  72.         @echo "   COMMAND LIST: "
  73.         @echo "1--- make clean "
  74.         @echo "2--- make filelist "
  75.         @echo "3--- make compile "
  76.         @echo "4--- make elaborate "
  77.         @echo "5--- make simulate "
  78.         @echo "6--- make verdi "
  79.         @echo "7--- one-click simulation, please use the command --- make all"



复制代码
setup文件如下




  1. Xilinx_Lib : ./Temp/VCS/work
  2. OTHERS=/usr/Xilinx/VivadoLib/synopsys_sim.setup



复制代码




 楼主| 发表于 2024-11-24 16:22:18 | 显示全部楼层


A1985 发表于 2024-11-24 10:05
需要编译xilinx自带的模型库,都在安装vivado目录里面,或者用compilesimlib或者gui的compile sim lib vcs ...


您好,仿真库我已经编译好了,VCS仿真也没告警,问题出在Verdi好像识别不出来这些编译好的库
发表于 2024-11-25 15:59:49 | 显示全部楼层
可以试试在vcs选项加入-kdb,然后在verdi选项加入-dbdir $(SIM_PATH)/Temp/VCS/work/simv.daidir
 楼主| 发表于 2024-11-26 14:17:53 | 显示全部楼层


ALLINFORU 发表于 2024-11-25 15:59
可以试试在vcs选项加入-kdb,然后在verdi选项加入-dbdir $(SIM_PATH)/Temp/VCS/work/simv.daidir ...




您好,我在makefile的 elaborate时加入了 -kdb选项,然后 elaborate就报错了
Makefile:
捕获1.PNG
报错log:显示 XILINX_LIB 库和UNISIM_VER这两个库 kdb选项不一致
捕获.PNG
附:
这是我使用 Vivado 下预编译VCS仿真库的tcl命令




  1. compile_simlib -simulator vcs -simulator_exec_path {/home/kkk/Synopsys/vcs/V-2023.12-SP2/bin} -family all -language all -library all -dir {/home/kkk/WorkSpace/Vivado2022_VCS2023_SimLib} -no_systemc_compile


复制代码



 楼主| 发表于 2024-11-30 10:40:46 | 显示全部楼层
求教,悬而未决
 楼主| 发表于 2024-12-2 12:29:32 | 显示全部楼层
求助
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-23 06:39 , Processed in 0.024390 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表