最近学习ZeBu的时候尝试使用一个简单的Verilog工程入手,这个简单的工程是一个简化的RISC-V核,里面含有一个SPI Flash控制器,Uart模块,GPIO模块,文件比较少,并且整个工程是可以直接综合的,比较适合入手。代码Porting的时候想得比较简单,直接写个testbench,把需要的文件列表加进去,跑一跑,结果从综合结果来看memory什么的都可以正常识别,但是直接运行的时...
我的代码我做主
最近学习ZeBu的时候尝试使用一个简单的Verilog工程入手,这个简单的工程是一个简化的RISC-V核,里面含有一个SPI Flash控制器,Uart模块,GPIO模块,文件比较少,并且整个工程是可以直接综合的,比较适合入手。代码Porting的时候想得比较简单,直接写个testbench,把需要的文件列表加进去,跑一跑,结果从综合结果来看memory什么的都可以正常识别,但是直接运行的时...
本篇文章中我们先来看看一个UART Transactor的例子,我们可以通过这个例子来理解ZeBu中transactor的具体概念和基本应用,另外还可以了解一下ZeBu运行的整个流程。首先我们来看看DUT。UART DUT wrappter在每个ZEBU的工程中,DUT都要有一个WRAPPTER,这个wrapper负责例化DUT,产生必要的时钟,挂载必要的transactor等等,我们来看看...
ZeBu是一个通过硬件加速实现ASIC仿真加速的一个仿真测试系统,相比于FPGA而言,他的资源更多,porting也相对简单,并且支持多种外围模块。ZeBu支持多种硬件软件协同调试ZeBu和PC之间通过PCI接口,支持多用户同时访问支持ICE和Z-ICE两种接口仿真环境porting实例化仿真时钟实例化和DUT之间的接口主时钟一般由一个指定的时钟原语产生,每个实例中要有1到16个时钟。zce...
ZeBu Transactors实际是一些协议相关的外围器件的统称,可以方便的在SOC验证环境中调用,它支持一些常见的协议,比如:PCI Express 3.0, AMBA, USB, MIPI CSI-2, MIPI DSI, I2C, I2S, 以太网,视频接口和JTAG.这些transactors包含可综合总线模型(Synthesizable Bus Functional Models...
说到规范代码,良好的注释是一个必选项,那么怎么样才算有良好的注释呢?这个实际没有统一的标准,每个人都有自己的写作风格,但是对于函数定义注释,文件注释,宏定义注释这些是有一定的规范的,这个规范就是Doxygen给出的,写代码的时候如果严格遵守这个规范,那么Doxygen就额可以自动根据代码生成相应的文档,之前一直知道有这么个东西,但是一直都没能好好利用,这个借着代码翻新的机会,就好好说一下代码...