芯片规模和复杂度的急速增长,给验证工作带来了极大的挑战。硬件仿真加速器将大规模RTL设计(DUT)运行于硬件设备中,利用硬件并行处理数据的优势,实现高于传统软件Simulation仿真指数级的提速,越来越多的开发团队选择部署硬件仿真加速器实现大规模设计的加速验证。
在硬件仿真加速过程中,由于Testbench和DUT的交互方式不同,仿真加速的性能也有相应的变化。比较常见的Testbench和DUT的交互方式主要有:周期精确级、事务级、完全可综合的仿真加速。
周期精确级的仿真加速
周期精确级的仿真加速,是通过仿真加速器的硬件侧来运行用户设计,软件侧运行Testbench,根据专用的软硬件协同工作的协议来进行软硬件侧的数据转换和交付,从而实现仿真加速的一种方法。该方法在软硬件两侧交互的周期中,严格按照时间单位推进每一步的协议转换,并且采用双握手的方式进行通讯确认,这将产生大量的软硬件之间的交互开销,所以在加速的效果上不是十分的理想,但其针对一些非标协议的转换和时钟同步结构的设计有很大的灵活性。
事务级的仿真加速(Transaction Based Acceleration)
事务级的仿真加速,是将DUT和部分Testbench运行在硬件侧,通过事务器与仿真加速器软件侧中运行的Testbench进行通讯,可以实现将无时序激励变为有时序功能的交互。因为软件侧的操作所花费的时间在一般情况下会远大于硬件侧的时钟周期,当发送一个带时序的激励时,软件侧需要花更多的时间进行时序的构建,在一定程度上影响软硬件协同仿真平台的性能,而事务级仿真加速能够很好的解决这类型的问题。比如对于一个拥有AXI或者AHB接口的DUT,软件侧需要按照AXI或者AHB的时序规则构建激励,而扩展了无时序激励变有时序功能时,仅需要将AXI或者AHB的总线数据按顺序发送至硬件侧,硬件侧可以自动完成时序的构建,这样的功能结构能够大幅度提高仿真的效率。
完全可综合的仿真加速
完全可综合的仿真加速,需要将用户的DUT和测试激励完全综合进仿真加速器,这样可以大大的减少因为软硬件的交互而产生的通讯开销,从而可以极大地提高仿真速度。
不同的交互方式带来不同的加速比。周期精确级的仿真加速,因为通讯开销带来的影响,相较于软件仿真基本上可以做到5-100倍的仿真加速;基于事务级的仿真加速,能够为用户带来20-1000倍的加速体验,尤其适用于各种专用的算法实现,比如:视频编解码的处理,交互数据量巨大的通讯芯片验证等;完全可综合的仿真加速,能够为用户带来至少1000倍的加速体验,可以针对全流程的设计验证提供最有效的仿真加速手段。用户可以根据设计特征和实际需要,选择适合的交互方式,提升验证效率。