传统的验证技术中,最重要的就是基于仿真的验证。过去主要的仿真工作都是在软件仿真器上实现的,当被验证设计的规模变得很大,到达上百万门甚至上千万门时,测试向量数量也变得巨大,用纯软件仿真器进行仿真验证,将会耗用大量的验证时间,特别是对门级代码进行仿真验证时,所需要的验证时间将会长得超过项目所能容许的时间。同时,用软件模型来模拟目标系统,并不一定总是准确,有时输入输出物理问题是很难用软件来模拟的,这时候我们需要借助硬件进行仿真加速验证。硬件加速仿真的目的是利用物理硬件高速运行的特点消除软件仿真器导致的
VStation硬件辅助验证平台
Mentor Graphics公司高性能VStation硬件加速仿真系统能为各种复杂设计提供全面的、功能强大的验证环境,该平台提供业界领先的满足当今以及将来复杂SoC验证要求的性能和容量。VStation基于成熟的VirtualWires技术,提供快速、高效的In-Circuit验证,高达1MHz的仿真速度,支持VHDL、Verilog、以及混合语言的输入,高度可靠和自动的编译器,具有友好的图形界面,任意时刻、所有信号100%可见性,可加载任意长度和宽度的测试向量。与软件模拟相比,VStation可以在更短的时间内运行大量的随机测试去找到设计中隐藏的问题,它是以门级实现逻辑功能,并行执行设计代码,更接近真实芯片,更容易发现竞争冒险等错误,而且它可以实现芯片的系统级验证,可以更快地完成回归测试。目前,VStation Pro是其第六代产品,最大可以支持1.2亿万门的设计。
VStation硬件辅助验证平台支持灵活的使用模式,有Co-Simulation、Co-Modeling、ICE三种模式(如图1)。Co-Simulation允许HDL行为级testbench在workstation端的软件仿真器运行,可综合部分的testbench及DUT(Design Under Test)综合进Vstation硬件加速器,结合了软件模拟和硬件仿真。在进行仿真的时候,workstation端的软件仿真器通过HDL_Link的接口跟Vstation硬件加速器上的设计进行数据交互,完成软件模拟。Vstation支持业界流行的软件仿真器,如Cadence公司的NC-Verilog、Verilog-XL,Synopsys公司的VCS,还有Mentor的ModelSim。这个模式使用简单,并可以提供7倍~20倍的加速。Co-Modeling是一种基于事务级的验证方法,支持HVL(High-Level Verification Language,例如C/C++, System C,System Verilog)编写的testbench和Vstation硬件加速器交互仿真,消除了软件仿真器和Vstation硬件加速器交互导致的性能瓶颈,通过可综合的事务驱动器 (Transator)实现事务级到信号级的数据交换,进而可以把仿真速度提高100倍~10000倍。Co-Modeling有助于验证工程师进行真正的系统级验证工作,诸如嵌入式OS启动,嵌入式应用软件运行和各种数据包的执行。ICE(In-Circuit Emualtion)模式可以通过使用搭建目标电路板(Target Board)为被测设计提供激励,更进一步模拟实际运行环境,实现接近实际电路的运行速度。
VStation以其灵活的使用模式,快速运行速度,强大的调试能力,成为3G无线,多媒体图像和嵌入式处理器等复杂SoC验证工作的最佳选择。
VStation的基本验证流程
VirtuaLogic软件是VStation的一个集成开发和调试环境,它为支持Co-simulation的HDL-Link软件和支持Co-modeling的TBX软件提供了管理和使用VStation的平台。其集成了RTL Compiler(综合工具)、VirtuaLogic Compiler(Mentor Graphics专利技术Virtual Wires实现工具)、后端的布局布线管理器和Virtual probe分析工具。
VirtuaLogic支持脚本和GUI两种开发方式,在此我们以VirtuaLogic GUI为基础介绍VStation的基本验证流程。其包括设计输入、信号设定、编译、设置Trigger、运行仿真与调试。
第一步,设计输入。这一步分析RTL和行为级的DUT,检查语法和语义错误,为编译做准备。VStation支持VHDL、Verilog以及混合语言的RTL设计,也支持门级的网表,对于门级网表只要在技术库映射处指定相应厂家的标准单元库即可。原设计中的memory经过编译之后映射到VStation阵列板上的SRAM,用户可以根据所给的规范编写memory的行为级代码,软件能够自动推断并且映射到SRAM上,也可以在VirtuaLogic的Memory窗口中手动设定。VStation
VStation在高性能CPU功能验证上的应用
同济大学微电子中心自主研发的的64位CPU应用于功能验证工作中。使用传统的软件仿真速度不理想,使用FPGA原型验证可调试性又比较差,所以我们采用了Mentor Graphics的VStation Pro硬件辅助验证平台,既提高了速度又提供了良好的调试界面,使我们的验证工作取得了事半功倍的效果。
下面以64位CPU在VStation Pro中的一个验证特例介绍其应用过程。我们通过修改原来的Testbench,在memory中存放测试激励,期望输出和实际输出,实现一个自比较的验证环境,并在采用了Stand Alone使用模式。
首先,我们导入设计的源代码,即CPU所有模块的RTL,以及可综合的testbench;指定相应类型的Memory,一类memory存放测试向量,只有读端口没有写端口,一类memory存放数据及中间结果,具有读/写端口;然后添加时钟域,时钟和设置信号时序关系。
设定信号时,我们选取设置Trigger需要的rstn、self_test、test_done、trace_error信号指定为probed&triggerable。其中rstn是复位信号,在复位信号给出后,芯片初始化,初始化完成以后信号self_test拉高表明测试可以开始,测试数据运行后进入自比较状态;自比较运行结束后,信号test_done会置为1,如果中间出错,信号trace_error就会置为1。
然后,开始综合编译(rtlc),优化编译(vsyn),利用PC Farm配合做P&R(vtask)生成比特文件。在做vsyn的过程中,我们根据需求通过编写vmw.pod中约束顶层引脚的位置,并把clk和rstn绑定到VStation系统提供的user bits上,为整个运行环境提供运行时钟和复位控制信号。在下载运行前,按照测试目标编写好Trigger的理想触发和异常触发条件。
最后,开始硬件仿真的步骤。首先在Setup中设置好跟Vstation相连的Workstation的hostname,在Memory Contents
结论
在功能验证中,软件仿真随着芯片规模的增大,测试向量的增多,速度明显下降;使用FPGA原型来进行功能验证可以提供快速的运行速度,但不能提供很好的可调试性。而VStation可以大大缩短验证周期,并有友好的图形界面,方便调试,大容量,可以提供快速的仿真速度和良好的调试环境,综合了软件仿真和FPGA的优点,很好的填补了FPGA原型验证的高速、不易调试和软件仿真的可调试、低速之间的空白。
在Mentor Graphics的Vstation Pro硬件辅助验证平台和其技术支持团队的帮助下,我们的功能验证工作快速高效,并在保证芯片功能正确性这非常重要的一环上,获得了满意的验证速度和结果。今后,我们还将在更多项目的验证中使用VStation,以保证我们的验证工作顺利而有效的进行。
文章评论(0条评论)
登录后参与讨论