ZeBu Server

ZeBu是一个通过硬件加速实现ASIC仿真加速的一个仿真测试系统,相比于FPGA而言,他的资源更多,porting也相对简单,并且支持多种外围模块。

  • ZeBu支持多种硬件软件协同调试
  • ZeBu和PC之间通过PCI接口,支持多用户同时访问
  • 支持ICE和Z-ICE两种接口

仿真环境porting

  1. 实例化仿真时钟
  2. 实例化和DUT之间的接口

主时钟一般由一个指定的时钟原语产生,每个实例中要有1到16个时钟。

zceiClockPort ClockPort (.cclock(clk), .cresetn(rstn));

# cclock: controlled clock
# cresetn: controlled reset

注意多个zceiClockPort也只能公用一个reset信号。

ZeBu的编译采用VCS,通过UTF文件指定编译命令,UTF文件是ZeBU编译器的主要配置文件,它包含编译所需要的所有信息和ZeBu后端编译的信息。UTF文件由tcl脚本编写。下面是一个典型的UTF文件:

VcsCommand { vcs -full64  \     # compile and run under 64bit mode
             -sverilog \        # 允许Accellera System Verilog中使用Verilog扩展
             -hw_top=uart_device_wrapper \
             +libext+.v \       # 指定VCS仅在具有指定扩展名的目录中搜索源文件
             +define+$IFLESS \  # 添加宏定义
             -y $ZEBU_IP_ROOT/uc_xtor \ # 定义verilog的库
             ../src/dut/uart_device_wrapper.v \
             ../src/dut/dut.v }
ArchitectureFile "$env(FILE_CONF)"
GridCmd -submit $env(REMOTECMD) -delete {}
xtors -use_zebu_ip_root t
if {"$env(IFLESS)" eq "ZEBU_NO_RTB"} {
encrypted_mod -encrypt_v2 true
}

发表新评论