最近项目需要跑XA+VCS混仿,跑的XA安装目录下的一个关于加法器adder4的demo.
流程参考的下面IC君写的一个flow.
奉上链接如下:
https://zhuanlan.zhihu.com/p/64434740
写的比较详细,整个流程下来,一直看不了波形,一直查找原因终于跑通。
主要两个原因:
(1)不知为啥,公司服务器对于XA仿真器的GCC解释器的路径定义错误,需要自己在
.cshrc文件里面强制重新定义正确的路径
setenv XA_GCC /…XA安装目录…/gcc-4.5.2-static/bin/gcc(原有路径指到了gcc-4.5.0-static,但看xa安装目录下gcc版本时gcc-4.5.2-static所以改过来了)
更改这个变量后能成功产生仿真文件
(2)但是通过wv 吃进模拟fsdb波形和数字vpd波形,信号列表没有信号也没有设计的hier无法看仿真波形。
后面发现时wv版本太低用的2010版本。通过查找spiceexplorer安装目录发现公司已经安装了2015版本的wv,但是wv &命令默认调用最low的版本,所以通过手动启动2015版本custom waveview把fsdb和vpd波形吃进来,就能正确显示波形了
.cshrc文件里面重新定义
alias wv /…wv 2015版本安装路径…/bin/wv
至此,demo跑通
(3)注意生成fsdb波形也可以通过verdi读入设计,来看波形。命令如下:
首先读入verilog和SPICE网表文件
verdi -f filelist.f(数字设计) -ams xxxxx.sp(模拟SPICE网表)+spiceext+.sp+SP+.hsp+
然后分别两个波形窗口读入数字fsdb波形和模拟fsdb波形。
数字信号波形可直接拉信号看波形
模拟信号波形只能看spice网表里实现指定的信号波形(设计较大时指定部分信号,设计较小时可全部down下来),依次点击 Get Signals(波形窗口菜单栏波形图标) -> 新窗口里面出现你的设计层次结构,找到模拟模块层次,点击对应模块就会出现之前指定的模拟信号列表 -> 把需要看波形的信号加入到波形窗口即可
(4)
模拟信号必须指定所抓的信号,不然模拟仿真不会产生fsdb波形。
可以直接再cfg文件里指定信号层次或者再SPICE网表里指定,
SPICE网表里,格式如下(一般模拟同事清除):
.PROBE TRAN
+V(sim.x.x.x.x.xx. 指定信号层次结构,注意一定要正确)
+I(sim.x.x.x.x.xx. 指定信号层次结构,注意一定要正确)
另外混仿需要注意的问题:
1.混仿时间一般很久,如果可以建议XA开多核仿真,在cfg文件里面设置
set_multi_core -core 10(10核)
set_analysis_core -core 10
2.有时候时间太久需要中途掐断仿真,数字波形不更新不能load下来,只要vcs脚本选项里加了debug_pp
可以ctrl_c暂停仿真输入fsdbDumpflush,更新波形,再输入run启动仿真
或者代码里加入 foever #10000 $fsdbDumpflush