SEMU-桌面型硬件仿真加速器

SEMU-桌面型硬件仿真加速器是面向SOC/ASIC设计公司,提供的便携式硬件仿真器,是IC设计的IP/SOC验证的关键工具。SEMU-桌面化的硬件仿真加速器就是提供了“Simulation的价格,Emulation的性能”的创新化产品。

下载数据手册 请求报价
  • 产品特征
  • 加速案例

SEMU联合了软件数据处理的灵活性和硬件加速的高效性,具有积极的技术特点

  • 支持高速仿真,FPGA中的DUT时钟频率可以达到50MHz
  • 支持自动生成软硬件之间的高速互连接口,自动编译软件环境和硬件环境
  • 单系统可以支持1.6亿门 以下的ASIC的仿真加速
  • 支持C/C++ Testbench、Verilog/SystemVerilog/UVM Testench
  • 支持General(周期精确)和SDT(非周期精确,支持事物级激励)
  • 支持寄存器100%全可见和硬件断点功能
  • 支持Readback波形获取方式:

     A,可以获取DUT内部所有未被优化掉的寄存器信号的波形,并生成VCD标准波形格式文件

     B,可以在Emulation过程中,动态查看所有未被优化掉的寄存器信号的波形,而不需要重新编译SEMU工程

     C,支持Readback硬件断点  

  • 支持Probe波形获取方式:

     A,可以获取DUT内部Verilog设计文件中的非generate语句之下的wire、reg信号的波形,并生成VCD标准波形格式文件和FSDB格式文件

     B,最大支持每个周期获取10752-bit信号的波形

     C,支持Probe硬件断点,并获取硬件断点前后一定区间内的波形

  • 支持动态修改Testbench, 受控时钟的频率,而不需要重新综合设计工程
  • 支持Verilog语言设计文件,EDIF网表等设计文件
  • 支持VCS/Modelmsim等第三方仿真器
  • 大量经过验证的高速Transactor,包括GPIO,AMBA,GMII,UART等
  • 支持JTAG和PCIE两种位流配置方式
  • 支持命令行和GUI两种运行方式
  • 支持Linux系统

 

 

  

 

1,该项目的DUT为小型的SoC系统,其结构由CPU,JTAG,UART,DDR3组成。

DUT工作流程:通过JTAGDDR3中加载OSkernel; 通过JTAGCPU发送启动OS的命令,将PC指向DDR3的基地址,CPU开始BOOTOS的过程,通过UART打印输出信息。

我们通过SEMU搭建仿真环境:

DUT外层增加Wrapper,Wrapper中实例化DUTJTAG Transactor,UART Transactor

将设计中的Verilog源码和Xilinx IPDCP文件作为SEMUDUT的设计输入

根据SEMU DDR3命名规范,在Wrapper中对DDR3的端口进行重命名,便于自动化

配置硬件工程,接口映射,Testbench,编译工程

2我们一个客户的真实案例,我们可以看到其被验证对象为FPU(运算单元),存在两个接口:AHBAXI。其中AHB是配置接口,AXI是数据传输接口。我们的testbench结构分为三部分:

缓存数据信息

Send/receive: semu自动生成C-API,实现软硬件间的数据交换

C Model: 复用之前的C模型,主要有三个用途,产生源数据,产生期望的数据结果,对比从硬件接收到的结果。所的数据与期望数据进行比较,判断结果的正确性

运行过程:

从配置文件读取配置信息,缓存在buffer

通过send API 将配置信息发送到DUTAHB接口,完成DUT的配置过程

C Model产生源数据

通过send API 源数据发送到DUTAXI接口上,然后DUT开始计算

通过receive APIDUT接收结果数据

DUT的结果数据与Cmodel的期望值进行比较,判断其正确性

重复以上几步,知道验证结束

我们将同样的工程,通过NCsim进行迭代时间对比,其中Semu的编译时间为69.35分钟,仿真时间为88.2分钟。总迭代时间为157.55分钟。NCSim的时间颗忽略不计,仿真时间为23433分钟。加速比148.73

3该项目中,存在两个接口: 数据输入接口(put),数据输出接口(get)。其仿真流程如下:

Testbench YUV源文件中读取YUV数据,存储在内部缓存 ,然后通过semu自动生成的API将数据发送到DUT

Testbench DUT接口接收结果数据

结果数据分别写入H.264编码文件中和直接在线用gmplayer播放器进行播放。

该项目中,semu的编译时间为30分钟,仿真速度为0.4/帧;VCS的仿真速度为660/