Veloce 之所以能够加速仿真,原因是Veloce把DUT(Design Under Test) 和 TB(TestBench) 一起综合成实际的电路,然后下载到Veloce硬件中,在硬件上跑,所以是比软件仿真快得多。 那么怎样才能把Veloce用起来,让它来加速我们的仿真呢? 首先需要软件环境和硬件环境都setup起来,这里说的软件环境是指vleoce需要的license等环境变量设置;硬件环境是指Veloce 机器已经安装好,并且有对应的服务器供我们保存数据,编译代码;然后就是按照Veloce Emulation Flow 编译出正确的database下载到Velcoe中就可以run起来了。
1 Veloce Emulation Flow
主要步骤如下:
1.1 创建veloce.config 文件
veloce.config 文件顾名思义就是veloce的config文件,这个是必不可少,里面的内容是对veloce analysis/compile/runtime 的一些控制选项。其中有些option是必须的,否则veloce是跑不起来的。例如:
1.2 Analyze
Velcoe对DUT+TB 文件进行基本的语义分析
1.3. Compile
Veloce对DUT+TB 进行编译,综合生成可以下载到veloce中的文件
1.4 Compile HVL 部分
主要是对C/C++ 代码部分的编译
1.5 Run
将编译好的数据下载到Veloce硬件中,进行emulation
1.6 Debug
根据emulation 结果,进行debug。 通常可以通过log和波形来debug。而波形debug可以分为xwave 和fullup 两种波形生成方式。xwave波形生成速度快,但是需要在编译前指定要dump信号的hierachy,只有指定的信号才是可见的。fullup波形无需编译前指定信号hierachy,全部信号波形可见,但是dump速度慢。
实际应用中,可以先用xwave大概确定出现bug的仿真时间点,然后再用fullup,将全部信号dump出来进行调试。
2 Veloce 流程控制
2.1 Makefile
Veloce 的流程如上,我们可以通过Makefile来轻松的实现这个流程控制。所以,Veloce config option是用veloce.confg 文件来配置,Veloce emulation flow 用Makefile来实现
3 Veloce 生成数据
有了Veloce的配置文件,再加上Makefile 的流程控制,我们就可以将DUT+TB 编译成可以在Veloce上跑的数据了。在编译和跑的过程中veloce会生成很多log和report,主要部分如下:
3.1 veloce.log
Veloce编译和跑的过程生成的log文件,会放到当前目录下的veloce.log文件夹下,这个文件夹是veloce自己创建的,用户只需查看里面的log即可
3.2 veloce.med
Velcoe 编译的结果,会放到当前目录下的veloce.med 文件夹下,这个文件夹是veloce自己创建的。
3.3 velcoe.wave
Velcoe 跑的过程,dump出来的波形文件会放到当前目录下的veloce.wave 文件夹下,这个文件夹是veloce自己创建的。
3.4 电路面积和时序
Veloce 的面积报告: veloce.med/velsyn.out/velsyn.report 中查看MACROS 数目(一个AVB板16个MACROS)。 Veloce的时序报告: veloce.log/compile_velgs_0.log 中查看实际跑到的频率
原文作者:grady
点击查看原文