Veloce 之 Getting Started

简介: Veloce 之所以能够加速仿真,原因是Veloce把DUT(Design Under Test) 和 TB(TestBench) 一起综合成实际的电路,然后下载到Veloce硬件中,在硬件上跑,所以是比软件仿真快得多。 那么怎样才能把Veloce用起来,让它来加速我们的仿真呢?

Veloce 之所以能够加速仿真,原因是Veloce把DUT(Design Under Test) 和 TB(TestBench) 一起综合成实际的电路,然后下载到Veloce硬件中,在硬件上跑,所以是比软件仿真快得多。 那么怎样才能把Veloce用起来,让它来加速我们的仿真呢? 首先需要软件环境和硬件环境都setup起来,这里说的软件环境是指vleoce需要的license等环境变量设置;硬件环境是指Veloce 机器已经安装好,并且有对应的服务器供我们保存数据,编译代码;然后就是按照Veloce Emulation Flow 编译出正确的database下载到Velcoe中就可以run起来了。

1 Veloce Emulation Flow

主要步骤如下:

image.png

1.1 创建veloce.config 文件

veloce.config 文件顾名思义就是veloce的config文件,这个是必不可少,里面的内容是对veloce analysis/compile/runtime 的一些控制选项。其中有些option是必须的,否则veloce是跑不起来的。例如:

image.png

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
点击查看原文

相关文章
|
安全 Ubuntu 测试技术
l4re Getting started
l4re Getting started
376 0
|
7月前
|
负载均衡 Java 应用服务中间件
Client not connected, current status:STARTING
Client not connected, current status:STARTING
567 1
|
Ruby Web App开发
|
XML Android开发 数据格式
MPAndroidChart 教程:开始 Getting Started
入门 本章介绍使用此库的基本设置。 添加依赖 首先,将此库的依赖项添加到项目中。如何执行此操作在此存储库的用法部分中进行了描述。
1933 0
|
JavaScript Linux 前端开发
Starting a Gradle Daemon, 5 busy and 1 incompatible and 1 stopped Daemons could not be reused, use --status for details FAILURE: Build failed with an
执行gradle build出的问题,查看hs_err_pid11064.log日志文件发现,是电脑的RAM不足导致
4151 0
|
网络安全 开发工具
|
Linux 网络安全