用xrun仿真I2C项目

文摘   2024-06-04 23:08   上海  

大处着眼,小处着手;
群居守口,独居守心。

--曾国藩

1.本文内容标题截图

2.环境变量的设置

#!/bin/csh
setenv UVM_HOME /home/icer/help/uvm_src/uvm-1.1dsetenv WORK_HOME `pwd`
setenv PROJECT_DIR ~/projectssetenv IIC_AGENT_DIR ${PROJECT_DIR}/iic/agents/iic_agent setenv WB_AGENT_DIR ${PROJECT_DIR}/iic/agents/wb_agentsetenv IIC_SEQUENCES_DIR ${PROJECT_DIR}/iic/iic_tb/sequencessetenv IIC_TB_DIR ${PROJECT_DIR}/iic/iic_tb/tbsetenv IIC_TEST_DIR ${PROJECT_DIR}/iic/iic_tb/testsetenv IIC_ENV_DIR ${PROJECT_DIR}/iic/iic_tb/envsetenv IIC_RTL_DIR ${PROJECT_DIR}/iic/rtl

3.编译仿真过程中遇到的问题及解决方法

3.1问题1

如下图所示,编译的过程中报xmvlog *E DLCSMD的错误,主要跟指定的uvm的库相关

3.2问题1的解决方法:

-uvmhome `xmroot`/tools/methodology/UVM/CDNS-1.1d。

关于如何指定uvm库的方法,详见公众号另外一篇文章

如何为仿真器指定不同的UVM版本库

3.3问题2

仿真的过程中报xmsim *E MSSYSTF的错误,主要跟指定的.so相关。

3.4问题2的解决方法:

-loadpli `xmroot`/tools/methodology/UVM/CDNS-1.1d/sv/lib/64bit/libuvmpli.so:uvm_pli_boot

4.使用的Makefile脚本

TB       = topUVM_VERBOSITY =  UVM_DEBUG
##TB filelistTB_FILES = ./tb.f
#compile and elab optionXRUN = xrun -64bit -sv -access rwc -clean -elaborate \ -uvmhome `xmroot`/tools/methodology/UVM/CDNS-1.1d \ -timescale 1ns/1ps \ -coverage all -coverage functional \ +define+UVM_OBJECT_MUST_HAVE_CONSTRUCTOR \ +incdir+${IIC_AGENT_DIR}+${IIC_AGENT_DIR}/bits+${IIC_AGENT_DIR}/bytes\ +incdir+${WB_AGENT_DIR}\ +incdir+${PROJECT_DIR}/iic/iic_tb/sequences\ +incdir+${IIC_TEST_DIR}\ +incdir+${IIC_ENV_DIR}\ +incdir+${IIC_RTL_DIR}\ +incdir+${IIC_TB_DIR}\ -f $(TB_FILES) \ -loadpli `xmroot`/tools/methodology/UVM/CDNS-1.1d/sv/lib/64bit/libuvmpli.so:uvm_pli_boot
##for testbench compile and elaboration command comp: $(XRUN) ##for simulation commandcase1: xrun -R +UVM_TESTNAME=iicMasterTxTest -covtest iicMasterTxTest -covoverwritecase2: xrun -R +UVM_TESTNAME=iicMasterTxTest -covtest iicMasterTxTest -covoverwritecase3: xrun -R +UVM_TESTNAME=iicMasterRxTest -covtest iicMasterRxTest -covoverwritecase4: xrun -R +UVM_TESTNAME=iicMasterRxTxArbTest -covtest iicMasterRxTxArbTest -covoverwritecase5: xrun -R +UVM_TESTNAME=iicMasterTxRxArbTest -covtest iicMasterTxRxArbTest -covoverwritecase6: xrun -R +UVM_TESTNAME=iicMasterRxRxArbTest -covtest iicMasterRxRxArbTestcase7: xrun -R +UVM_TESTNAME=iicMasterTxTxArbTest -covtest iicMasterTxTxArbTestcase8: xrun -R +UVM_TESTNAME=iicMasterRxRxSameAddressArbTest -covtest iicMasterRxRxSameAddressArbTestcase9: xrun -R +UVM_TESTNAME=iicMasterTxTxLongArbTest -covtest iicMasterTxTxLongArbTestcase10: xrun -R +UVM_TESTNAME=iicPcTest -covtest iicPcTestregr: case1 case2 case3 case4 case5 case6 case7 case8 case9 case10
##clean generated filesclean: rm -rf AN.DB DVEfiles csrc *.simv *.simv.daidir simv* ucli.key 64 rm -rf *.log* *.vpd *.fsdb *.vdb novas* *verdi* rm -rf vc_hdrs.h via.rc *.history

5.欢迎关注微信公众号《芯片验证日记》

6.欢迎加入知识星球《数字芯片前端验证》

一切改变源于看见;
看,是一种本能;
看见,是一种学问。
欢迎加入知识星球。星球内每周都有高质量内容更新!每天都会解答大家提出的技术问题。欢迎加入知识星球,助您快速成长。

最后,由于TX修改规则,为了不错过后续内容,欢迎加入QQ群,

另外,由于微信群已经超过200人,添加小编的微信,拉你进入WX学习群。

感谢关注微信公众号《芯片验证日记》,
一起好好学习,天天向上!

芯片验证日记
分享芯片验证相关的知识。
 最新文章